SCW-Symbole
Held-Hintergrund ohne Trennlinie
Blog

보안 코딩 기법: 사용자 지정 권한 문제

Pieter De Cremer
Veröffentlicht Okt 25, 2017
Zuletzt aktualisiert am 09. März 2026

Bei der Entwicklung für Mobiltelefone müssen Anwendungen oft einige Berechtigungen vom System anfordern. Sie benötigen möglicherweise Zugriff auf die Kontakte des Benutzers, auf die Bluetooth-Verbindung oder die Möglichkeit, SMS-Nachrichten zu senden. Alle oben genannten Berechtigungen sind Plattformberechtigungen, die durch das Android-Framework definiert sind.

Aber es gibt Fälle, in denen diese nicht ausreichen und die Anwendung ihre eigene benutzerdefinierte Berechtigung definieren muss. Ich nehme unser eigenes Unternehmen als Beispiel. Secure Code Warrior könnte eine App erstellen, die einige private Daten als Teil eines Profils speichert, einschließlich der Leistung des Benutzers auf der SCW-Plattform. Und wir möchten einer anderen Sicherheitsschulungs-App, sagen wir DevTrainer, erlauben, diese Daten zu verwenden, wenn der Benutzer ihr die Erlaubnis dazu gibt. Dies sind sensible Daten, der Benutzer möchte sicherlich nicht, dass irgendjemand diese Daten kennt, aber die SCWApp sollte sie nicht komplett verstecken und schützen, da sie nützlich sein könnten. Also möchten wir dem Benutzer die Kontrolle darüber geben. Hier kommen die benutzerdefinierten Berechtigungen ins Spiel.

Die SCWApp erstellt eine benutzerdefinierte Berechtigung, DevTrainer fordert diese Berechtigung an und der Benutzer kann entscheiden, ob er dies zulassen möchte oder nicht. Dies ist eine gängige Praxis und eine gute Möglichkeit, den Zugriff auf White-Listed-Anwendungen zu beschränken.

Leider gibt es einige unintuitive Verhaltensweisen rund um benutzerdefinierte Berechtigungen, die sie aus Sicherheitsaspekten riskant machen. Konkret können benutzerdefinierte Berechtigungen von jeder App zu jeder Zeit definiert werden, und "der Erste gewinnt", und diese Strategie hat einige Konsequenzen.

Für das folgende Szenario definieren wir zwei App-Profile, die wir oben vorgestellt haben (alle diese Anwendungen sind zu Demonstrationszwecken fiktiv):

1. SCWApp: die App, die eine benutzerdefinierte Berechtigung definiert und eine Komponente mit dieser Berechtigung verteidigt.

2. DevTrainer: diese App definiert die gleiche Berechtigung wie SCWApp und erklärt dem Benutzer, dass sie diese Berechtigung besitzen möchte.

Dies ist ein häufiges Szenario, das als "Peer Apps Case" bezeichnet wird. Wenn die DevTrainer-App nur ein Plugin für die SCWApp wäre, müsste sie die benutzerdefinierte Berechtigung nicht definieren. Die Annahme ist in diesem Fall, dass SCWApp vor DevTrainer installiert wird und kein unerwartetes Verhalten auftritt. Wenn der Benutzer irgendwie DevTrainer zuerst installiert, wird der Benutzer nicht über die Anforderung der Berechtigung informiert. Wenn der Benutzer dann später SCWApp installiert, wird DevTrainer die Berechtigung nicht rückwirkend erteilt, sodass die Versuche der DevTrainer-App, die gesicherte Komponente zu verwenden, fehlschlagen.

Hier kommt der Fall der Peers-App ins Spiel. In manchen Fällen können Sie nicht erwarten, dass eine App vor der anderen installiert wird. Sagen wir, wenn Facebook und Twitter beide die Komponenten des jeweils anderen nutzen wollen, müssen sie die benutzerdefinierten Berechtigungen des jeweils anderen definieren.

