Blog

Coders Conquer Security Infrastruktur als Code Serie: Deaktivierte Sicherheitsfunktionen

Matias Madou, Ph.D.
Veröffentlicht Mai 04, 2020

Die Bedrohungen für die Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Je mehr Facetten unseres Lebens digitalisiert werden, desto mehr steht für Cyberkriminelle auf dem Spiel - es gibt zu viel Code, den es zu schützen gilt, und private Daten sind zu wertvoll. Und, nun ja, der Versuch, mit jedem Aspekt der Angriffsfläche Schritt zu halten und sie zu verteidigen, nachdem die Programme bereitgestellt wurden, ist fast unmöglich geworden.

Es gibt Ansätze, die einige dieser Symptome lindern können, und einer davon ist offensichtlich, wenn kluge Organisationen das Konzept von Infrastructure as Code (IaC) annehmen. Natürlich gibt es, wie bei jeder Entwicklung, einige Sicherheitsfallen, die es zu umschiffen gilt. Und da die Entwickler an dem Code arbeiten, der die lebenswichtige Infrastruktur für den Betrieb der Anwendungen generiert, ist das Sicherheitsbewusstsein in jeder Phase des Prozesses entscheidend.

Wie genau würde ein Entwickler, der neu in einer Cloud-Server-Umgebung ist, vorgehen, um sich fortzubilden, die Grundlagen zu erlernen und mit erhöhtem Sicherheitsbewusstsein an den Build heranzugehen? Wir haben die nächste "Coders Conquer Security"-Reihe ins Leben gerufen, um häufige IaC-Schwachstellen zu beheben. In den nächsten Blogs werden wir uns auf Schritte konzentrieren, die Sie als Entwickler unternehmen können, um mit der Bereitstellung einer sicheren Infrastruktur als Code in Ihrem eigenen Unternehmen zu beginnen.

Fangen wir an.

Es gibt eine Fabel aus dem alten amerikanischen Westen über einen Mann, der paranoid war, dass Banditen sein Gehöft angreifen und ausrauben würden. Um dies zu kompensieren, investierte er in alle möglichen Sicherheitsmaßnahmen, wie z. B. den Einbau einer extrastarken Eingangstür, das Vernageln aller Fenster und die Aufbewahrung vieler Gewehre in unmittelbarer Nähe. Trotzdem wurde er eines Nachts im Schlaf ausgeraubt, weil er vergessen hatte, die Seitentür zu verschließen. Die Banditen fanden einfach die deaktivierte Sicherung und nutzten die Situation schnell aus.

Mit deaktivierten Sicherheitsfunktionen in Ihrer Infrastruktur verhält es sich ähnlich. Selbst wenn Ihr Netzwerk über eine starke Sicherheitsinfrastruktur verfügt, nützt es sehr wenig, wenn Elemente deaktiviert wurden.

Lassen Sie mich eine Herausforderung stellen, bevor wir eintauchen:

Besuchen Sie den obigen Link, und Sie werden zu unserer gamifizierten Trainingsplattform transportiert, wo Sie jetzt versuchen können, eine deaktivierte Sicherheitsfunktion zu überwinden. (Achtung! Es öffnet sich in Kubernetes, aber verwenden Sie das Dropdown-Menü und Sie können zwischen Docker, CloudFormation, Terraform und Ansible wählen).

Wie haben Sie abgeschnitten? Wenn Sie noch etwas Arbeit vor sich haben, lesen Sie weiter:

Sicherheitsfunktionen können aus verschiedenen Gründen deaktiviert werden. Bei einigen Anwendungen und Frameworks sind sie möglicherweise standardmäßig deaktiviert und müssen erst eingeschaltet werden, um zu funktionieren. Es ist auch möglich, dass Administratoren bestimmte Sicherheitsfunktionen deaktiviert haben, um bestimmte Aufgaben leichter ausführen zu können, ohne ständig herausgefordert oder blockiert zu werden (z. B. ein AWS S3-Bucket öffentlich machen). Nach Abschluss ihrer Arbeit vergessen sie vielleicht, diese deaktivierten Funktionen wieder zu aktivieren. Sie könnten es auch vorziehen, sie ausgeschaltet zu lassen, um ihre Arbeit in Zukunft einfacher zu machen.

Warum deaktivierte Sicherheitsfunktionen so gefährlich sind

Eine oder mehrere deaktivierte Sicherheitsfunktionen zu haben, ist aus mehreren Gründen schlecht. Zum einen wurde die Sicherheitsfunktion in die Infrastrukturressourcen integriert, um sie vor einem bekannten Exploit, einer Bedrohung oder einer Schwachstelle zu schützen. Wenn sie deaktiviert ist, kann sie Ihre Ressourcen nicht mehr schützen.

