
코드 시리즈로 보안 인프라를 정복하는 코더 시리즈: 잘못된 보안 구성 - 부적절한 권한
Die Bedrohungen für die Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Es ist so schlimm geworden, dass der Versuch, mit ihnen Schritt zu halten, nachdem Programme bereitgestellt wurden, fast unmöglich geworden ist. Stattdessen setzen kluge Unternehmen auf das Konzept "Infrastructure as Code", bei dem Entwickler bereits während der Erstellung von Anwendungen zu deren Sicherheit beitragen. In dieser Serie geht es darum, Sie auf die Sicherheit vorzubereiten, damit Sie die Schritte verstehen, die Sie als Entwickler unternehmen können, um mit der Bereitstellung einer sicheren Infrastruktur als Code in Ihrer eigenen Organisation zu beginnen.
Sicherheitsfehlkonfigurationen, insbesondere solche der Sorte "falsche Berechtigungen", treten am häufigsten auf, wenn ein Entwickler einen neuen Benutzer anlegt oder einer Anwendung als Werkzeug Berechtigungen erteilt, um eine Aufgabe zu erfüllen. Dies könnte zum Beispiel geschehen, um Informationen aus einer Datenbank zu sammeln. Wenn jedoch die Berechtigungen für den neuen Benutzer zu hoch angesetzt oder nicht standardmäßig für die jeweilige Aufgabe konfiguriert sind, kann dies eine ernsthafte Schwachstelle in den Code einbringen.
Bevor wir dazu kommen, testen Sie doch gleich mal Ihre Fähigkeiten. Versuchen Sie, einige unzulässige Berechtigungsschwachstellen zu finden und zu beheben:
Wie haben Sie abgeschnitten? Lassen Sie uns ein wenig tiefer graben:
Einem Benutzer oder einer Anwendung volle Rechte zu geben oder sich einfach nicht die Mühe zu machen, zu definieren, was der neue Benutzer tun können soll und welche Verhaltensweisen eingeschränkt sind, ist sicherlich der schnellste Weg, um neuen Code einzuführen. Und wenn alles perfekt läuft, wird die Anwendung diese Berechtigungen nutzen, um die ihr zugewiesene Aufgabe zu erfüllen. Die Gefahr besteht darin, dass ein Hacker diesen Prozess entdeckt und dann den Benutzer kompromittiert. Auch wenn der Benutzer erstellt wurde, um eine bestimmte Funktion für eine bestimmte Anwendung zu erfüllen, kann er, wenn er kompromittiert wurde, einem Angreifer ermöglichen, andere Anwendungen, Daten oder sogar das Netzwerk zu gefährden.
Wie werden Sicherheitsfehlkonfigurationen ausgenutzt?
Um die Gefahr zu veranschaulichen, lassen Sie uns einen Blick darauf werfen, wie eine häufige Aufgabe manchmal innerhalb der Docker-Cloud-Umgebung kodiert wird. Nehmen wir an, dass ein Entwickler den Prometheus MySQL Exporter-Dienst verwendet, um Informationen aus einer Datenbank zu sammeln. Der einfachste Weg, dies zu ermöglichen, besteht darin, dem Exporter die Berechtigung zum Zugriff auf die Datenbank zu erteilen. Der Code könnte also etwa so aussehen:
FROM mysql:latest
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT ALL ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
Dies würde sicherlich dafür sorgen, dass der Exporteur seine Aufgabe erfüllen kann. Da die Berechtigungen jedoch nicht definiert sind, hat der Exporteur tatsächlich die Möglichkeit, fast alles zu tun. Natürlich würde der Exporteur selbst niemals außerhalb seiner programmierten Verhaltensweisen handeln. Was würde aber passieren, wenn ein Angreifer in der Lage wäre, den Exporter-Dienst zu kompromittieren? In diesem Fall könnte der Angreifer, da ihm volle Rechte eingeräumt wurden, alle Arten von nicht autorisierten Aufgaben mit dem SQL-Dienst durchführen.
Sichern und Beseitigen von unzulässigen Berechtigungen
Auch hier wenden wir uns dem Konzept der Infrastruktur als Code zu. Wenn Sie die Sicherheit in Ihre Anwendungen codieren, während diese erstellt werden, dann wird das Netzwerk immer auf einer viel besseren Gesamtbasis stehen, wenn es um Cybersicherheit geht.
Wenn ein Entwickler im obigen Docker-Beispiel möchte, dass der Prometheus-MySQL-Exporter eine Datenbank abfragen kann, dann kann er das sicherer machen, indem er definiert, was er dürfen soll. Ein gutes Beispiel hierfür wäre:
FROM mysql:latest
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT PROCESS, REPLICATION CLIENT ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
In diesem Fall hat der für den Prometheus-MySQL-Exporter-Dienst konfigurierte MySQL-Benutzer nur eingeschränkte Rechte für den MySQL-Dienst. Insbesondere sind nur die Berechtigungen PROCESS und REPLICATION CLIENT erlaubt. Dies würde einen böswilligen Benutzer daran hindern, einen kompromittierten Prometheus-MySQL-Exporter-Dienst auszunutzen.
Die Einschränkung von Berechtigungen auf Code-Ebene kann sicherstellen, dass Benutzer und Anwendungen nur genügend Berechtigungen für die jeweilige Aufgabe haben. Und das kann einen großen Beitrag zur Sicherung Ihrer Netzwerke und zur Umsetzung des Konzepts "Infrastruktur als Code" leisten.
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 unseren Showcase der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Fähigkeiten zu verfeinern und auf dem neuesten Stand zu halten.


