In diesem Beitrag gehen wir auf einige der häufigsten Fragen ein, die uns zum Thema IT-Sicherheit gestellt werden. Dabei geht es unter anderem darum, die Bedeutung der Einbindung von Sicherheitsmaßnahmen im Anforderungsmanagement zu verstehen und über die neuesten Sicherheitstrends auf dem Laufenden zu bleiben. Außerdem beleuchten wir die entscheidende Rolle, die Sicherheit im Entwicklungsprozess spielt, und geben Einblicke in die Absicherung älterer Systeme sowie in die Umsetzung kontinuierlicher interner Kontrollen.
Die OWASP Top 10 sind eine hervorragende Orientierungshilfe; es handelt sich dabei um eine Liste der häufigsten Schwachstellen in Webanwendungen. OWASP steht für „Open Web Application Security“ und ist eine Organisation, die sich mit der Sicherheit von Softwareanwendungen befasst.
Vor einigen Jahren wurde der OWASP ASVS (Application Security Verification Standard) veröffentlicht – ein hervorragendes Kompendium, um Sicherheitsprobleme im Anforderungsmanagement aufzudecken. Er kann als Anforderungsspezifikation für Anwendungen verwendet werden. Der ASVS ist wie eine Checkliste auf drei verschiedenen Ebenen: Beginnen Sie mit Ebene eins, vergleichen Sie diese mit dem, was Sie bereits umgesetzt haben und was noch umgesetzt werden muss, und fahren Sie dann mit der nächsten Ebene fort. Alle Anwendungen müssen Ebene eins bestehen können. Wenn Sie Sicherheitsaspekte in Ihre Anforderungen integrieren möchten, würde ich damit beginnen. Ein Tipp ist, klein anzufangen und schrittweise zu steigern. Viele Unternehmen begehen den Fehler, zu viele Maßnahmen auf einmal umzusetzen, sodass die Organisation letztendlich überfordert ist.
Wir folgen vielen Sicherheitsexperten auf Twitter, wo wir gute Informationen erhalten, wenn etwas passiert ist oder ein neues Tool veröffentlicht wurde. Außerdem verfolgen wir Blogs zum Thema Sicherheit, zum Beispiel Daniel Miessler, Podcast und Darknet Diaries. Darüber hinaus suchen wir nach Tools, Code-Schnipseln oder Skripten, die andere veröffentlicht haben oder gerade veröffentlichen, und finden heraus, was sie damit bezwecken.
Was Sicherheitslücken angeht, sitzen wir nicht jeden Tag da und beobachten, ob eine neue Sicherheitslücke für ein bestimmtes Produkt veröffentlicht wird. Erst wenn wir Aufträge haben, die eine Anwendung mit einem bestimmten Anwendungsstack beinhalten, schauen wir uns an, welche Sicherheitslücken derzeit bekannt sind. Ansonsten ist LinkedIn eine gute Quelle, um über neu veröffentlichte Sicherheitslücken auf dem Laufenden zu bleiben.
Vor Covid fanden jeden Sommer in Las Vegas große Sicherheitsveranstaltungen statt: Black Hat, Def Con und BSides. Ein großartiger Ort, um Kontakte zu knüpfen und interessante Vorträge zu hören.
Betrachtet man das Thema aus der Perspektive von Penetrationstests und auf der Grundlage unserer Aufträge, so haben wir festgestellt, dass das Thema Sicherheit erst extrem spät in Entwicklungsprojekte einfließt. Oftmals erst dann, wenn das Produkt kurz vor der Freigabe für den Produktivbetrieb steht, weil das Unternehmen erkennt, dass ein Sicherheitstest durchgeführt werden muss. Und im schlimmsten Fall finden wir zahlreiche Schwachstellen, die behoben werden müssen. Dies führt zu Verzögerungen im Projekt und zu erhöhten Kosten.
Wir würden es begrüßen, wenn Unternehmen bereits in einer früheren Phase der Entwicklung mit dem Thema Sicherheit arbeiten würden. Im Zusammenhang mit Sicherheit spricht man üblicherweise von „Shift-Left-Testing“, d. h., dass Sicherheit nicht erst am Ende als Zusatzfunktion integriert wird, sondern von Anfang an berücksichtigt wird. Sicherheit sollte bereits in den Anforderungen berücksichtigt werden.
Indem man das System mit Sicherheitsmaßnahmen umgibt, beispielsweise durch kompensierende Kontrollen wie Layer-7-Firewalls, Deep Packet Inspection und die Überprüfung der Anwendungsebene. Überlegen Sie auch, ob Sie ein Intrusion Detection System (IDS) und/oder ein Intrusion Prevention System (IPS) einsetzen sollten. Dies sind einige Möglichkeiten, um Ihre etwas älteren Systeme zu sichern.
Arbeiten Sie mit den 20 CIS-Kontrollen. Welche Kontrollen sind derzeit im Unternehmen implementiert?
Wenn wir von Kontrollen sprechen, umfasst dies alles von:
– Verfügen Sie über ein Antivirenprogramm?
– Führen Sie eine Bestandsaufnahme Ihrer Unternehmensressourcen?
– Haben Sie einen Überblick über die Anwendungen in Ihrem Unternehmen?
– Führen Sie regelmäßig Penetrationstests durch?
– Verfügen Sie über Kenntnisse zu Administratorrechten?
– Nutzen Sie eine sichere E-Mail-Lösung?
Das ist zwar ein recht breites Spektrum, aber ein sehr guter Ansatz, wenn Sie beginnen möchten, Kontrolle und Struktur zu gewinnen und Anknüpfungspunkte für weitere Maßnahmen zu schaffen. Wie bei allem anderen sollten Sie nicht alles auf einmal angehen, sondern klein anfangen und sich Zeit nehmen. Sicherheit ist nichts, was man in einem Monat erledigt – es ist ein langwieriger Prozess. Große Unternehmen arbeiten kontinuierlich an den CIS-Kontrollen und haben damit zu kämpfen; es ist ein großer Aufwand, alle 20 umzusetzen, wenn man die Anforderungen erfüllen will.
Wenn man die Infrastruktur und die Anwendung voneinander trennt und mit dem Anwendungsteil beginnt, sehen wir keinen großen Unterschied im Ansatz und in den Anforderungen an die Funktionsweise. Die Infrastruktur hingegen – wie beispielsweise die Schlüsselverwaltung und Geheimnisse – unterscheidet sich von der Bereitstellung vor Ort in einem Rechenzentrum. In der Cloud stehen Ihnen direkt zahlreiche Sicherheitsfunktionen zur Verfügung, die Sie in Ihrem eigenen Rechenzentrum möglicherweise nicht haben, wie beispielsweise die Rückverfolgbarkeit von Zugriffen. Damit dies jedoch wie vorgesehen funktioniert, muss es konfiguriert werden – und zwar korrekt. Die Cloud ist nicht von Haus aus sicher, und es ist Aufgabe des Nutzers, diese Funktionen zu konfigurieren und zu aktivieren, bevor sie im Internet live gehen.
Ja, OWASP ASVS
Ja, die „Shift-Left“-Methodik. Beginnen Sie bereits zu Beginn der Entwicklung mit der Sicherheit und testen Sie das Produkt frühzeitig. Weitere Möglichkeiten, um zu überprüfen, ob Sie ein sicheres Produkt haben, sind Penetrationstests, SAST-Scans (statische Analyse) und dynamische Analysen in Form von Webanwendungs-Scans. Damit können Sie Ihre Anwendung langfristig im Blick behalten.
Sie können auch auf die Bedrohungsmodellierung zurückgreifen. Nehmen Sie Ihre Anwendung und Ihre Entwickler mit, stellen Sie sich vor ein Whiteboard und zeichnen Sie die Anwendung auf. Sie können sie in kleinere Komponenten zerlegen oder sie vereinfacht darstellen. Betrachten Sie die Datenflüsse: Wie und wo treten sie ein und aus, welche Funktionen stehen zur Verfügung? Beginnen Sie damit, verschiedene mögliche Angriffsarten und potenzielle Schwachstellen aufzulisten. Versuchen Sie anschließend, Sicherheitsmaßnahmen zu entwickeln und in das System zu integrieren.
„Privacy by Design“ ist ein schönerer Begriff, der bedeutet, dass man bereits in einer frühen Phase über Sicherheit nachdenken und diese bereits in die Anforderungen einbeziehen sollte.
Die oben beschriebene Bedrohungsmodellierung in einer frühen Entwicklungsphase ist ein sehr guter Anfang. Prüfen Sie, über welche personenbezogenen Daten Sie verfügen, und versuchen Sie, die gesetzlichen Richtlinien einzuhalten. Die DSGVO gilt für personenbezogene Daten, und der PCI-DSS ist ein gut ausgearbeitetes Rechtsdokument für den Umgang mit Kreditkartendaten. Wenn es um vertrauliche Informationen geht, können Sie prüfen, welche rechtlichen Rahmenbedingungen Sie berücksichtigen müssen. Danach ist es wichtig, die Sicherheitsprozesse einzubinden, wie beispielsweise Sicherheitsanforderungen, Bedrohungsmodellierung, Code-Review, DAST-Tools, Penetrationstests und Infrastruktur-Tests im Hinblick auf Automatisierungstools.
Unsere Empfehlung lautet, die Automatisierung dort zu verstärken, wo dies möglich ist. Wir sind der Meinung, dass Sie alle Prüfungen, die sich automatisieren lassen, beispielsweise in ASVS oder in einem CICD-Prozess durchführen können. Nutzen Sie automatisierte Tools, DAST-Tools, Code-Review-Tools oder Ähnliches.
Unser Fachwissen wird bei komplexeren Fragestellungen und bei der Durchführung komplexerer Tests benötigt. Oftmals haben Unternehmen, wenn wir Penetrationstests durchführen sollen, weder Code-Reviews durchgeführt noch DAST-Tools eingesetzt. Das bedeutet, dass wir alle Arten von Schwachstellen identifizieren müssen – und das sind eine ganze Menge. Am besten ist es, wenn wir einen Bericht von einem Schwachstellen-Scanning-Tool erhalten und bei der Betrachtung der Infrastruktur feststellen, dass bereits Code-Reviews und DAST-Tools durchgeführt wurden. Dann können wir uns bei unserer Arbeit auf all die anderen Aspekte konzentrieren, die Tools in Bezug auf reine Logik nicht leisten können. Dazu gehören beispielsweise das Logikmanagement in einer Anwendung, reine Geschäftslogik und Ähnliches. Automatisierte Tools sind nicht besonders gut darin, diese zu identifizieren, da sie kein Verständnis dafür haben, wie die Anwendung selbst eigentlich funktionieren sollte. Automatisieren Sie so viel wie möglich und nutzen Sie unser Fachwissen für die Dinge, die die Tools nicht bewältigen können.
Von uns empfohlene Tests:
OWASP ASVS, Level One ist so konzipiert, dass Sie den Prozess nahezu vollständig automatisieren können. Ein weiterer nützlicher Leitfaden ist der OWASP Testing Guide, der einen sehr guten Überblick über die verschiedenen Problemarten und die Identifizierung von Schwachstellen bietet.
Was die Tools angeht, hängt es vom jeweiligen Unternehmen ab. Es gibt kein Tool, das für alle gleichermaßen geeignet ist.