Blog

Sichere Kodierungstechnik: Das Problem der benutzerdefinierten Berechtigung

Pieter De Cremer
Veröffentlicht Okt 25, 2017

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

Ressource anzeigen
Ressource anzeigen

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

Interessiert an mehr?

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

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 buchen
Weitergeben:
Autor
Pieter De Cremer
Veröffentlicht Okt 25, 2017

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

Weitergeben:

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

Ressource anzeigen
Ressource anzeigen

Füllen Sie das folgende Formular aus, um den Bericht herunterzuladen

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Senden
Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.

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

Auf Ressource zugreifen

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 buchen
PDF herunterladen
Ressource anzeigen
Weitergeben:
Interessiert an mehr?

Weitergeben:
Autor
Pieter De Cremer
Veröffentlicht Okt 25, 2017

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

Weitergeben:

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

Inhaltsübersicht

PDF herunterladen
Ressource anzeigen
Interessiert an mehr?

Anwendungssicherheitsforscher - F&E-Ingenieur - PhD-Kandidat

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 buchenHerunterladen
Weitergeben:
Ressourcendrehscheibe

Ressourcen für den Einstieg

Mehr Beiträge
Ressourcendrehscheibe

Ressourcen für den Einstieg

Mehr Beiträge