Angreifer werden immer zuerst versuchen, leicht ausnutzbare Schwachstellen zu finden und können sogar ein Skript verwenden, um gängige Schwachstellen durchzuspielen. Es ist nicht unähnlich einem Dieb, der alle Autos in einer Straße überprüft, um zu sehen, ob irgendwelche Türen unverschlossen sind, was viel einfacher ist, als ein Fenster einzuschlagen. Hacker könnten überrascht sein, wenn sie feststellen, dass eine gängige Sicherheitsabwehr inaktiv ist. Aber wenn das passiert, wird es nicht lange dauern, bis sie es ausnutzen.

Zweitens: Gute Sicherheitsmaßnahmen zu haben und sie dann zu deaktivieren, schafft ein falsches Gefühl von Sicherheit. Administratoren denken vielleicht, dass sie vor allgemeinen Bedrohungen geschützt sind, wenn sie nicht wissen, dass jemand diese Verteidigungsmaßnahmen deaktiviert hat.

Als Beispiel dafür, wie ein Angreifer eine deaktivierte Sicherheitsfunktion ausnutzen könnte, betrachten Sie die AWS S3-Sicherheitsfunktion "block public access". Mit Amazon S3 block public access können Kontoadministratoren und Bucket-Besitzer ganz einfach zentralisierte Kontrollen einrichten, um den öffentlichen Zugriff auf ihre Amazon S3-Ressourcen zu beschränken. Einige Administratoren, die auf Probleme beim Zugriff auf den S3-Bucket stoßen, entscheiden sich jedoch dafür, diesen öffentlich zu machen, um die Aufgabe so schnell wie möglich zu erledigen. Wenn sie vergessen, diese Sicherheitsfunktion zu aktivieren, hat ein Angreifer vollständigen Zugriff auf die in diesem S3-Bucket gespeicherten Informationen, was nicht nur zur Offenlegung von Informationen führt, sondern auch zusätzliche Kosten aufgrund von Datenübertragungsgebühren verursacht.

Lassen Sie uns einige reale Codes vergleichen; sehen Sie sich diese CloudFormation-Schnipsel an:

Verwundbar:

CorporateBucket:
Type: AWS::S3::Bucket
Properties:
PublicAccessBlockConfiguration:
BlockPublicAcls: false
BlockPublicPolicy: false
IgnorePublicAcls: false
RestrictPublicBuckets: false
VersioningConfiguration:
Status: Enabled
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: "AES256"

Sicher:

CorporateBucket:
Type: AWS::S3::Bucket
Eigenschaften:
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
VersioningConfiguration:
Status: Enabled
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: "AES256"

Verhindern von deaktivierten Sicherheitsfunktionen

Zu verhindern, dass deaktivierte Sicherheitsfunktionen Ihrem Unternehmen Schaden zufügen, ist ebenso eine Frage der Richtlinie wie der Praxis. Es sollte eine feste Richtlinie geben, die besagt, dass Sicherheitsfunktionen nur unter ganz bestimmten Umständen deaktiviert werden sollten. Vorfälle, in denen Funktionen vorübergehend deaktiviert werden müssen, um an einem Problem zu arbeiten oder Anwendungen zu aktualisieren, sollten protokolliert werden. Nach Abschluss der erforderlichen Arbeiten sollten die Funktionen überprüft werden, um sicherzustellen, dass sie vollständig reaktiviert wurden.

Wenn eine Sicherheitsfunktion dauerhaft deaktiviert werden muss, um den Betrieb zu rationalisieren, sollten für die betroffenen Daten andere Schutzmechanismen vorgesehen werden, um sicherzustellen, dass Hacker nicht in der Lage sind, auf die Daten zuzugreifen, wenn der Standardschutz nicht vorhanden ist. Wenn eine benötigte Schutzfunktion deaktiviert wurde, ist es nur eine Frage der Zeit, bis ein Angreifer diese unverschlossene Tür findet und die Situation ausnutzt.

Lernen Sie mehr, fordern Sie sich selbst heraus:

Schauen Sie sich die Secure Code Warrior Blog-Seiten, um weitere Informationen über diese Sicherheitslücke zu erhalten und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor den Auswirkungen anderer Sicherheitslücken und Schwachstellen schützen können.

Sind Sie bereit, diese Schwachstelle zu finden und zu beheben, nachdem Sie diesen Beitrag gelesen haben? Es ist an der Zeit,eine gamifizierte IaC-Sicherheitsherausforderung auf der Plattform Secure Code Warrior auszuprobieren, um alle Ihre Cybersecurity-Fähigkeiten zu verfeinern und auf dem neuesten Stand zu halten.

Dies ist eine wöchentliche Serie, die sich mit den acht wichtigsten Infrastructure as Code-Schwachstellen befasst; schauen Sie nächste Woche wieder vorbei, um mehr zu erfahren!

Ressource anzeigen
Ressource anzeigen

Angreifer werden immer zuerst versuchen, leicht ausnutzbare Schwachstellen zu finden und können sogar ein Skript verwenden, um gängige Schwachstellen durchzuspielen. Es ist nicht unähnlich einem Dieb, der alle Autos in einer Straße überprüft, um zu sehen, ob irgendwelche Türen unverschlossen sind, was viel einfacher ist, als ein Fenster einzuschlagen.

