Coders Conquer Security Infrastruktur als Code Serie: Unsichere Kryptographie

Veröffentlicht am 25. Mai 2020
von Matias Madou, Ph.D.
FALLSTUDIE

Coders Conquer Security Infrastruktur als Code Serie: Unsichere Kryptographie

Veröffentlicht am 25. Mai 2020
von Matias Madou, Ph.D.
Ressource anzeigen
Ressource anzeigen

Kluge Unternehmen setzen auf das Konzept "Infrastruktur als Code", und es sind Entwickler wie Sie, die einen wichtigen Beitrag zur Erstellung von sicherem Code leisten können, auch außerhalb der Erstellung einer Anwendung. Der Weg dorthin mag zunächst lang erscheinen, aber er lohnt sich, wenn Sie sich von Ihren Mitstreitern abheben wollen.

Bevor wir mit dem nächsten Kapitel unserer aktuellen "Coders Conquer Security"-Serie beginnen, möchte ich Sie einladen, eine gamifizierte Herausforderung zur Schwachstelle bei der Speicherung sensibler Daten zu spielen; spielen Sie jetzt und wählen Sie zwischen Kubernetes, Terraform, Ansible, Docker oder CloudFormation:

Wie war das? Wenn Ihr Wissen etwas Arbeit braucht, lesen Sie weiter:

Heutzutage ist die Verschlüsselung von kritischen Daten wie Passwörtern, persönlichen Informationen und Finanzdaten im Ruhezustand ein Eckpfeiler jeder Cybersicherheitsverteidigung. In vielerlei Hinsicht fungiert sie sowohl als letzte Verteidigungslinie als auch als eine der besten Arten des Schutzes. Denn selbst wenn ein Angreifer in der Lage ist, andere Verteidigungsmaßnahmen zu durchbrechen und an kritische Dateien zu gelangen, solange diese ordnungsgemäß gehasht und gespeichert sind, wird ihm das nicht viel nützen.

Dies dient auch als solider sekundärer Schutz gegen böswillige Insider, da verschlüsselte Dateien separate Schlüssel oder Passwörter vom Rest des Netzwerks haben können. In diesem Fall könnte jemand wie ein Systemadministrator oder ein Hacker, der die Anmeldeinformationen eines Administrators kompromittiert hat, in der Lage sein, ein geschütztes Verzeichnis zu durchsuchen, aber dennoch nicht in der Lage sein, die verschlüsselten Dateien, die er dort findet, zu entsperren, wenn der Verschlüsselungsschlüssel an anderer Stelle gespeichert ist.

Natürlich beruhen alle Verschlüsselungsschutzmethoden auf starken Verschlüsselungsstandards, die selbst von den leistungsfähigsten Computern nicht geknackt werden können.

Warum ist unsichere Kryptographie gefährlich?

Wenn es um Computertechnologie geht, stehen die Fähigkeit, starke Verschlüsselungsalgorithmen zu erstellen, und die Fähigkeit, sie zu brechen, seit langem im Wettbewerb. Bereits 1977 entwickelte die US-Regierung den Data Encryption Standard (DES), einen 56-Bit-Algorithmus, der damals angesichts der relativen Leistungsfähigkeit von Computern als sicher galt.

Aber Computer entwickelten sich weiter, und die Menschen fanden Wege, sie gemeinsam zu vernetzen, um ihre Leistung noch weiter zu steigern. 1999 gelang es der Electronic Frontier Foundation in Zusammenarbeit mit Distributed.net, die Verschlüsselung eines DES-geschützten Dokuments in nur 22 Stunden öffentlich zu knacken. Plötzlich war jedes Dokument, das durch DES-Verschlüsselung geschützt war, nicht mehr sicher.

Ob Sie es glauben oder nicht, einige Organisationen schützen ihre kritischen Dateien immer noch mit dem DES-Algorithmus oder mit einem ähnlich schwachen Verschlüsselungsschutz. Und während 1999 ein verteiltes Netzwerk nötig war, um die 56-Bit-Verschlüsselung zu knacken, kann das heute fast jeder ausreichend leistungsfähige Einzelplatzrechner mit etwas Zeit schaffen. Hacker haben auch spezielle Cracking-Maschinen entwickelt, die aus einer Reihe von Grafikprozessor-Einheiten (GPUs) bestehen. Diese GPUs sind außerordentlich gut in dieser Aufgabe, sind relativ kostengünstig zu beschaffen und lokal zu vernetzen.