An dieser Stelle wird es jedoch knifflig. Wenn die DevTrainer-App zuerst installiert wird, wird der Benutzer nicht über seine Anfrage nach der benutzerdefinierten Berechtigung informiert. Zu diesem Zeitpunkt, obwohl der Benutzer nicht informiert wurde, besitzt DevTrainer die benutzerdefinierte Berechtigung und kann auf die gesicherte Komponente zugreifen.

Es wird noch kniffliger. Die DevTrainer-App kann die Berechtigungsschutzstufe ändern. Android verwendet nicht die Schutzstufe des Verteidigers, sondern die Schutzstufe, die zuerst definiert wurde, d.h. diejenige App, die zuerst installiert wurde, kann diese definieren. Das bedeutet, wenn DevTrainer die Berechtigungsstufe auf normal ändert, dann müssen alle zukünftigen Apps, die diese Berechtigung anfordern, nicht vom Benutzer bestätigt werden, sondern erhalten automatisch Zugriff.

Dieses Szenario wurde durch die Erklärung für dieses Problem inspiriert, die auf dem cwac-security github gefunden wurde.

Die "Wer zuerst kommt, mahlt zuerst"-Strategie hat einige gefährliche Konsequenzen. Wenn der Entwickler das Verhalten nicht kennt, könnte er Sicherheitsentscheidungen auf der Grundlage von nicht vertrauenswürdigen Eingaben treffen und unbeabsichtigten Apps den Zugriff auf sensible Daten oder geschützte Dienste ermöglichen. Um mehr über die Vermeidung von Sicherheitsentscheidungen durch nicht vertrauenswürdige Eingaben zu erfahren, besuchen Sie unsere Plattform. Dieses Verhalten wurde ab Android 5.0 (Lollipop) geändert. Da aber derzeit noch mehr als 22 % der Android-Geräte mit einer niedrigeren Version von Android laufen, ist es wichtig, die Risiken des ursprünglichen Verhaltens in Ihrer App zu mindern. Prüfen Sie, ob die Berechtigung bereits beim ersten Start Ihrer App definiert wurde und ergreifen Sie in diesem Fall entsprechende Maßnahmen, um eventuelle Sicherheitsrisiken zu beheben.

Viel Glück beim Codieren und bis nächste Woche!

Durch die Definition von benutzerdefinierten Berechtigungen kann eine App ihre Ressourcen und Fähigkeiten mit anderen Apps teilen.

https://developer.android.com/guide/topics/permissions/defining.html

Ressourcen anzeigen
Ressourcen anzeigen

앱은 사용자 지정 권한을 정의하여 리소스와 기능을 다른 앱과 공유할 수 있습니다.

Sind Sie an weiteren Informationen interessiert?

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

mehr erfahren

Secure Code Warrior ist für Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.

Demo-Termin vereinbaren
Freigabeziel:
LinkedIn-MarkenSozialx Logo
Verfasser
Pieter De Cremer
Veröffentlicht Okt 25, 2017

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

Freigabeziel:
LinkedIn-MarkenSozialx Logo

Bei der Entwicklung für Mobiltelefone müssen Anwendungen oft einige Berechtigungen vom System anfordern. Sie benötigen möglicherweise Zugriff auf die Kontakte des Benutzers, auf die Bluetooth-Verbindung oder die Möglichkeit, SMS-Nachrichten zu senden. Alle oben genannten Berechtigungen sind Plattformberechtigungen, die durch das Android-Framework definiert sind.

Aber es gibt Fälle, in denen diese nicht ausreichen und die Anwendung ihre eigene benutzerdefinierte Berechtigung definieren muss. Ich nehme unser eigenes Unternehmen als Beispiel. Secure Code Warrior könnte eine App erstellen, die einige private Daten als Teil eines Profils speichert, einschließlich der Leistung des Benutzers auf der SCW-Plattform. Und wir möchten einer anderen Sicherheitsschulungs-App, sagen wir DevTrainer, erlauben, diese Daten zu verwenden, wenn der Benutzer ihr die Erlaubnis dazu gibt. Dies sind sensible Daten, der Benutzer möchte sicherlich nicht, dass irgendjemand diese Daten kennt, aber die SCWApp sollte sie nicht komplett verstecken und schützen, da sie nützlich sein könnten. Also möchten wir dem Benutzer die Kontrolle darüber geben. Hier kommen die benutzerdefinierten Berechtigungen ins Spiel.