Interessiert an mehr?

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchen
Weitergeben:
Autor
Matias Madou, Ph.D.
Veröffentlicht Mai 04, 2020

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

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.

Weitergeben:

Die Bedrohungen für die Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Je mehr Facetten unseres Lebens digitalisiert werden, desto mehr steht für Cyberkriminelle auf dem Spiel - es gibt zu viel Code, den es zu schützen gilt, und private Daten sind zu wertvoll. Und, nun ja, der Versuch, mit jedem Aspekt der Angriffsfläche Schritt zu halten und sie zu verteidigen, nachdem die Programme bereitgestellt wurden, ist fast unmöglich geworden.

Es gibt Ansätze, die einige dieser Symptome lindern können, und einer davon ist offensichtlich, wenn kluge Organisationen das Konzept von Infrastructure as Code (IaC) annehmen. Natürlich gibt es, wie bei jeder Entwicklung, einige Sicherheitsfallen, die es zu umschiffen gilt. Und da die Entwickler an dem Code arbeiten, der die lebenswichtige Infrastruktur für den Betrieb der Anwendungen generiert, ist das Sicherheitsbewusstsein in jeder Phase des Prozesses entscheidend.

Wie genau würde ein Entwickler, der neu in einer Cloud-Server-Umgebung ist, vorgehen, um sich fortzubilden, die Grundlagen zu erlernen und mit erhöhtem Sicherheitsbewusstsein an den Build heranzugehen? Wir haben die nächste "Coders Conquer Security"-Reihe ins Leben gerufen, um häufige IaC-Schwachstellen zu beheben. In den nächsten Blogs werden wir uns auf Schritte konzentrieren, die Sie als Entwickler unternehmen können, um mit der Bereitstellung einer sicheren Infrastruktur als Code in Ihrem eigenen Unternehmen zu beginnen.

Fangen wir an.

Es gibt eine Fabel aus dem alten amerikanischen Westen über einen Mann, der paranoid war, dass Banditen sein Gehöft angreifen und ausrauben würden. Um dies zu kompensieren, investierte er in alle möglichen Sicherheitsmaßnahmen, wie z. B. den Einbau einer extrastarken Eingangstür, das Vernageln aller Fenster und die Aufbewahrung vieler Gewehre in unmittelbarer Nähe. Trotzdem wurde er eines Nachts im Schlaf ausgeraubt, weil er vergessen hatte, die Seitentür zu verschließen. Die Banditen fanden einfach die deaktivierte Sicherung und nutzten die Situation schnell aus.

Mit deaktivierten Sicherheitsfunktionen in Ihrer Infrastruktur verhält es sich ähnlich. Selbst wenn Ihr Netzwerk über eine starke Sicherheitsinfrastruktur verfügt, nützt es sehr wenig, wenn Elemente deaktiviert wurden.

Lassen Sie mich eine Herausforderung stellen, bevor wir eintauchen:

Besuchen Sie den obigen Link, und Sie werden zu unserer gamifizierten Trainingsplattform transportiert, wo Sie jetzt versuchen können, eine deaktivierte Sicherheitsfunktion zu überwinden. (Achtung! Es öffnet sich in Kubernetes, aber verwenden Sie das Dropdown-Menü und Sie können zwischen Docker, CloudFormation, Terraform und Ansible wählen).

Wie haben Sie abgeschnitten? Wenn Sie noch etwas Arbeit vor sich haben, lesen Sie weiter:

Sicherheitsfunktionen können aus verschiedenen Gründen deaktiviert werden. Bei einigen Anwendungen und Frameworks sind sie möglicherweise standardmäßig deaktiviert und müssen erst eingeschaltet werden, um zu funktionieren. Es ist auch möglich, dass Administratoren bestimmte Sicherheitsfunktionen deaktiviert haben, um bestimmte Aufgaben leichter ausführen zu können, ohne ständig herausgefordert oder blockiert zu werden (z. B. ein AWS S3-Bucket öffentlich machen). Nach Abschluss ihrer Arbeit vergessen sie vielleicht, diese deaktivierten Funktionen wieder zu aktivieren. Sie könnten es auch vorziehen, sie ausgeschaltet zu lassen, um ihre Arbeit in Zukunft einfacher zu machen.

Warum deaktivierte Sicherheitsfunktionen so gefährlich sind

Eine oder mehrere deaktivierte Sicherheitsfunktionen zu haben, ist aus mehreren Gründen schlecht. Zum einen wurde die Sicherheitsfunktion in die Infrastrukturressourcen integriert, um sie vor einem bekannten Exploit, einer Bedrohung oder einer Schwachstelle zu schützen. Wenn sie deaktiviert ist, kann sie Ihre Ressourcen nicht mehr schützen.

