Blog

Coders erobern die Sicherheit Infrastruktur als Code Serie: Unzureichender Schutz der Transportschicht

Matias Madou, Ph.D.
Veröffentlicht Jun 01, 2020

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.

Ressource anzeigen
Ressource anzeigen

Gelegentlich tauschen Anwendungen auch Daten mit anderen Programmen als Teil einer Gesamtarbeitslast aus. Wenn die Transportschicht nicht geschützt ist, ist sie sowohl für das Ausspähen von außen als auch für unbefugte interne Einblicke anfällig.

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 Jun 01, 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:

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.

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.

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.

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
Weitergeben:
Interessiert an mehr?

Weitergeben:
Autor
Matias Madou, Ph.D.
Veröffentlicht Jun 01, 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:

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.

Inhaltsübersicht

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