
Programmierer erobern Sicherheitsinfrastruktur als Code-Serie: Fehlende Zugriffskontrolle auf Funktionsebene
Es ist Zeit für den nächsten Teil unserer Reihe „Infrastructure as Code“, die Blogs, die Entwickler wie Sie bei der Bereitstellung sicherer Infrastrukturen in Ihrem eigenen Unternehmen auf ein völlig neues Niveau des Sicherheitsbewusstseins heben werden.
Oh, übrigens... wie ist es Ihnen mit der Sicherheitsfehlkonfiguration im vorherigen Blog ergangen? Wenn Sie sofort eine Sicherheitslücke in der Zugriffskontrolle auf Funktionsebene beheben möchten, besuchen Sie die Plattform:
(Der obige Link führt Sie zur Kubernetes-Herausforderung, aber sobald Sie auf der Plattform sind, verwenden Sie das Drop-down-Menü, um auch zwischen Ansible, CloudFormation, Terraform oder Docker auszuwählen. Deine Wahl.)
Fast jede heute eingesetzte Anwendung verfügt über eine Art Zugriffskontrollmechanismus, der überprüft, ob ein Benutzer die Berechtigung hat, die angeforderten Funktionen auszuführen oder nicht. Dies ist so ziemlich der Eckpfeiler guter Sicherheit und Funktionalität bei der Erstellung einer Anwendung. Tatsächlich benötigen alle Webanwendungen Zugriffskontrollen, damit Benutzer mit unterschiedlichen Rechten das Programm verwenden können.
Probleme können jedoch auftreten, wenn dieselben Überprüfungsfunktionen für die Zugriffskontrolle nicht auf Infrastrukturebene ausgeführt werden oder falsch konfiguriert sind. Wenn die Zugriffskontrolle auf Infrastrukturebene nicht in einwandfreiem Zustand ist, ist ein ganzes Unternehmen Hackern ausgesetzt, die diese Sicherheitslücke als Einfallstor für unbefugtes Ausspionieren oder für einen vollständigen Angriff nutzen können.
Tatsächlich ist es extrem einfach, fehlende oder falsch konfigurierte Sicherheitslücken bei der Funktionskontrolle auszunutzen. Angreifer müssen nicht einmal übermäßig geschult sein. Sie müssen nur wissen, welche Befehle Funktionen innerhalb des Frameworks ausführen, das die Anwendung unterstützt. Wenn sie das tun, ist es nur eine Frage von Versuch und Irrtum. Sie können kontinuierlich Anfragen stellen, die nicht zugelassen werden sollten, und sobald eine solche Anfrage erfolgreich ist, könnte die Zielwebsite, die Anwendung, der Server oder sogar das gesamte Netzwerk gefährdet sein.
Wie funktionieren fehlende Zugriffskontroll-Exploits auf Funktionsebene?
Es gibt verschiedene Möglichkeiten, wie sich Zugriffskontrollen auf Funktionsebene in ein Unternehmen einschleichen können. Beispielsweise kann der Zugriff auf Funktionsebene einer Anwendung überlassen werden und nicht von der zugrunde liegenden Infrastruktur verifiziert werden. Oder die Zugriffskontrolle auf Infrastrukturebene kann falsch konfiguriert werden. In einigen Fällen gehen Administratoren davon aus, dass nicht autorisierte Benutzer nicht wissen, wie sie zu Infrastrukturressourcen gelangen, die nur für Benutzer auf höherer Ebene sichtbar sein sollten, und verwenden ein „Security by Obscurity“ -Modell, das selten funktioniert.
Ein Beispiel für Security by Obscurity: Die folgende URL ist wahrscheinlich anfällig für Angriffe:
http://companywebsite.com/app/NormalUserHomepage
Wenn ein authentifizierter Benutzer eine Technik namens Forced URL Browsing verwendet, könnte er versuchen, eine Seite zu erreichen, die nur Administratoren angezeigt wird. Ein Beispiel könnte sein:
http://companywebsite.com/app/AdminPages
Wenn keine serverseitige Überprüfung existiert, werden ihnen einfach die Admin-Seiten angezeigt (falls ihr Name mit der Anfrage übereinstimmt) und haben dann Zugriff auf alle zusätzlichen Funktionen, die Administratoren von der neuen Seite aus ausführen. Wenn der Server den Fehler „Seite nicht gefunden“ an den Angreifer zurückgibt, kann er es einfach so lange versuchen, bis er herausgefunden hat, welchen Namen die Admin-Seite erhalten hat.
Für Angreifer, Ausnutzen fehlende Zugriffskontrollen auf Funktionsebene ist ein ähnlicher Prozess. Anstatt zu versuchen, unautorisierte Seiten zu durchsuchen, senden sie stattdessen Funktionsanfragen ein. Beispielsweise könnten sie versuchen, einen neuen Benutzer mit Administratorrechten zu erstellen. Ihre Anfrage würde also je nach Framework ungefähr so aussehen:
Beitrag/Aktion/CreateUsername=Hacker&pw=password&role=admin
Wenn keine Zugriffskontrolle auf Funktionsebene vorhanden ist, wäre das obige Beispiel erfolgreich und ein neues Administratorkonto würde erstellt. Sobald sich der Angreifer wieder als neuer Administrator anmeldet, hätte er denselben Zugriff und dieselben Berechtigungen wie jeder andere Administrator in diesem Netzwerk oder Server.
Die Lösung für fehlende Zugriffskontrollen auf Funktionsebene
Da es für Angreifer so einfach ist, fehlende Sicherheitslücken bei der Zugriffskontrolle auf Funktionsebene auszunutzen, ist es wichtig, dass sie gefunden, behoben und verhindert werden. Zum Glück ist das mit etwas Fachwissen und einer grundlegenden Infrastruktur nicht allzu schwierig Schulung zur Codesicherheit.
Der Hauptschutz wird durch die Implementierung einer rollenbasierten Autorisierung auf Infrastrukturebene gewährleistet. Vertrauen Sie niemals darauf, dass Anwendungen diese Funktion ausführen. Selbst wenn dies der Fall ist, stellt eine infrastrukturseitige Autorisierung sicher, dass nichts übersehen wird. Idealerweise sollte die Autorisierung von einer zentralen Stelle aus erfolgen (z. B. AWS IAM, Azure IAM usw.), die in die Routine Ihres Unternehmens integriert ist und auf jede neue Anwendung angewendet wird. Diese Autorisierungsprozesse können vom Framework selbst oder aus einer beliebigen Anzahl benutzerfreundlicher externer Module stammen.
Schließlich sollte sich Ihr Unternehmen das Konzept der geringsten Privilegien zu eigen machen. Alle Aktionen und Funktionen sollten standardmäßig verweigert werden, wobei der Autorisierungsprozess verwendet wird, um gültigen Benutzern die Erlaubnis zu geben, alles zu tun, was sie benötigen. Sie sollten nur genügend Berechtigungen erhalten, um die erforderliche Funktion auszuführen, und zwar nur so lange wie erforderlich.
Fehlende Zugriffskontrollen auf Funktionsebene können verheerend sein. Aber glücklicherweise können Sie dieses Problem ganz einfach verhindern, indem Sie in Ihrem Unternehmen gute Autorisierungspraktiken auf Infrastrukturebene integrieren.
Denken Sie, Sie sind bereit, einen Zugangskontrollfehler in freier Wildbahn zu entdecken? Vergleichen Sie diese Docker-Codefragmente; einer ist verwundbar, einer sicher:
Verwundbar:
VON quay.io/prometheus/busybox:latest
ARG-VERSION = 0.12.1
ARG-Dateiname=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$VERSION/$filename.tar.gz &&\
tar -xf $dateiname.tar.gz &&\
mv $Dateiname/mysqld_exporter /bin/mysqld_exporter
KOPIERE .my.cnf /home/.my.cnf
KOPIEREN. /scripts/entrypoint.sh ~/entrypoint.sh
BENUTZER root
AUSSETZEN 9104
EINSTIEGSPUNKT ["sh“, "~/entrypoint.sh"]
CMD [„/bin/mysqld_exporter“]
Sicher:
VON quay.io/prometheus/busybox:latest
ARG-VERSION = 0.12.1
ARG-Dateiname=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$VERSION/$filename.tar.gz &&\
tar -xf $dateiname.tar.gz &&\
mv $Dateiname/mysqld_exporter /bin/mysqld_exporter
KOPIERE .my.cnf /home/.my.cnf
KOPIEREN. /scripts/entrypoint.sh ~/entrypoint.sh
BENUTZER niemand
AUSSETZEN 9104
EINSTIEGSPUNKT ["sh“, "~/entrypoint.sh"]
CMD [„/bin/mysqld_exporter“]
Erfahre mehr, fordere dich selbst heraus
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 und Sicherheitslücken schützen können.
Und wenn du es früher verpasst hast, kannst du probieren Sie eine IaC Gamified Security Challenge aus auf der Secure Code Warrior-Plattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.
Seien Sie gespannt auf das nächste Kapitel!


Wenn die Zugriffskontrolle auf Infrastrukturebene nicht in perfekter Ordnung ist, wird ein ganzes Unternehmen für Angreifer geöffnet, die diese Sicherheitslücke als Einfallstor für unbefugtes Ausspionieren oder für einen vollständigen Angriff nutzen können.
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 là pour aider votre entreprise à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre entreprise à réduire les risques liés à un code non sécurisé.
Réserver une démonstrationMatias 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.


Es ist Zeit für den nächsten Teil unserer Reihe „Infrastructure as Code“, die Blogs, die Entwickler wie Sie bei der Bereitstellung sicherer Infrastrukturen in Ihrem eigenen Unternehmen auf ein völlig neues Niveau des Sicherheitsbewusstseins heben werden.
Oh, übrigens... wie ist es Ihnen mit der Sicherheitsfehlkonfiguration im vorherigen Blog ergangen? Wenn Sie sofort eine Sicherheitslücke in der Zugriffskontrolle auf Funktionsebene beheben möchten, besuchen Sie die Plattform:
(Der obige Link führt Sie zur Kubernetes-Herausforderung, aber sobald Sie auf der Plattform sind, verwenden Sie das Drop-down-Menü, um auch zwischen Ansible, CloudFormation, Terraform oder Docker auszuwählen. Deine Wahl.)
Fast jede heute eingesetzte Anwendung verfügt über eine Art Zugriffskontrollmechanismus, der überprüft, ob ein Benutzer die Berechtigung hat, die angeforderten Funktionen auszuführen oder nicht. Dies ist so ziemlich der Eckpfeiler guter Sicherheit und Funktionalität bei der Erstellung einer Anwendung. Tatsächlich benötigen alle Webanwendungen Zugriffskontrollen, damit Benutzer mit unterschiedlichen Rechten das Programm verwenden können.
Probleme können jedoch auftreten, wenn dieselben Überprüfungsfunktionen für die Zugriffskontrolle nicht auf Infrastrukturebene ausgeführt werden oder falsch konfiguriert sind. Wenn die Zugriffskontrolle auf Infrastrukturebene nicht in einwandfreiem Zustand ist, ist ein ganzes Unternehmen Hackern ausgesetzt, die diese Sicherheitslücke als Einfallstor für unbefugtes Ausspionieren oder für einen vollständigen Angriff nutzen können.
Tatsächlich ist es extrem einfach, fehlende oder falsch konfigurierte Sicherheitslücken bei der Funktionskontrolle auszunutzen. Angreifer müssen nicht einmal übermäßig geschult sein. Sie müssen nur wissen, welche Befehle Funktionen innerhalb des Frameworks ausführen, das die Anwendung unterstützt. Wenn sie das tun, ist es nur eine Frage von Versuch und Irrtum. Sie können kontinuierlich Anfragen stellen, die nicht zugelassen werden sollten, und sobald eine solche Anfrage erfolgreich ist, könnte die Zielwebsite, die Anwendung, der Server oder sogar das gesamte Netzwerk gefährdet sein.
Wie funktionieren fehlende Zugriffskontroll-Exploits auf Funktionsebene?
Es gibt verschiedene Möglichkeiten, wie sich Zugriffskontrollen auf Funktionsebene in ein Unternehmen einschleichen können. Beispielsweise kann der Zugriff auf Funktionsebene einer Anwendung überlassen werden und nicht von der zugrunde liegenden Infrastruktur verifiziert werden. Oder die Zugriffskontrolle auf Infrastrukturebene kann falsch konfiguriert werden. In einigen Fällen gehen Administratoren davon aus, dass nicht autorisierte Benutzer nicht wissen, wie sie zu Infrastrukturressourcen gelangen, die nur für Benutzer auf höherer Ebene sichtbar sein sollten, und verwenden ein „Security by Obscurity“ -Modell, das selten funktioniert.
Ein Beispiel für Security by Obscurity: Die folgende URL ist wahrscheinlich anfällig für Angriffe:
http://companywebsite.com/app/NormalUserHomepage
Wenn ein authentifizierter Benutzer eine Technik namens Forced URL Browsing verwendet, könnte er versuchen, eine Seite zu erreichen, die nur Administratoren angezeigt wird. Ein Beispiel könnte sein:
http://companywebsite.com/app/AdminPages
Wenn keine serverseitige Überprüfung existiert, werden ihnen einfach die Admin-Seiten angezeigt (falls ihr Name mit der Anfrage übereinstimmt) und haben dann Zugriff auf alle zusätzlichen Funktionen, die Administratoren von der neuen Seite aus ausführen. Wenn der Server den Fehler „Seite nicht gefunden“ an den Angreifer zurückgibt, kann er es einfach so lange versuchen, bis er herausgefunden hat, welchen Namen die Admin-Seite erhalten hat.
Für Angreifer, Ausnutzen fehlende Zugriffskontrollen auf Funktionsebene ist ein ähnlicher Prozess. Anstatt zu versuchen, unautorisierte Seiten zu durchsuchen, senden sie stattdessen Funktionsanfragen ein. Beispielsweise könnten sie versuchen, einen neuen Benutzer mit Administratorrechten zu erstellen. Ihre Anfrage würde also je nach Framework ungefähr so aussehen:
Beitrag/Aktion/CreateUsername=Hacker&pw=password&role=admin
Wenn keine Zugriffskontrolle auf Funktionsebene vorhanden ist, wäre das obige Beispiel erfolgreich und ein neues Administratorkonto würde erstellt. Sobald sich der Angreifer wieder als neuer Administrator anmeldet, hätte er denselben Zugriff und dieselben Berechtigungen wie jeder andere Administrator in diesem Netzwerk oder Server.
Die Lösung für fehlende Zugriffskontrollen auf Funktionsebene
Da es für Angreifer so einfach ist, fehlende Sicherheitslücken bei der Zugriffskontrolle auf Funktionsebene auszunutzen, ist es wichtig, dass sie gefunden, behoben und verhindert werden. Zum Glück ist das mit etwas Fachwissen und einer grundlegenden Infrastruktur nicht allzu schwierig Schulung zur Codesicherheit.
Der Hauptschutz wird durch die Implementierung einer rollenbasierten Autorisierung auf Infrastrukturebene gewährleistet. Vertrauen Sie niemals darauf, dass Anwendungen diese Funktion ausführen. Selbst wenn dies der Fall ist, stellt eine infrastrukturseitige Autorisierung sicher, dass nichts übersehen wird. Idealerweise sollte die Autorisierung von einer zentralen Stelle aus erfolgen (z. B. AWS IAM, Azure IAM usw.), die in die Routine Ihres Unternehmens integriert ist und auf jede neue Anwendung angewendet wird. Diese Autorisierungsprozesse können vom Framework selbst oder aus einer beliebigen Anzahl benutzerfreundlicher externer Module stammen.
Schließlich sollte sich Ihr Unternehmen das Konzept der geringsten Privilegien zu eigen machen. Alle Aktionen und Funktionen sollten standardmäßig verweigert werden, wobei der Autorisierungsprozess verwendet wird, um gültigen Benutzern die Erlaubnis zu geben, alles zu tun, was sie benötigen. Sie sollten nur genügend Berechtigungen erhalten, um die erforderliche Funktion auszuführen, und zwar nur so lange wie erforderlich.
Fehlende Zugriffskontrollen auf Funktionsebene können verheerend sein. Aber glücklicherweise können Sie dieses Problem ganz einfach verhindern, indem Sie in Ihrem Unternehmen gute Autorisierungspraktiken auf Infrastrukturebene integrieren.
Denken Sie, Sie sind bereit, einen Zugangskontrollfehler in freier Wildbahn zu entdecken? Vergleichen Sie diese Docker-Codefragmente; einer ist verwundbar, einer sicher:
Verwundbar:
VON quay.io/prometheus/busybox:latest
ARG-VERSION = 0.12.1
ARG-Dateiname=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$VERSION/$filename.tar.gz &&\
tar -xf $dateiname.tar.gz &&\
mv $Dateiname/mysqld_exporter /bin/mysqld_exporter
KOPIERE .my.cnf /home/.my.cnf
KOPIEREN. /scripts/entrypoint.sh ~/entrypoint.sh
BENUTZER root
AUSSETZEN 9104
EINSTIEGSPUNKT ["sh“, "~/entrypoint.sh"]
CMD [„/bin/mysqld_exporter“]
Sicher:
VON quay.io/prometheus/busybox:latest
ARG-VERSION = 0.12.1
ARG-Dateiname=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$VERSION/$filename.tar.gz &&\
tar -xf $dateiname.tar.gz &&\
mv $Dateiname/mysqld_exporter /bin/mysqld_exporter
KOPIERE .my.cnf /home/.my.cnf
KOPIEREN. /scripts/entrypoint.sh ~/entrypoint.sh
BENUTZER niemand
AUSSETZEN 9104
EINSTIEGSPUNKT ["sh“, "~/entrypoint.sh"]
CMD [„/bin/mysqld_exporter“]
Erfahre mehr, fordere dich selbst heraus
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 und Sicherheitslücken schützen können.
Und wenn du es früher verpasst hast, kannst du probieren Sie eine IaC Gamified Security Challenge aus auf der Secure Code Warrior-Plattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.
Seien Sie gespannt auf das nächste Kapitel!

Es ist Zeit für den nächsten Teil unserer Reihe „Infrastructure as Code“, die Blogs, die Entwickler wie Sie bei der Bereitstellung sicherer Infrastrukturen in Ihrem eigenen Unternehmen auf ein völlig neues Niveau des Sicherheitsbewusstseins heben werden.
Oh, übrigens... wie ist es Ihnen mit der Sicherheitsfehlkonfiguration im vorherigen Blog ergangen? Wenn Sie sofort eine Sicherheitslücke in der Zugriffskontrolle auf Funktionsebene beheben möchten, besuchen Sie die Plattform:
(Der obige Link führt Sie zur Kubernetes-Herausforderung, aber sobald Sie auf der Plattform sind, verwenden Sie das Drop-down-Menü, um auch zwischen Ansible, CloudFormation, Terraform oder Docker auszuwählen. Deine Wahl.)
Fast jede heute eingesetzte Anwendung verfügt über eine Art Zugriffskontrollmechanismus, der überprüft, ob ein Benutzer die Berechtigung hat, die angeforderten Funktionen auszuführen oder nicht. Dies ist so ziemlich der Eckpfeiler guter Sicherheit und Funktionalität bei der Erstellung einer Anwendung. Tatsächlich benötigen alle Webanwendungen Zugriffskontrollen, damit Benutzer mit unterschiedlichen Rechten das Programm verwenden können.
Probleme können jedoch auftreten, wenn dieselben Überprüfungsfunktionen für die Zugriffskontrolle nicht auf Infrastrukturebene ausgeführt werden oder falsch konfiguriert sind. Wenn die Zugriffskontrolle auf Infrastrukturebene nicht in einwandfreiem Zustand ist, ist ein ganzes Unternehmen Hackern ausgesetzt, die diese Sicherheitslücke als Einfallstor für unbefugtes Ausspionieren oder für einen vollständigen Angriff nutzen können.
Tatsächlich ist es extrem einfach, fehlende oder falsch konfigurierte Sicherheitslücken bei der Funktionskontrolle auszunutzen. Angreifer müssen nicht einmal übermäßig geschult sein. Sie müssen nur wissen, welche Befehle Funktionen innerhalb des Frameworks ausführen, das die Anwendung unterstützt. Wenn sie das tun, ist es nur eine Frage von Versuch und Irrtum. Sie können kontinuierlich Anfragen stellen, die nicht zugelassen werden sollten, und sobald eine solche Anfrage erfolgreich ist, könnte die Zielwebsite, die Anwendung, der Server oder sogar das gesamte Netzwerk gefährdet sein.
Wie funktionieren fehlende Zugriffskontroll-Exploits auf Funktionsebene?
Es gibt verschiedene Möglichkeiten, wie sich Zugriffskontrollen auf Funktionsebene in ein Unternehmen einschleichen können. Beispielsweise kann der Zugriff auf Funktionsebene einer Anwendung überlassen werden und nicht von der zugrunde liegenden Infrastruktur verifiziert werden. Oder die Zugriffskontrolle auf Infrastrukturebene kann falsch konfiguriert werden. In einigen Fällen gehen Administratoren davon aus, dass nicht autorisierte Benutzer nicht wissen, wie sie zu Infrastrukturressourcen gelangen, die nur für Benutzer auf höherer Ebene sichtbar sein sollten, und verwenden ein „Security by Obscurity“ -Modell, das selten funktioniert.
Ein Beispiel für Security by Obscurity: Die folgende URL ist wahrscheinlich anfällig für Angriffe:
http://companywebsite.com/app/NormalUserHomepage
Wenn ein authentifizierter Benutzer eine Technik namens Forced URL Browsing verwendet, könnte er versuchen, eine Seite zu erreichen, die nur Administratoren angezeigt wird. Ein Beispiel könnte sein:
http://companywebsite.com/app/AdminPages
Wenn keine serverseitige Überprüfung existiert, werden ihnen einfach die Admin-Seiten angezeigt (falls ihr Name mit der Anfrage übereinstimmt) und haben dann Zugriff auf alle zusätzlichen Funktionen, die Administratoren von der neuen Seite aus ausführen. Wenn der Server den Fehler „Seite nicht gefunden“ an den Angreifer zurückgibt, kann er es einfach so lange versuchen, bis er herausgefunden hat, welchen Namen die Admin-Seite erhalten hat.
Für Angreifer, Ausnutzen fehlende Zugriffskontrollen auf Funktionsebene ist ein ähnlicher Prozess. Anstatt zu versuchen, unautorisierte Seiten zu durchsuchen, senden sie stattdessen Funktionsanfragen ein. Beispielsweise könnten sie versuchen, einen neuen Benutzer mit Administratorrechten zu erstellen. Ihre Anfrage würde also je nach Framework ungefähr so aussehen:
Beitrag/Aktion/CreateUsername=Hacker&pw=password&role=admin
Wenn keine Zugriffskontrolle auf Funktionsebene vorhanden ist, wäre das obige Beispiel erfolgreich und ein neues Administratorkonto würde erstellt. Sobald sich der Angreifer wieder als neuer Administrator anmeldet, hätte er denselben Zugriff und dieselben Berechtigungen wie jeder andere Administrator in diesem Netzwerk oder Server.
Die Lösung für fehlende Zugriffskontrollen auf Funktionsebene
Da es für Angreifer so einfach ist, fehlende Sicherheitslücken bei der Zugriffskontrolle auf Funktionsebene auszunutzen, ist es wichtig, dass sie gefunden, behoben und verhindert werden. Zum Glück ist das mit etwas Fachwissen und einer grundlegenden Infrastruktur nicht allzu schwierig Schulung zur Codesicherheit.
Der Hauptschutz wird durch die Implementierung einer rollenbasierten Autorisierung auf Infrastrukturebene gewährleistet. Vertrauen Sie niemals darauf, dass Anwendungen diese Funktion ausführen. Selbst wenn dies der Fall ist, stellt eine infrastrukturseitige Autorisierung sicher, dass nichts übersehen wird. Idealerweise sollte die Autorisierung von einer zentralen Stelle aus erfolgen (z. B. AWS IAM, Azure IAM usw.), die in die Routine Ihres Unternehmens integriert ist und auf jede neue Anwendung angewendet wird. Diese Autorisierungsprozesse können vom Framework selbst oder aus einer beliebigen Anzahl benutzerfreundlicher externer Module stammen.
Schließlich sollte sich Ihr Unternehmen das Konzept der geringsten Privilegien zu eigen machen. Alle Aktionen und Funktionen sollten standardmäßig verweigert werden, wobei der Autorisierungsprozess verwendet wird, um gültigen Benutzern die Erlaubnis zu geben, alles zu tun, was sie benötigen. Sie sollten nur genügend Berechtigungen erhalten, um die erforderliche Funktion auszuführen, und zwar nur so lange wie erforderlich.
Fehlende Zugriffskontrollen auf Funktionsebene können verheerend sein. Aber glücklicherweise können Sie dieses Problem ganz einfach verhindern, indem Sie in Ihrem Unternehmen gute Autorisierungspraktiken auf Infrastrukturebene integrieren.
Denken Sie, Sie sind bereit, einen Zugangskontrollfehler in freier Wildbahn zu entdecken? Vergleichen Sie diese Docker-Codefragmente; einer ist verwundbar, einer sicher:
Verwundbar:
VON quay.io/prometheus/busybox:latest
ARG-VERSION = 0.12.1
ARG-Dateiname=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$VERSION/$filename.tar.gz &&\
tar -xf $dateiname.tar.gz &&\
mv $Dateiname/mysqld_exporter /bin/mysqld_exporter
KOPIERE .my.cnf /home/.my.cnf
KOPIEREN. /scripts/entrypoint.sh ~/entrypoint.sh
BENUTZER root
AUSSETZEN 9104
EINSTIEGSPUNKT ["sh“, "~/entrypoint.sh"]
CMD [„/bin/mysqld_exporter“]
Sicher:
VON quay.io/prometheus/busybox:latest
ARG-VERSION = 0.12.1
ARG-Dateiname=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$VERSION/$filename.tar.gz &&\
tar -xf $dateiname.tar.gz &&\
mv $Dateiname/mysqld_exporter /bin/mysqld_exporter
KOPIERE .my.cnf /home/.my.cnf
KOPIEREN. /scripts/entrypoint.sh ~/entrypoint.sh
BENUTZER niemand
AUSSETZEN 9104
EINSTIEGSPUNKT ["sh“, "~/entrypoint.sh"]
CMD [„/bin/mysqld_exporter“]
Erfahre mehr, fordere dich selbst heraus
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 und Sicherheitslücken schützen können.
Und wenn du es früher verpasst hast, kannst du probieren Sie eine IaC Gamified Security Challenge aus auf der Secure Code Warrior-Plattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.
Seien Sie gespannt auf das nächste Kapitel!

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.
Secure Code Warrior là pour aider votre entreprise à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre entreprise à réduire les risques liés à un code non sécurisé.
Consulter le rapportRéserver une démonstrationMatias 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.
Es ist Zeit für den nächsten Teil unserer Reihe „Infrastructure as Code“, die Blogs, die Entwickler wie Sie bei der Bereitstellung sicherer Infrastrukturen in Ihrem eigenen Unternehmen auf ein völlig neues Niveau des Sicherheitsbewusstseins heben werden.
Oh, übrigens... wie ist es Ihnen mit der Sicherheitsfehlkonfiguration im vorherigen Blog ergangen? Wenn Sie sofort eine Sicherheitslücke in der Zugriffskontrolle auf Funktionsebene beheben möchten, besuchen Sie die Plattform:
(Der obige Link führt Sie zur Kubernetes-Herausforderung, aber sobald Sie auf der Plattform sind, verwenden Sie das Drop-down-Menü, um auch zwischen Ansible, CloudFormation, Terraform oder Docker auszuwählen. Deine Wahl.)
Fast jede heute eingesetzte Anwendung verfügt über eine Art Zugriffskontrollmechanismus, der überprüft, ob ein Benutzer die Berechtigung hat, die angeforderten Funktionen auszuführen oder nicht. Dies ist so ziemlich der Eckpfeiler guter Sicherheit und Funktionalität bei der Erstellung einer Anwendung. Tatsächlich benötigen alle Webanwendungen Zugriffskontrollen, damit Benutzer mit unterschiedlichen Rechten das Programm verwenden können.
Probleme können jedoch auftreten, wenn dieselben Überprüfungsfunktionen für die Zugriffskontrolle nicht auf Infrastrukturebene ausgeführt werden oder falsch konfiguriert sind. Wenn die Zugriffskontrolle auf Infrastrukturebene nicht in einwandfreiem Zustand ist, ist ein ganzes Unternehmen Hackern ausgesetzt, die diese Sicherheitslücke als Einfallstor für unbefugtes Ausspionieren oder für einen vollständigen Angriff nutzen können.
Tatsächlich ist es extrem einfach, fehlende oder falsch konfigurierte Sicherheitslücken bei der Funktionskontrolle auszunutzen. Angreifer müssen nicht einmal übermäßig geschult sein. Sie müssen nur wissen, welche Befehle Funktionen innerhalb des Frameworks ausführen, das die Anwendung unterstützt. Wenn sie das tun, ist es nur eine Frage von Versuch und Irrtum. Sie können kontinuierlich Anfragen stellen, die nicht zugelassen werden sollten, und sobald eine solche Anfrage erfolgreich ist, könnte die Zielwebsite, die Anwendung, der Server oder sogar das gesamte Netzwerk gefährdet sein.
Wie funktionieren fehlende Zugriffskontroll-Exploits auf Funktionsebene?
Es gibt verschiedene Möglichkeiten, wie sich Zugriffskontrollen auf Funktionsebene in ein Unternehmen einschleichen können. Beispielsweise kann der Zugriff auf Funktionsebene einer Anwendung überlassen werden und nicht von der zugrunde liegenden Infrastruktur verifiziert werden. Oder die Zugriffskontrolle auf Infrastrukturebene kann falsch konfiguriert werden. In einigen Fällen gehen Administratoren davon aus, dass nicht autorisierte Benutzer nicht wissen, wie sie zu Infrastrukturressourcen gelangen, die nur für Benutzer auf höherer Ebene sichtbar sein sollten, und verwenden ein „Security by Obscurity“ -Modell, das selten funktioniert.
Ein Beispiel für Security by Obscurity: Die folgende URL ist wahrscheinlich anfällig für Angriffe:
http://companywebsite.com/app/NormalUserHomepage
Wenn ein authentifizierter Benutzer eine Technik namens Forced URL Browsing verwendet, könnte er versuchen, eine Seite zu erreichen, die nur Administratoren angezeigt wird. Ein Beispiel könnte sein:
http://companywebsite.com/app/AdminPages
Wenn keine serverseitige Überprüfung existiert, werden ihnen einfach die Admin-Seiten angezeigt (falls ihr Name mit der Anfrage übereinstimmt) und haben dann Zugriff auf alle zusätzlichen Funktionen, die Administratoren von der neuen Seite aus ausführen. Wenn der Server den Fehler „Seite nicht gefunden“ an den Angreifer zurückgibt, kann er es einfach so lange versuchen, bis er herausgefunden hat, welchen Namen die Admin-Seite erhalten hat.
Für Angreifer, Ausnutzen fehlende Zugriffskontrollen auf Funktionsebene ist ein ähnlicher Prozess. Anstatt zu versuchen, unautorisierte Seiten zu durchsuchen, senden sie stattdessen Funktionsanfragen ein. Beispielsweise könnten sie versuchen, einen neuen Benutzer mit Administratorrechten zu erstellen. Ihre Anfrage würde also je nach Framework ungefähr so aussehen:
Beitrag/Aktion/CreateUsername=Hacker&pw=password&role=admin
Wenn keine Zugriffskontrolle auf Funktionsebene vorhanden ist, wäre das obige Beispiel erfolgreich und ein neues Administratorkonto würde erstellt. Sobald sich der Angreifer wieder als neuer Administrator anmeldet, hätte er denselben Zugriff und dieselben Berechtigungen wie jeder andere Administrator in diesem Netzwerk oder Server.
Die Lösung für fehlende Zugriffskontrollen auf Funktionsebene
Da es für Angreifer so einfach ist, fehlende Sicherheitslücken bei der Zugriffskontrolle auf Funktionsebene auszunutzen, ist es wichtig, dass sie gefunden, behoben und verhindert werden. Zum Glück ist das mit etwas Fachwissen und einer grundlegenden Infrastruktur nicht allzu schwierig Schulung zur Codesicherheit.
Der Hauptschutz wird durch die Implementierung einer rollenbasierten Autorisierung auf Infrastrukturebene gewährleistet. Vertrauen Sie niemals darauf, dass Anwendungen diese Funktion ausführen. Selbst wenn dies der Fall ist, stellt eine infrastrukturseitige Autorisierung sicher, dass nichts übersehen wird. Idealerweise sollte die Autorisierung von einer zentralen Stelle aus erfolgen (z. B. AWS IAM, Azure IAM usw.), die in die Routine Ihres Unternehmens integriert ist und auf jede neue Anwendung angewendet wird. Diese Autorisierungsprozesse können vom Framework selbst oder aus einer beliebigen Anzahl benutzerfreundlicher externer Module stammen.
Schließlich sollte sich Ihr Unternehmen das Konzept der geringsten Privilegien zu eigen machen. Alle Aktionen und Funktionen sollten standardmäßig verweigert werden, wobei der Autorisierungsprozess verwendet wird, um gültigen Benutzern die Erlaubnis zu geben, alles zu tun, was sie benötigen. Sie sollten nur genügend Berechtigungen erhalten, um die erforderliche Funktion auszuführen, und zwar nur so lange wie erforderlich.
Fehlende Zugriffskontrollen auf Funktionsebene können verheerend sein. Aber glücklicherweise können Sie dieses Problem ganz einfach verhindern, indem Sie in Ihrem Unternehmen gute Autorisierungspraktiken auf Infrastrukturebene integrieren.
Denken Sie, Sie sind bereit, einen Zugangskontrollfehler in freier Wildbahn zu entdecken? Vergleichen Sie diese Docker-Codefragmente; einer ist verwundbar, einer sicher:
Verwundbar:
VON quay.io/prometheus/busybox:latest
ARG-VERSION = 0.12.1
ARG-Dateiname=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$VERSION/$filename.tar.gz &&\
tar -xf $dateiname.tar.gz &&\
mv $Dateiname/mysqld_exporter /bin/mysqld_exporter
KOPIERE .my.cnf /home/.my.cnf
KOPIEREN. /scripts/entrypoint.sh ~/entrypoint.sh
BENUTZER root
AUSSETZEN 9104
EINSTIEGSPUNKT ["sh“, "~/entrypoint.sh"]
CMD [„/bin/mysqld_exporter“]
Sicher:
VON quay.io/prometheus/busybox:latest
ARG-VERSION = 0.12.1
ARG-Dateiname=mysqld_exporter-$ {VERSION} .linux-amd64
ARG URL= https://github.com/prometheus/mysqld_exporter/releases/download/v
RUN wget $URL$VERSION/$filename.tar.gz &&\
tar -xf $dateiname.tar.gz &&\
mv $Dateiname/mysqld_exporter /bin/mysqld_exporter
KOPIERE .my.cnf /home/.my.cnf
KOPIEREN. /scripts/entrypoint.sh ~/entrypoint.sh
BENUTZER niemand
AUSSETZEN 9104
EINSTIEGSPUNKT ["sh“, "~/entrypoint.sh"]
CMD [„/bin/mysqld_exporter“]
Erfahre mehr, fordere dich selbst heraus
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 und Sicherheitslücken schützen können.
Und wenn du es früher verpasst hast, kannst du probieren Sie eine IaC Gamified Security Challenge aus auf der Secure Code Warrior-Plattform, um all Ihre Cybersicherheitsfähigkeiten zu verbessern und auf dem neuesten Stand zu halten.
Seien Sie gespannt auf das nächste Kapitel!
Table des matières
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 là pour aider votre entreprise à sécuriser le code tout au long du cycle de développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre entreprise à réduire les risques liés à un code non sécurisé.
Réserver une démonstrationTéléchargerRessources pour débuter
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.
La puissance de la sécurité des applications 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.
Thèmes et contenus de la formation Securecode
Nos contenus de pointe sont constamment développés afin de s'adapter à l'évolution constante du paysage du développement logiciel, en tenant compte de votre rôle. Les thèmes abordés couvrent tous les domaines, de l'IA à l'injection XQuery, et sont proposés pour une multitude de rôles, des architectes et ingénieurs aux chefs de produit et responsables assurance qualité. Nous vous invitons à découvrir un aperçu de notre catalogue de contenus classés par thème et par rôle.
Ressources pour débuter
Cybermon est de retour : les missions KI « Beat the Boss » sont désormais disponibles sur demande.
Cybermon 2025 Beat the Boss est désormais disponible toute l'année dans SCW. Il utilise des exigences de sécurité IA/LLM avancées pour renforcer le développement sécurisé de l'IA à grande échelle.
Explication de la loi sur la cyber-résilience : implications pour le développement de logiciels sécurisés dès la conception
Découvrez les exigences de la loi européenne sur la cyber-résilience (CRA), à qui elle s'applique et comment les équipes de développement peuvent s'y préparer en adoptant des méthodes sécurisées, en prévenant les failles de sécurité et en renforçant les compétences des développeurs.
Facteur 1 : Critères de réussite définis et mesurables
Le catalyseur n° 1 inaugure notre série en dix parties intitulée « Les catalyseurs de la réussite » et démontre comment un codage sécurisé peut être associé à des résultats commerciaux tels que la réduction des risques et la rapidité afin d'atteindre une maturité programmatique à long terme.