Angreifer werden immer zuerst versuchen, leicht ausnutzbare Schwachstellen zu finden und können sogar ein Skript verwenden, um gängige Schwachstellen durchzuspielen. Es ist nicht unähnlich einem Dieb, der alle Autos in einer Straße überprüft, um zu sehen, ob irgendwelche Türen unverschlossen sind, was viel einfacher ist, als ein Fenster einzuschlagen. Hacker könnten überrascht sein, wenn sie feststellen, dass eine gängige Sicherheitsabwehr inaktiv ist. Aber wenn das passiert, wird es nicht lange dauern, bis sie es ausnutzen.

Zweitens: Gute Sicherheitsmaßnahmen zu haben und sie dann zu deaktivieren, schafft ein falsches Gefühl von Sicherheit. Administratoren denken vielleicht, dass sie vor allgemeinen Bedrohungen geschützt sind, wenn sie nicht wissen, dass jemand diese Verteidigungsmaßnahmen deaktiviert hat.

Als Beispiel dafür, wie ein Angreifer eine deaktivierte Sicherheitsfunktion ausnutzen könnte, betrachten Sie die AWS S3-Sicherheitsfunktion "block public access". Mit Amazon S3 block public access können Kontoadministratoren und Bucket-Besitzer ganz einfach zentralisierte Kontrollen einrichten, um den öffentlichen Zugriff auf ihre Amazon S3-Ressourcen zu beschränken. Einige Administratoren, die auf Probleme beim Zugriff auf den S3-Bucket stoßen, entscheiden sich jedoch dafür, diesen öffentlich zu machen, um die Aufgabe so schnell wie möglich zu erledigen. Wenn sie vergessen, diese Sicherheitsfunktion zu aktivieren, hat ein Angreifer vollständigen Zugriff auf die in diesem S3-Bucket gespeicherten Informationen, was nicht nur zur Offenlegung von Informationen führt, sondern auch zusätzliche Kosten aufgrund von Datenübertragungsgebühren verursacht.

Lassen Sie uns einige reale Codes vergleichen; sehen Sie sich diese CloudFormation-Schnipsel an:

Verwundbar:

CorporateBucket:
Type: AWS::S3::Bucket
Properties:
PublicAccessBlockConfiguration:
BlockPublicAcls: false
BlockPublicPolicy: false
IgnorePublicAcls: false
RestrictPublicBuckets: false
VersioningConfiguration:
Status: Enabled
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: "AES256"

Sicher:

CorporateBucket:
Type: AWS::S3::Bucket
Eigenschaften:
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
VersioningConfiguration:
Status: Enabled
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: "AES256"

Verhindern von deaktivierten Sicherheitsfunktionen

Zu verhindern, dass deaktivierte Sicherheitsfunktionen Ihrem Unternehmen Schaden zufügen, ist ebenso eine Frage der Richtlinie wie der Praxis. Es sollte eine feste Richtlinie geben, die besagt, dass Sicherheitsfunktionen nur unter ganz bestimmten Umständen deaktiviert werden sollten. Vorfälle, in denen Funktionen vorübergehend deaktiviert werden müssen, um an einem Problem zu arbeiten oder Anwendungen zu aktualisieren, sollten protokolliert werden. Nach Abschluss der erforderlichen Arbeiten sollten die Funktionen überprüft werden, um sicherzustellen, dass sie vollständig reaktiviert wurden.

Wenn eine Sicherheitsfunktion dauerhaft deaktiviert werden muss, um den Betrieb zu rationalisieren, sollten für die betroffenen Daten andere Schutzmechanismen vorgesehen werden, um sicherzustellen, dass Hacker nicht in der Lage sind, auf die Daten zuzugreifen, wenn der Standardschutz nicht vorhanden ist. Wenn eine benötigte Schutzfunktion deaktiviert wurde, ist es nur eine Frage der Zeit, bis ein Angreifer diese unverschlossene Tür findet und die Situation ausnutzt.

Lernen Sie mehr, fordern Sie sich selbst heraus:

Schauen Sie sich die Secure Code Warrior Blog-Seiten, um weitere Informationen über diese Sicherheitslücke zu erhalten und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor den Auswirkungen anderer Sicherheitslücken und Schwachstellen schützen können.

Sind Sie bereit, diese Schwachstelle zu finden und zu beheben, nachdem Sie diesen Beitrag gelesen haben? Es ist an der Zeit,eine gamifizierte IaC-Sicherheitsherausforderung auf der Plattform Secure Code Warrior auszuprobieren, um alle Ihre Cybersecurity-Fähigkeiten zu verfeinern und auf dem neuesten Stand zu halten.

Dies ist eine wöchentliche Serie, die sich mit den acht wichtigsten Infrastructure as Code-Schwachstellen befasst; schauen Sie nächste Woche wieder vorbei, um mehr zu erfahren!

Ressource anzeigen
Ressource anzeigen

Füllen Sie das folgende Formular aus, um den Bericht herunterzuladen

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.

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

