
Programmierer erobern die Sicherheitsinfrastruktur als Code-Serie: Fehlkonfiguration der Sicherheit — falsche Berechtigungen
Bedrohungen der Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Es ist so schlimm geworden, dass es fast unmöglich geworden ist, nach der Bereitstellung von Programmen mit ihnen Schritt zu halten. Stattdessen befürworten kluge Unternehmen das Konzept der Infrastruktur als Code, bei dem Entwickler zur Entwicklung sicherer Anwendungen beitragen, während sie noch in der Entwicklung sind. In dieser Serie geht es darum, Sie auf die Sicherheit vorzubereiten, damit Sie die Schritte verstehen, die Sie als Entwickler ergreifen können, um mit der Implementierung einer sicheren Infrastruktur als Code in Ihrem eigenen Unternehmen zu beginnen.
Sicherheitsfehlkonfigurationen, insbesondere solche mit falschen Berechtigungen, treten am häufigsten auf, wenn ein Entwickler einen neuen Benutzer erstellt oder die Erlaubnis für eine Anwendung als Tool erteilt, um eine Aufgabe zu erledigen. Dies könnte beispielsweise geschehen, um Informationen aus einer Datenbank zu sammeln. Wenn die Berechtigungen für den neuen Benutzer jedoch zu hoch eingestellt sind oder nicht standardmäßig für die jeweilige Aufgabe konfiguriert sind, kann dies zu einer schwerwiegenden Sicherheitslücke im Code führen.
Warum testen Sie nicht gleich Ihre Fähigkeiten, bevor wir darauf eingehen? Versuchen Sie, einige Sicherheitslücken mit falschen Zugriffsrechten zu finden und zu beheben:
Wie hast du dich geschlagen? Lass uns etwas tiefer graben:
Einem Benutzer oder einer Anwendung volle Berechtigungen zu erteilen oder sich einfach nicht die Mühe zu machen, zu definieren, was der neue Benutzer erreichen soll und welche Verhaltensweisen eingeschränkt sind, ist sicherlich der schnellste Weg, um neuen Code zu implementieren. Und wenn alles perfekt läuft, nutzt die Anwendung diese Berechtigungen, um die ihr zugewiesene Aufgabe zu erfüllen. Die Gefahr besteht darin, dass ein Hacker diesen Prozess entdeckt und dann den Benutzer gefährdet. Obwohl der Benutzer für eine bestimmte Funktion für eine bestimmte Anwendung geschaffen wurde, kann ein Angreifer, wenn er kompromittiert wird, andere Anwendungen, Daten oder sogar das Netzwerk gefährden.
Wie werden Sicherheitsfehlkonfigurationen ausgenutzt?
Um die Gefahr zu veranschaulichen, schauen wir uns an, wie eine häufige Aufgabe manchmal in der Docker-Cloud-Umgebung codiert wird. Nehmen wir an, ein Entwickler verwendet den Prometheus MySQL Exporter-Dienst, um Informationen aus einer Datenbank zu sammeln. Der einfachste Weg, dies zu ermöglichen, besteht darin, dem Exporteur die Erlaubnis zu erteilen, auf die Datenbank zuzugreifen. Der Code könnte also etwa so aussehen:
VON mysql:latest
KOPIEREN. /scripts/create_users.sh /docker-entrypoint-initdb.d/
BENUTZER 999
BENUTZER-EXPORTER@% IDENTIFIZIERT DURCH $EXPORTER_PASSWORD;
ALLES AUF *.* DEM EXPORTEUR@% GEWÄHREN;
GEWÄHREN SIE SELECT AUF performance_schema.* AN exporter@%;
Dies würde es sicherlich ermöglichen, dass der Exporteur seine Aufgabe erfüllen könnte. Da die Berechtigungen jedoch nicht definiert sind, kann der Exporteur tatsächlich fast alles tun. Offensichtlich würde der Exporteur selbst niemals außerhalb seiner programmierten Verhaltensweisen handeln. Aber was würde passieren, wenn ein Angreifer in der Lage wäre, den Exportservice zu kompromittieren? In diesem Fall könnte der Angreifer alle Arten von nicht autorisierten Aufgaben mit dem SQL-Dienst ausführen, da ihm die vollen Berechtigungen erteilt wurden.
Sicherung und Beseitigung unzulässiger Berechtigungen
Auch hier wenden wir uns dem Konzept der Infrastruktur als Code zu. Wenn Sie die Sicherheit Ihrer Anwendungen bei deren Erstellung einprogrammieren, wird das Netzwerk in Bezug auf Cybersicherheit insgesamt immer auf einer viel besseren Grundlage stehen.
Wenn ein Entwickler im Docker-Beispiel von oben möchte, dass der Prometheus MySQL Exporter eine Datenbank abfragen kann, kann er dies sicherer machen, indem er definiert, was er tun darf. Ein gutes Beispiel dafür wäre:
VON mysql:latest
KOPIEREN. /scripts/create_users.sh /docker-entrypoint-initdb.d/
BENUTZER 999
BENUTZER-EXPORTER@% IDENTIFIZIERT DURCH $EXPORTER_PASSWORD;
PROZESS GEWÄHREN, REPLIKATIONSCLIENT AUF *.* AN DEN EXPORTIERER@%;
GEWÄHREN SIE SELECT AUF performance_schema.* AN exporter@%;
In diesem Fall hat der für den Prometheus MySQL Exporter-Dienst konfigurierte MySQL-Benutzer nur eingeschränkte Berechtigungen für den MySQL-Dienst. Insbesondere sind nur PROCESS- und REPLICATION CLIENT-Rechte zulässig. Dies würde verhindern, dass ein böswilliger Benutzer einen kompromittierten Prometheus MySQL Exporter-Dienst ausnutzt.
Durch das Einschränken von Berechtigungen auf Codeebene kann sichergestellt werden, dass Benutzer und Anwendungen nur über genügend Berechtigungen für die jeweilige Aufgabe verfügen. Und das kann einen großen Beitrag dazu leisten, Ihre Netzwerke zu schützen und das Konzept der Infrastruktur als Code umzusetzen.
Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere unseren Showcase der Secure Code Warrior-Schulungsplattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.


