
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. is a security expert, researcher, and CTO and co-founder of Secure Code Warrior. Matias obtained his Ph.D. in Application Security from Ghent University, focusing on static analysis solutions. He later joined Fortify in the US, where he realized that it was insufficient to solely detect code problems without aiding developers in writing secure code. This inspired him to develop products that assist developers, alleviate the burden of security, and exceed customers' expectations. When he is not at his desk as part of Team Awesome, he enjoys being on stage presenting at conferences including RSA Conference, BlackHat and DefCon.

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


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!

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

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




%20(1).avif)
.avif)