Die Bedrohungen für die Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Je mehr Facetten unseres Lebens digitalisiert werden, desto mehr steht für Cyberkriminelle auf dem Spiel - es gibt zu viel Code, den es zu schützen gilt, und private Daten sind zu wertvoll. Und, nun ja, der Versuch, mit jedem Aspekt der Angriffsfläche Schritt zu halten und sie zu verteidigen, nachdem die Programme bereitgestellt wurden, ist fast unmöglich geworden.

Es gibt Ansätze, die einige dieser Symptome lindern können, und einer davon ist offensichtlich, wenn kluge Organisationen das Konzept von Infrastructure as Code (IaC) annehmen. Natürlich gibt es, wie bei jeder Entwicklung, einige Sicherheitsfallen, die es zu umschiffen gilt. Und da die Entwickler an dem Code arbeiten, der die lebenswichtige Infrastruktur für den Betrieb der Anwendungen generiert, ist das Sicherheitsbewusstsein in jeder Phase des Prozesses entscheidend.

Wie genau würde ein Entwickler, der neu in einer Cloud-Server-Umgebung ist, vorgehen, um sich fortzubilden, die Grundlagen zu erlernen und mit erhöhtem Sicherheitsbewusstsein an den Build heranzugehen? Wir haben die nächste "Coders Conquer Security"-Reihe ins Leben gerufen, um häufige IaC-Schwachstellen zu beheben. In den nächsten Blogs werden wir uns auf Schritte konzentrieren, die Sie als Entwickler unternehmen können, um mit der Bereitstellung einer sicheren Infrastruktur als Code in Ihrem eigenen Unternehmen zu beginnen.

Fangen wir an.

Es gibt eine Fabel aus dem alten amerikanischen Westen über einen Mann, der paranoid war, dass Banditen sein Gehöft angreifen und ausrauben würden. Um dies zu kompensieren, investierte er in alle möglichen Sicherheitsmaßnahmen, wie z. B. den Einbau einer extrastarken Eingangstür, das Vernageln aller Fenster und die Aufbewahrung vieler Gewehre in unmittelbarer Nähe. Trotzdem wurde er eines Nachts im Schlaf ausgeraubt, weil er vergessen hatte, die Seitentür zu verschließen. Die Banditen fanden einfach die deaktivierte Sicherung und nutzten die Situation schnell aus.

Mit deaktivierten Sicherheitsfunktionen in Ihrer Infrastruktur verhält es sich ähnlich. Selbst wenn Ihr Netzwerk über eine starke Sicherheitsinfrastruktur verfügt, nützt es sehr wenig, wenn Elemente deaktiviert wurden.

Lassen Sie mich eine Herausforderung stellen, bevor wir eintauchen:

Besuchen Sie den obigen Link, und Sie werden zu unserer gamifizierten Trainingsplattform transportiert, wo Sie jetzt versuchen können, eine deaktivierte Sicherheitsfunktion zu überwinden. (Achtung! Es öffnet sich in Kubernetes, aber verwenden Sie das Dropdown-Menü und Sie können zwischen Docker, CloudFormation, Terraform und Ansible wählen).

Wie haben Sie abgeschnitten? Wenn Sie noch etwas Arbeit vor sich haben, lesen Sie weiter:

Sicherheitsfunktionen können aus verschiedenen Gründen deaktiviert werden. Bei einigen Anwendungen und Frameworks sind sie möglicherweise standardmäßig deaktiviert und müssen erst eingeschaltet werden, um zu funktionieren. Es ist auch möglich, dass Administratoren bestimmte Sicherheitsfunktionen deaktiviert haben, um bestimmte Aufgaben leichter ausführen zu können, ohne ständig herausgefordert oder blockiert zu werden (z. B. ein AWS S3-Bucket öffentlich machen). Nach Abschluss ihrer Arbeit vergessen sie vielleicht, diese deaktivierten Funktionen wieder zu aktivieren. Sie könnten es auch vorziehen, sie ausgeschaltet zu lassen, um ihre Arbeit in Zukunft einfacher zu machen.

Warum deaktivierte Sicherheitsfunktionen so gefährlich sind

Eine oder mehrere deaktivierte Sicherheitsfunktionen zu haben, ist aus mehreren Gründen schlecht. Zum einen wurde die Sicherheitsfunktion in die Infrastrukturressourcen integriert, um sie vor einem bekannten Exploit, einer Bedrohung oder einer Schwachstelle zu schützen. Wenn sie deaktiviert ist, kann sie Ihre Ressourcen nicht mehr schützen.

Angreifer werden immer zuerst versuchen, leicht ausnutzbare Schwachstellen zu finden und können sogar ein Skript verwenden, um gängige Schwachstellen durchzuspielen. Es ist nicht unähnlich einem Dieb, der alle Autos in einer Straße überprüft, um zu sehen, ob irgendwelche Türen unverschlossen sind, was viel einfacher ist, als ein Fenster einzuschlagen. Hacker könnten überrascht sein, wenn sie feststellen, dass eine gängige Sicherheitsabwehr inaktiv ist. Aber wenn das passiert, wird es nicht lange dauern, bis sie es ausnutzen.

