Anwendungssicherheit auf dem Prüfstand Entwickler sollten auch Hacker sein

Von Frank Fischer

Anbieter zum Thema

Jeder Software Developer möchte, dass seine Anwendung den höchsten Qualitätsstandards entspricht. Bevor etwas in Produktion geht, wird daher durch Code-Reviews sowie automatisierte und manuelle Tests weitestgehend sichergestellt, dass alles wie vorgesehen funktioniert und Fehler beseitigt werden.

Auch wenn Developer knapp sind und ihre Arbeitszeit teuer ist, sprechen viele Gründe dafür, dass man Training für Penetrationstests in ihr Curriculum aufnimmt.
Auch wenn Developer knapp sind und ihre Arbeitszeit teuer ist, sprechen viele Gründe dafür, dass man Training für Penetrationstests in ihr Curriculum aufnimmt.
(Bild: ONYXprj - stock.adobe.com)

Ein wichtiger Teil dieses Prozesses ist das Testen auf Sicherheitslücken. Dies muss priorisiert erfolgen und durch spezielle Tools unterstützt werden. Sollten diese Testreihen übersprungen oder als Nebensache behandelt werden beziehungsweise nicht die richtigen Werkzeuge zur Verfügung stehen, kann dies die Fertigstellung verzögern, Rollbacks erfordern und potenziell kostspielige Gefahren für Kunden und Endbenutzer mit sich bringen.

Ständiger Kampf um Anwendungssicherheit

Gleichzeitig hört der Kampf um die Anwendungssicherheit nie auf. Jeden Tag werden neue Schwachstellen entdeckt, die dazu führen, dass Anwendungen, die bisher als unangreifbar galten, neu überarbeitet werden müssen. Cyberkriminelle können extrem schnell operieren. Da sie gleichzeitig ihre Methoden ständig anpassen, stellen sie eine ständige und unmittelbare Bedrohung dar. Laut Informationen von Technology Review und Statista stieg die Anzahl von Cyberattacken auf deutsche Unternehmen von rund 87.000 in 2018 auf über 146.000 in 2021. Bemerkenswert ist hierbei die Differenz bei den Antworten von Unternehmensentscheidern zur Cyber-Gefährdungslage für Mittelständler in Deutschland. Eine hohe oder sehr hohe allgemeine Gefährdung sehen 76 Prozent der Befragten, aber nur 34 Prozent fürchten, dass ihr eigenes Unternehmen gefährdet ist. Der Lagebericht des Bundesamtes für Sicherheit in der Informationstechnik (BSI) spricht die gleiche Sprache. Obwohl die Cybersicherheitsstandards in den meisten Unternehmen mittlerweile hoch sind, gibt es eindeutig noch viel mehr zu tun - zumal die Anzahl der Angriffe in der Regel jedes Jahr steigt.

Die Denkweise eines Angreifers ist anders als die eines Entwicklers. Entwickler denken in „Use Cases“ und haben dabei ein bestimmtes Anwendungsszenario vor Augen. Angreifer hingegen denken in „Misuse Cases“, sie wollen eine Anwendung für einen Angriff nutzen. Ein Angreifer muss daher nur eine einzige Schwachstelle finden, während der Verteidiger bildlich gesprochen die gesamte Burg schützen muss. Daher sind Tools unerlässlich, um die Sicherheit auf der Entwicklungsebene zu verbessern.

Developer sollten daher zumindest einen Teil ihrer Zeit damit verbringen, mit den Werkzeugen und Techniken potenzieller Angreifer zu versuchen in ihre eigenen Systeme einzudringen. Diese Vorgehensweise – bekannt als Penetrationstests – ermöglicht einzigartige Einblicke in die Sicherheit, die andere Formen von Tests nicht bieten. Snyk veranstaltet bei seinen Sicherheitsworkshops zum Beispiel immer auch ein „Capture the Flag Event“, bei dem alle Teilnehmer zu Angreifern werden. Dieser spielerische Ansatz macht nicht nur Spaß und führt zu einem besseren Verständnis für die Denkweise des Angreifers, sondern zeigt auch, wie erschreckend einfach die meisten Angriffe schlussendlich sein können. Auch in unserem Ausbildungs-Tool Snyk Learn ist immer ein Szenario enthalten, bei dem Entwickler in den Schuhen des Angreifers eine Attacke durchführen.

Penetrationstests sind nützliche Ergänzung

Penetrationstests ersetzen selbstverständlich keinen Standardtests, Scan oder andere Überprüfungen, die zu den gängigen Sicherheitspraktiken gehören. Vielmehr sind sie eine sehr nützliche Ergänzung zu all diesen Verfahren und können Schwachstellen aufzeigen, die sonst vielleicht nicht in Betracht gezogen worden wären. Es muss aber klar sein, dass Penetrationstests keine dauerhafte Sicherheit bieten. Als Momentaufnahme bestätigen sie den aktuellen Schutzzustand, aber bereits die Sicherheitsumgebung am nächsten Tag sieht anders aus, und ihre Risiken sind andere.