Die SCWApp erstellt eine benutzerdefinierte Berechtigung, DevTrainer fordert diese Berechtigung an und der Benutzer kann entscheiden, ob er dies zulassen möchte oder nicht. Dies ist eine gängige Praxis und eine gute Möglichkeit, den Zugriff auf White-Listed-Anwendungen zu beschränken.

Leider gibt es einige unintuitive Verhaltensweisen rund um benutzerdefinierte Berechtigungen, die sie aus Sicherheitsaspekten riskant machen. Konkret können benutzerdefinierte Berechtigungen von jeder App zu jeder Zeit definiert werden, und "der Erste gewinnt", und diese Strategie hat einige Konsequenzen.

Für das folgende Szenario definieren wir zwei App-Profile, die wir oben vorgestellt haben (alle diese Anwendungen sind zu Demonstrationszwecken fiktiv):

1. SCWApp: die App, die eine benutzerdefinierte Berechtigung definiert und eine Komponente mit dieser Berechtigung verteidigt.

2. DevTrainer: diese App definiert die gleiche Berechtigung wie SCWApp und erklärt dem Benutzer, dass sie diese Berechtigung besitzen möchte.

Dies ist ein häufiges Szenario, das als "Peer Apps Case" bezeichnet wird. Wenn die DevTrainer-App nur ein Plugin für die SCWApp wäre, müsste sie die benutzerdefinierte Berechtigung nicht definieren. Die Annahme ist in diesem Fall, dass SCWApp vor DevTrainer installiert wird und kein unerwartetes Verhalten auftritt. Wenn der Benutzer irgendwie DevTrainer zuerst installiert, wird der Benutzer nicht über die Anforderung der Berechtigung informiert. Wenn der Benutzer dann später SCWApp installiert, wird DevTrainer die Berechtigung nicht rückwirkend erteilt, sodass die Versuche der DevTrainer-App, die gesicherte Komponente zu verwenden, fehlschlagen.

Hier kommt der Fall der Peers-App ins Spiel. In manchen Fällen können Sie nicht erwarten, dass eine App vor der anderen installiert wird. Sagen wir, wenn Facebook und Twitter beide die Komponenten des jeweils anderen nutzen wollen, müssen sie die benutzerdefinierten Berechtigungen des jeweils anderen definieren.

An dieser Stelle wird es jedoch knifflig. Wenn die DevTrainer-App zuerst installiert wird, wird der Benutzer nicht über seine Anfrage nach der benutzerdefinierten Berechtigung informiert. Zu diesem Zeitpunkt, obwohl der Benutzer nicht informiert wurde, besitzt DevTrainer die benutzerdefinierte Berechtigung und kann auf die gesicherte Komponente zugreifen.

Es wird noch kniffliger. Die DevTrainer-App kann die Berechtigungsschutzstufe ändern. Android verwendet nicht die Schutzstufe des Verteidigers, sondern die Schutzstufe, die zuerst definiert wurde, d.h. diejenige App, die zuerst installiert wurde, kann diese definieren. Das bedeutet, wenn DevTrainer die Berechtigungsstufe auf normal ändert, dann müssen alle zukünftigen Apps, die diese Berechtigung anfordern, nicht vom Benutzer bestätigt werden, sondern erhalten automatisch Zugriff.

Dieses Szenario wurde durch die Erklärung für dieses Problem inspiriert, die auf dem cwac-security github gefunden wurde.