Zweitens: Gute Sicherheitsmaßnahmen zu haben und sie dann zu deaktivieren, schafft ein falsches Gefühl von Sicherheit. Administratoren denken vielleicht, dass sie vor allgemeinen Bedrohungen geschützt sind, wenn sie nicht wissen, dass jemand diese Verteidigungsmaßnahmen deaktiviert hat.

Als Beispiel dafür, wie ein Angreifer eine deaktivierte Sicherheitsfunktion ausnutzen könnte, betrachten Sie die AWS S3-Sicherheitsfunktion "block public access". Mit Amazon S3 block public access können Kontoadministratoren und Bucket-Besitzer ganz einfach zentralisierte Kontrollen einrichten, um den öffentlichen Zugriff auf ihre Amazon S3-Ressourcen zu beschränken. Einige Administratoren, die auf Probleme beim Zugriff auf den S3-Bucket stoßen, entscheiden sich jedoch dafür, diesen öffentlich zu machen, um die Aufgabe so schnell wie möglich zu erledigen. Wenn sie vergessen, diese Sicherheitsfunktion zu aktivieren, hat ein Angreifer vollständigen Zugriff auf die in diesem S3-Bucket gespeicherten Informationen, was nicht nur zur Offenlegung von Informationen führt, sondern auch zusätzliche Kosten aufgrund von Datenübertragungsgebühren verursacht.

Lassen Sie uns einige reale Codes vergleichen; sehen Sie sich diese CloudFormation-Schnipsel an:

Verwundbar:

CorporateBucket:
Type: AWS::S3::Bucket
Properties:
PublicAccessBlockConfiguration:
BlockPublicAcls: false
BlockPublicPolicy: false
IgnorePublicAcls: false
RestrictPublicBuckets: false
VersioningConfiguration:
Status: Enabled
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: "AES256"

Sicher:

CorporateBucket:
Type: AWS::S3::Bucket
Eigenschaften:
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
VersioningConfiguration:
Status: Enabled
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: "AES256"

Verhindern von deaktivierten Sicherheitsfunktionen

Zu verhindern, dass deaktivierte Sicherheitsfunktionen Ihrem Unternehmen Schaden zufügen, ist ebenso eine Frage der Richtlinie wie der Praxis. Es sollte eine feste Richtlinie geben, die besagt, dass Sicherheitsfunktionen nur unter ganz bestimmten Umständen deaktiviert werden sollten. Vorfälle, in denen Funktionen vorübergehend deaktiviert werden müssen, um an einem Problem zu arbeiten oder Anwendungen zu aktualisieren, sollten protokolliert werden. Nach Abschluss der erforderlichen Arbeiten sollten die Funktionen überprüft werden, um sicherzustellen, dass sie vollständig reaktiviert wurden.

Wenn eine Sicherheitsfunktion dauerhaft deaktiviert werden muss, um den Betrieb zu rationalisieren, sollten für die betroffenen Daten andere Schutzmechanismen vorgesehen werden, um sicherzustellen, dass Hacker nicht in der Lage sind, auf die Daten zuzugreifen, wenn der Standardschutz nicht vorhanden ist. Wenn eine benötigte Schutzfunktion deaktiviert wurde, ist es nur eine Frage der Zeit, bis ein Angreifer diese unverschlossene Tür findet und die Situation ausnutzt.

Lernen Sie mehr, fordern Sie sich selbst heraus:

Schauen Sie sich die Secure Code Warrior Blog-Seiten, um weitere Informationen über diese Sicherheitslücke zu erhalten und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor den Auswirkungen anderer Sicherheitslücken und Schwachstellen schützen können.

Sind Sie bereit, diese Schwachstelle zu finden und zu beheben, nachdem Sie diesen Beitrag gelesen haben? Es ist an der Zeit,eine gamifizierte IaC-Sicherheitsherausforderung auf der Plattform Secure Code Warrior auszuprobieren, um alle Ihre Cybersecurity-Fähigkeiten zu verfeinern und auf dem neuesten Stand zu halten.

Dies ist eine wöchentliche Serie, die sich mit den acht wichtigsten Infrastructure as Code-Schwachstellen befasst; schauen Sie nächste Woche wieder vorbei, um mehr zu erfahren!

Auf Ressource zugreifen

Klicken Sie auf den unten stehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Bericht ansehenDemo buchen
PDF herunterladen
Ressource anzeigen
Weitergeben:
Interessiert an mehr?

Weitergeben:
Autor
Matias Madou, Ph.D.
Veröffentlicht Mai 04, 2020

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

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.

Weitergeben:

Die Bedrohungen für die Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Je mehr Facetten unseres Lebens digitalisiert werden, desto mehr steht für Cyberkriminelle auf dem Spiel - es gibt zu viel Code, den es zu schützen gilt, und private Daten sind zu wertvoll. Und, nun ja, der Versuch, mit jedem Aspekt der Angriffsfläche Schritt zu halten und sie zu verteidigen, nachdem die Programme bereitgestellt wurden, ist fast unmöglich geworden.

