
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 . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.
데모 예약하기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 . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.
보고서 보기데모 예약하기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 . 앱 보안 관리자, 개발자, 최고정보보안책임자(CISO) 또는 보안 관련 업무를 담당하는 분이라면 누구든, 저희는 귀사가 안전하지 않은 코드로 인한 위험을 줄일 수 있도록 돕습니다.
데모 예약하기다운로드시작을 위한 자료
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.