Sicherheitsfehlkonfigurationen, insbesondere solche mit falschen Berechtigungen, treten am häufigsten auf, wenn ein Entwickler einen neuen Benutzer erstellt oder die Erlaubnis für eine Anwendung als Tool erteilt, um eine Aufgabe zu erledigen.
Matias Madou, Ph.D. is a security expert, researcher, and CTO and co-founder of Secure Code Warrior. Matias obtained his Ph.D. in Application Security from Ghent University, focusing on static analysis solutions. He later joined Fortify in the US, where he realized that it was insufficient to solely detect code problems without aiding developers in writing secure code. This inspired him to develop products that assist developers, alleviate the burden of security, and exceed customers' expectations. When he is not at his desk as part of Team Awesome, he enjoys being on stage presenting at conferences including RSA Conference, BlackHat and DefCon.

Secure Code Warrior ist für Ihr Unternehmen da, um Ihnen zu helfen, Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder jemand anderes sind, der sich mit Sicherheit befasst, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Eine Demo buchenMatias Madou, Ph.D. is a security expert, researcher, and CTO and co-founder of Secure Code Warrior. Matias obtained his Ph.D. in Application Security from Ghent University, focusing on static analysis solutions. He later joined Fortify in the US, where he realized that it was insufficient to solely detect code problems without aiding developers in writing secure code. This inspired him to develop products that assist developers, alleviate the burden of security, and exceed customers' expectations. When he is not at his desk as part of Team Awesome, he enjoys being on stage presenting at conferences including RSA Conference, BlackHat and DefCon.
Matias is a researcher and developer with more than 15 years of hands-on software security experience. He has developed solutions for companies such as Fortify Software and his own company Sensei Security. Over his career, Matias has led multiple application security research projects which have led to commercial products and boasts over 10 patents under his belt. When he is away from his desk, Matias has served as an instructor for advanced application security training courses and regularly speaks at global conferences including RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec and BruCon.
Matias holds a Ph.D. in Computer Engineering from Ghent University, where he studied application security through program obfuscation to hide the inner workings of an application.