Die "Wer zuerst kommt, mahlt zuerst"-Strategie hat einige gefährliche Konsequenzen. Wenn der Entwickler das Verhalten nicht kennt, könnte er Sicherheitsentscheidungen auf der Grundlage von nicht vertrauenswürdigen Eingaben treffen und unbeabsichtigten Apps den Zugriff auf sensible Daten oder geschützte Dienste ermöglichen. Um mehr über die Vermeidung von Sicherheitsentscheidungen durch nicht vertrauenswürdige Eingaben zu erfahren, besuchen Sie unsere Plattform. Dieses Verhalten wurde ab Android 5.0 (Lollipop) geändert. Da aber derzeit noch mehr als 22 % der Android-Geräte mit einer niedrigeren Version von Android laufen, ist es wichtig, die Risiken des ursprünglichen Verhaltens in Ihrer App zu mindern. Prüfen Sie, ob die Berechtigung bereits beim ersten Start Ihrer App definiert wurde und ergreifen Sie in diesem Fall entsprechende Maßnahmen, um eventuelle Sicherheitsrisiken zu beheben.

Viel Glück beim Codieren und bis nächste Woche!

Durch die Definition von benutzerdefinierten Berechtigungen kann eine App ihre Ressourcen und Fähigkeiten mit anderen Apps teilen.

https://developer.android.com/guide/topics/permissions/defining.html

Ressourcen anzeigen
Ressourcen anzeigen

Um den Bericht herunterzuladen, füllen Sie bitte das folgende Formular aus.

Wir bitten um Ihre Zustimmung, Ihnen Informationen zu unseren Produkten und/oder verwandten Themen der Sicherheitscodierung zukommen zu lassen. Wir behandeln Ihre personenbezogenen Daten stets mit größter Sorgfalt und verkaufen sie niemals zu Marketingzwecken an andere Unternehmen.

Einreichung
scw Erfolgssymbol
scw-Fehlersymbol
Um das Formular zu senden, aktivieren Sie bitte das „Analytics“-Cookie. Nach Abschluss können Sie es jederzeit wieder deaktivieren.

Bei der Entwicklung für Mobiltelefone müssen Anwendungen oft einige Berechtigungen vom System anfordern. Sie benötigen möglicherweise Zugriff auf die Kontakte des Benutzers, auf die Bluetooth-Verbindung oder die Möglichkeit, SMS-Nachrichten zu senden. Alle oben genannten Berechtigungen sind Plattformberechtigungen, die durch das Android-Framework definiert sind.

Aber es gibt Fälle, in denen diese nicht ausreichen und die Anwendung ihre eigene benutzerdefinierte Berechtigung definieren muss. Ich nehme unser eigenes Unternehmen als Beispiel. Secure Code Warrior könnte eine App erstellen, die einige private Daten als Teil eines Profils speichert, einschließlich der Leistung des Benutzers auf der SCW-Plattform. Und wir möchten einer anderen Sicherheitsschulungs-App, sagen wir DevTrainer, erlauben, diese Daten zu verwenden, wenn der Benutzer ihr die Erlaubnis dazu gibt. Dies sind sensible Daten, der Benutzer möchte sicherlich nicht, dass irgendjemand diese Daten kennt, aber die SCWApp sollte sie nicht komplett verstecken und schützen, da sie nützlich sein könnten. Also möchten wir dem Benutzer die Kontrolle darüber geben. Hier kommen die benutzerdefinierten Berechtigungen ins Spiel.

Die SCWApp erstellt eine benutzerdefinierte Berechtigung, DevTrainer fordert diese Berechtigung an und der Benutzer kann entscheiden, ob er dies zulassen möchte oder nicht. Dies ist eine gängige Praxis und eine gute Möglichkeit, den Zugriff auf White-Listed-Anwendungen zu beschränken.

Leider gibt es einige unintuitive Verhaltensweisen rund um benutzerdefinierte Berechtigungen, die sie aus Sicherheitsaspekten riskant machen. Konkret können benutzerdefinierte Berechtigungen von jeder App zu jeder Zeit definiert werden, und "der Erste gewinnt", und diese Strategie hat einige Konsequenzen.

