Wollen Sie, dass Entwickler mit Sicherheitsbewusstsein programmieren? Bringen Sie das Training zu ihnen.

Veröffentlicht Jul 15, 2020
von Matias Madou, Ph.D.
FALLSTUDIE

Wollen Sie, dass Entwickler mit Sicherheitsbewusstsein programmieren? Bringen Sie das Training zu ihnen.

Veröffentlicht Jul 15, 2020
von Matias Madou, Ph.D.
Ressource anzeigen
Ressource anzeigen

Der Software Development Lifecycle (SDLC) scheint harmlos genug zu sein; es ist ein Prozess, und wir Software-Leute kommen alle zusammen, um die Magie geschehen zu lassen und all die digitalen Güter auszuliefern, ohne die die Gesellschaft nicht leben kann.

Nur... wenn Sie jemals Teil eines Softwareentwicklungsprojekts waren, wissen Sie, dass es normalerweise ein Spießrutenlauf ist, mit vielen Aufgaben, die es zu bewältigen und Drachen zu erschlagen gilt. Eine Zeit lang macht es Spaß, aber Burnout ist real, und die Nachfrage nach Software lässt uns alle in den besten Zeiten mit Lichtgeschwindigkeit arbeiten, besonders das Entwicklungsteam.

Nun stellen Sie sich vor, dass ihnen eine weitere Pflichtaufgabe auferlegt wird ... die Verantwortung für die Sicherheit der Projektelemente, die sie berühren. Schlimmstenfalls kann das für einige Personen das Kartenhaus zum Einsturz bringen, aber das realistischere Szenario ist, dass es einfach nicht zur Priorität gemacht wird, und die Themen, die als dringender angesehen werden, um über die Linie zu kommen, Vorrang haben. Und wenn die meisten Entwickler nicht darin geschult sind, sicher zu programmieren (vor allem, wenn auch ihre Manager der Sicherheit keine Priorität einräumen), ist es kein Wunder, dass es immer wieder zu Datenschutzverletzungen und fehlerhaften App-Veröffentlichungen kommt und Sicherheitsexperten unter einer Lawine von fehlerhaftem Code an ihre Grenzen stoßen.

Entwickler brauchen einen AppSec-Befürworter.

Wenn man das obige Szenario betrachtet, kann man verstehen, warum die Sicherheit während des Programmierprozesses in den Korb "zu schwer" gelegt wird und dem Sicherheitsteam überlassen wird, sich darum zu kümmern. Zu viele konkurrierende Termine, nicht genug Training und kein wirklicher Grund, sich um die Sicherheit zu kümmern, während alles andere vor sich geht. Es gibt jedoch einfach zu viel Nachfrage nach Code, als dass dieser Status quo fortbestehen könnte. Und das ist der Punkt, an dem sich Super-Elite-Entwickler von ihren Kollegen abheben, neue Fähigkeiten erlernen und - was am wichtigsten ist - sichereren Code erstellen können.

Es ist jedoch wichtig, sich daran zu erinnern, dass die Verwaltung der Softwaresicherheit nicht allein auf den Schultern der Entwickler liegt - das ist immer noch die Domäne des AppSec-Teams (das, wenn es mit sicherheitsbewussten Entwicklern zusammenarbeitet, mehr Freiraum hat, anstatt häufige Fehler immer wieder zu beheben). Ein funktionierender DevSecOps-Prozess erfordert, dass jedes Teammitglied die Unterstützung und die Tools erhält, die es braucht, um die Verantwortung für die Sicherheit mitzutragen, und die richtige Art von Schulung ist von größter Bedeutung. Um die richtige Suite von Tools und Schulungen auszubalancieren, bedarf es der Einsicht von AppSec-Experten, die bereit sind, eng mit den Entwicklern zusammenzuarbeiten, um sie zu inspirieren und positive Veränderungen voranzutreiben.

Unterbrechende Schulungen sind eher lästig als effektiv, und alles, was Entwickler abschreckt, wird nicht funktionieren. Eine IDE- oder Issue-Tracker-integrierte Lösung, die sich auf mundgerechtes Wissen konzentriert, ist eine Alternative, die ihnen die richtigen Informationen genau in dem Moment liefert, in dem sie benötigt werden.

Hier sehen Sie, wie es in Aktion funktioniert:

Just-in-Time, nicht "nur für den Fall".

