Was zeitgemäße Secure-Coding-Trainings ausmacht So schärfen Entwickler ihre Skills

Von Efrat Yahav

Anbieter zum Thema

Wer sicher coden will, braucht Best Practices und aktuelles Wissen. Letzteres eignen sich Entwickler zwar gern an, betrachten Schulungsprogramme jedoch häufig auch als störende Unterbrechung der eigentlichen Arbeit. Wie interaktive Trainings und Gamifizierung hier Abhilfe schaffen können, erläutert Efrat Yahav, Customer Success Manager bei Checkmarx.

Gamifizierung eignet sich sehr gut für spannende Cybersecurity-Simulationen.
Gamifizierung eignet sich sehr gut für spannende Cybersecurity-Simulationen.
(Bild: © artinspiring - stock.adobe.com)

Sicherheitsrelevante Schwachstellen in Software sind kein Schönheitsfehler, sondern können Unternehmen massiv schädigen. Entwickler müssen also alles in ihrer Macht Stehende tun – und all ihre Fähigkeiten und Kenntnisse in die Waagschale werfen –, um sichere Produkte zu entwickeln. Dazu gehört es auch, dass sie das Recht haben müssen, unsichere Releases zu stoppen und auf sicherheitsrelevante Schwachstellen bestehender Anwendungen hinzuweisen, sobald sie darauf stoßen. Sollten sie das Gefühl haben, dass es ihnen an den erforderlichen Skills und Qualifizierungen fehlt, um dies zu leisten, muss ihnen das Unternehmen die Möglichkeit bieten, diese Kenntnisse zu erwerben – in der Regel bei Trainings und Schulungen.

Das Angebot an Schulungen und Plattformen im Bereich Secure-Coding ist riesig, und reicht vom klassischen Frontalunterricht über langwierige Online-Präsentationen bis hin zu interaktiven, in den Alltag der Entwickler eingebetteten Secure-Coding-Turnieren. Sich in diesem breiten Angebot zurechtzufinden, ist auf den ersten Blick alles andere als einfach. Folgende fünf Aspekte gilt es bei der Auswahl und Implementierung eines zeitgemäßen Application-Security- und Awareness-Programms zu berücksichtigen...

Drei einfache Schritte, die Ihnen helfen, sicherer zu entwickeln

1. Arbeiten Sie mit auditierten Frameworks

Gängige IT-Frameworks wie Ruby-On-Rails zu verwenden, wird Ihnen helfen, sichere Software zu entwickeln. Denn weil sehr viele Unternehmen mit diesen Frameworks arbeiten, versuchen sich auch sehr viele Hacker daran, deren Abwehrsysteme auszuhebeln. Und das wiederum führt dazu, dass einmal identifizierte Schwachstellen in aller Regel sofort korrigiert werden. Die Verwendung eines solchen Frameworks macht es Ihnen also leicht, grundlegende Secure-Coding-Practices einzuhalten, weil diese bereits fest im Framework verankert sind. Natürlich ist kein Framework perfekt, und keines verhindert zu 100 Prozent zuverlässig, dass Sie unsicheren Code schreiben. Aber die wenigen Instanzen, in denen das möglich ist, sind bekannt und gut dokumentiert.

2. Greifen Sie auf bewährte Crypto-Libraries zu

Als Entwickler kennen Sie sicher die Warnung: „Don’t roll your own crypto library.“ Das ist der vielleicht beste Rat, den man einem Entwickler geben kann. Denn die harte Wahrheit ist, dass es selbst in den einfachsten Szenarien wirklich schwierig ist, die Crypto-Verarbeitung sauber hinzubekommen. Wenn Sie mit eigenen Crypto-Libraries arbeiten, wird Ihre Software immer Lücken aufweisen. Glücklicherweise ist heute eine Reihe robuster und sicherer Crypto-Libraries wie libsodium oder Bouncy Castle verfügbar. Wenn Sie sich an diese halten, riskieren Sie nicht, dass Ihre Anwendung durch eine fehlerhafte Crypto-Implementierung abgreifbar wird.

3. Führen Sie regelmäßig Security-Reviews durch

Lassen Sie die Sicherheit Ihrer Anwendungen regelmäßig von unabhängigen Dritten bewerten. Solche Reviews sind unerlässlich, weil sie dabei helfen, ungewöhnliche Sicherheitslücken und Angriffspunkte offenzulegen. Und da von Tag zu Tag immer mehr neue Schwachstellen entdeckt werden, stehen Angreifer auch immer mehr Wege offen, diese auszunutzen. Externe Reviews sind ein wichtiger erster Schritt, das Risiko eines Angriffs zu minimieren.

1. Vermeiden Sie Frontalunterricht und langweilige Online-Trainings