Wenn Sie sich heute dafür entscheiden, Ihre kritischen Dateien mit einem unsicheren oder schwachen kryptografischen Algorithmus zu schützen, dann wird es nicht lange dauern, bis die meisten Hacker diese Dateien aufbrechen und lesbar machen können. Wenn Sie von einer Datenpanne betroffen sind, dann müssen Sie davon ausgehen, dass die Dateien irgendwann kompromittiert werden, wenn sie nicht ausreichend geschützt waren.

Der folgende Kubernetes-Codeausschnitt verwendet zum Beispiel einen schwachen Verschlüsselungsalgorithmus, um die Informationen auf der Ebene des NGINX-Ingress-Controllers zu schützen:

apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-load-balancer-conf
namespace: kube-system
data:
ssl-ciphers: DES-CBC3-SHA
ssl-protocols: "TLSv1.2"

In diesem Beispiel wurde zum Schutz der Informationen die DES-Chiffriersuite verwendet. Ein Angreifer könnte sie jedoch leicht entschlüsseln und auf sensible Informationen zugreifen.

Es wird empfohlen, starke Verschlüsselungsalgorithmen zu verwenden. Im folgenden Kubernetes-Beispiel wurden starke Verschlüsselungssuiten verwendet, um die Informationen auf der Ebene des NGINX-Ingress-Controllers zu schützen:

apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-load-balancer-conf
namespace: kube-system
data:
ssl-ciphers: |
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:
ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:
ECDHE-RSA-AES128-SHA256
ssl-protocols: "TLSv1.2"

In diesem Beispiel wurde eine starke Suite von Chiffren verwendet, um zu verhindern, dass Angreifer potenziellen Zugriff auf sensible Informationen erhalten.

Schutz kritischer Informationen mit starker Verschlüsselung

Heute ist eine starke Verschlüsselung verfügbar, die nahezu unknackbar ist. Im Jahr 2001 hat das National Institute of Standards and Technology (NIST) eine neue Verschlüsselungstechnologie entwickelt, die DES ersetzen soll. Sie wird Advanced Encryption Standard (AES) genannt und verwendet drei verschiedene Schlüssellängen, entweder 128, 192 oder 256 Bit. Die 256-Bit-AES-Verschlüsselung ist die sicherste, obwohl alle drei beim heutigen Stand der Technik als nahezu unknackbar gelten. Tests mit Supercomputern haben ergeben, dass es Tausende von Jahren konstanter Arbeit erfordern würde, um die meisten AES-geschützten Dokumente zu knacken.

Um kritische Dateien richtig zu schützen, sollten Entwickler sie zunächst identifizieren. Es ist nicht notwendig, alles in einem Netzwerk zu verschlüsseln, da dies den Betrieb durch den ständigen Ver- und Entschlüsselungsprozess verlangsamen könnte. Aber kritische Dateien wie Personalakten, Kundendaten und Finanzinformationen müssen angemessen geschützt werden. Im Grunde ist es ein Balanceakt zwischen Sicherheit und einem funktionierenden System.

Und diese Daten sollten nach einem der AES-Standards verschlüsselt sein, sogar mit einer 256-Bit-Verschlüsselung für wirklich kritische Informationen, die niemals in die falschen Hände geraten sollten.

Eine weitere Sache, die zu berücksichtigen ist, ist die Tatsache, dass das Hinzufügen von Verschlüsselung wie das Hinzufügen von mehr Passwörtern zu einer Website ist. Das bedeutet, dass autorisierte Benutzer den Überblick über die Verschlüsselungsschlüssel behalten müssen. Um zu verhindern, dass dies zu einem Engpass im Arbeitsablauf wird, sollten Sie die Implementierung einer Schlüsselverwaltungsplattform in Betracht ziehen, um diese Schlüssel im Auge zu behalten und sie sicher aufzubewahren. Und selbst wenn Sie keine zentrale Schlüsselverwaltung verwenden, sollten Sie sicherstellen, dass alle Schlüssel und Passwörter geschützt sind, um zu gewährleisten, dass unbefugte Benutzer keinen Zugriff auf Ihre sichersten Datentresore haben.

Schauen Sie sich die Secure Code Warrior Blog-Seiten, um mehr über diese Schwachstelle zu erfahren und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor den Auswirkungen anderer Sicherheitslücken schützen können. Sie können auch eine Demo einer IaC-Herausforderung innerhalb der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Fähigkeiten zu verfeinern und auf dem neuesten Stand zu 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

