Coders Conquer Security: Share & Learn Series - Broken Access Control
Wenn Sie eine Geschäftsanwendung erstellen, sei es für den internen Gebrauch oder die externe Nutzung durch Ihre Kunden, lassen Sie wahrscheinlich nicht jeden Benutzer jede einzelne Funktion ausführen. Wenn Sie das tun, sind Sie möglicherweise anfällig für eine fehlerhafte Zugriffskontrolle.
Lassen Sie uns einen Blick darauf werfen, was eine defekte Zugriffskontrolle ist, warum sie so gefährlich ist und wie man sie beheben kann.
Defekte Zugriffskontrolle verstehen
Eine fehlerhafte Zugriffskontrolle tritt auf, wenn der Anwendungscode nicht über die richtigen Sicherheits- oder Zugriffsprüfungen verfügt. Es kann auch vorkommen, wenn eine Anwendung in irgendeiner Weise falsch konfiguriert ist und den Zugriff auf Funktionen oder Seiten erlaubt, auf die der Benutzer keinen Zugriff haben sollte.
Wenn Sie die Finanzen Ihres Unternehmens verwalten, haben Sie möglicherweise Zugriff darauf, Geld auf bestimmte Konten einzuzahlen oder Geld zwischen den Konten Ihres Unternehmens zu übertragen. Sie sollten jedoch keinen Zugriff haben, um Geld von diesen Konten abzuheben oder Geld auf andere Konten zu überweisen. Wenn die entsprechenden Zugangskontrollen nicht vorhanden sind, können Ihre Mitarbeiter möglicherweise mehr Funktionen als nötig ausführen.
Diese Prüfungen können entweder innerhalb des Codes oder in Konfigurationsdateien durchgeführt werden. So kann es z. B. XML-Konfigurationsdateien geben, die dem Web Application Framework mitteilen, welche Benutzer auf welche Seiten zugreifen dürfen. Dadurch wird sichergestellt, dass Benutzer nur auf die Funktionen zugreifen können, für die sie berechtigt sind.
Warum eine defekte Zugangskontrolle gefährlich ist
Betrachten Sie dieses Beispiel: Ein Angreifer hat erkannt, dass Ihr Code zur Erstellung von Benutzerkonten manipuliert werden kann, sodass der Angreifer mit einer einfachen Post-Anfrage einen Admin-Benutzer erstellen kann. Er kann eine Anfrage mit dem Benutzernamen und dem Kennwort senden und sie dann unterwegs ändern, um die Rolle "admin" als Parameter in die URL oder in den Text der Anfrage aufzunehmen. Der Angreifer meldet sich bei der Anwendung an und erhält sofort Administratorrechte.
Es muss nicht immer ein böswilliger Angreifer sein, der in ein System eindringt. Ohne angemessene Zugriffskontrollen können sensible Informationen, die nicht zwischen Abteilungen ausgetauscht werden sollten, nach außen dringen. Stellen Sie sich vor, jeder Mitarbeiter im Unternehmen könnte Personalabrechnungsdaten oder Finanzdaten sehen. Was würde passieren, wenn jeder Mitarbeiter sehen könnte, dass Entlassungen aufgrund der schlechten finanziellen Situation des Unternehmens bevorstehen? Dies könnte der Moral und dem Ruf Ihres Unternehmens schaden.
Sensible Informationen von Kunden könnten ebenfalls verloren gehen. Unternehmen speichern oft persönliche Informationen von Kunden, die ihre Dienste nutzen. Achten Sie darauf, dass diese nicht versehentlich aufgrund einer fehlenden Zugriffskontrolle preisgegeben werden. Wenn Ihr System beispielsweise Benutzern die Möglichkeit gibt, ihre Gesundheitsdaten anzufordern, haben sie dann auch die Möglichkeit, die Gesundheitsdaten anderer anzufordern und zu sehen? Wenn die URL eine Kunden-ID-Nummer enthält, könnten Angreifer diese Kunden-ID-Nummer immer wieder inkrementieren, bis sie eine finden, die zu einem anderen Kunden passt, und so dessen persönliche Daten preisgeben.
Defeat Broken Access Control
Die rollenbasierte Zugriffskontrolle (RBAC) ist ein sehr effektives Werkzeug zur Implementierung einer soliden Zugriffskontrolle. Diejenigen, die Active Directory verwenden, sind vielleicht mit der Idee vertraut, Gruppen zu erstellen und den Zugriff auf bestimmte Elemente innerhalb der Gruppe zu gewähren, anstatt auf die Einzelperson. Anwendungen arbeiten auf die gleiche Weise, indem sie Rollen verwenden, um zu definieren, wer was sehen darf.
Dies hat zwei Vorteile. Erstens muss eine Funktion nicht geändert werden, wenn jemand die Administratorrolle verlässt. Wenn jemand vorher Administrator war und jetzt nicht mehr sein soll, dann setzen Sie einfach eine neue Person in die Administratorrolle und entfernen die vorherige Person aus der Rolle. Der Code prüft, ob der Benutzer die Administratorrolle hat, anstatt zu prüfen, ob jeder einzelne Benutzer Zugriff auf eine bestimmte Seite oder Funktion hat.
Der zweite Vorteil ist das Vermeiden eines Wartungsalptraums. Eine Zugriffskontrolle, die so granular ist, dass jede Person Assoziationen mit jeder einzelnen möglichen Funktion oder Seite hat, wird mit der Zeit unmöglich zu verwalten sein. Rollen machen die Dinge viel einfacher, weil mehrere Personen zu einer Rolle hinzugefügt werden können. Eine Rolle kann das gesamte Unternehmen umfassen, während eine andere vielleicht nur fünf Personen hat. Dies macht die Verwaltung der Rollen effizienter, da es weniger Rollen zu verwalten gibt. Ein Unternehmen mit 10.000 Mitarbeitern könnte nur 100 Rollen haben statt der 10.000-fachen Anzahl von Funktionen in Ihrer Anwendung. Recherchieren Sie das von Ihnen gewählte Anwendungsframework, um zu sehen, welche Optionen für eine robuste Zugriffskontrolle bestehen.
Es ist außerdem wichtig, eine Zugriffskontrolle auf Funktionsebene zu verwenden. Schützen Sie den Zugriff auf alle Funktionen, indem Sie von den Benutzern verlangen, dass sie bestimmte Zugriffskontrollprüfungen bestehen. Verwenden Sie das Prinzip der geringsten Privilegien, indem Sie den Zugriff standardmäßig verweigern und nur bei Bedarf freigeben. Es kann schwierig sein, sich daran zu erinnern, die Zugriffskontrolle für jede Funktion zu implementieren. Verwenden Sie eine zentrale Komponente zur Verwaltung und Durchsetzung der Zugriffskontrolle.
Schützen Sie Ihre sensiblen Funktionen
Eine unzureichende Zugriffskontrolle kann Ihre Daten und Ihre Anwendung für Angriffe und Ausbeutung weit offen lassen. Kundendaten, die nicht richtig geschützt sind, können zu einer massiven Datenverletzung führen, die Ihrem Ruf und Ihren Einnahmen schadet.
Eine unzureichende Zugriffskontrolle kann auch zu einer Kontoübernahme führen, wenn Angreifer auf Funktionen zugreifen können, auf die sie keinen Zugriff haben sollten. Verwenden Sie eine angemessene Zugriffskontrolle auf Funktionsebene, und Sie schützen Ihre Anwendung vor böswilligen Angreifern und sogar vor versehentlichen Insidern.
Sie denken, dass Sie den Zugang zur Funktionsebene beherrschen? Sie können sich jetzt der Herausforderung stellen, eine defekte Zugangskontrolle zu reparieren: [Hier starten]
Wenn Sie eine Geschäftsanwendung erstellen, sei es für den internen Gebrauch oder die externe Nutzung durch Ihre Kunden, lassen Sie wahrscheinlich nicht jeden Benutzer jede einzelne Funktion ausführen. Wenn Sie das tun, sind Sie möglicherweise anfällig für eine fehlerhafte Zugriffskontrolle.
Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenJaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Wenn Sie eine Geschäftsanwendung erstellen, sei es für den internen Gebrauch oder die externe Nutzung durch Ihre Kunden, lassen Sie wahrscheinlich nicht jeden Benutzer jede einzelne Funktion ausführen. Wenn Sie das tun, sind Sie möglicherweise anfällig für eine fehlerhafte Zugriffskontrolle.
Lassen Sie uns einen Blick darauf werfen, was eine defekte Zugriffskontrolle ist, warum sie so gefährlich ist und wie man sie beheben kann.
Defekte Zugriffskontrolle verstehen
Eine fehlerhafte Zugriffskontrolle tritt auf, wenn der Anwendungscode nicht über die richtigen Sicherheits- oder Zugriffsprüfungen verfügt. Es kann auch vorkommen, wenn eine Anwendung in irgendeiner Weise falsch konfiguriert ist und den Zugriff auf Funktionen oder Seiten erlaubt, auf die der Benutzer keinen Zugriff haben sollte.
Wenn Sie die Finanzen Ihres Unternehmens verwalten, haben Sie möglicherweise Zugriff darauf, Geld auf bestimmte Konten einzuzahlen oder Geld zwischen den Konten Ihres Unternehmens zu übertragen. Sie sollten jedoch keinen Zugriff haben, um Geld von diesen Konten abzuheben oder Geld auf andere Konten zu überweisen. Wenn die entsprechenden Zugangskontrollen nicht vorhanden sind, können Ihre Mitarbeiter möglicherweise mehr Funktionen als nötig ausführen.
Diese Prüfungen können entweder innerhalb des Codes oder in Konfigurationsdateien durchgeführt werden. So kann es z. B. XML-Konfigurationsdateien geben, die dem Web Application Framework mitteilen, welche Benutzer auf welche Seiten zugreifen dürfen. Dadurch wird sichergestellt, dass Benutzer nur auf die Funktionen zugreifen können, für die sie berechtigt sind.
Warum eine defekte Zugangskontrolle gefährlich ist
Betrachten Sie dieses Beispiel: Ein Angreifer hat erkannt, dass Ihr Code zur Erstellung von Benutzerkonten manipuliert werden kann, sodass der Angreifer mit einer einfachen Post-Anfrage einen Admin-Benutzer erstellen kann. Er kann eine Anfrage mit dem Benutzernamen und dem Kennwort senden und sie dann unterwegs ändern, um die Rolle "admin" als Parameter in die URL oder in den Text der Anfrage aufzunehmen. Der Angreifer meldet sich bei der Anwendung an und erhält sofort Administratorrechte.
Es muss nicht immer ein böswilliger Angreifer sein, der in ein System eindringt. Ohne angemessene Zugriffskontrollen können sensible Informationen, die nicht zwischen Abteilungen ausgetauscht werden sollten, nach außen dringen. Stellen Sie sich vor, jeder Mitarbeiter im Unternehmen könnte Personalabrechnungsdaten oder Finanzdaten sehen. Was würde passieren, wenn jeder Mitarbeiter sehen könnte, dass Entlassungen aufgrund der schlechten finanziellen Situation des Unternehmens bevorstehen? Dies könnte der Moral und dem Ruf Ihres Unternehmens schaden.
Sensible Informationen von Kunden könnten ebenfalls verloren gehen. Unternehmen speichern oft persönliche Informationen von Kunden, die ihre Dienste nutzen. Achten Sie darauf, dass diese nicht versehentlich aufgrund einer fehlenden Zugriffskontrolle preisgegeben werden. Wenn Ihr System beispielsweise Benutzern die Möglichkeit gibt, ihre Gesundheitsdaten anzufordern, haben sie dann auch die Möglichkeit, die Gesundheitsdaten anderer anzufordern und zu sehen? Wenn die URL eine Kunden-ID-Nummer enthält, könnten Angreifer diese Kunden-ID-Nummer immer wieder inkrementieren, bis sie eine finden, die zu einem anderen Kunden passt, und so dessen persönliche Daten preisgeben.
Defeat Broken Access Control
Die rollenbasierte Zugriffskontrolle (RBAC) ist ein sehr effektives Werkzeug zur Implementierung einer soliden Zugriffskontrolle. Diejenigen, die Active Directory verwenden, sind vielleicht mit der Idee vertraut, Gruppen zu erstellen und den Zugriff auf bestimmte Elemente innerhalb der Gruppe zu gewähren, anstatt auf die Einzelperson. Anwendungen arbeiten auf die gleiche Weise, indem sie Rollen verwenden, um zu definieren, wer was sehen darf.
Dies hat zwei Vorteile. Erstens muss eine Funktion nicht geändert werden, wenn jemand die Administratorrolle verlässt. Wenn jemand vorher Administrator war und jetzt nicht mehr sein soll, dann setzen Sie einfach eine neue Person in die Administratorrolle und entfernen die vorherige Person aus der Rolle. Der Code prüft, ob der Benutzer die Administratorrolle hat, anstatt zu prüfen, ob jeder einzelne Benutzer Zugriff auf eine bestimmte Seite oder Funktion hat.
Der zweite Vorteil ist das Vermeiden eines Wartungsalptraums. Eine Zugriffskontrolle, die so granular ist, dass jede Person Assoziationen mit jeder einzelnen möglichen Funktion oder Seite hat, wird mit der Zeit unmöglich zu verwalten sein. Rollen machen die Dinge viel einfacher, weil mehrere Personen zu einer Rolle hinzugefügt werden können. Eine Rolle kann das gesamte Unternehmen umfassen, während eine andere vielleicht nur fünf Personen hat. Dies macht die Verwaltung der Rollen effizienter, da es weniger Rollen zu verwalten gibt. Ein Unternehmen mit 10.000 Mitarbeitern könnte nur 100 Rollen haben statt der 10.000-fachen Anzahl von Funktionen in Ihrer Anwendung. Recherchieren Sie das von Ihnen gewählte Anwendungsframework, um zu sehen, welche Optionen für eine robuste Zugriffskontrolle bestehen.
Es ist außerdem wichtig, eine Zugriffskontrolle auf Funktionsebene zu verwenden. Schützen Sie den Zugriff auf alle Funktionen, indem Sie von den Benutzern verlangen, dass sie bestimmte Zugriffskontrollprüfungen bestehen. Verwenden Sie das Prinzip der geringsten Privilegien, indem Sie den Zugriff standardmäßig verweigern und nur bei Bedarf freigeben. Es kann schwierig sein, sich daran zu erinnern, die Zugriffskontrolle für jede Funktion zu implementieren. Verwenden Sie eine zentrale Komponente zur Verwaltung und Durchsetzung der Zugriffskontrolle.
Schützen Sie Ihre sensiblen Funktionen
Eine unzureichende Zugriffskontrolle kann Ihre Daten und Ihre Anwendung für Angriffe und Ausbeutung weit offen lassen. Kundendaten, die nicht richtig geschützt sind, können zu einer massiven Datenverletzung führen, die Ihrem Ruf und Ihren Einnahmen schadet.
Eine unzureichende Zugriffskontrolle kann auch zu einer Kontoübernahme führen, wenn Angreifer auf Funktionen zugreifen können, auf die sie keinen Zugriff haben sollten. Verwenden Sie eine angemessene Zugriffskontrolle auf Funktionsebene, und Sie schützen Ihre Anwendung vor böswilligen Angreifern und sogar vor versehentlichen Insidern.
Sie denken, dass Sie den Zugang zur Funktionsebene beherrschen? Sie können sich jetzt der Herausforderung stellen, eine defekte Zugangskontrolle zu reparieren: [Hier starten]
Wenn Sie eine Geschäftsanwendung erstellen, sei es für den internen Gebrauch oder die externe Nutzung durch Ihre Kunden, lassen Sie wahrscheinlich nicht jeden Benutzer jede einzelne Funktion ausführen. Wenn Sie das tun, sind Sie möglicherweise anfällig für eine fehlerhafte Zugriffskontrolle.
Lassen Sie uns einen Blick darauf werfen, was eine defekte Zugriffskontrolle ist, warum sie so gefährlich ist und wie man sie beheben kann.
Defekte Zugriffskontrolle verstehen
Eine fehlerhafte Zugriffskontrolle tritt auf, wenn der Anwendungscode nicht über die richtigen Sicherheits- oder Zugriffsprüfungen verfügt. Es kann auch vorkommen, wenn eine Anwendung in irgendeiner Weise falsch konfiguriert ist und den Zugriff auf Funktionen oder Seiten erlaubt, auf die der Benutzer keinen Zugriff haben sollte.
Wenn Sie die Finanzen Ihres Unternehmens verwalten, haben Sie möglicherweise Zugriff darauf, Geld auf bestimmte Konten einzuzahlen oder Geld zwischen den Konten Ihres Unternehmens zu übertragen. Sie sollten jedoch keinen Zugriff haben, um Geld von diesen Konten abzuheben oder Geld auf andere Konten zu überweisen. Wenn die entsprechenden Zugangskontrollen nicht vorhanden sind, können Ihre Mitarbeiter möglicherweise mehr Funktionen als nötig ausführen.
Diese Prüfungen können entweder innerhalb des Codes oder in Konfigurationsdateien durchgeführt werden. So kann es z. B. XML-Konfigurationsdateien geben, die dem Web Application Framework mitteilen, welche Benutzer auf welche Seiten zugreifen dürfen. Dadurch wird sichergestellt, dass Benutzer nur auf die Funktionen zugreifen können, für die sie berechtigt sind.
Warum eine defekte Zugangskontrolle gefährlich ist
Betrachten Sie dieses Beispiel: Ein Angreifer hat erkannt, dass Ihr Code zur Erstellung von Benutzerkonten manipuliert werden kann, sodass der Angreifer mit einer einfachen Post-Anfrage einen Admin-Benutzer erstellen kann. Er kann eine Anfrage mit dem Benutzernamen und dem Kennwort senden und sie dann unterwegs ändern, um die Rolle "admin" als Parameter in die URL oder in den Text der Anfrage aufzunehmen. Der Angreifer meldet sich bei der Anwendung an und erhält sofort Administratorrechte.
Es muss nicht immer ein böswilliger Angreifer sein, der in ein System eindringt. Ohne angemessene Zugriffskontrollen können sensible Informationen, die nicht zwischen Abteilungen ausgetauscht werden sollten, nach außen dringen. Stellen Sie sich vor, jeder Mitarbeiter im Unternehmen könnte Personalabrechnungsdaten oder Finanzdaten sehen. Was würde passieren, wenn jeder Mitarbeiter sehen könnte, dass Entlassungen aufgrund der schlechten finanziellen Situation des Unternehmens bevorstehen? Dies könnte der Moral und dem Ruf Ihres Unternehmens schaden.
Sensible Informationen von Kunden könnten ebenfalls verloren gehen. Unternehmen speichern oft persönliche Informationen von Kunden, die ihre Dienste nutzen. Achten Sie darauf, dass diese nicht versehentlich aufgrund einer fehlenden Zugriffskontrolle preisgegeben werden. Wenn Ihr System beispielsweise Benutzern die Möglichkeit gibt, ihre Gesundheitsdaten anzufordern, haben sie dann auch die Möglichkeit, die Gesundheitsdaten anderer anzufordern und zu sehen? Wenn die URL eine Kunden-ID-Nummer enthält, könnten Angreifer diese Kunden-ID-Nummer immer wieder inkrementieren, bis sie eine finden, die zu einem anderen Kunden passt, und so dessen persönliche Daten preisgeben.
Defeat Broken Access Control
Die rollenbasierte Zugriffskontrolle (RBAC) ist ein sehr effektives Werkzeug zur Implementierung einer soliden Zugriffskontrolle. Diejenigen, die Active Directory verwenden, sind vielleicht mit der Idee vertraut, Gruppen zu erstellen und den Zugriff auf bestimmte Elemente innerhalb der Gruppe zu gewähren, anstatt auf die Einzelperson. Anwendungen arbeiten auf die gleiche Weise, indem sie Rollen verwenden, um zu definieren, wer was sehen darf.
Dies hat zwei Vorteile. Erstens muss eine Funktion nicht geändert werden, wenn jemand die Administratorrolle verlässt. Wenn jemand vorher Administrator war und jetzt nicht mehr sein soll, dann setzen Sie einfach eine neue Person in die Administratorrolle und entfernen die vorherige Person aus der Rolle. Der Code prüft, ob der Benutzer die Administratorrolle hat, anstatt zu prüfen, ob jeder einzelne Benutzer Zugriff auf eine bestimmte Seite oder Funktion hat.
Der zweite Vorteil ist das Vermeiden eines Wartungsalptraums. Eine Zugriffskontrolle, die so granular ist, dass jede Person Assoziationen mit jeder einzelnen möglichen Funktion oder Seite hat, wird mit der Zeit unmöglich zu verwalten sein. Rollen machen die Dinge viel einfacher, weil mehrere Personen zu einer Rolle hinzugefügt werden können. Eine Rolle kann das gesamte Unternehmen umfassen, während eine andere vielleicht nur fünf Personen hat. Dies macht die Verwaltung der Rollen effizienter, da es weniger Rollen zu verwalten gibt. Ein Unternehmen mit 10.000 Mitarbeitern könnte nur 100 Rollen haben statt der 10.000-fachen Anzahl von Funktionen in Ihrer Anwendung. Recherchieren Sie das von Ihnen gewählte Anwendungsframework, um zu sehen, welche Optionen für eine robuste Zugriffskontrolle bestehen.
Es ist außerdem wichtig, eine Zugriffskontrolle auf Funktionsebene zu verwenden. Schützen Sie den Zugriff auf alle Funktionen, indem Sie von den Benutzern verlangen, dass sie bestimmte Zugriffskontrollprüfungen bestehen. Verwenden Sie das Prinzip der geringsten Privilegien, indem Sie den Zugriff standardmäßig verweigern und nur bei Bedarf freigeben. Es kann schwierig sein, sich daran zu erinnern, die Zugriffskontrolle für jede Funktion zu implementieren. Verwenden Sie eine zentrale Komponente zur Verwaltung und Durchsetzung der Zugriffskontrolle.
Schützen Sie Ihre sensiblen Funktionen
Eine unzureichende Zugriffskontrolle kann Ihre Daten und Ihre Anwendung für Angriffe und Ausbeutung weit offen lassen. Kundendaten, die nicht richtig geschützt sind, können zu einer massiven Datenverletzung führen, die Ihrem Ruf und Ihren Einnahmen schadet.
Eine unzureichende Zugriffskontrolle kann auch zu einer Kontoübernahme führen, wenn Angreifer auf Funktionen zugreifen können, auf die sie keinen Zugriff haben sollten. Verwenden Sie eine angemessene Zugriffskontrolle auf Funktionsebene, und Sie schützen Ihre Anwendung vor böswilligen Angreifern und sogar vor versehentlichen Insidern.
Sie denken, dass Sie den Zugang zur Funktionsebene beherrschen? Sie können sich jetzt der Herausforderung stellen, eine defekte Zugangskontrolle zu reparieren: [Hier starten]
Klicken Sie auf den unten stehenden Link und laden Sie die PDF-Datei dieser Ressource herunter.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Bericht ansehenDemo buchenJaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Wenn Sie eine Geschäftsanwendung erstellen, sei es für den internen Gebrauch oder die externe Nutzung durch Ihre Kunden, lassen Sie wahrscheinlich nicht jeden Benutzer jede einzelne Funktion ausführen. Wenn Sie das tun, sind Sie möglicherweise anfällig für eine fehlerhafte Zugriffskontrolle.
Lassen Sie uns einen Blick darauf werfen, was eine defekte Zugriffskontrolle ist, warum sie so gefährlich ist und wie man sie beheben kann.
Defekte Zugriffskontrolle verstehen
Eine fehlerhafte Zugriffskontrolle tritt auf, wenn der Anwendungscode nicht über die richtigen Sicherheits- oder Zugriffsprüfungen verfügt. Es kann auch vorkommen, wenn eine Anwendung in irgendeiner Weise falsch konfiguriert ist und den Zugriff auf Funktionen oder Seiten erlaubt, auf die der Benutzer keinen Zugriff haben sollte.
Wenn Sie die Finanzen Ihres Unternehmens verwalten, haben Sie möglicherweise Zugriff darauf, Geld auf bestimmte Konten einzuzahlen oder Geld zwischen den Konten Ihres Unternehmens zu übertragen. Sie sollten jedoch keinen Zugriff haben, um Geld von diesen Konten abzuheben oder Geld auf andere Konten zu überweisen. Wenn die entsprechenden Zugangskontrollen nicht vorhanden sind, können Ihre Mitarbeiter möglicherweise mehr Funktionen als nötig ausführen.
Diese Prüfungen können entweder innerhalb des Codes oder in Konfigurationsdateien durchgeführt werden. So kann es z. B. XML-Konfigurationsdateien geben, die dem Web Application Framework mitteilen, welche Benutzer auf welche Seiten zugreifen dürfen. Dadurch wird sichergestellt, dass Benutzer nur auf die Funktionen zugreifen können, für die sie berechtigt sind.
Warum eine defekte Zugangskontrolle gefährlich ist
Betrachten Sie dieses Beispiel: Ein Angreifer hat erkannt, dass Ihr Code zur Erstellung von Benutzerkonten manipuliert werden kann, sodass der Angreifer mit einer einfachen Post-Anfrage einen Admin-Benutzer erstellen kann. Er kann eine Anfrage mit dem Benutzernamen und dem Kennwort senden und sie dann unterwegs ändern, um die Rolle "admin" als Parameter in die URL oder in den Text der Anfrage aufzunehmen. Der Angreifer meldet sich bei der Anwendung an und erhält sofort Administratorrechte.
Es muss nicht immer ein böswilliger Angreifer sein, der in ein System eindringt. Ohne angemessene Zugriffskontrollen können sensible Informationen, die nicht zwischen Abteilungen ausgetauscht werden sollten, nach außen dringen. Stellen Sie sich vor, jeder Mitarbeiter im Unternehmen könnte Personalabrechnungsdaten oder Finanzdaten sehen. Was würde passieren, wenn jeder Mitarbeiter sehen könnte, dass Entlassungen aufgrund der schlechten finanziellen Situation des Unternehmens bevorstehen? Dies könnte der Moral und dem Ruf Ihres Unternehmens schaden.
Sensible Informationen von Kunden könnten ebenfalls verloren gehen. Unternehmen speichern oft persönliche Informationen von Kunden, die ihre Dienste nutzen. Achten Sie darauf, dass diese nicht versehentlich aufgrund einer fehlenden Zugriffskontrolle preisgegeben werden. Wenn Ihr System beispielsweise Benutzern die Möglichkeit gibt, ihre Gesundheitsdaten anzufordern, haben sie dann auch die Möglichkeit, die Gesundheitsdaten anderer anzufordern und zu sehen? Wenn die URL eine Kunden-ID-Nummer enthält, könnten Angreifer diese Kunden-ID-Nummer immer wieder inkrementieren, bis sie eine finden, die zu einem anderen Kunden passt, und so dessen persönliche Daten preisgeben.
Defeat Broken Access Control
Die rollenbasierte Zugriffskontrolle (RBAC) ist ein sehr effektives Werkzeug zur Implementierung einer soliden Zugriffskontrolle. Diejenigen, die Active Directory verwenden, sind vielleicht mit der Idee vertraut, Gruppen zu erstellen und den Zugriff auf bestimmte Elemente innerhalb der Gruppe zu gewähren, anstatt auf die Einzelperson. Anwendungen arbeiten auf die gleiche Weise, indem sie Rollen verwenden, um zu definieren, wer was sehen darf.
Dies hat zwei Vorteile. Erstens muss eine Funktion nicht geändert werden, wenn jemand die Administratorrolle verlässt. Wenn jemand vorher Administrator war und jetzt nicht mehr sein soll, dann setzen Sie einfach eine neue Person in die Administratorrolle und entfernen die vorherige Person aus der Rolle. Der Code prüft, ob der Benutzer die Administratorrolle hat, anstatt zu prüfen, ob jeder einzelne Benutzer Zugriff auf eine bestimmte Seite oder Funktion hat.
Der zweite Vorteil ist das Vermeiden eines Wartungsalptraums. Eine Zugriffskontrolle, die so granular ist, dass jede Person Assoziationen mit jeder einzelnen möglichen Funktion oder Seite hat, wird mit der Zeit unmöglich zu verwalten sein. Rollen machen die Dinge viel einfacher, weil mehrere Personen zu einer Rolle hinzugefügt werden können. Eine Rolle kann das gesamte Unternehmen umfassen, während eine andere vielleicht nur fünf Personen hat. Dies macht die Verwaltung der Rollen effizienter, da es weniger Rollen zu verwalten gibt. Ein Unternehmen mit 10.000 Mitarbeitern könnte nur 100 Rollen haben statt der 10.000-fachen Anzahl von Funktionen in Ihrer Anwendung. Recherchieren Sie das von Ihnen gewählte Anwendungsframework, um zu sehen, welche Optionen für eine robuste Zugriffskontrolle bestehen.
Es ist außerdem wichtig, eine Zugriffskontrolle auf Funktionsebene zu verwenden. Schützen Sie den Zugriff auf alle Funktionen, indem Sie von den Benutzern verlangen, dass sie bestimmte Zugriffskontrollprüfungen bestehen. Verwenden Sie das Prinzip der geringsten Privilegien, indem Sie den Zugriff standardmäßig verweigern und nur bei Bedarf freigeben. Es kann schwierig sein, sich daran zu erinnern, die Zugriffskontrolle für jede Funktion zu implementieren. Verwenden Sie eine zentrale Komponente zur Verwaltung und Durchsetzung der Zugriffskontrolle.
Schützen Sie Ihre sensiblen Funktionen
Eine unzureichende Zugriffskontrolle kann Ihre Daten und Ihre Anwendung für Angriffe und Ausbeutung weit offen lassen. Kundendaten, die nicht richtig geschützt sind, können zu einer massiven Datenverletzung führen, die Ihrem Ruf und Ihren Einnahmen schadet.
Eine unzureichende Zugriffskontrolle kann auch zu einer Kontoübernahme führen, wenn Angreifer auf Funktionen zugreifen können, auf die sie keinen Zugriff haben sollten. Verwenden Sie eine angemessene Zugriffskontrolle auf Funktionsebene, und Sie schützen Ihre Anwendung vor böswilligen Angreifern und sogar vor versehentlichen Insidern.
Sie denken, dass Sie den Zugang zur Funktionsebene beherrschen? Sie können sich jetzt der Herausforderung stellen, eine defekte Zugangskontrolle zu reparieren: [Hier starten]
Inhaltsübersicht
Jaap Karan Singh ist ein Secure Coding Evangelist, Chief Singh und Mitbegründer von Secure Code Warrior.
Secure Code Warrior ist für Ihr Unternehmen da, um Sie dabei zu unterstützen, Ihren Code über den gesamten Lebenszyklus der Softwareentwicklung hinweg zu sichern und eine Kultur zu schaffen, in der Cybersicherheit an erster Stelle steht. Ganz gleich, ob Sie AppSec-Manager, Entwickler, CISO oder ein anderer Sicherheitsverantwortlicher sind, wir können Ihrem Unternehmen helfen, die mit unsicherem Code verbundenen Risiken zu reduzieren.
Demo buchenHerunterladenRessourcen für den Einstieg
Benchmarking von Sicherheitskompetenzen: Optimierung von Secure-by-Design im Unternehmen
Die Secure-by-Design-Bewegung ist die Zukunft der sicheren Softwareentwicklung. Erfahren Sie mehr über die wichtigsten Elemente, die Unternehmen berücksichtigen müssen, wenn sie über eine Secure-by-Design-Initiative nachdenken.
DigitalOcean verringert Sicherheitsverschuldung mit Secure Code Warrior
DigitalOceans Einsatz von Secure Code Warrior hat die Sicherheitsverschuldung deutlich reduziert, so dass sich die Teams stärker auf Innovation und Produktivität konzentrieren können. Die verbesserte Sicherheit hat die Produktqualität und den Wettbewerbsvorteil des Unternehmens gestärkt. Mit Blick auf die Zukunft wird der SCW Trust Score dem Unternehmen helfen, seine Sicherheitspraktiken weiter zu verbessern und Innovationen voranzutreiben.
Ressourcen für den Einstieg
Trust Score zeigt den Wert von Secure-by-Design-Upskilling-Initiativen
Unsere Forschung hat gezeigt, dass Schulungen für sicheren Code funktionieren. Trust Score verwendet einen Algorithmus, der auf mehr als 20 Millionen Lerndaten aus der Arbeit von mehr als 250.000 Lernenden in über 600 Organisationen basiert, und zeigt, wie effektiv die Initiative ist, um Schwachstellen zu beseitigen und wie man sie noch effektiver gestalten kann.
Reaktive versus präventive Sicherheit: Prävention ist das bessere Heilmittel
Der Gedanke, Legacy-Code und -Systeme zur gleichen Zeit wie neuere Anwendungen mit präventiver Sicherheit auszustatten, kann entmutigend erscheinen, aber ein Secure-by-Design-Ansatz, der durch die Weiterbildung von Entwicklern durchgesetzt wird, kann die besten Sicherheitsverfahren auf diese Systeme anwenden. Dies ist für viele Unternehmen die beste Chance, ihre Sicherheitslage zu verbessern.
Die Vorteile eines Benchmarking der Sicherheitskompetenzen von Entwicklern
Der zunehmende Fokus auf sicheren Code und Secure-by-Design-Prinzipien erfordert, dass Entwickler von Beginn des SDLC an in Cybersicherheit geschult werden, wobei Tools wie Secure Code Warrior's Trust Score dabei helfen, ihre Fortschritte zu messen und zu verbessern.
Wesentlicher Erfolg für Enterprise Secure-by-Design-Initiativen
Unser jüngstes Forschungspapier „Benchmarking Security Skills: Streamlining Secure-by-Design in the Enterprise“ ist das Ergebnis einer umfassenden Analyse echter Secure-by-Design-Initiativen auf Unternehmensebene und der Ableitung von Best-Practice-Ansätzen auf Grundlage datengesteuerter Erkenntnisse.