{"id":7174,"date":"2013-02-02T11:37:23","date_gmt":"2013-02-02T10:37:23","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/?p=7174"},"modified":"2013-02-03T22:37:30","modified_gmt":"2013-02-03T21:37:30","slug":"tausche-sysadmin-gegen-db-admin","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2013\/02\/02\/sql-talk\/tausche-sysadmin-gegen-db-admin","title":{"rendered":"Tausche SysAdmin gegen DB-Admin"},"content":{"rendered":"<p>Wegen vieler Termine komme ich erst heute dazu auf die neue Beschreibung von JTL hinzuweisen: In der Standard-Installation von Wawi-Full wird ein SQL Server 2005 mit einem festen Passwort vergeben, dass <a href=\"http:\/\/www.glorf.it\/blog\/2013\/01\/12\/sql-talk\/sql-server\/www.glorf.it\/blog\/2012\/11\/15\/sql-talk\/sql-server\/jtl-wawi-und-das-veroffentlichte-sa-passwort\">im Internet ver&#246;ffentlicht<\/a> wurde. Bislang musste der <a href=\"http:\/\/www.glorf.it\/blog\/2013\/01\/12\/sql-talk\/sql-server\/wie-kritisch-ist-es-wenn-eine-anwendung-mit-dem-sa-arbeitet\">SysAdmin f&#252;r den laufenden Betrieb<\/a> der Anwendung verwendet werden. Das ist nun nicht mehr n&#246;tig.<\/p>\n<p>Folge Schritte zur Absicherung des System sind nun m&#246;glich:<\/p>\n<ul>\n<li>Passwort des Benutzers &quot;sa&quot; &#228;ndern oder besser einen anderen SysAdmin-Benutzer einrichten (besser mit Windows-Authentifizierung) und den sa-Benutzer disablen. In h&#246;heren Versionen kann man den &quot;sa&quot; auch l&#246;schen.<\/li>\n<li>Einen DB-Administrator anlegen und den f&#252;r den Zugriff mittels JTL-WAWI eintragen (&#8211;&gt; <a href=\"http:\/\/wiki.jtl-software.de\/index.php?title=Kategorie:JTL-Wawi:Datenbank-Benutzer#Einen_neuen_Nutzer_f.C3.BCr_die_Wawi_anlegen\">Anleitung von JTL<\/a>)<br \/>\nF&#252;r das JTL-WAWI muss nun nicht mehr mit dem SysAdmin-Benutzer &quot;sa&quot; gearbeitet werden.<\/li>\n<\/ul>\n<p><strong>Was ist der Unterschied zwischen einem SysAdmin und einem Datenbank-Admin (eigentlich &quot;DBOwner&quot;)?<\/strong><\/p>\n<p>Sollte das Kennwort des <strong>SysAdmins<\/strong> &quot;sa&quot; ersp&#228;ht werden, dann kann der Angreifer (z.B. ein b&#246;swilliger Mitarbeiter) alle Daten in allen Datenbanken des SQL Servers lesen und manipulieren. Er kann au&#223;erdem &#252;ber verschiedene eXtended Procedures den File-Server &#252;bernehmen, weil der SQL Server in der oben beschriebenen Installation im Systemkontext ausgef&#252;hrt wird. Der Prozess hat daher Admin-Rechte am Server.<\/p>\n<p>Die Rechte eines <strong>DB-Admin<\/strong> (eigentlich &quot;DbOwner&quot;) sind zwar immer noch weitreichend. Er kann ebenso wie der SysAdmin die Daten in der betroffenen Datenbank lesen und manipulieren, z.B. die Tabelle mit den Benutzern und dessen Passw&#246;rtern. Beide k&#246;nnen Datenbank-Objekte l&#246;schen oder erweitert: komplette Tabellen, Prozeduren, &#8230; Der DB-Admin bietet aber keine M&#246;glichkeit aus dem SQL Server auszubrechen (wenigstens ist mir keine bekannt). Au&#223;erdem sind die anderen Datenbanken vor ihm sicher.<br \/>\nDaher ist es zwar nicht das Optimum, aber ein <strong>erheblicher Schritt in Richtung Sicherheit<\/strong>, wenn f&#252;r den laufenden Betrieb ein DB-Admin genutzt wird. Daher ist es empfehlenswert der Anleitung zu folgen.<\/p>\n<p><strong>Hinweis zu den Voraussetzungen f&#252;r einen Angriff<\/strong><\/p>\n<p>Mails entnehme ich, dass immer noch einige Entwickler denken, dass man unter Windows zum Debuggen Administrator-Rechte ben&#246;tigt. Wenn man das annimmt, dann kommt man freilich bei der Einsch&#228;tzung von potentiellen Sicherheitsl&#252;cken zu anderen Ergebnissen als ich. Offenbar reichte mein Hinweis nicht aus, um die eigene Meinung praktisch zu &#252;berpr&#252;fen. Daher schaue ich zu, dass ich mal eine kleine, aber ungef&#228;hrliche Anleitung poste, wie man auch ohne Admin-Rechte debuggen kann. <\/p>\n<p>&quot;Debuggen&quot; nennt man das detaillierte, schrittweise Beobachten  einer Anwendung. Dabei kann man die einzelnen Maschinenbefehle der betreffenden Anwendung schrittweise oder auch wie im Kino untersuchen. Dazu muss der Angreifer Maschinensprache k&#246;nnen, also typischerweise Informatiker sein und\/oder Hacker.  Die gleichen Mechanismen (allerdings nicht so tiefgehend) nutzen sogenannte &quot;Tracer&quot;: sie protokollieren Aktionen mit, meist auf Funktionsebene sogenannter API-Schnittstellen. Die Ausgaben sind sehr viel leichter zu verstehen, mit einer guten Anleitung oder einem komfortablen Tracer k&#246;nnte auch ein Laie hier brauchbare Informationen herausholen.<\/p>\n<p>Wo man debuggen kann, da kann man auch tracen, umgekehrt nicht unbedingt. Daher ist die Frage so wichtig, ob ein normaler Benutzer debuggen kann. Bis ich zu einer Anleitung komme, k&#246;nnen die Gl&#228;ubigen der Windows-Security das ja einfach mal ausprobieren&#8230; \ud83d\ude09<\/p>\n<p><strong>Update 3.2.2013<\/strong>: Die angesprochene <a href=\"http:\/\/www.glorf.it\/blog\/2013\/02\/03\/entwickler\/debuggen-ohne-admin-rechte\">Anleitung<\/a> steht nun zur Verf&#252;gung.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Wegen vieler Termine komme ich erst heute dazu auf die neue Beschreibung von JTL hinzuweisen: In der Standard-Installation von Wawi-Full wird ein SQL Server 2005 mit einem festen Passwort vergeben, dass im Internet ver&#246;ffentlicht wurde. Bislang musste der SysAdmin f&#252;r den laufenden Betrieb der Anwendung verwendet werden. Das ist nun nicht mehr n&#246;tig. Folge Schritte [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[19,3],"tags":[128],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/7174"}],"collection":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/comments?post=7174"}],"version-history":[{"count":10,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/7174\/revisions"}],"predecessor-version":[{"id":7201,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/7174\/revisions\/7201"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=7174"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=7174"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=7174"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}