Bedrohungen der Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Es ist so schlimm geworden, dass es fast unmöglich geworden ist, nach der Bereitstellung von Programmen mit ihnen Schritt zu halten. Stattdessen befürworten kluge Unternehmen das Konzept der Infrastruktur als Code, bei dem Entwickler zur Entwicklung sicherer Anwendungen beitragen, während sie noch in der Entwicklung sind. In dieser Serie geht es darum, Sie auf die Sicherheit vorzubereiten, damit Sie die Schritte verstehen, die Sie als Entwickler ergreifen können, um mit der Implementierung einer sicheren Infrastruktur als Code in Ihrem eigenen Unternehmen zu beginnen.
Sicherheitsfehlkonfigurationen, insbesondere solche mit falschen Berechtigungen, treten am häufigsten auf, wenn ein Entwickler einen neuen Benutzer erstellt oder die Erlaubnis für eine Anwendung als Tool erteilt, um eine Aufgabe zu erledigen. Dies könnte beispielsweise geschehen, um Informationen aus einer Datenbank zu sammeln. Wenn die Berechtigungen für den neuen Benutzer jedoch zu hoch eingestellt sind oder nicht standardmäßig für die jeweilige Aufgabe konfiguriert sind, kann dies zu einer schwerwiegenden Sicherheitslücke im Code führen.
Warum testen Sie nicht gleich Ihre Fähigkeiten, bevor wir darauf eingehen? Versuchen Sie, einige Sicherheitslücken mit falschen Zugriffsrechten zu finden und zu beheben:
Wie hast du dich geschlagen? Lass uns etwas tiefer graben:
Einem Benutzer oder einer Anwendung volle Berechtigungen zu erteilen oder sich einfach nicht die Mühe zu machen, zu definieren, was der neue Benutzer erreichen soll und welche Verhaltensweisen eingeschränkt sind, ist sicherlich der schnellste Weg, um neuen Code zu implementieren. Und wenn alles perfekt läuft, nutzt die Anwendung diese Berechtigungen, um die ihr zugewiesene Aufgabe zu erfüllen. Die Gefahr besteht darin, dass ein Hacker diesen Prozess entdeckt und dann den Benutzer gefährdet. Obwohl der Benutzer für eine bestimmte Funktion für eine bestimmte Anwendung geschaffen wurde, kann ein Angreifer, wenn er kompromittiert wird, andere Anwendungen, Daten oder sogar das Netzwerk gefährden.
Wie werden Sicherheitsfehlkonfigurationen ausgenutzt?
Um die Gefahr zu veranschaulichen, schauen wir uns an, wie eine häufige Aufgabe manchmal in der Docker-Cloud-Umgebung codiert wird. Nehmen wir an, ein Entwickler verwendet den Prometheus MySQL Exporter-Dienst, um Informationen aus einer Datenbank zu sammeln. Der einfachste Weg, dies zu ermöglichen, besteht darin, dem Exporteur die Erlaubnis zu erteilen, auf die Datenbank zuzugreifen. Der Code könnte also etwa so aussehen:
VON mysql:latest
KOPIEREN. /scripts/create_users.sh /docker-entrypoint-initdb.d/
BENUTZER 999
BENUTZER-EXPORTER@% IDENTIFIZIERT DURCH $EXPORTER_PASSWORD;
ALLES AUF *.* DEM EXPORTEUR@% GEWÄHREN;
GEWÄHREN SIE SELECT AUF performance_schema.* AN exporter@%;
Dies würde es sicherlich ermöglichen, dass der Exporteur seine Aufgabe erfüllen könnte. Da die Berechtigungen jedoch nicht definiert sind, kann der Exporteur tatsächlich fast alles tun. Offensichtlich würde der Exporteur selbst niemals außerhalb seiner programmierten Verhaltensweisen handeln. Aber was würde passieren, wenn ein Angreifer in der Lage wäre, den Exportservice zu kompromittieren? In diesem Fall könnte der Angreifer alle Arten von nicht autorisierten Aufgaben mit dem SQL-Dienst ausführen, da ihm die vollen Berechtigungen erteilt wurden.
Sicherung und Beseitigung unzulässiger Berechtigungen
Auch hier wenden wir uns dem Konzept der Infrastruktur als Code zu. Wenn Sie die Sicherheit Ihrer Anwendungen bei deren Erstellung einprogrammieren, wird das Netzwerk in Bezug auf Cybersicherheit insgesamt immer auf einer viel besseren Grundlage stehen.
Wenn ein Entwickler im Docker-Beispiel von oben möchte, dass der Prometheus MySQL Exporter eine Datenbank abfragen kann, kann er dies sicherer machen, indem er definiert, was er tun darf. Ein gutes Beispiel dafür wäre:
VON mysql:latest
KOPIEREN. /scripts/create_users.sh /docker-entrypoint-initdb.d/
BENUTZER 999
BENUTZER-EXPORTER@% IDENTIFIZIERT DURCH $EXPORTER_PASSWORD;
PROZESS GEWÄHREN, REPLIKATIONSCLIENT AUF *.* AN DEN EXPORTIERER@%;
GEWÄHREN SIE SELECT AUF performance_schema.* AN exporter@%;
In diesem Fall hat der für den Prometheus MySQL Exporter-Dienst konfigurierte MySQL-Benutzer nur eingeschränkte Berechtigungen für den MySQL-Dienst. Insbesondere sind nur PROCESS- und REPLICATION CLIENT-Rechte zulässig. Dies würde verhindern, dass ein böswilliger Benutzer einen kompromittierten Prometheus MySQL Exporter-Dienst ausnutzt.
Durch das Einschränken von Berechtigungen auf Codeebene kann sichergestellt werden, dass Benutzer und Anwendungen nur über genügend Berechtigungen für die jeweilige Aufgabe verfügen. Und das kann einen großen Beitrag dazu leisten, Ihre Netzwerke zu schützen und das Konzept der Infrastruktur als Code umzusetzen.
Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere unseren Showcase der Secure Code Warrior-Schulungsplattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.