Für das folgende Szenario definieren wir zwei App-Profile, die wir oben vorgestellt haben (alle diese Anwendungen sind zu Demonstrationszwecken fiktiv):

1. SCWApp: die App, die eine benutzerdefinierte Berechtigung definiert und eine Komponente mit dieser Berechtigung verteidigt.

2. DevTrainer: diese App definiert die gleiche Berechtigung wie SCWApp und erklärt dem Benutzer, dass sie diese Berechtigung besitzen möchte.

Dies ist ein häufiges Szenario, das als "Peer Apps Case" bezeichnet wird. Wenn die DevTrainer-App nur ein Plugin für die SCWApp wäre, müsste sie die benutzerdefinierte Berechtigung nicht definieren. Die Annahme ist in diesem Fall, dass SCWApp vor DevTrainer installiert wird und kein unerwartetes Verhalten auftritt. Wenn der Benutzer irgendwie DevTrainer zuerst installiert, wird der Benutzer nicht über die Anforderung der Berechtigung informiert. Wenn der Benutzer dann später SCWApp installiert, wird DevTrainer die Berechtigung nicht rückwirkend erteilt, sodass die Versuche der DevTrainer-App, die gesicherte Komponente zu verwenden, fehlschlagen.

Hier kommt der Fall der Peers-App ins Spiel. In manchen Fällen können Sie nicht erwarten, dass eine App vor der anderen installiert wird. Sagen wir, wenn Facebook und Twitter beide die Komponenten des jeweils anderen nutzen wollen, müssen sie die benutzerdefinierten Berechtigungen des jeweils anderen definieren.

An dieser Stelle wird es jedoch knifflig. Wenn die DevTrainer-App zuerst installiert wird, wird der Benutzer nicht über seine Anfrage nach der benutzerdefinierten Berechtigung informiert. Zu diesem Zeitpunkt, obwohl der Benutzer nicht informiert wurde, besitzt DevTrainer die benutzerdefinierte Berechtigung und kann auf die gesicherte Komponente zugreifen.

Es wird noch kniffliger. Die DevTrainer-App kann die Berechtigungsschutzstufe ändern. Android verwendet nicht die Schutzstufe des Verteidigers, sondern die Schutzstufe, die zuerst definiert wurde, d.h. diejenige App, die zuerst installiert wurde, kann diese definieren. Das bedeutet, wenn DevTrainer die Berechtigungsstufe auf normal ändert, dann müssen alle zukünftigen Apps, die diese Berechtigung anfordern, nicht vom Benutzer bestätigt werden, sondern erhalten automatisch Zugriff.

Dieses Szenario wurde durch die Erklärung für dieses Problem inspiriert, die auf dem cwac-security github gefunden wurde.

Die "Wer zuerst kommt, mahlt zuerst"-Strategie hat einige gefährliche Konsequenzen. Wenn der Entwickler das Verhalten nicht kennt, könnte er Sicherheitsentscheidungen auf der Grundlage von nicht vertrauenswürdigen Eingaben treffen und unbeabsichtigten Apps den Zugriff auf sensible Daten oder geschützte Dienste ermöglichen. Um mehr über die Vermeidung von Sicherheitsentscheidungen durch nicht vertrauenswürdige Eingaben zu erfahren, besuchen Sie unsere Plattform. Dieses Verhalten wurde ab Android 5.0 (Lollipop) geändert. Da aber derzeit noch mehr als 22 % der Android-Geräte mit einer niedrigeren Version von Android laufen, ist es wichtig, die Risiken des ursprünglichen Verhaltens in Ihrer App zu mindern. Prüfen Sie, ob die Berechtigung bereits beim ersten Start Ihrer App definiert wurde und ergreifen Sie in diesem Fall entsprechende Maßnahmen, um eventuelle Sicherheitsrisiken zu beheben.

Viel Glück beim Codieren und bis nächste Woche!

