Coders erobern die Sicherheit Infrastruktur als Code Serie: Unzureichender Schutz der Transportschicht
Coders erobern die Sicherheit Infrastruktur als Code Serie: Unzureichender Schutz der Transportschicht
Wenn Sie ein Entwickler sind, der mehr über die Schritte erfahren möchte, die Sie unternehmen können, um mit der Bereitstellung einer sicheren Infrastruktur als Code (IaC) in Ihrem Unternehmen zu beginnen, dann sind Sie hier genau richtig. Dies ist das nächste Kapitel unserer IaC-Reihe, das Sie in die Best Practices für IaC-Sicherheit einführen soll.
Bevor wir beginnen, wie sind Sie mit der Herausforderung aus der letzten Folge zurechtgekommen? Wenn Sie die unsichere Kryptografie beherrschen, lassen Sie uns sehen, wie Sie mit dem unzureichenden Schutz der Transportschicht zurechtkommen, bevor wir uns den Details widmen:
Möchten Sie mehr erfahren und eine perfekte Punktzahl erreichen? Lesen Sie weiter:
In unserem letzten Artikel haben wir darüber gesprochen, wie wichtig eine sichere Verschlüsselung ist, um alle wichtigen oder persönlichen Daten zu schützen, die von Anwendungen und Programmen gespeichert werden. Wenn Sie über eine starke Verschlüsselung verfügen, fungiert sie als perfekte letzte Verteidigungslinie. Selbst wenn ein Angreifer in der Lage ist, diese Daten zu stehlen, sind die in diesen Dateien gespeicherten Informationen geschützt, wenn sie stark verschlüsselt sind.
Der Schutz von Daten im Ruhezustand ist jedoch nur ein Teil einer vollständigen Datenverteidigung. Wann immer gültige Benutzer auf geschützte Daten zugreifen müssen, müssen diese an sie gesendet werden. Gelegentlich werden Anwendungen auch Daten mit anderen Programmen als Teil einer Gesamtarbeitslast austauschen. Wenn die Transportschicht nicht geschützt ist, ist sie sowohl für das Ausspähen von außen als auch für unautorisierte interne Zugriffe anfällig. Daher kann ein unzureichender Schutz der Transportschicht zu ernsthaften Problemen führen.
Es ist ein weit verbreitetes Problem. Die Sicherheitsorganisation OWASP unterhält sogar eine ganze Seite über unzureichenden Transportschichtschutz.
Warum ist ein unzureichender Schutz der Transportschicht gefährlich?
Wenn Sie Ihre Transportschichten nicht ausreichend schützen, ist es für geschickte Hacker relativ einfach, Informationen, die zwischen Ihren Benutzern und Ihren Anwendungen fließen, mit Techniken wie Man-in-the-Middle-Angriffen abzufangen. Der wahrscheinlich gefährlichste Aspekt dieser Art von Schnüffelei ist, dass sie für interne Cybersicherheitsplattformen oder Scans fast völlig unsichtbar ist, da sie außerhalb Ihres Netzwerks und Ihrer Kontrolle stattfindet.
Zum Beispiel in einer Docker-Umgebung, in der ein Nginx-Dienst bereitgestellt wird:
services:
nginx:
image: localhost:5000/scw_nginx
build: ./nginx
secrets:
- nginx_cert
- nginx_key
volumes:
- type: bind
source: ./nginx/nginx.conf
target: /etc/nginx/nginx.conf
read_only: yes
ports:
- 80:8443
networks:
- frontend
deploy:
restart_policy: *default-restart_policy
resources: *default-resources_policy
Die Nginx-Dienstkonfiguration verschlüsselt oder schützt die Verbindung nicht, wodurch alle über die Verbindung ausgetauschten Informationen anfällig für eine Vielzahl von Angriffen oder Schnüffeleien sind.
server {
server_name scw-dev-blog.org;
listen 8443;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Oftmals ist das erste Signal, dass jemand in Ihren Transportschichten schnüffelt, wenn eine große Anzahl gestohlener Benutzerpasswörter in nachfolgenden Angriffen verwendet wird. Wenn andere Daten wie Kundeninformationen, Finanzdaten oder wichtige Firmengeheimnisse über eine unsichere Transportschicht gestohlen werden, merken Sie vielleicht nicht einmal, dass Sie kompromittiert wurden.
Und es ist nicht nur die Transportschicht zwischen Benutzern und Anwendungen, die geschützt werden muss. Am Backend kommunizieren viele Anwendungen untereinander und mit Servern, die weiter hinten in der Workflow-Kette stehen. Diese interne Kommunikation ist zwar in der Regel nicht anfällig für das Ausspähen von außen, kann aber Daten für Benutzer offenlegen, die zwar Zugang zum Netzwerk haben, aber nicht autorisiert sind, bestimmte streng geschützte oder sensible Informationen einzusehen.
Ordnungsgemäße Sicherung der Transportschichten für vollständigen Datenschutz
Der Schutz von Transportschichten wird am besten während der Erstellung von Anwendungen vorgenommen. Dieser Prozess beginnt damit, eine sichere Backend-Infrastruktur zu haben. Für Websites sollte alles über HTTPS erfolgen. Mischen Sie niemals HTTP- und HTTPS-Infrastruktur. Sie sollten Ihre Websites sogar so einstellen, dass ungesicherte HTTP-Anfragen automatisch an die HTTPS-Infrastruktur weitergeleitet werden.
In dem Beispiel von oben wäre eine korrekte Methode zum Schutz der Transportschicht folgende:
server {
server_name scw-dev-blog.org;
listen 8443 ssl;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
In diesem Beispiel sind alle Verbindungen mit dem Nginx-Dienst stark verschlüsselt. Der Server-Abschnitt der Nginx-Konfiguration enthält nur listen 8443 ssl , um SSL zum Schutz der Verbindungen zu erzwingen.
Um Ihre Daten vor Insider-Bedrohungen zu schützen, sollten Entwickler ein starkes Transportschicht-Verschlüsselungsprotokoll wie TLS 1.2 verwenden. Sobald Sie TLS 1.2 oder ein gleichwertiges Protokoll einsetzen, sollten schwächere Protokolle wie SSL v2 vollständig aus Ihrer Infrastruktur entfernt und automatisch von der Verwendung ausgeschlossen werden.
Und denken Sie immer daran, dass die Absicherung einer Anwendung erst dann vollständig ist, wenn sowohl die Daten im Ruhezustand als auch die Transportschichten ausreichend geschützt sind. Auf diese Weise können Sie einen vollständigen Ende-zu-Ende-Schutz für Daten sowohl intern als auch bei der Weitergabe an autorisierte externe Benutzer gewährleisten.
Besuchen Sie 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 Folgen anderer Sicherheitslücken schützen können. Sie können auch eine Demo der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Kenntnisse zu schärfen und auf dem neuesten Stand zu halten.
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.
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.
Coders erobern die Sicherheit Infrastruktur als Code Serie: Unzureichender Schutz der Transportschicht
Wenn Sie ein Entwickler sind, der mehr über die Schritte erfahren möchte, die Sie unternehmen können, um mit der Bereitstellung einer sicheren Infrastruktur als Code (IaC) in Ihrem Unternehmen zu beginnen, dann sind Sie hier genau richtig. Dies ist das nächste Kapitel unserer IaC-Reihe, das Sie in die Best Practices für IaC-Sicherheit einführen soll.
Bevor wir beginnen, wie sind Sie mit der Herausforderung aus der letzten Folge zurechtgekommen? Wenn Sie die unsichere Kryptografie beherrschen, lassen Sie uns sehen, wie Sie mit dem unzureichenden Schutz der Transportschicht zurechtkommen, bevor wir uns den Details widmen:
Möchten Sie mehr erfahren und eine perfekte Punktzahl erreichen? Lesen Sie weiter:
In unserem letzten Artikel haben wir darüber gesprochen, wie wichtig eine sichere Verschlüsselung ist, um alle wichtigen oder persönlichen Daten zu schützen, die von Anwendungen und Programmen gespeichert werden. Wenn Sie über eine starke Verschlüsselung verfügen, fungiert sie als perfekte letzte Verteidigungslinie. Selbst wenn ein Angreifer in der Lage ist, diese Daten zu stehlen, sind die in diesen Dateien gespeicherten Informationen geschützt, wenn sie stark verschlüsselt sind.
Der Schutz von Daten im Ruhezustand ist jedoch nur ein Teil einer vollständigen Datenverteidigung. Wann immer gültige Benutzer auf geschützte Daten zugreifen müssen, müssen diese an sie gesendet werden. Gelegentlich werden Anwendungen auch Daten mit anderen Programmen als Teil einer Gesamtarbeitslast austauschen. Wenn die Transportschicht nicht geschützt ist, ist sie sowohl für das Ausspähen von außen als auch für unautorisierte interne Zugriffe anfällig. Daher kann ein unzureichender Schutz der Transportschicht zu ernsthaften Problemen führen.
Es ist ein weit verbreitetes Problem. Die Sicherheitsorganisation OWASP unterhält sogar eine ganze Seite über unzureichenden Transportschichtschutz.
Warum ist ein unzureichender Schutz der Transportschicht gefährlich?
Wenn Sie Ihre Transportschichten nicht ausreichend schützen, ist es für geschickte Hacker relativ einfach, Informationen, die zwischen Ihren Benutzern und Ihren Anwendungen fließen, mit Techniken wie Man-in-the-Middle-Angriffen abzufangen. Der wahrscheinlich gefährlichste Aspekt dieser Art von Schnüffelei ist, dass sie für interne Cybersicherheitsplattformen oder Scans fast völlig unsichtbar ist, da sie außerhalb Ihres Netzwerks und Ihrer Kontrolle stattfindet.
Zum Beispiel in einer Docker-Umgebung, in der ein Nginx-Dienst bereitgestellt wird:
services:
nginx:
image: localhost:5000/scw_nginx
build: ./nginx
secrets:
- nginx_cert
- nginx_key
volumes:
- type: bind
source: ./nginx/nginx.conf
target: /etc/nginx/nginx.conf
read_only: yes
ports:
- 80:8443
networks:
- frontend
deploy:
restart_policy: *default-restart_policy
resources: *default-resources_policy
Die Nginx-Dienstkonfiguration verschlüsselt oder schützt die Verbindung nicht, wodurch alle über die Verbindung ausgetauschten Informationen anfällig für eine Vielzahl von Angriffen oder Schnüffeleien sind.
server {
server_name scw-dev-blog.org;
listen 8443;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Oftmals ist das erste Signal, dass jemand in Ihren Transportschichten schnüffelt, wenn eine große Anzahl gestohlener Benutzerpasswörter in nachfolgenden Angriffen verwendet wird. Wenn andere Daten wie Kundeninformationen, Finanzdaten oder wichtige Firmengeheimnisse über eine unsichere Transportschicht gestohlen werden, merken Sie vielleicht nicht einmal, dass Sie kompromittiert wurden.
Und es ist nicht nur die Transportschicht zwischen Benutzern und Anwendungen, die geschützt werden muss. Am Backend kommunizieren viele Anwendungen untereinander und mit Servern, die weiter hinten in der Workflow-Kette stehen. Diese interne Kommunikation ist zwar in der Regel nicht anfällig für das Ausspähen von außen, kann aber Daten für Benutzer offenlegen, die zwar Zugang zum Netzwerk haben, aber nicht autorisiert sind, bestimmte streng geschützte oder sensible Informationen einzusehen.
Ordnungsgemäße Sicherung der Transportschichten für vollständigen Datenschutz
Der Schutz von Transportschichten wird am besten während der Erstellung von Anwendungen vorgenommen. Dieser Prozess beginnt damit, eine sichere Backend-Infrastruktur zu haben. Für Websites sollte alles über HTTPS erfolgen. Mischen Sie niemals HTTP- und HTTPS-Infrastruktur. Sie sollten Ihre Websites sogar so einstellen, dass ungesicherte HTTP-Anfragen automatisch an die HTTPS-Infrastruktur weitergeleitet werden.
In dem Beispiel von oben wäre eine korrekte Methode zum Schutz der Transportschicht folgende:
server {
server_name scw-dev-blog.org;
listen 8443 ssl;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+AESGCM:EDH+AESGCM;
ssl_prefer_server_ciphers on;
ssl_certificate /run/secrets/nginx_cert;
ssl_certificate_key /run/secrets/nginx_key;
access_log /dev/stdout;
error_log /dev/stderr;
location / {
proxy_pass http://wordpress:8080;
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
In diesem Beispiel sind alle Verbindungen mit dem Nginx-Dienst stark verschlüsselt. Der Server-Abschnitt der Nginx-Konfiguration enthält nur listen 8443 ssl , um SSL zum Schutz der Verbindungen zu erzwingen.
Um Ihre Daten vor Insider-Bedrohungen zu schützen, sollten Entwickler ein starkes Transportschicht-Verschlüsselungsprotokoll wie TLS 1.2 verwenden. Sobald Sie TLS 1.2 oder ein gleichwertiges Protokoll einsetzen, sollten schwächere Protokolle wie SSL v2 vollständig aus Ihrer Infrastruktur entfernt und automatisch von der Verwendung ausgeschlossen werden.
Und denken Sie immer daran, dass die Absicherung einer Anwendung erst dann vollständig ist, wenn sowohl die Daten im Ruhezustand als auch die Transportschichten ausreichend geschützt sind. Auf diese Weise können Sie einen vollständigen Ende-zu-Ende-Schutz für Daten sowohl intern als auch bei der Weitergabe an autorisierte externe Benutzer gewährleisten.
Besuchen Sie 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 Folgen anderer Sicherheitslücken schützen können. Sie können auch eine Demo der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Kenntnisse zu schärfen und auf dem neuesten Stand zu halten.