Bedrohungen der Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Es ist so schlimm geworden, dass es fast unmöglich geworden ist, nach der Bereitstellung von Programmen mit ihnen Schritt zu halten. Stattdessen befürworten kluge Unternehmen das Konzept der Infrastruktur als Code, bei dem Entwickler zur Entwicklung sicherer Anwendungen beitragen, während sie noch in der Entwicklung sind. In dieser Serie geht es darum, Sie auf die Sicherheit vorzubereiten, damit Sie die Schritte verstehen, die Sie als Entwickler ergreifen können, um mit der Implementierung einer sicheren Infrastruktur als Code in Ihrem eigenen Unternehmen zu beginnen.
Sicherheitsfehlkonfigurationen, insbesondere solche mit falschen Berechtigungen, treten am häufigsten auf, wenn ein Entwickler einen neuen Benutzer erstellt oder die Erlaubnis für eine Anwendung als Tool erteilt, um eine Aufgabe zu erledigen. Dies könnte beispielsweise geschehen, um Informationen aus einer Datenbank zu sammeln. Wenn die Berechtigungen für den neuen Benutzer jedoch zu hoch eingestellt sind oder nicht standardmäßig für die jeweilige Aufgabe konfiguriert sind, kann dies zu einer schwerwiegenden Sicherheitslücke im Code führen.
Warum testen Sie nicht gleich Ihre Fähigkeiten, bevor wir darauf eingehen? Versuchen Sie, einige Sicherheitslücken mit falschen Zugriffsrechten zu finden und zu beheben:
Wie hast du dich geschlagen? Lass uns etwas tiefer graben:
Einem Benutzer oder einer Anwendung volle Berechtigungen zu erteilen oder sich einfach nicht die Mühe zu machen, zu definieren, was der neue Benutzer erreichen soll und welche Verhaltensweisen eingeschränkt sind, ist sicherlich der schnellste Weg, um neuen Code zu implementieren. Und wenn alles perfekt läuft, nutzt die Anwendung diese Berechtigungen, um die ihr zugewiesene Aufgabe zu erfüllen. Die Gefahr besteht darin, dass ein Hacker diesen Prozess entdeckt und dann den Benutzer gefährdet. Obwohl der Benutzer für eine bestimmte Funktion für eine bestimmte Anwendung geschaffen wurde, kann ein Angreifer, wenn er kompromittiert wird, andere Anwendungen, Daten oder sogar das Netzwerk gefährden.
Wie werden Sicherheitsfehlkonfigurationen ausgenutzt?
Um die Gefahr zu veranschaulichen, schauen wir uns an, wie eine häufige Aufgabe manchmal in der Docker-Cloud-Umgebung codiert wird. Nehmen wir an, ein Entwickler verwendet den Prometheus MySQL Exporter-Dienst, um Informationen aus einer Datenbank zu sammeln. Der einfachste Weg, dies zu ermöglichen, besteht darin, dem Exporteur die Erlaubnis zu erteilen, auf die Datenbank zuzugreifen. Der Code könnte also etwa so aussehen:
VON mysql:latest
KOPIEREN. /scripts/create_users.sh /docker-entrypoint-initdb.d/
BENUTZER 999
BENUTZER-EXPORTER@% IDENTIFIZIERT DURCH $EXPORTER_PASSWORD;
ALLES AUF *.* DEM EXPORTEUR@% GEWÄHREN;
GEWÄHREN SIE SELECT AUF performance_schema.* AN exporter@%;
Dies würde es sicherlich ermöglichen, dass der Exporteur seine Aufgabe erfüllen könnte. Da die Berechtigungen jedoch nicht definiert sind, kann der Exporteur tatsächlich fast alles tun. Offensichtlich würde der Exporteur selbst niemals außerhalb seiner programmierten Verhaltensweisen handeln. Aber was würde passieren, wenn ein Angreifer in der Lage wäre, den Exportservice zu kompromittieren? In diesem Fall könnte der Angreifer alle Arten von nicht autorisierten Aufgaben mit dem SQL-Dienst ausführen, da ihm die vollen Berechtigungen erteilt wurden.
Sicherung und Beseitigung unzulässiger Berechtigungen
Auch hier wenden wir uns dem Konzept der Infrastruktur als Code zu. Wenn Sie die Sicherheit Ihrer Anwendungen bei deren Erstellung einprogrammieren, wird das Netzwerk in Bezug auf Cybersicherheit insgesamt immer auf einer viel besseren Grundlage stehen.
Wenn ein Entwickler im Docker-Beispiel von oben möchte, dass der Prometheus MySQL Exporter eine Datenbank abfragen kann, kann er dies sicherer machen, indem er definiert, was er tun darf. Ein gutes Beispiel dafür wäre:
VON mysql:latest
KOPIEREN. /scripts/create_users.sh /docker-entrypoint-initdb.d/
BENUTZER 999
BENUTZER-EXPORTER@% IDENTIFIZIERT DURCH $EXPORTER_PASSWORD;
PROZESS GEWÄHREN, REPLIKATIONSCLIENT AUF *.* AN DEN EXPORTIERER@%;
GEWÄHREN SIE SELECT AUF performance_schema.* AN exporter@%;
In diesem Fall hat der für den Prometheus MySQL Exporter-Dienst konfigurierte MySQL-Benutzer nur eingeschränkte Berechtigungen für den MySQL-Dienst. Insbesondere sind nur PROCESS- und REPLICATION CLIENT-Rechte zulässig. Dies würde verhindern, dass ein böswilliger Benutzer einen kompromittierten Prometheus MySQL Exporter-Dienst ausnutzt.
Durch das Einschränken von Berechtigungen auf Codeebene kann sichergestellt werden, dass Benutzer und Anwendungen nur über genügend Berechtigungen für die jeweilige Aufgabe verfügen. Und das kann einen großen Beitrag dazu leisten, Ihre Netzwerke zu schützen und das Konzept der Infrastruktur als Code umzusetzen.
Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere unseren Showcase der Secure Code Warrior-Schulungsplattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.

