Warum SQL-Injections die Kakerlaken der AppSec-Welt sind (und wie CISOs sie ein für alle Mal ausrotten können)

Veröffentlicht am 26. Sep. 2018
von Matias Madou, Ph.D.
FALLSTUDIE

Warum SQL-Injections die Kakerlaken der AppSec-Welt sind (und wie CISOs sie ein für alle Mal ausrotten können)

Veröffentlicht am 26. Sep. 2018
von Matias Madou, Ph.D.
Ressource anzeigen
Ressource anzeigen

Es gibt eine bekannte Theorie, dass Kakerlaken im Grunde alles überleben können - sogar eine Atomexplosion. Obwohl diese Theorie nur bis zu einem gewissen Punkt wahr ist, macht ihr einfacher Körperaufbau sie für ihre Größe extrem widerstandsfähig und unter den meisten Bedingungen schwer auszurotten.

Ich habe nachgedacht... wenn Kakerlaken ein Äquivalent in der digitalen Welt hätten, dann müssten es SQL-Injection (SQLi)-Schwachstellen im Code sein. Diese Schwachstelle ist seit mehr als zwanzig Jahren bekannt, dennoch werden Unternehmen immer wieder Opfer davon. Der weit verbreitete, kostspielige Angriff auf Target war das Ergebnis von SQL-Injection, ebenso wie ein Fall von Wahl-Hacking in Illinois, bei dem 200.000 Wählerdaten offengelegt wurden, was das FBI dazu veranlasste, allen IT-Administratoren zu empfehlen, ihre Sicherheitspraktiken schnell zu verbessern.

Der Hacker Intelligence Initiative Report von Imperva zeigte, dass zwischen 2005 und 2011 SQLi-Angriffe bei 83 % aller gemeldeten Datenverletzungen verwendet wurden. Heute sind Injektionsschwachstellen nach wie vor die Bedrohung Nummer eins in der OWASP Top 10. Sie sind relativ einfach, aber sie wollen einfach nicht verschwinden.

Es erscheint lächerlich, dass dieselbe Schwachstelle immer noch in einer beträchtlichen Anzahl von Anwendungssicherheitsscans auftaucht. Wir wissen, wie sie funktioniert, und wir wissen, wie man sie stoppen kann. Wie ist das möglich? Die Wahrheit ist, dass unsere Softwaresicherheit noch sehr viel Raum für Verbesserungen hat.

Der State of Software Security Report von Veracode - basierend auf 400.000 Anwendungsscans im Jahr 2017 " enthüllte eine alarmierende Statistik: Nur 30 % der Anwendungen bestanden die OWASP Top 10-Richtlinie. Dies war in den letzten fünf Jahren ein durchgängiges Thema, wobei SQL-Injections in fast 1 von 3 neu gescannten Anwendungen auftraten. Dies ist ein Beweis für ein endemisches Problem; wir lernen nicht aus unseren Fehlern, und CISOs scheinen einen schweren Stand zu haben, wenn es darum geht, genügend Sicherheitstalente zu beschaffen. Typischerweise ist das Verhältnis von AppSec-Spezialisten zu Entwicklern ein unzureichendes 1:100.

Warum ist die Software-Sicherheit auf Lebenserhaltung?

Es ist kein Geheimnis, dass spezialisierte Sicherheitstalente knapp sind, aber wir müssen auch die Tatsache berücksichtigen, dass Entwickler Probleme nicht beheben, wenn sie entstehen, und ganz offensichtlich schlecht ausgerüstet sind, um Schwachstellen gar nicht erst einzuführen. In demselben Veracode-Bericht wurde enthüllt, dass es für nur 14,4 % aller Entwicklungsschwachstellen dokumentierte Abhilfemaßnahmen gab. Mit anderen Worten: Die meisten Schwachstellen wurden ohne Entwicklungsabschwächung eingereicht. Weniger als ein Drittel der Schwachstellen wurden in den ersten 90 Tagen geschlossen, und 42 % der Schwachstellen wurden nie innerhalb der Entwicklungszeit geschlossen.

