{"id":7134,"date":"2013-01-12T12:02:00","date_gmt":"2013-01-12T11:02:00","guid":{"rendered":"http:\/\/www.glorf.it\/blog\/?p=7134"},"modified":"2013-02-03T22:40:43","modified_gmt":"2013-02-03T21:40:43","slug":"wie-kritisch-ist-es-wenn-eine-anwendung-mit-dem-sa-arbeitet","status":"publish","type":"post","link":"http:\/\/www.glorf.it\/blog\/2013\/01\/12\/sql-talk\/sql-server\/wie-kritisch-ist-es-wenn-eine-anwendung-mit-dem-sa-arbeitet","title":{"rendered":"Wie kritisch ist es, wenn eine Anwendung mit dem SA arbeitet?"},"content":{"rendered":"<p><img decoding=\"async\" loading=\"lazy\" src=\"http:\/\/www.glorf.it\/blog\/wp-content\/uploads\/2010\/07\/securitykey.jpg\" alt=\"Security\" width=\"240\" height=\"225\" class=\"alignright size-full wp-image-5058\" \/>Im Zusammenhang mit meinem Posting &quot;<a href=\"www.glorf.it\/blog\/2012\/11\/15\/sql-talk\/sql-server\/jtl-wawi-und-das-veroffentlichte-sa-passwort\">JTL-Wawi und das ver&#246;ffentlichte SA-Passwort<\/a>&quot; stellte Ralph  die Frage, wie kritisch es ist, wenn ich eine Anwendung nutze, die immer mit dem Sysadmin arbeitet. In dem Posting habe ich schon beschrieben, warum es f&#252;r einen Angreifer ein so gro&#223;es Geschenk ist an das SA-Passwort zu kommen. Kurz gesagt, er kann sich damit bislang meistens zum Administrator am Server machen. <\/p>\n<p>Im konkreten Fall kann zun&#228;chst jeder Depp einen Angriff durchf&#252;hren solange das im Internet ver&#246;ffentlichte Default-Passwort nicht ge&#228;ndert wird. Gehen wir also mal davon aus, ein Admin &#228;ndert das SA-Passwort. Wie gef&#228;hrdet bin ich dann als Nutzer so einer Software?<\/p>\n<p>Wenn man einsch&#228;tzen will, wie kritisch eine L&#252;cke ist, dann muss man zwei Fragen beantworten:<\/p>\n<ul>\n<li>Wie schlimm ist es, wenn jemand die L&#252;cke ausnutzt?<\/li>\n<li>Wie schwierig ist es, die L&#252;cke auszunutzen?<\/li>\n<\/ul>\n<p>Wie lauten die Antworten in diesem konkreten Fall, wenn die Software als Prozess am Arbeitsplatz ausgef&#252;hrt wird?<\/p>\n<p><strong>Wie schlimm ist es, wenn jemand die L&#252;cke ausnutzt?<\/strong><\/p>\n<p>Worst Case! Weil der SQL-Server-Dienst im Systemkontext l&#228;uft, ist der Server kompromittiert oder der Einzelarbeitsplatz kann komplett aus der Ferne &#252;bernommen werden, ja nachdem wo der SQL Server installiert wurde. Nichts ist mehr sicher, dem Angreifer ist nichts unm&#246;glich.<\/p>\n<p><strong>Wie schwierig ist es, die L&#252;cke auszunutzen?<\/strong><\/p>\n<p>Es sind mehrere L&#252;cken, die beide damit zu tun haben, dass die Anwendung am Arbeitsplatz ausgef&#252;hrt wird und damit im Kontext des Benutzers: <\/p>\n<ul>\n<li>Das SA-Passwort wird beim Einrichten an eine Stelle geschrieben, die jeder Benutzer lesen kann. Die verwendete Verschl&#252;sselungsmethoden sind leicht protokollierbar, der Schl&#252;ssel ist ebenso zug&#228;nglich. Das ist f&#252;r einen ernsthaften Angreifer die einfachste Methode: Die Software bei sich installieren, in aller Ruhe aussp&#228;hen und einen Exploit schreiben, der anderen zur Verf&#252;gung gestellt werden kann.<\/li>\n<li>W&#228;hrend des Zugriffs kann jeder Prozess, der im gleichen Benutzerkontext l&#228;uft wie das JTL-WAWI, den JTL-WAWI-Prozess aussp&#228;hen: er kann den Hauptspeicher durchw&#252;hlen, die von der Anwendung verwendeten Schnittstellen sniffen oder sich sogar als Debugger an den Prozess h&#228;ngen. Wenigstens seit Windows-XP hat jeder Windows-Benutzer das Recht die &quot;eigenen&quot; Prozesse derart zu untersuchen. Viele Entwickler glauben offenbar dazu w&#228;ren Admin-Rechte n&#246;tig. Daher habe ich beschlossen f&#252;r diese Zielgruppe ein Buch zur Sicherheit von Anwendungen mit SQL-Server zu schreiben. Mal schauen, ob es auf Interesse st&#246;&#223;t.<\/li>\n<\/ul>\n<p>Als Angreifer haben wir also zwei Angriffspunkte, um an das begehrte SA-Kennwort zu bekommen. Wie man das ganz konkret macht, beschreibe ich hier absichtlich nicht. Angehende Skript-Kids m&#246;chte ich nicht zu un&#252;berlegten (weil kriminellen) Handlungen verleiten. Aber seien Sie sicher, dass die b&#246;sen Jungs wissen wie das funktioniert. Jeder Fachinformatiker im ersten Lehrjahr sollte dazu in der Lage sein. Ebenso reichen die im Informatikunterricht vermittelten Kenntnisse, um sich da einzulesen.<\/p>\n<p>Es ist nur die Frage, ob Angreifer sich die M&#252;he machen. Das h&#228;ngt davon ab, was zu holen ist und wie verbreitet die Software ist und wo der Angreifer sitzt? <\/p>\n<p><strong>Wo sitzt der Angreifer?<\/strong><\/p>\n<p>Falls mein Gesch&#228;ft eine Oneman-Show ist und die Software nur auf einem Einzelarbeitsplatz l&#228;uft, dann d&#252;rfte der Angriff am ehesten &#252;ber das Internet erfolgen, z.B. durch Ausnutzen einer bekannten, noch ungel&#246;sten L&#252;cke (z.B. Internet-Explorer oder Flash)  oder einfach per Mailanhang z.B. (pr&#228;pariertes PDF). Der Sch&#228;dlich k&#246;nnte schauen, ob er in der Registry das SA-Kennwort findet, anhand des ebenfalls dort stehenden Schl&#252;ssels entschl&#252;sselt und ggf. via SQL Server sein sch&#228;ndliches Werk tun.<\/p>\n<p>Falls der SQL-Server im Netzwerk auf einem Server installiert ist, dann d&#252;rften mehrere Mitarbeiter vorhanden sein. F&#252;r jeden Arbeitsplatz gilt die gleiche Angriffsm&#246;glichkeit wie beim Einzelplatz. Zugleich kommt noch hinzu, dass ein Mitarbeiter anhand einer der vielen Anleitungen einen Sniffer startet (sehr einfach, auch f&#252;r absolute Laien), das SA-Kennwort ersp&#228;ht (dito) und dann die Grenzen der M&#246;glichkeiten erprobt (mit Excel zum SQL Server verbinden ist nicht schwer, &#252;ber SQL Server andere Dateien auslesen erfordert schon mehr Skills). Je nach Motivation des Mitarbeiters kann er sich dann austoben: Die M&#246;glichkeiten reichen vom Stillen der Neugier (steht dort auch, was die Kollegen verdienen) und Kundendaten mitnehmen (um den geplante Start in sie Selbstst&#228;ndigkeit zu erleichtern) bis hin zur Rache (Festplatte formatieren, weil Gehaltserh&#246;hung nicht bekommen, MS f&#252;hlt sich ungerecht behandelt, ihm wurde gek&#252;ndigt, &#8230;)<\/p>\n<p><strong>Weil es geht&#8230;<\/strong><\/p>\n<p>In den letzten Jahren kam ein Trend auf, der alle obigen Ausf&#252;hrungen relativiert. Mit den sogenannten Skript-Kids kamen Angriffe hinzu, wo die Angreifer keine wirtschaftlichen Betrachtungen anstellen: Lohnt sich der Aufwand, was ist zu holen, &#8230; ? Gerade weil es so einfach ist, werden von meist Jugendlichen Angriffe ausgef&#252;hrt, einfach nur weil es geht und sie Grenzen austesten wollen. Die Motivation ist hier der Spa&#223; am Knobeln und vielleicht der Prestige-Gewinn im Freundeskreis. Weil es ihnen nicht darum geht damit Geld zu machen, ist es ihnen egal wie lange sie daf&#252;r brauchen, sie haben ja nach der Schule meist viel Zeit. Viele der besonders popul&#228;ren Angriffe der letzten Jahre auf Sony etc. waren so motiviert. Die &#246;ffentliche Bestrafung einiger der Skript-Kids f&#252;hrte aber in meinen Augen nicht dazu, dass weniger Angriffe durchgef&#252;hrt werden. Die Kiddies prahlen damit halt nicht mehr so &#246;ffentlich.<\/p>\n<p>Und die ben&#246;tigte Kenntnisse? SQL lernen bayerische Gymnasiasten in der 9ten Klasse&#8230;<\/p>\n<p><strong>Update 3.2.2013<\/strong>: Zuschriften entnahm ich, dass einige nicht glauben, dass auch mit normalen Benutzerrechte die beschriebenen Spionageaktionen m&#246;glich sind. Daher k&#246;nnen interessierte Entwickler anhand <a href=\"http:\/\/www.glorf.it\/blog\/2013\/02\/03\/entwickler\/debuggen-ohne-admin-rechte\">dieser Anleitung<\/a> die ben&#246;tigten Rechte selber &#252;berpr&#252;fen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Im Zusammenhang mit meinem Posting &quot;JTL-Wawi und das ver&#246;ffentlichte SA-Passwort&quot; stellte Ralph die Frage, wie kritisch es ist, wenn ich eine Anwendung nutze, die immer mit dem Sysadmin arbeitet. In dem Posting habe ich schon beschrieben, warum es f&#252;r einen Angreifer ein so gro&#223;es Geschenk ist an das SA-Passwort zu kommen. Kurz gesagt, er kann [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[19,16],"tags":[900,899],"_links":{"self":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/7134"}],"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=7134"}],"version-history":[{"count":10,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/7134\/revisions"}],"predecessor-version":[{"id":7141,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/posts\/7134\/revisions\/7141"}],"wp:attachment":[{"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/media?parent=7134"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/categories?post=7134"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.glorf.it\/blog\/wp-json\/wp\/v2\/tags?post=7134"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}