Klicken Sie auf den Link unten und laden Sie das PDF dieser Ressource herunter.
Secure Code Warrior ist für Ihr Unternehmen da, um Ihnen zu helfen, Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder jemand anderes sind, der sich mit Sicherheit befasst, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Bericht ansehenEine Demo buchenMatias Madou, Ph.D. is a security expert, researcher, and CTO and co-founder of Secure Code Warrior. Matias obtained his Ph.D. in Application Security from Ghent University, focusing on static analysis solutions. He later joined Fortify in the US, where he realized that it was insufficient to solely detect code problems without aiding developers in writing secure code. This inspired him to develop products that assist developers, alleviate the burden of security, and exceed customers' expectations. When he is not at his desk as part of Team Awesome, he enjoys being on stage presenting at conferences including RSA Conference, BlackHat and DefCon.
Matias is a researcher and developer with more than 15 years of hands-on software security experience. He has developed solutions for companies such as Fortify Software and his own company Sensei Security. Over his career, Matias has led multiple application security research projects which have led to commercial products and boasts over 10 patents under his belt. When he is away from his desk, Matias has served as an instructor for advanced application security training courses and regularly speaks at global conferences including RSA Conference, Black Hat, DefCon, BSIMM, OWASP AppSec and BruCon.
Matias holds a Ph.D. in Computer Engineering from Ghent University, where he studied application security through program obfuscation to hide the inner workings of an application.
Bedrohungen der Cybersicherheit sind heutzutage allgegenwärtig und unerbittlich. Es ist so schlimm geworden, dass es fast unmöglich geworden ist, nach der Bereitstellung von Programmen mit ihnen Schritt zu halten. Stattdessen befürworten kluge Unternehmen das Konzept der Infrastruktur als Code, bei dem Entwickler zur Entwicklung sicherer Anwendungen beitragen, während sie noch in der Entwicklung sind. In dieser Serie geht es darum, Sie auf die Sicherheit vorzubereiten, damit Sie die Schritte verstehen, die Sie als Entwickler ergreifen können, um mit der Implementierung einer sicheren Infrastruktur als Code in Ihrem eigenen Unternehmen zu beginnen.
Sicherheitsfehlkonfigurationen, insbesondere solche mit falschen Berechtigungen, treten am häufigsten auf, wenn ein Entwickler einen neuen Benutzer erstellt oder die Erlaubnis für eine Anwendung als Tool erteilt, um eine Aufgabe zu erledigen. Dies könnte beispielsweise geschehen, um Informationen aus einer Datenbank zu sammeln. Wenn die Berechtigungen für den neuen Benutzer jedoch zu hoch eingestellt sind oder nicht standardmäßig für die jeweilige Aufgabe konfiguriert sind, kann dies zu einer schwerwiegenden Sicherheitslücke im Code führen.
Warum testen Sie nicht gleich Ihre Fähigkeiten, bevor wir darauf eingehen? Versuchen Sie, einige Sicherheitslücken mit falschen Zugriffsrechten zu finden und zu beheben:
Wie hast du dich geschlagen? Lass uns etwas tiefer graben:
Einem Benutzer oder einer Anwendung volle Berechtigungen zu erteilen oder sich einfach nicht die Mühe zu machen, zu definieren, was der neue Benutzer erreichen soll und welche Verhaltensweisen eingeschränkt sind, ist sicherlich der schnellste Weg, um neuen Code zu implementieren. Und wenn alles perfekt läuft, nutzt die Anwendung diese Berechtigungen, um die ihr zugewiesene Aufgabe zu erfüllen. Die Gefahr besteht darin, dass ein Hacker diesen Prozess entdeckt und dann den Benutzer gefährdet. Obwohl der Benutzer für eine bestimmte Funktion für eine bestimmte Anwendung geschaffen wurde, kann ein Angreifer, wenn er kompromittiert wird, andere Anwendungen, Daten oder sogar das Netzwerk gefährden.
Wie werden Sicherheitsfehlkonfigurationen ausgenutzt?
Um die Gefahr zu veranschaulichen, schauen wir uns an, wie eine häufige Aufgabe manchmal in der Docker-Cloud-Umgebung codiert wird. Nehmen wir an, ein Entwickler verwendet den Prometheus MySQL Exporter-Dienst, um Informationen aus einer Datenbank zu sammeln. Der einfachste Weg, dies zu ermöglichen, besteht darin, dem Exporteur die Erlaubnis zu erteilen, auf die Datenbank zuzugreifen. Der Code könnte also etwa so aussehen:
VON mysql:latest
KOPIEREN. /scripts/create_users.sh /docker-entrypoint-initdb.d/
BENUTZER 999
BENUTZER-EXPORTER@% IDENTIFIZIERT DURCH $EXPORTER_PASSWORD;
ALLES AUF *.* DEM EXPORTEUR@% GEWÄHREN;
GEWÄHREN SIE SELECT AUF performance_schema.* AN exporter@%;
Dies würde es sicherlich ermöglichen, dass der Exporteur seine Aufgabe erfüllen könnte. Da die Berechtigungen jedoch nicht definiert sind, kann der Exporteur tatsächlich fast alles tun. Offensichtlich würde der Exporteur selbst niemals außerhalb seiner programmierten Verhaltensweisen handeln. Aber was würde passieren, wenn ein Angreifer in der Lage wäre, den Exportservice zu kompromittieren? In diesem Fall könnte der Angreifer alle Arten von nicht autorisierten Aufgaben mit dem SQL-Dienst ausführen, da ihm die vollen Berechtigungen erteilt wurden.
Sicherung und Beseitigung unzulässiger Berechtigungen
Auch hier wenden wir uns dem Konzept der Infrastruktur als Code zu. Wenn Sie die Sicherheit Ihrer Anwendungen bei deren Erstellung einprogrammieren, wird das Netzwerk in Bezug auf Cybersicherheit insgesamt immer auf einer viel besseren Grundlage stehen.
Wenn ein Entwickler im Docker-Beispiel von oben möchte, dass der Prometheus MySQL Exporter eine Datenbank abfragen kann, kann er dies sicherer machen, indem er definiert, was er tun darf. Ein gutes Beispiel dafür wäre:
VON mysql:latest
KOPIEREN. /scripts/create_users.sh /docker-entrypoint-initdb.d/
BENUTZER 999
BENUTZER-EXPORTER@% IDENTIFIZIERT DURCH $EXPORTER_PASSWORD;
PROZESS GEWÄHREN, REPLIKATIONSCLIENT AUF *.* AN DEN EXPORTIERER@%;
GEWÄHREN SIE SELECT AUF performance_schema.* AN exporter@%;
In diesem Fall hat der für den Prometheus MySQL Exporter-Dienst konfigurierte MySQL-Benutzer nur eingeschränkte Berechtigungen für den MySQL-Dienst. Insbesondere sind nur PROCESS- und REPLICATION CLIENT-Rechte zulässig. Dies würde verhindern, dass ein böswilliger Benutzer einen kompromittierten Prometheus MySQL Exporter-Dienst ausnutzt.
Durch das Einschränken von Berechtigungen auf Codeebene kann sichergestellt werden, dass Benutzer und Anwendungen nur über genügend Berechtigungen für die jeweilige Aufgabe verfügen. Und das kann einen großen Beitrag dazu leisten, Ihre Netzwerke zu schützen und das Konzept der Infrastruktur als Code umzusetzen.
Schauen Sie sich das an Sicherer Codekrieger Blogseiten mit weiteren Informationen zu dieser Sicherheitslücke und dazu, wie Sie Ihr Unternehmen und Ihre Kunden vor den Folgen anderer Sicherheitslücken schützen können. Sie können auch probiere unseren Showcase der Secure Code Warrior-Schulungsplattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.
Inhaltsverzeichniss
Matias Madou, Ph.D. is a security expert, researcher, and CTO and co-founder of Secure Code Warrior. Matias obtained his Ph.D. in Application Security from Ghent University, focusing on static analysis solutions. He later joined Fortify in the US, where he realized that it was insufficient to solely detect code problems without aiding developers in writing secure code. This inspired him to develop products that assist developers, alleviate the burden of security, and exceed customers' expectations. When he is not at his desk as part of Team Awesome, he enjoys being on stage presenting at conferences including RSA Conference, BlackHat and DefCon.