Ich spreche ständig mit Sicherheitsexperten, CISOs und CEOs, und anekdotisch habe ich festgestellt, dass viele Unternehmen von der Anzahl der gefundenen Schwachstellen, die nicht entschärft werden können, so frustriert sind (zusätzlich zu der Geißel, die als False Positives bekannt ist), dass sie das Scannen nach diesen Schwachstellen ganz einstellen, die Finger kreuzen und auf das Beste hoffen.

Warum lassen AppSec-Profis dies geschehen?

Machen Sie keinen Fehler: AppSec-Mitarbeiter sind sich der Probleme im Code schmerzlich bewusst. Schließlich ist das eine ihrer Kernkompetenzen, die sie zu einer so wertvollen Teamressource macht. Allerdings werden sie oft durch mehrere Faktoren behindert.

Zum Beispiel wird ein AppSec-Manager ein Problem finden und den Entwickler fragen: "Können Sie den Code reparieren?". Die Antwort auf diese wichtige Frage ist von Unternehmen zu Unternehmen unterschiedlich, aber in der Regel sind die Entwickler so sehr damit beschäftigt, strenge Feature-Delivery-Sprints einzuhalten, dass sie einfach nicht die Zeit haben, diese Probleme zu beheben, und auch keine anständigen Tools, die ihnen dabei helfen. AppSec-Profis selbst können zwar Schwachstellen identifizieren, haben aber oft nicht die Fähigkeiten und/oder den Zugang, um sie an Ort und Stelle zu beheben.

Wir müssen auch erkennen, dass es für jedes Problem einen Prozess gibt, in dem eine Lösung gefunden, implementiert und dann getestet werden muss. Selbst für das kleinste Problem, das im Code gefunden wird, ist der Zeitaufwand zur Behebung immens, ganz zu schweigen von den benötigten Ressourcen. Es gibt über 700 Schwachstellen, die in Software eingeschleust werden können, und es ist für eine einzelne Person schlicht unmöglich, sich gegen alle zu verteidigen. Aus diesem Grund halten sich die meisten Unternehmen nur an die OWASP Top 10. Die ganze Zeit über entwickeln die Entwickler neue Funktionen, und im Gegenzug führen sie immer wieder Schwachstellen in den Code ein, den sie schreiben.

Was ist die Lösung?

Die einfache Tatsache ist, dass wir unseren Entwicklern nicht die Werkzeuge und das Training geben, um einen sicheren Kodierungserfolg zu fördern. Es gibt keine Vorschriften, die Unternehmen dazu zwingen, dafür zu sorgen, dass Entwickler über angemessene Sicherheitskenntnisse verfügen, und es ist eine traurige Realität, dass die meisten Universitäten und Praktika junge Entwickler auch nicht darauf vorbereiten, sicher zu programmieren.

Wenn jemand ein Flugzeug fliegen möchte, gibt es einen sehr strengen Prozess, der Ausbildung, praktische Erfahrung, medizinische Checks, Sicherheitswissen und Prüfungen sicherstellt, bevor er fliegen kann. Niemand würde es wagen, sich vorzustellen, dass er ohne diese umfangreiche Vorbereitung und Validierung der Fähigkeiten in den Himmel losgelassen wird, doch genau das passiert tagtäglich beim Schreiben von Code.  

Wir müssen die Zeit aufwenden, um Entwickler im Schreiben von sicherem Code zu schulen. In der heutigen Welt, in der die Softwareentwicklung schnelllebig ist und gute Entwickler und Sicherheitsexperten Mangelware sind, scheint dies jedoch nie eine Priorität zu sein. Es ist an der Zeit, dass wir die Konversation ändern.

Eine kürzliche Schlagzeile des Weltwirtschaftsforums schrie: "Es gibt keine digitale Wirtschaft ohne Sicherheit", und der begleitende Inhalt argumentiert, dass Sicherheit ein zentraler Bestandteil jeder Strategie zur digitalen Transformation sein muss. "Sicherheit ist das, was Unternehmen schützt und es ihnen ermöglicht, innovativ zu sein und neue Produkte und Dienstleistungen zu entwickeln. Über eine defensive Rolle hinaus bietet Sicherheit den Unternehmen einen strategischen Wachstumsvorteil."