Durch die Definition von benutzerdefinierten Berechtigungen kann eine App ihre Ressourcen und Fähigkeiten mit anderen Apps teilen.

https://developer.android.com/guide/topics/permissions/defining.html

Webinar ansehen
Beginnen
mehr erfahren

Klicken Sie auf den folgenden Link und laden Sie die PDF-Datei dieser Ressource herunter.

Secure Code Warrior ist für Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.

Bericht anzeigenDemo-Termin vereinbaren
Ressourcen anzeigen
Freigabeziel:
LinkedIn-MarkenSozialx Logo
Sind Sie an weiteren Informationen interessiert?

Freigabeziel:
LinkedIn-MarkenSozialx Logo
Verfasser
Pieter De Cremer
Veröffentlicht Okt 25, 2017

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

Freigabeziel:
LinkedIn-MarkenSozialx Logo

Bei der Entwicklung für Mobiltelefone müssen Anwendungen oft einige Berechtigungen vom System anfordern. Sie benötigen möglicherweise Zugriff auf die Kontakte des Benutzers, auf die Bluetooth-Verbindung oder die Möglichkeit, SMS-Nachrichten zu senden. Alle oben genannten Berechtigungen sind Plattformberechtigungen, die durch das Android-Framework definiert sind.

Aber es gibt Fälle, in denen diese nicht ausreichen und die Anwendung ihre eigene benutzerdefinierte Berechtigung definieren muss. Ich nehme unser eigenes Unternehmen als Beispiel. Secure Code Warrior könnte eine App erstellen, die einige private Daten als Teil eines Profils speichert, einschließlich der Leistung des Benutzers auf der SCW-Plattform. Und wir möchten einer anderen Sicherheitsschulungs-App, sagen wir DevTrainer, erlauben, diese Daten zu verwenden, wenn der Benutzer ihr die Erlaubnis dazu gibt. Dies sind sensible Daten, der Benutzer möchte sicherlich nicht, dass irgendjemand diese Daten kennt, aber die SCWApp sollte sie nicht komplett verstecken und schützen, da sie nützlich sein könnten. Also möchten wir dem Benutzer die Kontrolle darüber geben. Hier kommen die benutzerdefinierten Berechtigungen ins Spiel.

Die SCWApp erstellt eine benutzerdefinierte Berechtigung, DevTrainer fordert diese Berechtigung an und der Benutzer kann entscheiden, ob er dies zulassen möchte oder nicht. Dies ist eine gängige Praxis und eine gute Möglichkeit, den Zugriff auf White-Listed-Anwendungen zu beschränken.

Leider gibt es einige unintuitive Verhaltensweisen rund um benutzerdefinierte Berechtigungen, die sie aus Sicherheitsaspekten riskant machen. Konkret können benutzerdefinierte Berechtigungen von jeder App zu jeder Zeit definiert werden, und "der Erste gewinnt", und diese Strategie hat einige Konsequenzen.

Für das folgende Szenario definieren wir zwei App-Profile, die wir oben vorgestellt haben (alle diese Anwendungen sind zu Demonstrationszwecken fiktiv):

1. SCWApp: die App, die eine benutzerdefinierte Berechtigung definiert und eine Komponente mit dieser Berechtigung verteidigt.

2. DevTrainer: diese App definiert die gleiche Berechtigung wie SCWApp und erklärt dem Benutzer, dass sie diese Berechtigung besitzen möchte.

Dies ist ein häufiges Szenario, das als "Peer Apps Case" bezeichnet wird. Wenn die DevTrainer-App nur ein Plugin für die SCWApp wäre, müsste sie die benutzerdefinierte Berechtigung nicht definieren. Die Annahme ist in diesem Fall, dass SCWApp vor DevTrainer installiert wird und kein unerwartetes Verhalten auftritt. Wenn der Benutzer irgendwie DevTrainer zuerst installiert, wird der Benutzer nicht über die Anforderung der Berechtigung informiert. Wenn der Benutzer dann später SCWApp installiert, wird DevTrainer die Berechtigung nicht rückwirkend erteilt, sodass die Versuche der DevTrainer-App, die gesicherte Komponente zu verwenden, fehlschlagen.

