Gastbeiträge, Branche - geschrieben von am Donnerstag, August 20, 2020 11:06 - noch keine Kommentare

Sicherheitstraining – Empfehlungen für die Praxis

Warum Sicherheitstraining für Entwickler wichtig ist und wie ein gutes Training aussehen kann, erklärt Julian Totzek-Hallhuber, Solution Architect bei Veracode.

[datensicherheit.de, 20.08.2020] „Es gibt keine Abkürzung – Training ist alles“, sagt Arnold Schwarzenegger. Er mag zwar kein IT-Experte sein, doch er versteht etwas von Training. Training erscheint vielen Entwicklern und Sicherheitsexperten heutzutage als nicht unbedingt notwendig. Dabei können IT-Fachleute ungemein von bestimmten Ausbildungsmodulen profitieren, die mithilfe aktueller Datenlecks und Schwachstellen aufzeigen, wie ebensolche Fehler im Code vermieden werden können. Zudem setzen viele Compliance-Zertifizierungen wie PCI, SOC2 und HITRUST ständiges Sicherheitstraining voraus; zugleich kommt auf 100 Entwickler in einigen Unternehmen nur ein einziger Security-Experte, was die Skalierbarkeit des entsprechenden Know-how erheblich dämpft.

Julian Totzek-Hallhuber, Solution Architect bei Veracode

Bild: Veracode

Entwickler müssen sich weiterbilden

Entwicklerteams hinken beim Sicherheitsthema oft hinterher, denn Sicherheitsteams haben selten die Kapazität oder das Fachwissen, um ganze Entwicklermannschaften zu schulen. Das führt am Ende oft dazu, dass sich Security Debt anhäuft. Unter Security Debt, oder „Sicherheitsschulden“, versteht man Fehler in der Software, die für eine längere Zeit unbehoben vorliegen und damit über die Zeit hinweg nur noch mehr fehlerhaften Code produzieren. Nur wenn Entwicklerteams selbst in der Lage sind, sich weiterzubilden, lässt sich Anwendungssicherheit sinnvoll skalieren – und die Sicherheitsschulden abbauen.

Die Praxis: Scannen, Priorisieren, Beheben

Wer Sicherheitstrainings effektiv aufsetzen will, muss zunächst die Realität kennen, in der sich Entwickler bewegen. Der klassische Ablauf im Umgang mit Sicherheitsschwachstellen besteht bisher im Dreiklang aus Scanning, Priorisierung und Behebung.

Unternehmen, die ihre Anwendungen täglich oder fast täglich scannen, sind am effektivsten bei der Behebung von Fehlern und der Vermeidung von Security Debt. Bei Anwendungen, die nur ein- bis 12 Mal pro Jahr gescannt werden, liegt die durchschnittliche Bearbeitungszeit bei 68 Tagen. Bei einem quasi-täglichen Scan sinkt diese Zeitspanne auf nur 19 Tage. Die Priorisierung erfolgt nach Risikofaktoren wie Ausnutzbarkeit (wie leicht lässt sich die Schwachstelle ausnutzen), Anwendungskritikalität und nach möglichem finanziellen Schaden, der durch eine Schwachstelle entsteht. Das Problem in diesem Vorgehen liegt im Zeitpunkt, wann eine Anwendung gescannt und wann die Fehler priorisiert werden. Eine Sicherheitsbewertung dient oft als Pre-Deployment-Gateway, erfolgt also erst kurz vor dem Deployment.

Sichere Entwicklung: Das ist wichtig

Sicherheitsbewertungen als zweitrangiger Sprint nach der Entwicklung machen die Vorteile agiler Entwicklungsmethoden wieder zunichte. Diese Mischung aus Wasserfall und agilen Methoden ist jedoch noch häufig in Unternehmen anzutreffen. Kontinuierliche Bewertungen während der Entwicklung schaffen hier Abhilfe. So lassen sich Release-Blocker frühzeitig und somit kostengünstig beseitigen. Um diese Scans und Bewertungen effizienter zu machen, bietet es sich an, verschiedene Analysetechniken simultan einzusetzen. Statische Binär-Analysen finden Schwachstellen auch ohne Zugriff auf den Quellcode. Dynamic Application Security Testing erkennt Schwachstellen in der Anwendungsarchitektur und in Web-Anwendungen während den Laufzeiten. Manuelle Penetrationstests zielen auf spezifische Schwachstellen ab – wie Cross-Site Request Forgery oder Probleme mit der Business-Logik.