보안 구성 오류, 특히 부적절한 권한 구성은 개발자가 새 사용자를 만들거나 작업을 수행하기 위해 응용 프로그램을 도구로 사용할 권한을 부여할 때마다 자주 발생합니다.
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 Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.
Demo-Termin vereinbarenMatias 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.


Die Bedrohungen für die Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Es ist so schlimm geworden, dass der Versuch, mit ihnen Schritt zu halten, nachdem Programme bereitgestellt wurden, fast unmöglich geworden ist. Stattdessen setzen kluge Unternehmen auf das Konzept "Infrastructure as Code", bei dem Entwickler bereits während der Erstellung von Anwendungen zu deren Sicherheit beitragen. In dieser Serie geht es darum, Sie auf die Sicherheit vorzubereiten, damit Sie die Schritte verstehen, die Sie als Entwickler unternehmen können, um mit der Bereitstellung einer sicheren Infrastruktur als Code in Ihrer eigenen Organisation zu beginnen.
Sicherheitsfehlkonfigurationen, insbesondere solche der Sorte "falsche Berechtigungen", treten am häufigsten auf, wenn ein Entwickler einen neuen Benutzer anlegt oder einer Anwendung als Werkzeug Berechtigungen erteilt, um eine Aufgabe zu erfüllen. Dies könnte zum Beispiel geschehen, um Informationen aus einer Datenbank zu sammeln. Wenn jedoch die Berechtigungen für den neuen Benutzer zu hoch angesetzt oder nicht standardmäßig für die jeweilige Aufgabe konfiguriert sind, kann dies eine ernsthafte Schwachstelle in den Code einbringen.
Bevor wir dazu kommen, testen Sie doch gleich mal Ihre Fähigkeiten. Versuchen Sie, einige unzulässige Berechtigungsschwachstellen zu finden und zu beheben:
Wie haben Sie abgeschnitten? Lassen Sie uns ein wenig tiefer graben:
Einem Benutzer oder einer Anwendung volle Rechte zu geben oder sich einfach nicht die Mühe zu machen, zu definieren, was der neue Benutzer tun können soll und welche Verhaltensweisen eingeschränkt sind, ist sicherlich der schnellste Weg, um neuen Code einzuführen. Und wenn alles perfekt läuft, wird die Anwendung diese Berechtigungen nutzen, um die ihr zugewiesene Aufgabe zu erfüllen. Die Gefahr besteht darin, dass ein Hacker diesen Prozess entdeckt und dann den Benutzer kompromittiert. Auch wenn der Benutzer erstellt wurde, um eine bestimmte Funktion für eine bestimmte Anwendung zu erfüllen, kann er, wenn er kompromittiert wurde, einem Angreifer ermöglichen, andere Anwendungen, Daten oder sogar das Netzwerk zu gefährden.
Wie werden Sicherheitsfehlkonfigurationen ausgenutzt?
Um die Gefahr zu veranschaulichen, lassen Sie uns einen Blick darauf werfen, wie eine häufige Aufgabe manchmal innerhalb der Docker-Cloud-Umgebung kodiert wird. Nehmen wir an, dass ein Entwickler den Prometheus MySQL Exporter-Dienst verwendet, um Informationen aus einer Datenbank zu sammeln. Der einfachste Weg, dies zu ermöglichen, besteht darin, dem Exporter die Berechtigung zum Zugriff auf die Datenbank zu erteilen. Der Code könnte also etwa so aussehen:
FROM mysql:latest
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT ALL ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
Dies würde sicherlich dafür sorgen, dass der Exporteur seine Aufgabe erfüllen kann. Da die Berechtigungen jedoch nicht definiert sind, hat der Exporteur tatsächlich die Möglichkeit, fast alles zu tun. Natürlich würde der Exporteur selbst niemals außerhalb seiner programmierten Verhaltensweisen handeln. Was würde aber passieren, wenn ein Angreifer in der Lage wäre, den Exporter-Dienst zu kompromittieren? In diesem Fall könnte der Angreifer, da ihm volle Rechte eingeräumt wurden, alle Arten von nicht autorisierten Aufgaben mit dem SQL-Dienst durchführen.
Sichern und Beseitigen von unzulässigen Berechtigungen
Auch hier wenden wir uns dem Konzept der Infrastruktur als Code zu. Wenn Sie die Sicherheit in Ihre Anwendungen codieren, während diese erstellt werden, dann wird das Netzwerk immer auf einer viel besseren Gesamtbasis stehen, wenn es um Cybersicherheit geht.
Wenn ein Entwickler im obigen Docker-Beispiel möchte, dass der Prometheus-MySQL-Exporter eine Datenbank abfragen kann, dann kann er das sicherer machen, indem er definiert, was er dürfen soll. Ein gutes Beispiel hierfür wäre:
FROM mysql:latest
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT PROCESS, REPLICATION CLIENT ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
In diesem Fall hat der für den Prometheus-MySQL-Exporter-Dienst konfigurierte MySQL-Benutzer nur eingeschränkte Rechte für den MySQL-Dienst. Insbesondere sind nur die Berechtigungen PROCESS und REPLICATION CLIENT erlaubt. Dies würde einen böswilligen Benutzer daran hindern, einen kompromittierten Prometheus-MySQL-Exporter-Dienst auszunutzen.
Die Einschränkung von Berechtigungen auf Code-Ebene kann sicherstellen, dass Benutzer und Anwendungen nur genügend Berechtigungen für die jeweilige Aufgabe haben. Und das kann einen großen Beitrag zur Sicherung Ihrer Netzwerke und zur Umsetzung des Konzepts "Infrastruktur als Code" leisten.
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 unseren Showcase der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Fähigkeiten zu verfeinern und auf dem neuesten Stand zu halten.

