BACSCP: Die Entstehung des Secure Coding Trainings
Jedes Semester schließen Tausende Informatikstudenten erfolgreich ihr Studium ab – leider meist ohne oder mit nur geringen Kenntnissen in sicherer Softwareentwicklung. Wen wunderts, dass dann altbekannte Schwachstellen wie Cross-Site-Scripting (XSS) noch immer nicht der Vergangenheit angehören. Als Folge stehen Unternehmen selbst in der Verantwortung, ihre Entwickler zu schulen und für Sicherheitsmaßnahmen in deren Softwareprodukten zu sorgen.
Die Geschichte unserer neuartigen Online-Schulung begann vor ein paar Jahren mit einer Kundenanfrage bezüglich einer OWASP-Entwicklerschulung zu sicherer Softwareentwicklung. Als PCI-DSS-zertifiziertes Unternehmen musste unser Kunde jährlich nachweisen, dass sich seine Softwareentwickler im Rahmen der aktuellen Techniken zur sicheren Programmierung fortbilden. Natürlich hätte als Nachweis auch eine Bescheinigung darüber genügt, ein Buch gelesen oder an einem Vortrag (passiv) teilgenommen zu haben… So etwas kann aber weder im Sinne des PCI DSS noch im Sinne der Softwareentwickler sein.
So kam es dazu, dass wir als binsec einen 2-Tages-Workshop konzipierten, zu gleichen Teilen aus Theorie- und aus Praxiselementen aufgebaut. Während wir am ersten Tag auf die Anforderungen des PCI-DSS an Softwareentwickler und auf die OWASP Top 10 eingingen, musste jeder Schulungsteilnehmer am zweiten Tag eine verwundbare Webanwendung härten und anschließend versuchen, die in den Anwendungen seiner Kollegen verbliebenen Schwachstellen auszunutzen. Mit jedem erfolgreichen Angriff sammelten die Teilnehmer Punkte und kamen damit dem Gewinn der Siegesprämie – eines Amazon Gutscheins – Schritt für Schritt näher. Unterm Strich verlief der erste Teil des Trainings durchaus erfolgreich, doch stach das positive Feedback zum zweiten Abschnitt deutlich hervor. Die Teilnehmer waren fokussiert und engagiert sich gegenseitig „auszuspielen“, weshalb ihre Rückmeldung für uns nicht überraschend kam: „Weniger Theorie, mehr Praxis, bitte.“
Wir begannen parallel zu dieser Entwicklerschulung, diverse Lehrveranstaltungen an Hochschulen zu halten, in denen wir sukzessive den Praxisanteil in den Vordergrund rückten. Wie schon bei unserer Vorlesung zu Penetration-Testing, aus der unser Zertifizierungslehrgang „Binsec Academy Certified Pentest Professional (BACPP)“ hervorgegangen ist, entschieden wir als binsec uns auch bei unserer Entwicklerschulung „Secure Software Development Training“ dazu, sie zur Basis von etwas Neuem zu machen: Es schlug die Geburtsstunde des „Secure Coding Trainings“ der binsec academy:
In dieser Online-Schulung zu Secure Coding schlüpft der Teilnehmer in die Rolle eines Teamleiters, dem die Aufgabe zuteilwird, in einer verwundbaren REST-API die am meisten verbreiteten Schwachstellen (OWASP TOP 10) zu identifizieren und diese im Programmcode zu beheben. Der Clou dabei ist: Der Teilnehmer kann als Programmiersprache PHP, Java, Python, Perl, Go, Ruby oder Node.js wählen und wird mit unserem BACSCP-Zertifikat (Binsec Academy Certified Secure Coding Professional) belohnt, wenn mindestens acht von insgesamt zehn Sicherheitslücken erfolgreich entfernt wurden. Zertifizierte BACSCPler können
- die am meisten verbreiteten Schwachstellen in Webanwendungen identifizieren und Sicherheitslösungen entwerfen,
- eine Webanwendung gemäß OWASP und PCI DSS sicher entwickeln, sowie
- einen Secure-Code-Review strukturiert durchführen.
Nach den ersten Betatests erweiterten wir die Kooperation mit Hochschulen, um Studierenden der Informatik die Inhalte sicherer Softwareentwicklung zu vermitteln. Wir hoffen hiermit einen wesentlichen Beitrag zur anwendungsorientierten IT-Sicherheit leisten zu können.