Die Verbesserung von Fähigkeiten und Ergebnissen im Bereich der sicheren Codierung wird Unternehmen eine zusätzliche Ebene des Cyber-Schutzes bieten und sie dabei unterstützen, besseren und schnelleren Code zu erstellen. Entwickler müssen keine Sicherheitsexperten werden, aber sie müssen positiv und praktisch dazu befähigt werden, die erste Verteidigungslinie gegen Cyberangriffe zu sein. Entwickler können die nächsten Sicherheits- und Innovationshelden sein. Sie sind sehr kluge Menschen, sie sind kreative Problemlöser und im Allgemeinen sehr daran interessiert, ihre Fähigkeiten auszubauen. Nutzen Sie ihre Stärken mit der spezialisierten Ausbildung, die sie verdienen, und verpflichten Sie sich zu einem höheren Software-Sicherheitsstandard. Lesen Sie unser Whitepaper, um mehr darüber zu erfahren.

Wenn jemand ein Flugzeug fliegen möchte, gibt es einen sehr strengen Prozess, der Ausbildung, praktische Erfahrung, medizinische Checks, Sicherheitswissen und Prüfungen sicherstellt, bevor er fliegen kann. Niemand würde es wagen, sich vorzustellen, dass er ohne diese umfangreiche Vorbereitung und Validierung der Fähigkeiten in den Himmel losgelassen wird, doch genau das passiert tagtäglich beim Schreiben von Code.
Ressource anzeigen
Ressource anzeigen

Autor

Matias Madou, Ph.D.

Matias ist ein Forscher und Entwickler mit mehr als 15 Jahren praktischer Erfahrung im Bereich der Softwaresicherheit. Er hat Lösungen für Unternehmen wie Fortify Software und sein eigenes Unternehmen Sensei Security entwickelt. Im Laufe seiner Karriere hat Matias mehrere Forschungsprojekte zur Anwendungssicherheit geleitet, die zu kommerziellen Produkten geführt haben, und kann auf über 10 Patente verweisen. Wenn er nicht am Schreibtisch sitzt, ist Matias als Ausbilder für fortgeschrittene Anwendungssicherheitstrainings courses tätig und hält regelmäßig Vorträge auf globalen Konferenzen wie RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec und BruCon.

Matias hat einen Doktortitel in Computertechnik von der Universität Gent, wo er die Sicherheit von Anwendungen durch Programmverschleierung untersuchte, um die innere Funktionsweise einer Anwendung zu verbergen.

Sie wollen mehr?

Tauchen Sie ein in unsere neuesten Erkenntnisse über sichere Kodierung im Blog.

Unsere umfangreiche Ressourcenbibliothek zielt darauf ab, die menschliche Herangehensweise an eine sichere Weiterbildung im Bereich der Programmierung zu stärken.

Blog ansehen
Sie wollen mehr?

Holen Sie sich die neuesten Forschungsergebnisse zur entwicklergesteuerten Sicherheit

Unsere umfangreiche Ressourcenbibliothek ist voll von hilfreichen Ressourcen, von Whitepapers bis hin zu Webinaren, die Ihnen den Einstieg in die entwicklungsorientierte sichere Programmierung erleichtern. Erforschen Sie sie jetzt.

Ressourcendrehscheibe

Warum SQL-Injections die Kakerlaken der AppSec-Welt sind (und wie CISOs sie ein für alle Mal ausrotten können)

Veröffentlicht am 26. Sep. 2018
Von Matias Madou, Ph.D.

Es gibt eine bekannte Theorie, dass Kakerlaken im Grunde alles überleben können - sogar eine Atomexplosion. Obwohl diese Theorie nur bis zu einem gewissen Punkt wahr ist, macht ihr einfacher Körperaufbau sie für ihre Größe extrem widerstandsfähig und unter den meisten Bedingungen schwer auszurotten.

Ich habe nachgedacht... wenn Kakerlaken ein Äquivalent in der digitalen Welt hätten, dann müssten es SQL-Injection (SQLi)-Schwachstellen im Code sein. Diese Schwachstelle ist seit mehr als zwanzig Jahren bekannt, dennoch werden Unternehmen immer wieder Opfer davon. Der weit verbreitete, kostspielige Angriff auf Target war das Ergebnis von SQL-Injection, ebenso wie ein Fall von Wahl-Hacking in Illinois, bei dem 200.000 Wählerdaten offengelegt wurden, was das FBI dazu veranlasste, allen IT-Administratoren zu empfehlen, ihre Sicherheitspraktiken schnell zu verbessern.