Es gibt Ansätze, die einige dieser Symptome lindern können, und einer davon ist offensichtlich, wenn kluge Organisationen das Konzept von Infrastructure as Code (IaC) annehmen. Natürlich gibt es, wie bei jeder Entwicklung, einige Sicherheitsfallen, die es zu umschiffen gilt. Und da die Entwickler an dem Code arbeiten, der die lebenswichtige Infrastruktur für den Betrieb der Anwendungen generiert, ist das Sicherheitsbewusstsein in jeder Phase des Prozesses entscheidend.

Wie genau würde ein Entwickler, der neu in einer Cloud-Server-Umgebung ist, vorgehen, um sich fortzubilden, die Grundlagen zu erlernen und mit erhöhtem Sicherheitsbewusstsein an den Build heranzugehen? Wir haben die nächste "Coders Conquer Security"-Reihe ins Leben gerufen, um häufige IaC-Schwachstellen zu beheben. In den nächsten Blogs werden wir uns auf Schritte konzentrieren, die Sie als Entwickler unternehmen können, um mit der Bereitstellung einer sicheren Infrastruktur als Code in Ihrem eigenen Unternehmen zu beginnen.

Fangen wir an.

Es gibt eine Fabel aus dem alten amerikanischen Westen über einen Mann, der paranoid war, dass Banditen sein Gehöft angreifen und ausrauben würden. Um dies zu kompensieren, investierte er in alle möglichen Sicherheitsmaßnahmen, wie z. B. den Einbau einer extrastarken Eingangstür, das Vernageln aller Fenster und die Aufbewahrung vieler Gewehre in unmittelbarer Nähe. Trotzdem wurde er eines Nachts im Schlaf ausgeraubt, weil er vergessen hatte, die Seitentür zu verschließen. Die Banditen fanden einfach die deaktivierte Sicherung und nutzten die Situation schnell aus.

Mit deaktivierten Sicherheitsfunktionen in Ihrer Infrastruktur verhält es sich ähnlich. Selbst wenn Ihr Netzwerk über eine starke Sicherheitsinfrastruktur verfügt, nützt es sehr wenig, wenn Elemente deaktiviert wurden.

Lassen Sie mich eine Herausforderung stellen, bevor wir eintauchen:

Besuchen Sie den obigen Link, und Sie werden zu unserer gamifizierten Trainingsplattform transportiert, wo Sie jetzt versuchen können, eine deaktivierte Sicherheitsfunktion zu überwinden. (Achtung! Es öffnet sich in Kubernetes, aber verwenden Sie das Dropdown-Menü und Sie können zwischen Docker, CloudFormation, Terraform und Ansible wählen).

Wie haben Sie abgeschnitten? Wenn Sie noch etwas Arbeit vor sich haben, lesen Sie weiter:

Sicherheitsfunktionen können aus verschiedenen Gründen deaktiviert werden. Bei einigen Anwendungen und Frameworks sind sie möglicherweise standardmäßig deaktiviert und müssen erst eingeschaltet werden, um zu funktionieren. Es ist auch möglich, dass Administratoren bestimmte Sicherheitsfunktionen deaktiviert haben, um bestimmte Aufgaben leichter ausführen zu können, ohne ständig herausgefordert oder blockiert zu werden (z. B. ein AWS S3-Bucket öffentlich machen). Nach Abschluss ihrer Arbeit vergessen sie vielleicht, diese deaktivierten Funktionen wieder zu aktivieren. Sie könnten es auch vorziehen, sie ausgeschaltet zu lassen, um ihre Arbeit in Zukunft einfacher zu machen.

Warum deaktivierte Sicherheitsfunktionen so gefährlich sind

Eine oder mehrere deaktivierte Sicherheitsfunktionen zu haben, ist aus mehreren Gründen schlecht. Zum einen wurde die Sicherheitsfunktion in die Infrastrukturressourcen integriert, um sie vor einem bekannten Exploit, einer Bedrohung oder einer Schwachstelle zu schützen. Wenn sie deaktiviert ist, kann sie Ihre Ressourcen nicht mehr schützen.

Angreifer werden immer zuerst versuchen, leicht ausnutzbare Schwachstellen zu finden und können sogar ein Skript verwenden, um gängige Schwachstellen durchzuspielen. Es ist nicht unähnlich einem Dieb, der alle Autos in einer Straße überprüft, um zu sehen, ob irgendwelche Türen unverschlossen sind, was viel einfacher ist, als ein Fenster einzuschlagen. Hacker könnten überrascht sein, wenn sie feststellen, dass eine gängige Sicherheitsabwehr inaktiv ist. Aber wenn das passiert, wird es nicht lange dauern, bis sie es ausnutzen.

Zweitens: Gute Sicherheitsmaßnahmen zu haben und sie dann zu deaktivieren, schafft ein falsches Gefühl von Sicherheit. Administratoren denken vielleicht, dass sie vor allgemeinen Bedrohungen geschützt sind, wenn sie nicht wissen, dass jemand diese Verteidigungsmaßnahmen deaktiviert hat.