Secure Code Warrior ist für Ihr Unternehmen da, um Ihnen zu helfen, Code während des gesamten Softwareentwicklungszyklus zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder jemand anderes sind, der sich mit Sicherheit befasst, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Eine Demo buchenHerunterladenRessourcen für den Einstieg
Themen und Inhalte der Securecode-Schulung
Unsere branchenführenden Inhalte werden ständig weiterentwickelt, um der sich ständig ändernden Softwareentwicklungslandschaft unter Berücksichtigung Ihrer Rolle gerecht zu werden. Themen, die alles von KI bis XQuery Injection abdecken und für eine Vielzahl von Rollen angeboten werden, von Architekten und Ingenieuren bis hin zu Produktmanagern und QA. Verschaffen Sie sich einen kleinen Einblick in das Angebot unseres Inhaltskatalogs nach Themen und Rollen.
Threat Modeling with AI: Turning Every Developer into a Threat Modeler
Walk away better equipped to help developers combine threat modeling ideas and techniques with the AI tools they're already using to strengthen security, improve collaboration, and build more resilient software from the start.
Ressourcen für den Einstieg
Cybermon is back: Beat the Boss KI-Missionen jetzt auf Abruf verfügbar
Cybermon 2025 Beat the Boss ist jetzt das ganze Jahr über in SCW verfügbar. Setzt fortschrittliche KI/LLM-Sicherheitsanforderungen ein, um die sichere KI-Entwicklung in einem großen Maßstab zu stärken.
Cyber-Resilienz-Gesetz erklärt: Was das für die Entwicklung von Secure by Design-Software bedeutet
Erfahren Sie, was der EU Cyber Resilience Act (CRA) verlangt, für wen er gilt und wie sich Entwicklungsteams mit sicheren Methoden, der Vorbeugung von Sicherheitslücken und dem Aufbau von Fähigkeiten für Entwickler darauf vorbereiten können.




%20(1).avif)
.avif)