Die Bedrohungen für die Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Es ist so schlimm geworden, dass der Versuch, mit ihnen Schritt zu halten, nachdem Programme bereitgestellt wurden, fast unmöglich geworden ist. Stattdessen setzen kluge Unternehmen auf das Konzept "Infrastructure as Code", bei dem Entwickler bereits während der Erstellung von Anwendungen zu deren Sicherheit beitragen. In dieser Serie geht es darum, Sie auf die Sicherheit vorzubereiten, damit Sie die Schritte verstehen, die Sie als Entwickler unternehmen können, um mit der Bereitstellung einer sicheren Infrastruktur als Code in Ihrer eigenen Organisation zu beginnen.
Sicherheitsfehlkonfigurationen, insbesondere solche der Sorte "falsche Berechtigungen", treten am häufigsten auf, wenn ein Entwickler einen neuen Benutzer anlegt oder einer Anwendung als Werkzeug Berechtigungen erteilt, um eine Aufgabe zu erfüllen. Dies könnte zum Beispiel geschehen, um Informationen aus einer Datenbank zu sammeln. Wenn jedoch die Berechtigungen für den neuen Benutzer zu hoch angesetzt oder nicht standardmäßig für die jeweilige Aufgabe konfiguriert sind, kann dies eine ernsthafte Schwachstelle in den Code einbringen.
Bevor wir dazu kommen, testen Sie doch gleich mal Ihre Fähigkeiten. Versuchen Sie, einige unzulässige Berechtigungsschwachstellen zu finden und zu beheben:
Wie haben Sie abgeschnitten? Lassen Sie uns ein wenig tiefer graben:
Einem Benutzer oder einer Anwendung volle Rechte zu geben oder sich einfach nicht die Mühe zu machen, zu definieren, was der neue Benutzer tun können soll und welche Verhaltensweisen eingeschränkt sind, ist sicherlich der schnellste Weg, um neuen Code einzuführen. Und wenn alles perfekt läuft, wird die Anwendung diese Berechtigungen nutzen, um die ihr zugewiesene Aufgabe zu erfüllen. Die Gefahr besteht darin, dass ein Hacker diesen Prozess entdeckt und dann den Benutzer kompromittiert. Auch wenn der Benutzer erstellt wurde, um eine bestimmte Funktion für eine bestimmte Anwendung zu erfüllen, kann er, wenn er kompromittiert wurde, einem Angreifer ermöglichen, andere Anwendungen, Daten oder sogar das Netzwerk zu gefährden.
Wie werden Sicherheitsfehlkonfigurationen ausgenutzt?
Um die Gefahr zu veranschaulichen, lassen Sie uns einen Blick darauf werfen, wie eine häufige Aufgabe manchmal innerhalb der Docker-Cloud-Umgebung kodiert wird. Nehmen wir an, dass ein Entwickler den Prometheus MySQL Exporter-Dienst verwendet, um Informationen aus einer Datenbank zu sammeln. Der einfachste Weg, dies zu ermöglichen, besteht darin, dem Exporter die Berechtigung zum Zugriff auf die Datenbank zu erteilen. Der Code könnte also etwa so aussehen:
FROM mysql:latest
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT ALL ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
Dies würde sicherlich dafür sorgen, dass der Exporteur seine Aufgabe erfüllen kann. Da die Berechtigungen jedoch nicht definiert sind, hat der Exporteur tatsächlich die Möglichkeit, fast alles zu tun. Natürlich würde der Exporteur selbst niemals außerhalb seiner programmierten Verhaltensweisen handeln. Was würde aber passieren, wenn ein Angreifer in der Lage wäre, den Exporter-Dienst zu kompromittieren? In diesem Fall könnte der Angreifer, da ihm volle Rechte eingeräumt wurden, alle Arten von nicht autorisierten Aufgaben mit dem SQL-Dienst durchführen.
Sichern und Beseitigen von unzulässigen Berechtigungen
Auch hier wenden wir uns dem Konzept der Infrastruktur als Code zu. Wenn Sie die Sicherheit in Ihre Anwendungen codieren, während diese erstellt werden, dann wird das Netzwerk immer auf einer viel besseren Gesamtbasis stehen, wenn es um Cybersicherheit geht.
Wenn ein Entwickler im obigen Docker-Beispiel möchte, dass der Prometheus-MySQL-Exporter eine Datenbank abfragen kann, dann kann er das sicherer machen, indem er definiert, was er dürfen soll. Ein gutes Beispiel hierfür wäre:
FROM mysql:latest
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT PROCESS, REPLICATION CLIENT ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
In diesem Fall hat der für den Prometheus-MySQL-Exporter-Dienst konfigurierte MySQL-Benutzer nur eingeschränkte Rechte für den MySQL-Dienst. Insbesondere sind nur die Berechtigungen PROCESS und REPLICATION CLIENT erlaubt. Dies würde einen böswilligen Benutzer daran hindern, einen kompromittierten Prometheus-MySQL-Exporter-Dienst auszunutzen.
Die Einschränkung von Berechtigungen auf Code-Ebene kann sicherstellen, dass Benutzer und Anwendungen nur genügend Berechtigungen für die jeweilige Aufgabe haben. Und das kann einen großen Beitrag zur Sicherung Ihrer Netzwerke und zur Umsetzung des Konzepts "Infrastruktur als Code" leisten.
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 unseren Showcase der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Fähigkeiten zu verfeinern und auf dem neuesten Stand zu halten.