Kontextbezogenes, praxisnahes Lernen ist bei weitem die effektivste Art zu trainieren, mit mundgerechten Stücken, die genau dann geliefert werden, wenn sie am meisten Sinn machen. Dies wird manchmal als "Just in Time"-Schulung (JiT) bezeichnet und ist für Entwickler, die sicheres Coding lernen, sehr effektiv.

Das JiT-Training hat seinen Ursprung in den Lean-Manufacturing-Prinzipien von Toyota und ist so konzipiert, dass es auf einer Need-to-know-Basis aktiviert wird, im Kontext, wenn es am wichtigsten ist. Hat ein Entwickler gerade etwas geschrieben, das scheinbar unzulässige Berechtigungen hat? Was, wenn eine kleine Hintertür geöffnet wurde, die es einem Angreifer erlaubt, Code aus der Ferne auszuführen? Es ist viel einprägsamer, wenn Entwickler auf das Wissen genau dann zugreifen können, wenn sie es brauchen, anstatt sich durch die Dokumentation in Confluence zu wühlen oder etwas zu googeln, das in der Schulung behandelt wurde.

Just-in-Time ist das Gegenteil von "Just-in-Case"-Lernen. Letzteres ist zwar die gängigere Art, Wissen zu vermitteln, aber einfach nicht effizient. Wir müssen es Entwicklern leichter machen, sich mit den Best Practices für sichere Programmierung zu beschäftigen und den Nutzen einer Weiterbildung für ihre Karriere zu erkennen, während sie sich gleichzeitig auf die wichtigsten Ziele konzentrieren, an denen sie gerade arbeiten.

Hören Sie auf, Entwickler zu zwingen, das Training zu verfolgen.

Wir wissen bereits, dass an einem Arbeitstag zu viel los ist. Welchen Anreiz haben Entwickler also, sich in ein Klassenzimmer zu schleppen oder kontextabhängig fünf Schritte zu durchlaufen, um auf statische, theoriegestützte Schulungen zuzugreifen?

Der allgemeine Konsens ist, dass das, was die meisten Unternehmen tun, nicht sonderlich effektiv ist, wenn man sich die Zahl der Sicherheitslücken ansieht, die zu Datenschutzverletzungen führen. Der 2020 Data Breach Investigations Report von Verizon gab an, dass 43 % der Datenschutzverletzungen auf Sicherheitslücken im Internet zurückzuführen sind. Entwickler erhalten keine effektive Schulung, weder in der Hochschulausbildung noch im Rahmen von Weiterbildungsmaßnahmen am Arbeitsplatz. Wäre dies der Fall, würden gängige Schwachstellen wie SQL-Injection und Path Traversal der alten Schule nicht ausgenutzt werden, um Daten zu erbeuten, und der Fachkräftemangel im Bereich der Cybersicherheit wäre nicht außer Kontrolle geraten.

Wenn wir also wissen, dass dies das aktuelle Klima ist, in dem Entwickler Schulungen erhalten und mit der Sicherheit vertraut gemacht werden, warum sind wir dann überrascht über das schlechte Ergebnis? Es könnte einfach einen Effekt haben - einen positiven - sowohl für den Entwickler als auch für die Organisation, eine reibungslosere, integriertere und weniger störende Schulungserfahrung zu gewährleisten, wo sie in den Bereichen zugänglich ist, in denen sie tatsächlich arbeiten, wie Jira, GitHub und in der IDE. Die Branche muss sich einfach vorwärts bewegen und das Sicherheitsbewusstsein viel einfacher machen, in einer Umgebung, in der es kein Luxus mehr ist.

Sind Sie bereit, den Entwicklungs-Workflow zu sichern?

Sicherheitsbewusste Entwickler werden für ihre Fähigkeiten und den Schutz, den sie Unternehmen schon bei der Codeerstellung bieten können, geschätzt. Sicherheit ist nicht mehr optional, vor allem angesichts der GDPR-Strafen, PCI-DSS-Compliance-Vorschriften, NIST-Governance... und der Möglichkeit, in einer großen alten Multi-Millionen-Dollar-Sammelklage a'la Equifax verklagt zu werden.

Ein integrierter Ansatz könnte der Katalysator sein, um Entwickler mit weniger störendem Lernen zu gewinnen und einige Wege für tiefer gehende courses zu schaffen, Sicherheits-Champions auszubilden und allgemein die gemeinsame Verantwortung zu wecken, die wir brauchen, um die Daten der Welt sicher und gesund zu halten.