Der Versuch, in die eigenen Anwendungen einzubrechen, indem Sie genau die Tools verwenden, die von kriminellen Hackern eingesetzt werden, führt bei Developern zu einem erweiterten Problembewusstsein, das zu besserem Code und besserer Sicherheit führt. Anstatt sich darauf zu konzentrieren, dass die beabsichtigten Verwendungen einer Anwendung möglich sind, konzentrieren sich die Entwicklerinnen und Entwickler zusätzlich auch auf unbeabsichtigte Verwendungen. Sehr oft gibt es Schwachstellen an den Rändern der Funktionalität: Dadurch können, wenn man die Grenzen dessen, was Programme tun sollen, überschreitet, bislang unbemerkte Lücken entdeckt werden, in die Angreifer eindringen können.

Manchmal entstehen derartige Schachstellen im Code, weil beim Programmieren etwas übersehen wurde. Aber sehr oft handelt es sich um Fehler im Software-Design oder in der Ablauflogik, die durch dieses Design vorgegeben werden. Der Code ist zwar entsprechend der Spezifikation geschrieben, aber durch die Spezifikation an sich entstehen unvorhergesehene Möglichkeiten für Missbrauch und Verstöße. Durch diese Fehler entstehen Schwachstellen, die sich von denen unterscheiden, die durch versehentliche Fehlkonfigurationen, die Verwendung anfälliger Open-Source-Software oder die Nichtbeachtung bewährter Verfahren bei der Erstellung von Code entstehen. Diese Schwachstellen mögen nicht die Schuld der Entwickler sein, aber als der jeweils verantwortlichen Person für die Sicherheit der betreffenden Anwendung fallen sie definitiv in ihre Zuständigkeit.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zur IT-Sicherheit

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Besonders wertvoller Mehrwert für Unternehmen

Bei Penetrations-Tests sollten sich die durchführenden Personen nicht nur auf ihre eigene List und Tücke verlassen. Zusätzlich zu den eigenen Fähigkeiten sollten sie unbedingt auch die verfügbaren automatisierten Werkzeuge potenzieller Angreifer nutzen, um in ihre Systeme einzudringen. Zu diesen verfügbaren Tools gehören etwa sogenannte Fuzzers, die versuchen, unerwartete Werte überall dort einzuschleusen, wo sie eingegeben werden können, in der Hoffnung, die Anwendung zum Absturz zu bringen oder weiteren Zugriff auf Code oder Daten zu erhalten, die eigentlich nicht sichtbar sein sollten. In Webanwendungen können sie zum Beispiel seltsame Werte in Formularfelder, benutzergenerierte Inhalte oder URLs eingeben.

Darüber hinaus gibt es Exploit-Kits aus seriösen („White Hat“) Quellen, die es Entwicklern ermöglichen, bekannte Techniken von echten Hackern zu verwenden, um die vorhandene Anwendungsabsicherung zu kompromittieren. Zusätzlich gibt es Software für Penetrationstests, die ein System nicht auf Malware oder bösartige Akteure untersucht, sondern auf mögliche Angriffspunkte. Dabei werden Tausende unterschiedlicher Einbruchstechniken durchprobiert, also weit mehr, als selbst die erfahrensten Developer jemals testen könnten.

Das Erlernen der Durchführung von Penetrationstests ist eine sehr wertvolle Fähigkeit für Developer und erweitert ihr Verständnis für die unterschiedlichen Aspekte der Erstellung sicherer Anwendungen. Indem sie ihre Software nicht nur aus der Perspektive eines Code-Erstellers betrachten, entwickeln sie eine Denkweise, die immer auch an mögliche Schlupflöcher denkt und sich auch gegen die unerwartetsten Verhaltensweisen absichert. Dies stellt einen besonders wertvollen Mehrwert für Unternehmen dar, da Cyberkriminelle genau diese Wege einschlagen werden.

Probleme bereits im Vorfeld vermeiden

Auch wenn Developer knapp sind und ihre Arbeitszeit teuer ist, sprechen viele Gründe dafür, dass man Training für Penetrationstests in ihr Curriculum aufnimmt. Für Snyk sind vor allem „Capture the Flag“-Events ein wichtiges Trainingsmedium für Developer. Sie haben sich etabliert, da sie mit geringer Vorbereitung schnell sowie günstig durchzuführen sind und Spaß machen. Indem sie zum aktiven Suchen nach Schwachstellen in Codes motivieren, sorgen sie für neue Herangehens- und Sichtweisen der Developer in Bezug auf mögliche Sicherheitsrisiken. Das Wissen über die Vorgehensweise von Hackern, vor allem, wenn man ihre Angriffswege und Werkzeuge selbst ausprobiert, schärft das Bewusstsein der Spezialisten für mögliche Schwachstellen in den von ihnen erstellten Codes. Und je mehr Probleme bei der Entwicklung von Anwendungen bereits im Vorfeld vermieden werden, desto besser. Wer seine eigenen Hacking-Fähigkeiten testen möchte, kann einfach auf https://ctf-snyk.io/ gehen und sein Talent als Hacker ausprobieren.

Über den Autor: Frank Fischer ist im Produktmarketing bei Snyk.

(ID:48732849)