Der Hacker Intelligence Initiative Report von Imperva zeigte, dass zwischen 2005 und 2011 SQLi-Angriffe bei 83 % aller gemeldeten Datenverletzungen verwendet wurden. Heute sind Injektionsschwachstellen nach wie vor die Bedrohung Nummer eins in der OWASP Top 10. Sie sind relativ einfach, aber sie wollen einfach nicht verschwinden.

Es erscheint lächerlich, dass dieselbe Schwachstelle immer noch in einer beträchtlichen Anzahl von Anwendungssicherheitsscans auftaucht. Wir wissen, wie sie funktioniert, und wir wissen, wie man sie stoppen kann. Wie ist das möglich? Die Wahrheit ist, dass unsere Softwaresicherheit noch sehr viel Raum für Verbesserungen hat.

Der State of Software Security Report von Veracode - basierend auf 400.000 Anwendungsscans im Jahr 2017 " enthüllte eine alarmierende Statistik: Nur 30 % der Anwendungen bestanden die OWASP Top 10-Richtlinie. Dies war in den letzten fünf Jahren ein durchgängiges Thema, wobei SQL-Injections in fast 1 von 3 neu gescannten Anwendungen auftraten. Dies ist ein Beweis für ein endemisches Problem; wir lernen nicht aus unseren Fehlern, und CISOs scheinen einen schweren Stand zu haben, wenn es darum geht, genügend Sicherheitstalente zu beschaffen. Typischerweise ist das Verhältnis von AppSec-Spezialisten zu Entwicklern ein unzureichendes 1:100.

Warum ist die Software-Sicherheit auf Lebenserhaltung?

Es ist kein Geheimnis, dass spezialisierte Sicherheitstalente knapp sind, aber wir müssen auch die Tatsache berücksichtigen, dass Entwickler Probleme nicht beheben, wenn sie entstehen, und ganz offensichtlich schlecht ausgerüstet sind, um Schwachstellen gar nicht erst einzuführen. In demselben Veracode-Bericht wurde enthüllt, dass es für nur 14,4 % aller Entwicklungsschwachstellen dokumentierte Abhilfemaßnahmen gab. Mit anderen Worten: Die meisten Schwachstellen wurden ohne Entwicklungsabschwächung eingereicht. Weniger als ein Drittel der Schwachstellen wurden in den ersten 90 Tagen geschlossen, und 42 % der Schwachstellen wurden nie innerhalb der Entwicklungszeit geschlossen.

Ich spreche ständig mit Sicherheitsexperten, CISOs und CEOs, und anekdotisch habe ich festgestellt, dass viele Unternehmen von der Anzahl der gefundenen Schwachstellen, die nicht entschärft werden können, so frustriert sind (zusätzlich zu der Geißel, die als False Positives bekannt ist), dass sie das Scannen nach diesen Schwachstellen ganz einstellen, die Finger kreuzen und auf das Beste hoffen.

Warum lassen AppSec-Profis dies geschehen?

Machen Sie keinen Fehler: AppSec-Mitarbeiter sind sich der Probleme im Code schmerzlich bewusst. Schließlich ist das eine ihrer Kernkompetenzen, die sie zu einer so wertvollen Teamressource macht. Allerdings werden sie oft durch mehrere Faktoren behindert.

Zum Beispiel wird ein AppSec-Manager ein Problem finden und den Entwickler fragen: "Können Sie den Code reparieren?". Die Antwort auf diese wichtige Frage ist von Unternehmen zu Unternehmen unterschiedlich, aber in der Regel sind die Entwickler so sehr damit beschäftigt, strenge Feature-Delivery-Sprints einzuhalten, dass sie einfach nicht die Zeit haben, diese Probleme zu beheben, und auch keine anständigen Tools, die ihnen dabei helfen. AppSec-Profis selbst können zwar Schwachstellen identifizieren, haben aber oft nicht die Fähigkeiten und/oder den Zugang, um sie an Ort und Stelle zu beheben.