Hier kommt der Fall der Peers-App ins Spiel. In manchen Fällen können Sie nicht erwarten, dass eine App vor der anderen installiert wird. Sagen wir, wenn Facebook und Twitter beide die Komponenten des jeweils anderen nutzen wollen, müssen sie die benutzerdefinierten Berechtigungen des jeweils anderen definieren.

An dieser Stelle wird es jedoch knifflig. Wenn die DevTrainer-App zuerst installiert wird, wird der Benutzer nicht über seine Anfrage nach der benutzerdefinierten Berechtigung informiert. Zu diesem Zeitpunkt, obwohl der Benutzer nicht informiert wurde, besitzt DevTrainer die benutzerdefinierte Berechtigung und kann auf die gesicherte Komponente zugreifen.

Es wird noch kniffliger. Die DevTrainer-App kann die Berechtigungsschutzstufe ändern. Android verwendet nicht die Schutzstufe des Verteidigers, sondern die Schutzstufe, die zuerst definiert wurde, d.h. diejenige App, die zuerst installiert wurde, kann diese definieren. Das bedeutet, wenn DevTrainer die Berechtigungsstufe auf normal ändert, dann müssen alle zukünftigen Apps, die diese Berechtigung anfordern, nicht vom Benutzer bestätigt werden, sondern erhalten automatisch Zugriff.

Dieses Szenario wurde durch die Erklärung für dieses Problem inspiriert, die auf dem cwac-security github gefunden wurde.

Die "Wer zuerst kommt, mahlt zuerst"-Strategie hat einige gefährliche Konsequenzen. Wenn der Entwickler das Verhalten nicht kennt, könnte er Sicherheitsentscheidungen auf der Grundlage von nicht vertrauenswürdigen Eingaben treffen und unbeabsichtigten Apps den Zugriff auf sensible Daten oder geschützte Dienste ermöglichen. Um mehr über die Vermeidung von Sicherheitsentscheidungen durch nicht vertrauenswürdige Eingaben zu erfahren, besuchen Sie unsere Plattform. Dieses Verhalten wurde ab Android 5.0 (Lollipop) geändert. Da aber derzeit noch mehr als 22 % der Android-Geräte mit einer niedrigeren Version von Android laufen, ist es wichtig, die Risiken des ursprünglichen Verhaltens in Ihrer App zu mindern. Prüfen Sie, ob die Berechtigung bereits beim ersten Start Ihrer App definiert wurde und ergreifen Sie in diesem Fall entsprechende Maßnahmen, um eventuelle Sicherheitsrisiken zu beheben.

Viel Glück beim Codieren und bis nächste Woche!

Durch die Definition von benutzerdefinierten Berechtigungen kann eine App ihre Ressourcen und Fähigkeiten mit anderen Apps teilen.

https://developer.android.com/guide/topics/permissions/defining.html

Inhaltsverzeichnis

PDF herunterladen
Ressourcen anzeigen
Sind Sie an weiteren Informationen interessiert?

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

mehr erfahren

Secure Code Warrior ist für Unternehmen da, um den Code während des gesamten Softwareentwicklungszyklus zu schützen und eine Kultur zu schaffen, in der Cybersicherheit oberste Priorität hat. Unabhängig davon, ob Sie AppSec-Manager, Entwickler, CISO oder in einem anderen Bereich der Sicherheit tätig sind, können wir Ihnen dabei helfen, die Risiken zu reduzieren, die mit unsicherem Code verbunden sind.

Demo-Termin vereinbarenDownload
Freigabeziel:
LinkedIn-MarkenSozialx Logo
Ressourcen-Hub

Hilfreiche Ressourcen für den Einstieg

Weitere Beiträge
Ressourcen-Hub

Hilfreiche Ressourcen für den Einstieg

Weitere Beiträge