
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. ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent in Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen. Später kam er zu Fortify in den USA, wo er feststellte, dass es nicht ausreichte, ausschließlich Codeprobleme zu erkennen, ohne Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, die Sicherheitslast verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht als Teil von Team Awesome an seinem Schreibtisch sitzt, steht er gerne auf der Bühne und präsentiert auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。
预约演示Matias Madou, Ph.D. ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent in Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen. Später kam er zu Fortify in den USA, wo er feststellte, dass es nicht ausreichte, ausschließlich Codeprobleme zu erkennen, ohne Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, die Sicherheitslast verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht als Teil von Team Awesome an seinem Schreibtisch sitzt, steht er gerne auf der Bühne und präsentiert auf Konferenzen wie der RSA Conference, BlackHat und DefCon.
Matias ist Forscher und Entwickler mit mehr als 15 Jahren praktischer Erfahrung in 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 verfügt über mehr als 10 Patente. Wenn er nicht an seinem Schreibtisch ist, war Matias als Ausbilder für fortgeschrittene Schulungen zur Anwendungssicherheit 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 an der Universität Gent in Computertechnik promoviert, wo er Anwendungssicherheit durch Programmverschleierung studierte, um das Innenleben einer Anwendung zu verbergen.


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.

请点击下方链接下载该资源的PDF文件。
Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。
查看报告预约演示Matias Madou, Ph.D. ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent in Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen. Später kam er zu Fortify in den USA, wo er feststellte, dass es nicht ausreichte, ausschließlich Codeprobleme zu erkennen, ohne Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, die Sicherheitslast verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht als Teil von Team Awesome an seinem Schreibtisch sitzt, steht er gerne auf der Bühne und präsentiert auf Konferenzen wie der RSA Conference, BlackHat und DefCon.
Matias ist Forscher und Entwickler mit mehr als 15 Jahren praktischer Erfahrung in 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 verfügt über mehr als 10 Patente. Wenn er nicht an seinem Schreibtisch ist, war Matias als Ausbilder für fortgeschrittene Schulungen zur Anwendungssicherheit 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 an der Universität Gent in Computertechnik promoviert, wo er Anwendungssicherheit durch Programmverschleierung studierte, um das Innenleben einer Anwendung zu verbergen.
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.
目录
Matias Madou, Ph.D. ist Sicherheitsexperte, Forscher, CTO und Mitbegründer von Secure Code Warrior. Matias promovierte an der Universität Gent in Anwendungssicherheit mit Schwerpunkt auf statischen Analyselösungen. Später kam er zu Fortify in den USA, wo er feststellte, dass es nicht ausreichte, ausschließlich Codeprobleme zu erkennen, ohne Entwicklern beim Schreiben von sicherem Code zu helfen. Dies inspirierte ihn dazu, Produkte zu entwickeln, die Entwickler unterstützen, die Sicherheitslast verringern und die Erwartungen der Kunden übertreffen. Wenn er nicht als Teil von Team Awesome an seinem Schreibtisch sitzt, steht er gerne auf der Bühne und präsentiert auf Konferenzen wie der RSA Conference, BlackHat und DefCon.

Secure Code Warrior 您的Secure Code Warrior 帮助您在整个软件开发周期中保障代码安全,并建立将网络安全置于首位的企业文化。无论您是应用安全经理、开发人员、首席信息安全官,还是其他从事安全工作的人员,我们都能协助您的企业降低不安全代码带来的风险。
预约演示下载入门资源
Trust Agent:AI - Secure and scale AI-Drive development
AI is writing code. Who’s governing it? With up to 50% of AI-generated code containing security weaknesses, managing AI risk is critical. Discover how SCW's Trust Agent: AI provides the real-time visibility, proactive governance, and targeted upskilling needed to scale AI-driven development securely.
OpenText 应用程序安全性的强大功能 + Secure Code Warrior
OpenText Application Security and Secure Code Warrior combine vulnerability detection with AI Software Governance and developer capability. Together, they help organizations reduce risk, strengthen secure coding practices, and confidently adopt AI-driven development.
Secure Code Warrior corporate overview
Secure Code Warrior is an AI Software Governance platform designed to enable organizations to safely adopt AI-driven development by bridging the gap between development velocity and enterprise security. The platform addresses the "Visibility Gap," where security teams often lack insights into shadow AI coding tools and the origins of production code.




