
Die Führung der kleinen Firma, für die ich arbeite, ist von SaaS sehr begeistert und treibt die SaaS-Bereitstellung unseres Produkts voran. Ich bin diesbezüglich besorgt, da ein Teil der Funktionalität des Produkts darauf basiert, dass die Benutzer mithilfe von Business Intelligence-Tools Berichte auf Basis der der Anwendung zugrunde liegenden Datenbank schreiben können.
Wenn ich frage, wie wir diese Funktionalität im SaaS-Modell bereitstellen wollen, ernte ich nur leere Blicke und die Antwort ist lediglich, dass wir den Datenbankserver im Internet verfügbar machen und es den Benutzern ermöglichen werden, die Datenbank abzufragen, als würde sie in ihrem Unternehmensnetzwerk ausgeführt.
Das macht mir eine Heidenangst, aber ich weiß nicht, ob ich einfach nur paranoid bin oder ob es ernsthaften Grund zur Besorgnis gibt.
Meine Frage ist also: Ist es möglich, die Sicherheit eines Oracle-Datenbankservers so zu erhöhen, dass wir uns keine Sorgen darüber machen müssen, dass er ungeschützt im Internet liegt? Und wenn ja, welche Ressourcen sollte ich recherchieren, um zu lernen, wie das geht? Die Datenbank wird vertrauliche Informationen speichern, die unsere Kunden nicht der Welt preisgeben möchten, und dennoch wurde ein Vorschlag, diese Funktionalität hinter einem VPN zu verstecken, rundweg abgelehnt.
Meine Recherchen zum Thema „Härten einer Oracle-Datenbank“ haben so ziemlich alle Aussagen der Art enthalten wie „Machen Sie niemals ein Loch in Ihre Firewall“, also könnte die richtige Antwort hier sein: „Aktualisieren Sie Ihren Lebenslauf so schnell wie möglich“, aber ich bin für jeden Rat dankbar, den Sie mir geben können.
Antwort1
Das Offenlegen einer Datenbank ist nicht wirklich einRieseProblem im Vergleich zu einigen anderen Diensten, die oft World+Dog ausgesetzt sind ... außer dass es sich um ein kompliziertes System mit vielen potenziellen Schwachstellen handelt, einschließlich der Berechtigungsausweitung. Ich würde sicherstellen, dass Sie die Datenbank nicht öffentlichen Abfragen aussetzen und mit erforderlichem SSL usw. ausführen. Ich würde sagen, es ist möglich, aber ja, Sie sollten paranoid sein und eine separate Datenbankinstallation für die öffentlich zugängliche Datenbank pflegen. Wenn Ihr Unternehmen nicht bereit ist, die Lizenzkosten dafür zu zahlen, ja, dann hauen Sie ab.
Aus Kunden-/Supportsicht kann die direkte Verbindung zur Datenbank ein Problem darstellen, wenn der ISP des Kunden bestimmte Porttypen oder Datenverkehr blockiert.
In einem SaaS-Modell möchten Sie im Allgemeinen, dass Ihre Programmierer eine API schreiben, die von der Anwendung abgefragt werden kann. APIs dieser Art funktionieren normalerweise über https und geben die Daten in der HTTP-Antwort an die Anwendung zurück. Zusätzlicher Bonus: Es funktioniert von überall, wo das Web funktioniert, es ist SEHR einfach, Ergebnismengen mit Memcached oder anderen Caching-Technologien zwischenzuspeichern, um die Belastung des Datenbankservers zu verringern, und die HTTP-Authentifizierung wird ziemlich gut unterstützt und getestet.
Antwort2
Ich würde einen zweiten Datenbankserver in der DMZ einrichten, Dumps in diese Datenbank importieren und diese Datenbank öffentlich zugänglich machen.
Antwort3
Sie werden mir sicher zustimmen, dass Zugriff und Sicherheit per Definition ein Kompromiss sind. Und Ihre Aufgabe ist es, vertrauliche Daten zugänglich zu machen.
Kurz gesagt: Sie können einen Großteil des Risikos durch Firewall-Tricks, eine solide Netzwerkarchitektur, aktuelle Patch-Sets, Zugriffsüberwachung und umfangreiche Backups verringern.
Auch die Passwortverwaltung ist eine heikle Angelegenheit, da Anwendungskonten oft Passwörter haben, die nie ablaufen, und es werden physische/Netzwerkzugriffskontrollen eingerichtet, um sicherzustellen, dass ehemalige Mitarbeiter mit Passwortkenntnissen keinen Zugriff auf die Daten erhalten. Wenn Ihr Datenbankserver dem gesamten Internet ausgesetzt ist, scheint dies schwierig zu sein.
Sie möchten wahrscheinlich auch eine „Wir wurden kompromittiert, was tun wir jetzt?“-Strategie definieren, damit Sie für alle Beteiligten gleiche Erwartungen haben und einen Aktionsplan für den Fall haben, dass Sie kein Glück mehr haben.
Antwort4
SaaS ist Ware.
Einen Datenbankserver dem Internet auszusetzen – nicht so gut.
Warum muss es verfügbar sein? Liegt es an RPC und sie möchten keine statischen RPC-Ports verwenden?
Es gibt jedoch einige großartige Anwendungs-Firewalls, und wenn Sie den Endmapper-Port der Datenbank sperren und ihn dann mit einer Firewall schützen, können Sie mit ACLs, IP-Einschränkungen usw. einige gute Dinge erreichen.
Außerdem müssen Sie Ereignisprotokolle, Schwachstellenscans usw. prüfen.