Software-Composition-Analyse erfreut sich an immer mehr Beliebtheit, denn Entwickler können damit Schwachstellen auch in Open-Source-Komponenten und innerhalb von Open-Source-Bibliotheken finden. In der agilen Welt ist das eine wichtige Funktion, da die Verwendung von Open-Source-Komponenten in der modernen Entwicklung stark verbreitet ist, um die Geschwindigkeitsvorgaben zu erfüllen.

Eine verhaltensbasierte dynamische Analyse wiederum zeigt in Echtzeit, wie sich eine Anwendung verhält. So lassen sich risikobehaftete Aktivitäten identifizieren, wie etwa Datenspeicherung an verdächtigen Orten. Im Idealfall nutzen agile Entwickler eine Kombination all dieser Methoden, um größtmögliche Sicherheit zu gewährleisten.

Weiterbildung – aber wie?

Ein Blick in die Praxis und in die Herausforderungen sicherer Entwicklung zeigen: Entwickler stehen vor großen Herausforderungen. Sie müssen nicht nur wissen, wie man Schwachstellen findet und analysiert, sondern auch mehrere Wege kennen, wie sie sich beheben lassen. Sicherheitstrainings sind jedoch oft zu umfangreich, weil sie versuchen alle möglichen Lösungen abzudecken. Dies ist nicht nur didaktisch schlecht, da Menschen nur eine gewisse Menge an Informationen überhaupt aufnehmen können – es ist auch für das Unternehmen unnötig, sich mit Lösungen auseinanderzusetzen, die im Tech Stack des Unternehmens gar nicht vorkommen. Andere Trainings bieten zwar interaktive Anwendungen oder Web Apps, allerdings nur an der Oberfläche. Die Apps sind simuliert, Entwickler schauen sich Code-Snippets an und klicken sich durch Multiple-Choice-Fragen. Wenn sie eigene Ideen haben, zählt das nicht – die fixen Vorgaben fördern Frustration.

Was gutes Training ausmacht

Die beschriebenen Lösungen sind Abkürzungen. Sie verzichten auf echte Arbeit und sollen Entwickler stattdessen schneller zu einem Zertifikat führen. Doch wie Arni schon sagte, „Training ist alles.“ Entwickler müssen selbst Lösungen finden, sich an echten Problemen abarbeiten – erst dann stellt sich ein wirklicher Lerneffekt ein.

Gute Sicherheitstrainings bieten daher echte Anwendungen, etwa containerisierte Web Apps, die Entwickler auch attackieren können. Sie können Exploits nutzen und Schwachstellen direkt reparieren. Ein gutes Training ist immer nahe an der Realität: Entwickler sollten im besten Fall mit echten Exploits arbeiten können und Programmiersprachen und -Umgebungen nutzen können, die im Unternehmen auch zur Anwendung kommen. Plattformen wie das Security Lab von Veracode nutzen daher Umgebungen wie Java, JavaScript und Node.js, .NET, Golang, Python, Ruby on Rails und React.js, bieten Linux-Server, Code-Editoren und echte Web Apps, Anwendungs-Stacks und Exploits, die auch Hacker nutzen. Hinzu kommen Online-Lektionen, die Unternehmen je nach Bedürfnis anpassen und eigenen Anforderungen einbauen können – so werden Entwickler gezielt geschult.

Fazit: Sicherheitstraining, das funktioniert

Mit einem guten Sicherheitstraining lernen Entwickler in fünf bis zehn Minuten neue Skills und können sicheren Code rechtzeitig liefern. Unternehmen profitieren von einer besser ausgebildeten Mannschaft, die Zeiten zur Fehlerbehebung merklich verkürzt.

Entwickler lernen sicheres Coden in einer realistischen, praxisnahen Umgebung, eventuell sogar mit Gamification wie Leaderbord und individuellen Assignments. So steigt die Motivation und aus der Qual wird ein interessantes Training, das sie zu besseren Entwicklern macht.

Weitere Informationen zum Thema:

datensicherheit.de, 28.05.2020
Veracode-Report: 70 Prozent aller Anwendungen haben Open-Source-Schwachstellen



Kommentieren

Kommentar

Kooperation

TeleTrusT

Mitgliedschaft

German Mittelstand e.V.

Mitgliedschaft

BISG e.V.

Multiplikator

Allianz für Cybersicherheit

Datenschutzerklärung