Coders Conquer Security Infrastruktur als Code Serie: Unsichere Kryptographie

Veröffentlicht am 25. Mai 2020
Von Matias Madou, Ph.D.

Kluge Unternehmen setzen auf das Konzept "Infrastruktur als Code", und es sind Entwickler wie Sie, die einen wichtigen Beitrag zur Erstellung von sicherem Code leisten können, auch außerhalb der Erstellung einer Anwendung. Der Weg dorthin mag zunächst lang erscheinen, aber er lohnt sich, wenn Sie sich von Ihren Mitstreitern abheben wollen.

Bevor wir mit dem nächsten Kapitel unserer aktuellen "Coders Conquer Security"-Serie beginnen, möchte ich Sie einladen, eine gamifizierte Herausforderung zur Schwachstelle bei der Speicherung sensibler Daten zu spielen; spielen Sie jetzt und wählen Sie zwischen Kubernetes, Terraform, Ansible, Docker oder CloudFormation:

Wie war das? Wenn Ihr Wissen etwas Arbeit braucht, lesen Sie weiter:

Heutzutage ist die Verschlüsselung von kritischen Daten wie Passwörtern, persönlichen Informationen und Finanzdaten im Ruhezustand ein Eckpfeiler jeder Cybersicherheitsverteidigung. In vielerlei Hinsicht fungiert sie sowohl als letzte Verteidigungslinie als auch als eine der besten Arten des Schutzes. Denn selbst wenn ein Angreifer in der Lage ist, andere Verteidigungsmaßnahmen zu durchbrechen und an kritische Dateien zu gelangen, solange diese ordnungsgemäß gehasht und gespeichert sind, wird ihm das nicht viel nützen.

Dies dient auch als solider sekundärer Schutz gegen böswillige Insider, da verschlüsselte Dateien separate Schlüssel oder Passwörter vom Rest des Netzwerks haben können. In diesem Fall könnte jemand wie ein Systemadministrator oder ein Hacker, der die Anmeldeinformationen eines Administrators kompromittiert hat, in der Lage sein, ein geschütztes Verzeichnis zu durchsuchen, aber dennoch nicht in der Lage sein, die verschlüsselten Dateien, die er dort findet, zu entsperren, wenn der Verschlüsselungsschlüssel an anderer Stelle gespeichert ist.

Natürlich beruhen alle Verschlüsselungsschutzmethoden auf starken Verschlüsselungsstandards, die selbst von den leistungsfähigsten Computern nicht geknackt werden können.

Warum ist unsichere Kryptographie gefährlich?

Wenn es um Computertechnologie geht, stehen die Fähigkeit, starke Verschlüsselungsalgorithmen zu erstellen, und die Fähigkeit, sie zu brechen, seit langem im Wettbewerb. Bereits 1977 entwickelte die US-Regierung den Data Encryption Standard (DES), einen 56-Bit-Algorithmus, der damals angesichts der relativen Leistungsfähigkeit von Computern als sicher galt.

Aber Computer entwickelten sich weiter, und die Menschen fanden Wege, sie gemeinsam zu vernetzen, um ihre Leistung noch weiter zu steigern. 1999 gelang es der Electronic Frontier Foundation in Zusammenarbeit mit Distributed.net, die Verschlüsselung eines DES-geschützten Dokuments in nur 22 Stunden öffentlich zu knacken. Plötzlich war jedes Dokument, das durch DES-Verschlüsselung geschützt war, nicht mehr sicher.

Ob Sie es glauben oder nicht, einige Organisationen schützen ihre kritischen Dateien immer noch mit dem DES-Algorithmus oder mit einem ähnlich schwachen Verschlüsselungsschutz. Und während 1999 ein verteiltes Netzwerk nötig war, um die 56-Bit-Verschlüsselung zu knacken, kann das heute fast jeder ausreichend leistungsfähige Einzelplatzrechner mit etwas Zeit schaffen. Hacker haben auch spezielle Cracking-Maschinen entwickelt, die aus einer Reihe von Grafikprozessor-Einheiten (GPUs) bestehen. Diese GPUs sind außerordentlich gut in dieser Aufgabe, sind relativ kostengünstig zu beschaffen und lokal zu vernetzen.

