none
Sicherheit einer SQL Datenbank im Internet RRS feed

  • Frage

  • Hallo an alle,

    wir haben testweise bei einem Hoster eine SQL Datenbank gemietet. Es wurde also bei dem Hoster eine SQL Datenbank auf dessen bestehendem SQL Server angelegt. Wir haben über das Internet nur Zugang zu der Datenbank als DB_Owner, somit haben  wir keinen Zugriff auf die anderen Datenbanken auf dem SQL Server und können auch keine eigenen Benutzer anlegen. Der Zugriff ist super und man kann von überall in der Welt zugreifen (kleine Vertirebsverwaltungssoftware). 

    Nun die Frag, wie sicher sind die Daten? Kann jemand der die TCP/IP Adresse, den Datenbanknamen, unseren Zugangscode und den  SQL Port nicht kennt, diese Datenbank "angreifen" (löschen, Daten manipulieren etc.)?

    Oft höre ich das es besser wäre einen eigenen Server im Internet mit SQL Datenbank zu mieten und VPN zu benutzen, das aber ist wegen VPN und parallelem arbeiten im Internet (Recherchen, E-Mails etc.), je nach Router und Situation schlecht, weil nicht möglich.

    MS bietet ja auch SQL Datenbanken (AZUR) an und hat auch keine weiteren Sicherheitsstufen. Ich glaube nur das man eintragen muß von welche TCP/IP Adresse die Benutzer zugreifen dürfen.

    Weiß jemand genaueres??

    MFG Wieland

    Mittwoch, 16. Dezember 2015 16:24

Antworten

  • Um die Sicherheit eines Systems zu beurteilen, muss man sich schon mit vielen Details auseinandersetzen, und die gesamte Kette der Möglichen Einfallstore durchgehen.

    Eines sieht man hier schon:

    Wenn Ihr dbo seid, sind es auch andere. (db_owner = dbo). Und als dbo kann man unter Umständen aus einer Datenbank "ausbrechen".

    Was da zu beachten ist und wie man es sicher gestaltet, habe ich hier einmal beispielhaft aufgeführt:

    SQL Server Database Ownership: survey results & recommendations

    Ein weiteres Einfalltor wäre über ein manipuliertes Backup-File.

    Azure Datenbanken wiederum sind voneinander vollständig abgeschottet. Dort ist mir noch kein Angriff bekannt. Die Firewall Settings verhindern schon mal, das irgendwer aus dem internet auf den SQL Server Port zugreift.

    Und seit Neuestem bietet Microsoft mit der "Database Threat Detection" auch eine sehr fortgeschrittene "Datenbank-Firewall" mit komplexen Regeln zur Erkennung von diversen Angriffen an: https://azure.microsoft.com/de-de/blog/threat-detection-public-preview/

    Etwas vergleichbares kann nicht jeder aufbieten. Ob es wichtig ist, hängt aber auch von der möglichen Angriffsfläche und dem Schutzbedürfnis der jeweiligen Daten an. Wenn dieses sehr hoch ist, wäre unverschlüsselt zu arbeiten schon grob fahrlässig.

    In jedem Fall kann ja der Dienstleister auf die Daten zugreifen - es sei denn er weist nach, das er "vor sich selber schützt" durch bestimmte Protokolle.

    Soweit zum Einstieg in die Thematik.


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform, MCM, MVP
    www.SarpedonQualityLab.com | www.SQL-Server-Master-Class.com

    Mittwoch, 16. Dezember 2015 21:01

Alle Antworten

  • Hallo Wieland,

    klar ist, dass bei einem gesharten System die Sicherheit zwangsläufig nicht so hoch sein kann wie auf einem dedizierten Server*. Aber wenn der Webhoster sein Handwerk versteht, sollte das für den Normaluser keinen allzu großen Unterschied machen.

    Sinnvoller wäre, eine eigene SQL Server Instanz zu haben aber das ist bei den mir bekannten Hostern meist nicht möglich. Daher sehen andere Benutzer unter Umständen deine Datenbank(en), können aber, wenn es richtig gemacht wurde, nicht auf sie zugreifen. So wie das auch umgekehrt nicht gehen sollte.

    Da ihr aber DBO Rechte habt, könnt ihr auch natürlich auch selbst ins Knie schießen, wenn ihr etwas konfiguriert, was dann anderen erlaubt, auf eure Datenbankobjekte zuzugreifen.

    Generell würde ich den DBO Benutzer nur für administrative Zwecke und nicht für die normalen Zugriffe verwenden. Dort sollte man, je nach Anforderungen einen db_datareader und/oder einen db_datareader/db_datawriter Benutzer anlegen. Das müsste aber der Webhoster für euch tun, da ihr hierfür Berechtigungen auf Serverebene benötigt, dir ihr ja nicht habt.

    Die verwendeten Kennwörter sollten sehr komplex sein und evtl. auch mal getauscht werden.

    * Wenn ihr euch selbst mit SQL Server sowie mit Windows Servern an sich sehr gut auskennt (insbesondere was Administration und Sicherheit angeht), könnte man einen eigenen Server als "sicherer" ansehen. Wenn ihr da keine Profis seid, wird es wohl bei einem seriösen und professionellen Hoster, der SQL Datenbanken anbietet, sicherer sein.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Mittwoch, 16. Dezember 2015 16:38
    Moderator
  • Um die Sicherheit eines Systems zu beurteilen, muss man sich schon mit vielen Details auseinandersetzen, und die gesamte Kette der Möglichen Einfallstore durchgehen.

    Eines sieht man hier schon:

    Wenn Ihr dbo seid, sind es auch andere. (db_owner = dbo). Und als dbo kann man unter Umständen aus einer Datenbank "ausbrechen".

    Was da zu beachten ist und wie man es sicher gestaltet, habe ich hier einmal beispielhaft aufgeführt:

    SQL Server Database Ownership: survey results & recommendations

    Ein weiteres Einfalltor wäre über ein manipuliertes Backup-File.

    Azure Datenbanken wiederum sind voneinander vollständig abgeschottet. Dort ist mir noch kein Angriff bekannt. Die Firewall Settings verhindern schon mal, das irgendwer aus dem internet auf den SQL Server Port zugreift.

    Und seit Neuestem bietet Microsoft mit der "Database Threat Detection" auch eine sehr fortgeschrittene "Datenbank-Firewall" mit komplexen Regeln zur Erkennung von diversen Angriffen an: https://azure.microsoft.com/de-de/blog/threat-detection-public-preview/

    Etwas vergleichbares kann nicht jeder aufbieten. Ob es wichtig ist, hängt aber auch von der möglichen Angriffsfläche und dem Schutzbedürfnis der jeweiligen Daten an. Wenn dieses sehr hoch ist, wäre unverschlüsselt zu arbeiten schon grob fahrlässig.

    In jedem Fall kann ja der Dienstleister auf die Daten zugreifen - es sei denn er weist nach, das er "vor sich selber schützt" durch bestimmte Protokolle.

    Soweit zum Einstieg in die Thematik.


    Andreas Wolter (Blog | Twitter)
    MCSM: Microsoft Certified Solutions Master Data Platform, MCM, MVP
    www.SarpedonQualityLab.com | www.SQL-Server-Master-Class.com

    Mittwoch, 16. Dezember 2015 21:01