maciek905 - Fotolia
Wie kann man Security in die Programmierung integrieren?
Bei der Entwicklung von Software wird meist zu wenig Aufmerksamkeit auf die Vermeidung von Sicherheitslücken gelegt. Häufig werden Lösungen ausgerollt, sobald sie funktionieren.
In vielen Abteilungen in Unternehmen werden mehrere Durchgänge durchgeführt, wenn es um die Überprüfung von neuen Projekten geht. Beim Schreiben von Anwendungen beziehungsweise Code sieht die Situation jedoch häufig anders aus. Sobald hier etwas funktioniert, wird es auch schon veröffentlicht. Um die Absicherung der Anwendungen wird sich kaum Gedanken gemacht. Wie kann ein Unternehmen einen mehrstufigen Prozess einführen, bei dem eigener Code so lange überprüft wird, bis er wirklich sicher ist, und welche Maßnahmen sollten dabei eingehalten werden?
Die meisten Menschen sind visuell orientiert. Daraus ergibt sich, dass die meisten Anwender – und vor allem der Chef – zuerst die Arbeit des grafischen Design-Teams und ihre Umsetzung der Marketing- und Sales-Vorgaben beachten, wenn sie eine Webseite aufrufen. Das ist auch der Grund, warum den für diese Bereiche zuständigen Fachabteilungen nahezu endlose Revisionen und umfangreiche Budgets zugestanden werden.
Bei der Sicherheit sieht die Situation jedoch ganz anders aus. Die für die Präsentation und die Optik zuständigen Abteilungen haben meist einen viel größeren Einfluss darauf, was auf eine Webseite darf und was nicht. Nur selten wird den Sicherheitsspezialisten, sofern sie überhaupt vorhanden sind, erlaubt, auf ihre Entscheidungen Einfluss zu nehmen. Warum ist das so? Weil sich IT-Sicherheit nicht anfassen und quantifizieren lässt.
Die Vorteile einer soliden Sicherheitsstrategie zeigen sich erst dann, wenn eine Webseite live gegangen ist und sich das Design-Team schon wieder um seine nächste Aufgabe kümmert. Die Kosten und der Aufwand für die Behebung eines sicherheitsrelevanten Softwarefehlers werden dann in der Regel dem operativen Team aufgebürdet und nicht den eigentlich verantwortlichen Entwicklern.
Generell ist es meist sehr schwierig bis unmöglich, Sicherheit mit monetären Maßstäben zu bewerten. Die Ergebnisse einer neuen Marketing-Kampagne lassen sich dagegen viel leichter auswerten, teilweise sogar im Stunden- oder Minutentakt mit der Hilfe moderner Methoden zur Webanalyse oder mit Zielkonversionsraten.
Sicherheit von Anfang an berücksichtigen
Die Durchsetzung sicherer Code-Reviews im Unternehmen ist keine leichte Aufgabe. Viele bekannte Webseiten wurden in den vergangenen Jahren aufgrund von Schwachstellen in ihrem Design gehackt. Ihrer Beliebtheit hat das meist nur wenig geschadet. Viele der dabei ausgenutzten Sicherheitslücken sind recht häufig anzutreffen und auch meist leicht vermeidbar. Sie führen unter anderem zu Cross-Site-Scripting- und SQL-Injection-Angriffen, die sich mit automatisierten Code Reviews leicht hätten verhindern lassen.
Es gibt einige Beispiele aus der Praxis, die belegen, wie wichtig belastbare Sicherheitsmaßnahmen sind. So wurde zum Beispiel die Kredit-Rating-Agentur Equifax das Ziel eines katastrophalen Diebstahls von fast 148 Millionen Datensätzen von US-Konsumenten. Der Datenklau wurde auf eine bereits bekannte Lücke in Apache Struts zurückgeführt, die das Unternehmen ganz einfach vergessen hatte, zu schließen.
Man kann daraus den Schluss ziehen, dass viele Firmen erst dann handeln, wenn die Gesetze und Strafen verschärft werden, bevor es zu einem Diebstahl von Daten kommt. Ein Beispiel für dieses Denken ist die neue Datenschutz-Grundverordnung (DSGVO) der Europäischen Union (EU), die ab dem 25. Mai 2018 umzusetzen ist. Die DSGVO sieht hohe Strafen von bis zu vier Prozent der weltweiten jährlichen Einnahmen eines Unternehmens beziehungsweise 20 Millionen Euro vor, wenn ein Unternehmen die wesentlichen Sicherheitsmaßnahmen zum Schutz seiner Daten nicht ergreift. Das hat viele IT-Entscheider umdenken lassen.
Auch in den USA kommt es immer wieder zu teils empfindlichen Strafen. So musste die Krankenversicherung BlueCross BlueShield aus Tennessee rund 1,5 Millionen US-Dollar für einen Datendiebstahl im Jahr 2009 zahlen, der den HIPAA Security Rule sowie den Health Information Technology for Economic and Clinical Health Act verletzte. Zu dieser Strafe kamen noch Ausgaben in Höhe von 17 Millionen US-Dollar, die das Unternehmen selbst aufwenden musste, um den Vorfall zu untersuchen, um die Kunden zu informieren und um neue Schutzmaßnahmen einzuführen.
Die bei vergleichbaren Fällen durch die Behörden auferlegten Strafen haben sich in den vergangenen Jahren nahezu kontinuierlich erhöht. Auch waren immer mehr große und bekannte Firmen davon betroffen. Teilweise haben aber auch Kunden, Mitarbeiter oder andere Anwender Klagen eingereicht. So wurde eine Tochtergesellschaft von Sony zu einer Zahlung von 390.000 US-Dollar in Europa verurteilt, nachdem eine zum PlayStation Network gehörende Online-Datenbank gehackt worden war.
Best Practices zum Überprüfen von Quellcode
Geschichten von spektakulären Datendiebstählen und von den teilweise hohen Kosten, die dadurch verursacht wurden, haben durchaus das Potenzial, die Aufmerksamkeit der Chefetage zu gewinnen. In der Folge planen viele Unternehmen, einen sicheren Code-Review-Prozess, wie etwa die vereinfachte Umsetzung des Security Development Lifecycle (SDL) von Microsoft, einzuführen.
Diese reduzierte SDL-Version richtet sich vor allem an Entwicklungsprojekte, die nur mit begrenzten Ressourcen ausgestattet sind. In vielen Firmen ist das der Fall. SDL unterstützt Unternehmen dabei, ein stärkeres Augenmerk auf Sicherheit und den Schutz von Daten in allen Phasen des Entwicklungsprozesses zu legen. Dazu nutzt das Framework spezielle Tools, mit denen sich etwa Bedrohungsmodelle entwerfen oder Scans nach Schwachstellen durchführen lassen. Ein Teil davon ist kostenlos oder als Open Source erhältlich. Mit dem Security Development Lifecycle von Microsoft ist es möglich, einen umfangreichen Code-Review vor dem Veröffentlichen einer Applikation durchzuführen, der die Sicherheit deutlich erhöht.
Das Durchspielen von Bedrohungsmodellen legt potentielle Sicherheitsrisiken offen und hilft dabei, Komponenten einer Anwendung zu identifizieren, die genauer unter die Lupe genommen werden sollten. Insbesondere am Anfang eines neuen Projektes ist dies empfehlenswert, da sich dadurch Schwachstellen oder Bereiche aufspüren lassen, die später nur mit weit mehr Aufwand und Kosten behoben werden können.
Eine weitere Möglichkeit ist die Einführung eines Entwicklungs-Frameworks wie das so genannte Modell-Präsentation-Steuerung (Model View Controller, MVC). Dabei wird die Entwicklung einer Anwendung in drei deutlich voneinander getrennte Phasen unterteilt. Projekte können auf diese Weise vorangetrieben werden, ohne dass einzelne Teams die anderen aufhalten. So wird die Entwicklung sicherer Anwendungen erleichtert. Manche Organisationen führen zudem eine statische Analyse des Quellcodes durch. Das ist übrigens auch eine Voraussetzung beim Security Development Lifecycle von Microsoft.
Letztendlich sollte man noch dafür sorgen, dass ein leitender Manager dafür verantwortlich ist, dass jeder erfolgreiche Abschluss einer Sicherheitsvorgabe von ihm abgezeichnet wird. Außerdem sollten die beteiligten Entwickler ebenfalls in einen extra zu erstellenden Incident-Response-Plan eingebunden werden. Dieser tritt immer dann in Kraft, wenn in der Anwendung nach der Veröffentlichung noch Sicherheitslücken gefunden werden. Gerade diese Maßnahme ist ein wirksamer Ansporn, damit sich jeder Mitarbeiter von Anfang an auf die Entwicklung sicheren Codes und sicherer Anwendungen konzentriert.
Folgen Sie SearchSecurity.de auch auf Twitter, Google+, Xing und Facebook!