Als Beispiel dafür, wie ein Angreifer eine deaktivierte Sicherheitsfunktion ausnutzen könnte, betrachten Sie die AWS S3-Sicherheitsfunktion "block public access". Mit Amazon S3 block public access können Kontoadministratoren und Bucket-Besitzer ganz einfach zentralisierte Kontrollen einrichten, um den öffentlichen Zugriff auf ihre Amazon S3-Ressourcen zu beschränken. Einige Administratoren, die auf Probleme beim Zugriff auf den S3-Bucket stoßen, entscheiden sich jedoch dafür, diesen öffentlich zu machen, um die Aufgabe so schnell wie möglich zu erledigen. Wenn sie vergessen, diese Sicherheitsfunktion zu aktivieren, hat ein Angreifer vollständigen Zugriff auf die in diesem S3-Bucket gespeicherten Informationen, was nicht nur zur Offenlegung von Informationen führt, sondern auch zusätzliche Kosten aufgrund von Datenübertragungsgebühren verursacht.

Lassen Sie uns einige reale Codes vergleichen; sehen Sie sich diese CloudFormation-Schnipsel an:

Verwundbar:

CorporateBucket:
Type: AWS::S3::Bucket
Properties:
PublicAccessBlockConfiguration:
BlockPublicAcls: false
BlockPublicPolicy: false
IgnorePublicAcls: false
RestrictPublicBuckets: false
VersioningConfiguration:
Status: Enabled
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: "AES256"

Sicher:

CorporateBucket:
Type: AWS::S3::Bucket
Eigenschaften:
PublicAccessBlockConfiguration:
BlockPublicAcls: true
BlockPublicPolicy: true
IgnorePublicAcls: true
RestrictPublicBuckets: true
VersioningConfiguration:
Status: Enabled
BucketEncryption:
ServerSideEncryptionConfiguration:
- ServerSideEncryptionByDefault:
SSEAlgorithm: "AES256"

Verhindern von deaktivierten Sicherheitsfunktionen

Zu verhindern, dass deaktivierte Sicherheitsfunktionen Ihrem Unternehmen Schaden zufügen, ist ebenso eine Frage der Richtlinie wie der Praxis. Es sollte eine feste Richtlinie geben, die besagt, dass Sicherheitsfunktionen nur unter ganz bestimmten Umständen deaktiviert werden sollten. Vorfälle, in denen Funktionen vorübergehend deaktiviert werden müssen, um an einem Problem zu arbeiten oder Anwendungen zu aktualisieren, sollten protokolliert werden. Nach Abschluss der erforderlichen Arbeiten sollten die Funktionen überprüft werden, um sicherzustellen, dass sie vollständig reaktiviert wurden.

Wenn eine Sicherheitsfunktion dauerhaft deaktiviert werden muss, um den Betrieb zu rationalisieren, sollten für die betroffenen Daten andere Schutzmechanismen vorgesehen werden, um sicherzustellen, dass Hacker nicht in der Lage sind, auf die Daten zuzugreifen, wenn der Standardschutz nicht vorhanden ist. Wenn eine benötigte Schutzfunktion deaktiviert wurde, ist es nur eine Frage der Zeit, bis ein Angreifer diese unverschlossene Tür findet und die Situation ausnutzt.

Lernen Sie mehr, fordern Sie sich selbst heraus:

Schauen Sie sich die Secure Code Warrior Blog-Seiten, um weitere Informationen über diese Sicherheitslücke zu erhalten und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor den Auswirkungen anderer Sicherheitslücken und Schwachstellen schützen können.

Sind Sie bereit, diese Schwachstelle zu finden und zu beheben, nachdem Sie diesen Beitrag gelesen haben? Es ist an der Zeit,eine gamifizierte IaC-Sicherheitsherausforderung auf der Plattform Secure Code Warrior auszuprobieren, um alle Ihre Cybersecurity-Fähigkeiten zu verfeinern und auf dem neuesten Stand zu halten.

Dies ist eine wöchentliche Serie, die sich mit den acht wichtigsten Infrastructure as Code-Schwachstellen befasst; schauen Sie nächste Woche wieder vorbei, um mehr zu erfahren!

Inhaltsübersicht

PDF herunterladen
Ressource anzeigen
Interessiert an mehr?

Matias Madou, Ph.D., ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent im Bereich Anwendungssicherheit und konzentrierte sich dabei auf statische Analyselösungen. Später wechselte er zu Fortify in den USA, wo er erkannte, dass es nicht ausreicht, nur Codeprobleme zu erkennen, ohne den Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, den Aufwand für die Sicherheit verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht an seinem Schreibtisch im Team Awesome sitzt, steht er gerne auf der Bühne und hält Vorträge auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.

Demo buchenHerunterladen
Weitergeben:
Ressourcendrehscheibe

Ressourcen für den Einstieg

Mehr Beiträge
Ressourcendrehscheibe

Ressourcen für den Einstieg

Mehr Beiträge