Laden Sie jetzt die Integrationstools für Jira und GitHub herunter, und lassen Sie uns wissen, was Sie davon halten.

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

Wollen Sie, dass Entwickler mit Sicherheitsbewusstsein programmieren? Bringen Sie das Training zu ihnen.

Veröffentlicht Jul 15, 2020
Von Matias Madou, Ph.D.

Der Software Development Lifecycle (SDLC) scheint harmlos genug zu sein; es ist ein Prozess, und wir Software-Leute kommen alle zusammen, um die Magie geschehen zu lassen und all die digitalen Güter auszuliefern, ohne die die Gesellschaft nicht leben kann.

Nur... wenn Sie jemals Teil eines Softwareentwicklungsprojekts waren, wissen Sie, dass es normalerweise ein Spießrutenlauf ist, mit vielen Aufgaben, die es zu bewältigen und Drachen zu erschlagen gilt. Eine Zeit lang macht es Spaß, aber Burnout ist real, und die Nachfrage nach Software lässt uns alle in den besten Zeiten mit Lichtgeschwindigkeit arbeiten, besonders das Entwicklungsteam.

Nun stellen Sie sich vor, dass ihnen eine weitere Pflichtaufgabe auferlegt wird ... die Verantwortung für die Sicherheit der Projektelemente, die sie berühren. Schlimmstenfalls kann das für einige Personen das Kartenhaus zum Einsturz bringen, aber das realistischere Szenario ist, dass es einfach nicht zur Priorität gemacht wird, und die Themen, die als dringender angesehen werden, um über die Linie zu kommen, Vorrang haben. Und wenn die meisten Entwickler nicht darin geschult sind, sicher zu programmieren (vor allem, wenn auch ihre Manager der Sicherheit keine Priorität einräumen), ist es kein Wunder, dass es immer wieder zu Datenschutzverletzungen und fehlerhaften App-Veröffentlichungen kommt und Sicherheitsexperten unter einer Lawine von fehlerhaftem Code an ihre Grenzen stoßen.

Entwickler brauchen einen AppSec-Befürworter.

Wenn man das obige Szenario betrachtet, kann man verstehen, warum die Sicherheit während des Programmierprozesses in den Korb "zu schwer" gelegt wird und dem Sicherheitsteam überlassen wird, sich darum zu kümmern. Zu viele konkurrierende Termine, nicht genug Training und kein wirklicher Grund, sich um die Sicherheit zu kümmern, während alles andere vor sich geht. Es gibt jedoch einfach zu viel Nachfrage nach Code, als dass dieser Status quo fortbestehen könnte. Und das ist der Punkt, an dem sich Super-Elite-Entwickler von ihren Kollegen abheben, neue Fähigkeiten erlernen und - was am wichtigsten ist - sichereren Code erstellen können.

Es ist jedoch wichtig, sich daran zu erinnern, dass die Verwaltung der Softwaresicherheit nicht allein auf den Schultern der Entwickler liegt - das ist immer noch die Domäne des AppSec-Teams (das, wenn es mit sicherheitsbewussten Entwicklern zusammenarbeitet, mehr Freiraum hat, anstatt häufige Fehler immer wieder zu beheben). Ein funktionierender DevSecOps-Prozess erfordert, dass jedes Teammitglied die Unterstützung und die Tools erhält, die es braucht, um die Verantwortung für die Sicherheit mitzutragen, und die richtige Art von Schulung ist von größter Bedeutung. Um die richtige Suite von Tools und Schulungen auszubalancieren, bedarf es der Einsicht von AppSec-Experten, die bereit sind, eng mit den Entwicklern zusammenzuarbeiten, um sie zu inspirieren und positive Veränderungen voranzutreiben.

Unterbrechende Schulungen sind eher lästig als effektiv, und alles, was Entwickler abschreckt, wird nicht funktionieren. Eine IDE- oder Issue-Tracker-integrierte Lösung, die sich auf mundgerechtes Wissen konzentriert, ist eine Alternative, die ihnen die richtigen Informationen genau in dem Moment liefert, in dem sie benötigt werden.

Hier sehen Sie, wie es in Aktion funktioniert:

Just-in-Time, nicht "nur für den Fall".

Kontextbezogenes, praxisnahes Lernen ist bei weitem die effektivste Art zu trainieren, mit mundgerechten Stücken, die genau dann geliefert werden, wenn sie am meisten Sinn machen. Dies wird manchmal als "Just in Time"-Schulung (JiT) bezeichnet und ist für Entwickler, die sicheres Coding lernen, sehr effektiv.

