Eine Version dieses Artikels erschien auf DevOps.de; er wurde neu betitelt und aktualisiert, um neue Informationen aufzunehmen.
Während CISOs und CIOs die wenig beneidenswerte Position haben, den Löwenanteil der Verantwortung für die Softwaresicherheit zu übernehmen, insbesondere im Falle einer peinlichen Verletzung der Unternehmensdaten, bietet sich ihnen auch eine einzigartige Chance von zunehmender Relevanz: Sie sind die neuen Innovatoren, und sie können mit dem richtigen Ansatz sehr einflussreich sein. Jede Organisation auf der Welt, sowohl öffentliche als auch kommerzielle, kämpft darum, ihren Marktanteil in einer sich schnell digitalisierenden Welt zu halten (und zu gewinnen). Kunden erwarten ein nahtloses Online-Erlebnis sowohl von bisherigen als auch von zukünftigen Produkten, und ein "digital-first"-Geschäftsansatz wird zur Pflicht. Denn wenn diese Erwartungen nicht erfüllt werden, steht mit ziemlicher Sicherheit ein Konkurrent bereit, um die Gelegenheit zu ergreifen.
Was bedeutet das also für den modernen CISO oder CIO? Natürlich bedeutet es, dass sie Teams von Entwicklern beschäftigen, die Zeile für Zeile des Codes erstellen, der ihr digitales Produkt oder ihre Dienstleistung ausmacht. Cybersicherheit ist zwar schon seit vielen Jahren ein wichtiges Thema, wird aber zu einem immer größeren Risikofaktor, da immer mehr Geschäftsvorgänge online und im Visier von Angreifern durchgeführt werden. Die Auswirkungen einer Sicherheitslücke sind enorm, aber ein Ausstieg aus der Digitalisierung ist keine Option.
Kreative CISOs und CIOs befinden sich in einer erstklassigen Position, um gemeinsam mit ihren AppSec- und Entwicklungsteams den Weg in unsere digitale Zukunft weiter zu schmieden. Sie werden zweifellos die langfristige Innovation von Unternehmen, Behörden und öffentlichen Diensten im Internet gestalten, aber sie tragen die schwere Verantwortung, die Balance zwischen schnellen Markteinführungszielen, hoher Softwarequalität und der Minderung von Sicherheitsrisiken zu halten.
Dieses Gleichgewicht ist bis heute immens schwer zu erreichen. Es hat zu Entwicklungsteams geführt, die oft fragmentiert sind und sich in erster Linie auf die Bereitstellung von Features und Funktionen konzentrieren, ohne sich Gedanken über die Schwachstellen zu machen, die sie in dem Code, den sie so schnell produzieren, verursachen könnten. AppSec-Spezialisten beheben ständig die gleichen Fehler, während die Gefahr eines Einbruchs durch eine relativ einfache Hintertür, die offen gelassen wird, groß ist.
Wenn unsere Daten sicher bleiben sollen, müssen CISOs und CIOs bei der Art und Weise, wie ihre Teams zusammenarbeiten, kreativ werden und eine Kultur der positiven Sicherheit und gemeinsamen Verantwortung von oben nach unten schaffen. Schauen Sie sich nur die katastrophalen Folgen an, die Marriott aufgrund des Datenschutzverstoßes 2018 zu tragen hatte: Eine GDPR-Strafe von über 123 Millionen US-Dollar, mehr als 500 Millionen gestohlene Datensätze und ein ramponierter Ruf in Sachen Sicherheit. Dieses Desaster ist zu einem großen Teil auf unsichere Kodierungspraktiken zurückzuführen, denn bereits 2014 wurden SQL-Injection-Schwachstellen auf den Servern von Starwoods aufgedeckt, einem Unternehmen, das 2016 von Marriott übernommen wurde. Deren anschließende Nutzung der Software blieb aus Sicht der Anwendungssicherheit offensichtlich ungeprüft. Dies gab böswilligen Angreifern mehrere Jahre lang die Möglichkeit, auf Daten zuzugreifen und sich diese anzueignen, während andere Schwachstellen, wie z. B. schwache Passwörter, im Laufe der Zeit weitere Löcher zum Ausnutzen hinterließen.
CIOs und CISOs müssen den Zustand ihres eigenen Software-Sicherheitsklimas sehr genau betrachten. Wie sicherheitsbewusst ist der durchschnittliche Entwickler? Wie gut arbeiten die AppSec- und Entwicklungsteams zusammen? Es gibt kein Patentrezept, aber an der Kultur, dem Training und dem Support kann gearbeitet und verbessert werden. Entwicklungsteams können sich von der ersten Risikolinie für Datenschutzverletzungen im Unternehmen zu den Sicherheits-Superhelden wandeln, die schlechten Code stoppen, bevor er überhaupt in Produktion geht.
Gesundheitscheck für sichere Kodierung: Ist Ihre auf Lebenserhaltung?
Wo passt Ihr eigenes Entwicklungsteam hin? Ich habe diese Checkliste für sichere Kodierung erstellt, um CIOs und CISOs dabei zu helfen, herauszufinden, ob ihre Entwicklungsteams wirklich dafür gerüstet sind, sichere Kodierungs-Champions zu sein und mit schnellerem, besserem und sichererem Code zu Innovationen beizutragen (oder ob Sie tatsächlich eine Überholung des Sicherheitsprogramms benötigen):
1. Wie unterstützend ist der Rest Ihrer C-Suite? Verstehen sie, dass traditionelle Netzwerksicherheit nicht mehr ausreicht?
In der Zukunft der Software ist die Absicherung der Netzwerkebene mit veralteten Sicherheitsmaßnahmen einfach nicht gut genug (und, seien wir ehrlich, ist ohnehin selten erfolgreich), selbst gegen semiprofessionelle Hacker. Neben vielen übereinstimmenden Berichten zitiert der "2017 Data Breach Investigations Report" von Verizon, dass erschütternde 35 Prozent der heutigen Datenschutzverletzungen durch Schwachstellen in Webanwendungen verursacht werden.
Die Sicherheit von Webanwendungen ist genauso wichtig wie die Netzwerksicherheit. Wenn Sie dies ignorieren und es versäumen, die grundlegende Schutzschicht von AppSec-Maßnahmen einzuplanen und zu installieren, könnten Sie einem Einbruch Tür und Tor öffnen.
2. Schalten Sie weit genug nach links, und tun Sie es früh genug?
Der derzeitige Ansatz für die Anwendungssicherheit ist recht toollastig und konzentriert sich darauf, sich im Lebenszyklus der Softwareentwicklung (SDLC) von rechts nach links zu bewegen. Dies erkennt per Definition und Design an, dass der Prozess fehlerhaft ist und unterstützt ein Erkennungs- und Reaktionsergebnis. Sicherheitsteams suchen und entdecken Schwachstellen in bereits geschriebenem Code und reagieren, um den übergebenen Code zu korrigieren, anstatt sicherzustellen, dass er bei der Erstellung fehlerfrei ist. Laut dem National Institute of Standards and Technology(NIST) ist es 30-mal teurer, Schwachstellen in festgeschriebenem Code zu erkennen und zu beheben, als sie zu verhindern, während sie in der IDE geschrieben werden. Dabei sind die Verzögerungen bei der Produktion, die doppelte Bearbeitung und die Zeit, die für die Behebung derselben bekannten Sicherheitsprobleme immer wieder aufgewendet wird, noch nicht einmal eingerechnet.
Eine wirklich robuste Sicherheitskultur besteht darauf, bei den Entwicklern selbst anzufangen und sie zu Sicherheits-Champions zu inspirieren, während sie dem Entwicklungsteam die richtigen Tools und Schulungen geben, um zu wachsen und mit einem sicheren Coding-Mindset zu handeln. Der Schwerpunkt liegt auf der kontinuierlichen Selbstentwicklung und dem Training ihrer Problemlösungsfähigkeiten, damit sie die erste Verteidigungslinie in ihrem Unternehmen sein können und häufige Schwachstellen von vornherein verhindern.
3. Bemühen Sie sich, praktische Sicherheitskompetenzen aufzubauen, oder füttern Sie nur einseitiges Wissen?
Die überwiegende Mehrheit der Sicherheitsschulungslösungen (online und CBT) konzentriert sich auf den Aufbau von Wissen statt auf praktische Fähigkeiten, die sich direkt auf ihre Arbeit beziehen. Damit Entwickler aufblühen und sich für das Schreiben von sicherem Code engagieren können, brauchen sie regelmäßigen Zugang zu kontextbezogenem, praxisnahem Lernen, das sie aktiv dazu ermutigt, sich weiterzubilden und ihre Fähigkeiten in einer realen Umgebung zu entwickeln. Sie müssen über kürzlich identifizierte Schwachstellen lernen, mit echten Codebeispielen, und in ihren bevorzugten Sprachen und Frameworks arbeiten können. Diese Lernerfahrung hilft ihnen effektiv dabei, zu verstehen, wie sie bekannte Schwachstellen in dem Code, an dem sie im Rahmen ihrer Arbeit aktiv arbeiten, lokalisieren, identifizieren und beheben können.
Es gibt zwar viele sachkundige Lehrer und jede Menge Informationen über die Behebung von Sicherheitslücken, aber das Durchblättern von Lehrbüchern oder das Anschauen von stundenlangen Videos scheitert daran, den Verstand vieler kreativer, problemlösungsorientierter Entwickler anzusprechen, und wenn die ständige Flut von Datenschutzverletzungen ein Hinweis darauf ist, bleibt es weitgehend unwirksam, zu verhindern, dass Sicherheitslücken in den Code gelangen.
4. Messen Sie Ihre Fähigkeiten zur sicheren Codierung mit Echtzeitmetriken?
Ein wichtiger Schritt, um sicherzustellen, dass innerhalb eines Entwicklungsteams eine sicherheitsorientierte Denkweise aufgebaut wird, ist das Sammeln und Überprüfen von Beweisen. Dies sollte keine Annahme oder ein Ratespiel sein: Entweder sind die Entwickler sicherheitsorientiert oder nicht.
Metriken sollen den Entwicklern und ihrer Organisation beweisen, dass sich ihre harte Arbeit auszahlt und sich ihre individuellen sicheren Programmierfähigkeiten verbessern. Man kann nicht verbessern, was man nicht messen kann. Es sollte relevante Bewertungen geben und diese sollten dabei helfen, den Fortschritt Ihrer Entwicklungsteams in Echtzeit zu identifizieren sowie ihre Stärken und Schwächen bei der sicheren Codierung für eine kontinuierliche Verbesserung zu benchmarken.
Allzu oft werden Sicherheitsschulungen zu einer "Tick-the-Box"-Übung für Unternehmen, ohne dass darauf geachtet wird, dass diese Schulungen effektiv sind, dass man sich mit ihnen beschäftigt oder sie sogar behält.
5. Verwenden Ihre ausgelagerten Anbieter robuste sichere Kodierungstechniken?
Viele Unternehmen entscheiden sich dafür, Entwicklungsarbeiten an Drittanbieter zu vergeben. Unabhängig davon, ob es sich um On- oder Offshore-Agenturen handelt, sind deren allgemeine Fähigkeiten und Praktiken im Bereich der sicheren Codierung für den Kunden ein relatives Geheimnis. Im besten Fall ist die einzige Form der Zusicherung, die ein Unternehmen in Bezug auf die Sicherheit erhält, eine Aussage im Vertrag, die verlangt, dass das zu liefernde Produkt "sicher" sein muss. Nur sehr wenige Unternehmen ergreifen Maßnahmen, um die Fähigkeiten dieser Entwicklungsfirmen im Vorfeld zu überprüfen, so dass das Risiko besteht, dass eine Software geliefert wird, die zwar wie vereinbart funktioniert, aber ohne solide sichere Kodierungspraktiken erstellt worden ist. Schlimmer noch: Wenn sich das einkaufende Unternehmen der inhärenten Sicherheitslücken in der Anwendung nicht bewusst ist, läuft es Gefahr, angreifbare Software in die freie Wildbahn zu schicken.
Das häufigste Szenario ist, dass alle Schwachstellen von dedizierten Sicherheitsspezialisten gefunden werden (Personen, die schwer zu finden und mit hohen Kosten verbunden sind), Sie mit einer Verzögerung Ihres Go-Live-Datums und möglichen Vertragsdiskussionen darüber konfrontiert werden, wer für die Behebung dieser Sicherheitsschwächen zahlen muss. Wenn Sie jedoch im Vorfeld klug vorgehen und die Fähigkeiten der Entwickler, die Ihre nächste Anwendung erstellen sollen, in Bezug auf die Anwendungssicherheit einschätzen, sparen Sie sich eine Menge potenzieller Verzögerungen, Frustration und Geld.
6. Kennen Ihre Entwickler die am häufigsten ausgenutzten Sicherheitsschwachstellen?
Mehr als 85 Prozent der ausgenutzten Schwachstellen in Webanwendungen werden auf nur 10 bekannte Schwachstellen zurückgeführt - die OWASP Top 10. Ihre Anwendungssicherheitsschulung muss mindestens diese und viele weitere Schwachstellenarten abdecken. Die Trainingsherausforderungen, mit denen Ihre Entwickler konfrontiert werden, müssen regelmäßig überarbeitet und aktualisiert werden, mit neuen Herausforderungen für entweder neue Coding-Frameworks oder neue Schwachstellenarten.
Präzises Training mit realen Szenarien für sichere Kodierung sollte der Standard sein; vages Allgemeinwissen ist einfach nicht effektiv. (Sie fragen sich, wie diese sicheren Codierungsszenarien aussehen könnten? Schauen Sie sich unsere Blog-Serie Coders Conquer Security an; in jedem Beitrag gibt es eine spielbare Herausforderung).
7. Haben Sie interne Sicherheits-Champions?
Jede entwicklungslastige Organisation sollte in einen Security Champion investieren - jemanden, der die Verantwortung für die Aufrechterhaltung eines hohen Sicherheitsstandards innerhalb des Entwicklerteams übernimmt. Ihr Zweck ist es, eine Anlaufstelle für alle zu sein, die Fragen zur Sicherheit haben, und der Hauptverfechter für die Einhaltung von Best Practices im Bereich Sicherheit zu sein.
Sie sind ein wichtiger Teil des Puzzles der Sicherheitskultur; ein großartiger Sicherheits-Champion kann den Schwung von intensiven Schulungen aufrechterhalten, sicherstellen, dass alle Teammitglieder das haben, was sie brauchen, und sich weiterhin für Unterstützung einsetzen.
8. Haben Sie in Tools für Ihre Entwickler investiert, um die sichere Kodierung zu erleichtern?
Wenn in Ihrem Unternehmen eine agile Entwicklung praktiziert wird oder Sie mit häufigen Aktualisierungen der vom Unternehmen erstellten Anwendungen konfrontiert sind, ist die Automatisierung von Teilen der Sicherheit eine der einzigen Möglichkeiten, mit dem rasanten Tempo und dem Arbeitsvolumen Schritt zu halten.
In jeder Phase des SDLC gibt es Tools, die als Berater, Qualitäts-Torwächter oder Erkennungswerkzeug dienen. Darüber hinaus führen einige Tools automatisierte Tests über den Code aus und simulieren Hacking-Versuche, sobald die Software in Produktion ist. Alle haben ihre eigenen Vorteile und Herausforderungen, und keines kann eine hundertprozentige Garantie bieten, dass keine Sicherheitsbedrohungen in der Anwendung existieren. Die wichtigste Präventivmaßnahme, die Sie anwenden können, ist, dass je früher Sie die Schwachstelle erkennen, desto schneller und kostengünstiger ist es, sie mit den geringsten Auswirkungen auf Ihr Unternehmen zu beheben.
Der nächste Schritt für vorausschauende CISOs
Wie hat Ihr Unternehmen also die oben genannte Checkliste erfüllt?
Während CISOs und CIOs im Wesentlichen gezwungen sind, ihre Unternehmens-DevOps- und DecSecOps-Fähigkeiten aggressiv aufzubauen, bedeutet das nicht, dass keine Zeit bleibt, um die richtigen Tools und Schulungen in den Teams zu berücksichtigen und zu implementieren. Sichere Coding-Fähigkeiten werden eine Waffe "und kein Hindernis" für Innovationen sein, und ein Verzicht darauf könnte die absolute Zerstörung der Unternehmensreputation und der Daten bedeuten. Diese Fähigkeiten stellen kritische Fähigkeiten und eine viel billigere langfristige Lösung dar, um Schwachstellen zu reduzieren und das Risiko zu mindern.
Ein brillanter, innovativer CISO hat die Macht, eine gesunde Sicherheitskultur von oben nach unten zu orchestrieren; stellen Sie sicher, dass Ihre Mitarbeiter das haben, was sie brauchen, um Best Practices im Bereich Sicherheit effektiv auszuführen.
Pieter Danhieux ist ein Sicherheitsexperte und Mitbegründer von Secure Code Warrior.