Wenn Sie sich heute dafür entscheiden, Ihre kritischen Dateien mit einem unsicheren oder schwachen kryptografischen Algorithmus zu schützen, dann wird es nicht lange dauern, bis die meisten Hacker diese Dateien aufbrechen und lesbar machen können. Wenn Sie von einer Datenpanne betroffen sind, dann müssen Sie davon ausgehen, dass die Dateien irgendwann kompromittiert werden, wenn sie nicht ausreichend geschützt waren.

Der folgende Kubernetes-Codeausschnitt verwendet zum Beispiel einen schwachen Verschlüsselungsalgorithmus, um die Informationen auf der Ebene des NGINX-Ingress-Controllers zu schützen:

apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-load-balancer-conf
namespace: kube-system
data:
ssl-ciphers: DES-CBC3-SHA
ssl-protocols: "TLSv1.2"

In diesem Beispiel wurde zum Schutz der Informationen die DES-Chiffriersuite verwendet. Ein Angreifer könnte sie jedoch leicht entschlüsseln und auf sensible Informationen zugreifen.

Es wird empfohlen, starke Verschlüsselungsalgorithmen zu verwenden. Im folgenden Kubernetes-Beispiel wurden starke Verschlüsselungssuiten verwendet, um die Informationen auf der Ebene des NGINX-Ingress-Controllers zu schützen:

apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-load-balancer-conf
namespace: kube-system
data:
ssl-ciphers: |
ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:
ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:
ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:
ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES128-SHA256:
ECDHE-RSA-AES128-SHA256
ssl-protocols: "TLSv1.2"

In diesem Beispiel wurde eine starke Suite von Chiffren verwendet, um zu verhindern, dass Angreifer potenziellen Zugriff auf sensible Informationen erhalten.

Schutz kritischer Informationen mit starker Verschlüsselung

Heute ist eine starke Verschlüsselung verfügbar, die nahezu unknackbar ist. Im Jahr 2001 hat das National Institute of Standards and Technology (NIST) eine neue Verschlüsselungstechnologie entwickelt, die DES ersetzen soll. Sie wird Advanced Encryption Standard (AES) genannt und verwendet drei verschiedene Schlüssellängen, entweder 128, 192 oder 256 Bit. Die 256-Bit-AES-Verschlüsselung ist die sicherste, obwohl alle drei beim heutigen Stand der Technik als nahezu unknackbar gelten. Tests mit Supercomputern haben ergeben, dass es Tausende von Jahren konstanter Arbeit erfordern würde, um die meisten AES-geschützten Dokumente zu knacken.

Um kritische Dateien richtig zu schützen, sollten Entwickler sie zunächst identifizieren. Es ist nicht notwendig, alles in einem Netzwerk zu verschlüsseln, da dies den Betrieb durch den ständigen Ver- und Entschlüsselungsprozess verlangsamen könnte. Aber kritische Dateien wie Personalakten, Kundendaten und Finanzinformationen müssen angemessen geschützt werden. Im Grunde ist es ein Balanceakt zwischen Sicherheit und einem funktionierenden System.

Und diese Daten sollten nach einem der AES-Standards verschlüsselt sein, sogar mit einer 256-Bit-Verschlüsselung für wirklich kritische Informationen, die niemals in die falschen Hände geraten sollten.

Eine weitere Sache, die zu berücksichtigen ist, ist die Tatsache, dass das Hinzufügen von Verschlüsselung wie das Hinzufügen von mehr Passwörtern zu einer Website ist. Das bedeutet, dass autorisierte Benutzer den Überblick über die Verschlüsselungsschlüssel behalten müssen. Um zu verhindern, dass dies zu einem Engpass im Arbeitsablauf wird, sollten Sie die Implementierung einer Schlüsselverwaltungsplattform in Betracht ziehen, um diese Schlüssel im Auge zu behalten und sie sicher aufzubewahren. Und selbst wenn Sie keine zentrale Schlüsselverwaltung verwenden, sollten Sie sicherstellen, dass alle Schlüssel und Passwörter geschützt sind, um zu gewährleisten, dass unbefugte Benutzer keinen Zugriff auf Ihre sichersten Datentresore haben.

Schauen Sie sich die Secure Code Warrior Blog-Seiten, um mehr über diese Schwachstelle zu erfahren und zu erfahren, wie Sie Ihr Unternehmen und Ihre Kunden vor den Auswirkungen anderer Sicherheitslücken schützen können. Sie können auch eine Demo einer IaC-Herausforderung innerhalb der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Fähigkeiten zu verfeinern und auf dem neuesten Stand zu 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.

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