Das JiT-Training hat seinen Ursprung in den Lean-Manufacturing-Prinzipien von Toyota und ist so konzipiert, dass es auf einer Need-to-know-Basis aktiviert wird, im Kontext, wenn es am wichtigsten ist. Hat ein Entwickler gerade etwas geschrieben, das scheinbar unzulässige Berechtigungen hat? Was, wenn eine kleine Hintertür geöffnet wurde, die es einem Angreifer erlaubt, Code aus der Ferne auszuführen? Es ist viel einprägsamer, wenn Entwickler auf das Wissen genau dann zugreifen können, wenn sie es brauchen, anstatt sich durch die Dokumentation in Confluence zu wühlen oder etwas zu googeln, das in der Schulung behandelt wurde.

Just-in-Time ist das Gegenteil von "Just-in-Case"-Lernen. Letzteres ist zwar die gängigere Art, Wissen zu vermitteln, aber einfach nicht effizient. Wir müssen es Entwicklern leichter machen, sich mit den Best Practices für sichere Programmierung zu beschäftigen und den Nutzen einer Weiterbildung für ihre Karriere zu erkennen, während sie sich gleichzeitig auf die wichtigsten Ziele konzentrieren, an denen sie gerade arbeiten.

Hören Sie auf, Entwickler zu zwingen, das Training zu verfolgen.

Wir wissen bereits, dass an einem Arbeitstag zu viel los ist. Welchen Anreiz haben Entwickler also, sich in ein Klassenzimmer zu schleppen oder kontextabhängig fünf Schritte zu durchlaufen, um auf statische, theoriegestützte Schulungen zuzugreifen?

Der allgemeine Konsens ist, dass das, was die meisten Unternehmen tun, nicht sonderlich effektiv ist, wenn man sich die Zahl der Sicherheitslücken ansieht, die zu Datenschutzverletzungen führen. Der 2020 Data Breach Investigations Report von Verizon gab an, dass 43 % der Datenschutzverletzungen auf Sicherheitslücken im Internet zurückzuführen sind. Entwickler erhalten keine effektive Schulung, weder in der Hochschulausbildung noch im Rahmen von Weiterbildungsmaßnahmen am Arbeitsplatz. Wäre dies der Fall, würden gängige Schwachstellen wie SQL-Injection und Path Traversal der alten Schule nicht ausgenutzt werden, um Daten zu erbeuten, und der Fachkräftemangel im Bereich der Cybersicherheit wäre nicht außer Kontrolle geraten.

Wenn wir also wissen, dass dies das aktuelle Klima ist, in dem Entwickler Schulungen erhalten und mit der Sicherheit vertraut gemacht werden, warum sind wir dann überrascht über das schlechte Ergebnis? Es könnte einfach einen Effekt haben - einen positiven - sowohl für den Entwickler als auch für die Organisation, eine reibungslosere, integriertere und weniger störende Schulungserfahrung zu gewährleisten, wo sie in den Bereichen zugänglich ist, in denen sie tatsächlich arbeiten, wie Jira, GitHub und in der IDE. Die Branche muss sich einfach vorwärts bewegen und das Sicherheitsbewusstsein viel einfacher machen, in einer Umgebung, in der es kein Luxus mehr ist.

Sind Sie bereit, den Entwicklungs-Workflow zu sichern?

Sicherheitsbewusste Entwickler werden für ihre Fähigkeiten und den Schutz, den sie Unternehmen schon bei der Codeerstellung bieten können, geschätzt. Sicherheit ist nicht mehr optional, vor allem angesichts der GDPR-Strafen, PCI-DSS-Compliance-Vorschriften, NIST-Governance... und der Möglichkeit, in einer großen alten Multi-Millionen-Dollar-Sammelklage a'la Equifax verklagt zu werden.

Ein integrierter Ansatz könnte der Katalysator sein, um Entwickler mit weniger störendem Lernen zu gewinnen und einige Wege für tiefer gehende courses zu schaffen, Sicherheits-Champions auszubilden und allgemein die gemeinsame Verantwortung zu wecken, die wir brauchen, um die Daten der Welt sicher und gesund zu halten.

Laden Sie jetzt die Integrationstools für Jira und GitHub herunter, und lassen Sie uns wissen, was Sie davon halten.

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.

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