Wer im Zuge von Compliance-Prüfungen bereits an einem obligatorischen Online-Security-Training teilnehmen musste, weiß, wie zeitraubend und monoton diese Kurse manchmal sind. Häufig müssen die Teilnehmer lediglich eine Präsentation nach der anderen durcharbeiten. Anschließend gilt es, eine Reihe von Multiple-Choice-Fragen zu beantworten – die aber alle nur darauf ausgelegt sind, die Teilnehmer in die Irre zu führen, statt tatsächlich den Wissensstand zu testen.

2. Setzen Sie auf kompakte und interaktive Sessions

Solche Trainings, bei denen es nur darum geht, Checklisten abzuhaken, sind nicht nur nutzlos, sondern auch gefährlich. Aber wissen wir, wie es besser geht? Ja: Mit kompakten, leicht verdaulichen und interaktiven Sessions statt langwieriger und langweiliger Sitzungen. So erzielen die Teilnehmer immer wieder kleine Erfolge, die sich zu einem großen und nachhaltigen Fortschritt aufsummieren. Statt etwa eine endlose Liste von Folien zum Thema XSS durchzuarbeiten, sollten Sie Ihrem Team innerhalb der Entwicklungsumgebung kleine Herausforderungen stellen, die an praktischen Beispielen zeigen, wie man sich vor XSS-Schwachstellen schützt. So macht das Lernen und Dranbleiben Spaß, und die Lektionen bleiben dauerhaft hängen.

3. Nutzen Sie die Möglichkeiten der Gamifizierung

Als Gamifizierung bezeichnet man die Anwendung von Game-Design-Elementen und Gaming-Prinzipien außerhalb des Kontexts eines Spiels. Die Vorteile von gamifizierten Trainings sind bekannt: Es ist erwiesen, dass wir besser lernen und länger aufnahmefähig bleiben, wenn wir beim Lernen Spaß haben, einer cleveren Geschichte folgen und eine aktive Rolle einnehmen. Da Entwickler die meiste Zeit ihres Tages vor einem Bildschirm verbringen und auf Codezeilen gucken, schätzen sie solche lockeren und spielerischen Trainings weitaus mehr als langweilige Lektionen. Und die Gamifizierung eignet sich ja auch sehr gut für spannende Cybersecurity-Simulationen, etwa von Szenarien, bei denen Angreifer Schwachstellen ausnutzen und Verteidiger die Lücken schließen müssen.

4. Vermitteln Sie Wissen stets kontextbasiert

Klassischer Frontalunterricht ist aber nicht nur deswegen ineffizient, weil es an spielerischen Elementen fehlt. Es fehlt auch an Kontext: Sobald Sie Ihre Devs aus der Entwicklungsumgebung reißen, durchbrechen Sie die täglichen Abläufe und machen es ihnen schwer, sich konkrete Probleme ins Gedächtnis zu rufen. Der Input sollte deshalb stets da bereitgestellt werden, wo er gebraucht wird: beim Coden. Im Idealfall sollte die Training-Plattform den Entwickler während des Programmierens automatisch auf sicherheitsrelevante Fehler hinweisen, diese in einer kurzen, spielerischen Trainingseinheit erläutern und dann praktische Tipps für die Behebung liefern.

5. Behalten Sie Ihre AppSec-Awareness-Kennzahlen im Blick!

Wenn Sie in AppSec- und Awareness-Trainings investieren, müssen Sie auch jederzeit darüber im Bilde sein, ob sich dieses Investment auszahlt – und ob das Risikopotenzial im Bereich Software-Security auch tatsächlich abnimmt. Um eine kontinuierliche Verbesserung sicherzustellen, gilt es dabei, die Fortschritte Ihrer Entwicklungsteams genau zu dokumentieren und die AppSec-Awareness immer wieder neu zu bewerten. So wissen Sie jederzeit, ob und in welchen Bereichen die Entwickler noch weitere Trainings benötigen, können Fortschritte tracken und dem Management gegenüber dokumentieren und Wiederholungsfehler vermeiden.

Fazit

Security wird mehr und mehr zum integralen und automatisierten Bestandteil der Software-Entwicklung, und die Application-Security-Experten vieler Unternehmen arbeiten heute eng mit den Entwicklungsabteilungen zusammen, um die eigenen Anwendungen sicherer zu machen. Dabei mag es mitunter noch Diskussionen darüber geben, wer in welchem Teilbereich für die Application-Security verantwortlich ist. Im Kern wissen die Entwickler, die App-Sec-Experten und die DevOps-Verantwortlichen aber alle, dass Sicherheit letztlich ein Gemeinschaftsprojekt ist, das nur dann erfolgreich sein wird, wenn alle Beteiligten an einem Strang ziehen. Dazu gehört es auch, über den gesamten SDLC hinweg die Einhaltung von Secure-Coding-Practices sicherzustellen – und zeitgemäße spielerische und kontextbasierte Trainingsansätzen sind ein guter Weg, um die Weichen dafür zu stellen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

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

Über den Autor: Efrat Yahav ist Customer Success Manager bei Checkmarx.

(ID:47473718)