Sind Anwendungen aus "unbekannten Quellen" durch Berechtigungen eingeschränkt?

Ich weiß, dass Google Play-Anwendungen nichts tun können, was nicht in ihnen angegeben ist, AndroidManifest.xmlund dafür gesperrt werden. Ich möchte wissen, ob Anwendungen, die nicht von Google Play stammen, mit derselben Sicherheitsmaßnahme gesperrt sind.

Wird Android mir vor der Installation mitteilen, welche Berechtigungen erforderlich sind, und Funktionen blockieren, die Berechtigungen verwenden, die nicht im Manifest von Nicht-Google Play-Apps angegeben sind? Denn Google sagt:

Falls eine Anwendung versucht, eine geschützte Funktion zu verwenden, die nicht im Manifest der Anwendung deklariert wurde, führt der Berechtigungsfehler normalerweise dazu, dass eine Sicherheitsausnahme an die Anwendung zurückgeworfen wird. Geschützte API-Berechtigungsprüfungen werden auf der niedrigstmöglichen Ebene erzwungen, um eine Umgehung zu verhindern. Ein Beispiel für die Benutzerbenachrichtigung, wenn eine Anwendung installiert wird, während Zugriff auf geschützte APIs angefordert wird, ist in Abbildung 2 dargestellt.

Gilt dies für Apps, die nicht von Google Play stammen?

Ich freue mich über weitere Informationen, die Sie uns geben möchten. Ich recherchiere ein wenig über Android-Sicherheit.

Antworten (2)

Eine App muss alle ihre Berechtigungsanforderungen angeben, da sie ihr bei der Installation erteilt werden.

Siehe den Abschnitt „Verwenden von Berechtigungen“ hier: http://developer.android.com/guide/topics/security/permissions.html

Der Vorteil des Google Play Store ist also die einfache Tatsache, dass Google ihn kontrolliert und nach Exploits Ausschau hält. Was auch immer Android interne Sicherheit für Google Play-Apps hat, gilt immer noch für Apps außerhalb des Stores.
So ziemlich, ja. Aus diesem Grund sollten Sie auch immer immer die Berechtigungen überprüfen.
Wird es Ihnen mitteilen, welche Berechtigungen für die App erforderlich sind (sollte ich dies zu einer separaten Frage machen)?
Google Play teilt Ihnen mit, welche Berechtigungen die App erklärt hat, bevor Sie sie installieren. Bei der Installation von einer .apk-Datei werden Ihnen die Berechtigungen zu Beginn des Installationsvorgangs angezeigt.
Zero-Day-Exploits können weiterhin Nutzer von Google Play angreifen, bis sie entfernt werden. Es ist im Grunde nur eine Regulierung. Der Amazon-Shop könnte genauso sicher sein. Selbst wenn Hacker die Berechtigungen notieren, könnten sie einige Schwachstellen finden.

Wird mir Android vor der Installation mitteilen, welche Berechtigungen erforderlich sind?

Im Allgemeinen ja. In den meisten (wenn nicht allen) Android-Geräten gibt es eine System-App namens „Package Installer“, die die Installation/Aktualisierung einer App übernimmt. Wenn Sie eine APK-Datei aus unbekannter Quelle installieren, wird diese App ausgeführt und zeigt alle Berechtigungen an, die die App anfordert, was so aussieht:

Paket-Installer auf KitKat

Paket-Installer auf KitKat

Blockiert Android Funktionen, die Berechtigungen verwenden, die nicht im Manifest von Nicht-Google Play-Apps angegeben sind?

Während der Installation überprüft/testet Android nicht, ob eine Funktion eine bestimmte Erlaubnis zum Ausführen erfordert. Mit anderen Worten, der Benutzer kann die App immer noch installieren. Die App löst jedoch aus SecurityException(was je nach Handhabung abstürzen/unvorhersehbar verhalten/nichts tun kann), wenn die Funktion ausgeführt wird, die eine Berechtigung benötigt, aber nicht in der Manifestdatei deklariert ist. Dies gilt für alle Apps, unabhängig davon, wo sie installiert sind .

Beispiel : Wenn Sie einen Netzwerkbetrieb ohne Deklaration ausführen, <uses-permission android:name="android.permission.INTERNET" />stürzt die App mit Stack-Trace ab:

E/AndroidRuntime(18698): Caused by: java.lang.SecurityException: Permission denied (missing INTERNET permission?)

.

^ Ich war da nicht klar, ich habe es bearbeitet. Bitte sehen Sie sich meine Bearbeitung an.
@munchschair hat die Antwort aktualisiert