Klicken Sie auf den folgenden Link und laden Sie die PDF-Datei dieser Ressource herunter.
Secure Code Warrior ist für Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.
Bericht anzeigenDemo-Termin vereinbarenMatias 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.
Die Bedrohungen für die Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Es ist so schlimm geworden, dass der Versuch, mit ihnen Schritt zu halten, nachdem Programme bereitgestellt wurden, fast unmöglich geworden ist. Stattdessen setzen kluge Unternehmen auf das Konzept "Infrastructure as Code", bei dem Entwickler bereits während der Erstellung von Anwendungen zu deren Sicherheit beitragen. In dieser Serie geht es darum, Sie auf die Sicherheit vorzubereiten, damit Sie die Schritte verstehen, die Sie als Entwickler unternehmen können, um mit der Bereitstellung einer sicheren Infrastruktur als Code in Ihrer eigenen Organisation zu beginnen.
Sicherheitsfehlkonfigurationen, insbesondere solche der Sorte "falsche Berechtigungen", treten am häufigsten auf, wenn ein Entwickler einen neuen Benutzer anlegt oder einer Anwendung als Werkzeug Berechtigungen erteilt, um eine Aufgabe zu erfüllen. Dies könnte zum Beispiel geschehen, um Informationen aus einer Datenbank zu sammeln. Wenn jedoch die Berechtigungen für den neuen Benutzer zu hoch angesetzt oder nicht standardmäßig für die jeweilige Aufgabe konfiguriert sind, kann dies eine ernsthafte Schwachstelle in den Code einbringen.
Bevor wir dazu kommen, testen Sie doch gleich mal Ihre Fähigkeiten. Versuchen Sie, einige unzulässige Berechtigungsschwachstellen zu finden und zu beheben:
Wie haben Sie abgeschnitten? Lassen Sie uns ein wenig tiefer graben:
Einem Benutzer oder einer Anwendung volle Rechte zu geben oder sich einfach nicht die Mühe zu machen, zu definieren, was der neue Benutzer tun können soll und welche Verhaltensweisen eingeschränkt sind, ist sicherlich der schnellste Weg, um neuen Code einzuführen. Und wenn alles perfekt läuft, wird die Anwendung diese Berechtigungen nutzen, um die ihr zugewiesene Aufgabe zu erfüllen. Die Gefahr besteht darin, dass ein Hacker diesen Prozess entdeckt und dann den Benutzer kompromittiert. Auch wenn der Benutzer erstellt wurde, um eine bestimmte Funktion für eine bestimmte Anwendung zu erfüllen, kann er, wenn er kompromittiert wurde, einem Angreifer ermöglichen, andere Anwendungen, Daten oder sogar das Netzwerk zu gefährden.
Wie werden Sicherheitsfehlkonfigurationen ausgenutzt?
Um die Gefahr zu veranschaulichen, lassen Sie uns einen Blick darauf werfen, wie eine häufige Aufgabe manchmal innerhalb der Docker-Cloud-Umgebung kodiert wird. Nehmen wir an, dass ein Entwickler den Prometheus MySQL Exporter-Dienst verwendet, um Informationen aus einer Datenbank zu sammeln. Der einfachste Weg, dies zu ermöglichen, besteht darin, dem Exporter die Berechtigung zum Zugriff auf die Datenbank zu erteilen. Der Code könnte also etwa so aussehen:
FROM mysql:latest
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT ALL ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
Dies würde sicherlich dafür sorgen, dass der Exporteur seine Aufgabe erfüllen kann. Da die Berechtigungen jedoch nicht definiert sind, hat der Exporteur tatsächlich die Möglichkeit, fast alles zu tun. Natürlich würde der Exporteur selbst niemals außerhalb seiner programmierten Verhaltensweisen handeln. Was würde aber passieren, wenn ein Angreifer in der Lage wäre, den Exporter-Dienst zu kompromittieren? In diesem Fall könnte der Angreifer, da ihm volle Rechte eingeräumt wurden, alle Arten von nicht autorisierten Aufgaben mit dem SQL-Dienst durchführen.
Sichern und Beseitigen von unzulässigen Berechtigungen
Auch hier wenden wir uns dem Konzept der Infrastruktur als Code zu. Wenn Sie die Sicherheit in Ihre Anwendungen codieren, während diese erstellt werden, dann wird das Netzwerk immer auf einer viel besseren Gesamtbasis stehen, wenn es um Cybersicherheit geht.
Wenn ein Entwickler im obigen Docker-Beispiel möchte, dass der Prometheus-MySQL-Exporter eine Datenbank abfragen kann, dann kann er das sicherer machen, indem er definiert, was er dürfen soll. Ein gutes Beispiel hierfür wäre:
FROM mysql:latest
COPY ./scripts/create_users.sh /docker-entrypoint-initdb.d/
USER 999
CREATE USER exporter@% IDENTIFIED BY $EXPORTER_PASSWORD;
GRANT PROCESS, REPLICATION CLIENT ON *.* TO exporter@%;
GRANT SELECT ON performance_schema.* TO exporter@%;
In diesem Fall hat der für den Prometheus-MySQL-Exporter-Dienst konfigurierte MySQL-Benutzer nur eingeschränkte Rechte für den MySQL-Dienst. Insbesondere sind nur die Berechtigungen PROCESS und REPLICATION CLIENT erlaubt. Dies würde einen böswilligen Benutzer daran hindern, einen kompromittierten Prometheus-MySQL-Exporter-Dienst auszunutzen.
Die Einschränkung von Berechtigungen auf Code-Ebene kann sicherstellen, dass Benutzer und Anwendungen nur genügend Berechtigungen für die jeweilige Aufgabe haben. Und das kann einen großen Beitrag zur Sicherung Ihrer Netzwerke und zur Umsetzung des Konzepts "Infrastruktur als Code" leisten.
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 unseren Showcase der Schulungsplattform Secure Code Warrior ausprobieren, um alle Ihre Cybersecurity-Fähigkeiten zu verfeinern und auf dem neuesten Stand zu halten.
Inhaltsverzeichnis
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 Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.
Demo-Termin vereinbarenDownloadHilfreiche Ressourcen für den Einstieg
Themen und Inhalte der Sicherheitsschulung
Die branchenweit besten Inhalte werden unter Berücksichtigung der Kundenrollen ständig weiterentwickelt und an die sich ständig verändernde Softwareentwicklungsumgebung angepasst. Es werden Themen angeboten, die alle Bereiche von KI bis hin zu XQuery-Injection abdecken und für verschiedene Rollen geeignet sind, von Architekten und Ingenieuren bis hin zu Produktmanagern und QA-Mitarbeitern. Sehen Sie sich vorab an, was der Inhaltskatalog nach Themen und Rollen zu bieten hat.
Die Kamer van Koophandel setzt Maßstäbe für entwicklergesteuerte Sicherheit in großem Maßstab
Die Kamer van Koophandel berichtet, wie sie sicheres Codieren durch rollenbasierte Zertifizierungen, Trust Score-Benchmarking und eine Kultur der gemeinsamen Verantwortung für Sicherheit in die tägliche Entwicklungsarbeit integriert hat.
Bedrohungsmodellierung mit KI: So wird jeder Entwickler zum Bedrohungsmodellierer
Sie werden besser gerüstet sein, um Entwicklern dabei zu helfen, Ideen und Techniken zur Bedrohungsmodellierung mit den KI-Tools zu kombinieren, die sie bereits verwenden, um die Sicherheit zu erhöhen, die Zusammenarbeit zu verbessern und von Anfang an widerstandsfähigere Software zu entwickeln.
Hilfreiche Ressourcen für den Einstieg
Cybermon ist zurück: Die KI-Mission zum Besiegen des Bosses ist jetzt auf Abruf verfügbar.
Cybermon 2025 Bit The Boss ist jetzt das ganze Jahr über bei SCW verfügbar. Stärken Sie die Entwicklung von Sicherheits-KI in großem Maßstab durch den Einsatz fortschrittlicher KI/LLM-Sicherheitslösungen.
Erläuterung des Gesetzes zur Cyber-Resilienz: Bedeutung der Entwicklung von Sicherheitsdesign-Software
Erfahren Sie mehr über die Anforderungen und Anwendungsbereiche des EU-Cyberresilienzgesetzes (CRA) und darüber, wie sich Ingenieurteams durch Design, Praktiken, Schwachstellenvermeidung und die Einrichtung einer Entwicklerumgebung sicher vorbereiten können.
Erfolgsfaktor 1: Definierte und messbare Erfolgskriterien
Enabler 1 bietet eine zehnteilige Reihe von Erfolgsfaktoren, die zeigen, wie sichere Codierung zu Geschäftsergebnissen wie einer schnelleren Risikominderung und Kostensenkung für die Reifung langfristiger Programme beitragen kann.




%20(1).avif)
.avif)