Wir müssen auch erkennen, dass es für jedes Problem einen Prozess gibt, in dem eine Lösung gefunden, implementiert und dann getestet werden muss. Selbst für das kleinste Problem, das im Code gefunden wird, ist der Zeitaufwand zur Behebung immens, ganz zu schweigen von den benötigten Ressourcen. Es gibt über 700 Schwachstellen, die in Software eingeschleust werden können, und es ist für eine einzelne Person schlicht unmöglich, sich gegen alle zu verteidigen. Aus diesem Grund halten sich die meisten Unternehmen nur an die OWASP Top 10. Die ganze Zeit über entwickeln die Entwickler neue Funktionen, und im Gegenzug führen sie immer wieder Schwachstellen in den Code ein, den sie schreiben.

Was ist die Lösung?

Die einfache Tatsache ist, dass wir unseren Entwicklern nicht die Werkzeuge und das Training geben, um einen sicheren Kodierungserfolg zu fördern. Es gibt keine Vorschriften, die Unternehmen dazu zwingen, dafür zu sorgen, dass Entwickler über angemessene Sicherheitskenntnisse verfügen, und es ist eine traurige Realität, dass die meisten Universitäten und Praktika junge Entwickler auch nicht darauf vorbereiten, sicher zu programmieren.

Wenn jemand ein Flugzeug fliegen möchte, gibt es einen sehr strengen Prozess, der Ausbildung, praktische Erfahrung, medizinische Checks, Sicherheitswissen und Prüfungen sicherstellt, bevor er fliegen kann. Niemand würde es wagen, sich vorzustellen, dass er ohne diese umfangreiche Vorbereitung und Validierung der Fähigkeiten in den Himmel losgelassen wird, doch genau das passiert tagtäglich beim Schreiben von Code.  

Wir müssen die Zeit aufwenden, um Entwickler im Schreiben von sicherem Code zu schulen. In der heutigen Welt, in der die Softwareentwicklung schnelllebig ist und gute Entwickler und Sicherheitsexperten Mangelware sind, scheint dies jedoch nie eine Priorität zu sein. Es ist an der Zeit, dass wir die Konversation ändern.

Eine kürzliche Schlagzeile des Weltwirtschaftsforums schrie: "Es gibt keine digitale Wirtschaft ohne Sicherheit", und der begleitende Inhalt argumentiert, dass Sicherheit ein zentraler Bestandteil jeder Strategie zur digitalen Transformation sein muss. "Sicherheit ist das, was Unternehmen schützt und es ihnen ermöglicht, innovativ zu sein und neue Produkte und Dienstleistungen zu entwickeln. Über eine defensive Rolle hinaus bietet Sicherheit den Unternehmen einen strategischen Wachstumsvorteil."

Die Verbesserung von Fähigkeiten und Ergebnissen im Bereich der sicheren Codierung wird Unternehmen eine zusätzliche Ebene des Cyber-Schutzes bieten und sie dabei unterstützen, besseren und schnelleren Code zu erstellen. Entwickler müssen keine Sicherheitsexperten werden, aber sie müssen positiv und praktisch dazu befähigt werden, die erste Verteidigungslinie gegen Cyberangriffe zu sein. Entwickler können die nächsten Sicherheits- und Innovationshelden sein. Sie sind sehr kluge Menschen, sie sind kreative Problemlöser und im Allgemeinen sehr daran interessiert, ihre Fähigkeiten auszubauen. Nutzen Sie ihre Stärken mit der spezialisierten Ausbildung, die sie verdienen, und verpflichten Sie sich zu einem höheren Software-Sicherheitsstandard. Lesen Sie unser Whitepaper, um mehr darüber zu erfahren.

Wenn jemand ein Flugzeug fliegen möchte, gibt es einen sehr strengen Prozess, der Ausbildung, praktische Erfahrung, medizinische Checks, Sicherheitswissen und Prüfungen sicherstellt, bevor er fliegen kann. Niemand würde es wagen, sich vorzustellen, dass er ohne diese umfangreiche Vorbereitung und Validierung der Fähigkeiten in den Himmel losgelassen wird, doch genau das passiert tagtäglich beim Schreiben von Code.

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Senden
Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.