[Android] Vertrauliche Logcat-Protokolldaten sind durchgesickert

Vorwort

In der Vergangenheit bin ich auf einige Anwendungen gestoßen, bei denen Logcat vertrauliche Informationen druckt, darunter unter anderem Kontokennwörter, Cookie-Anmeldeinformationen oder einige vertrauliche geheime Schlüssel. Das Folgende ist eine objektive Aufzeichnung der Gefahren.

verwandte Informationen

 1. logcat

Logcat ist ein vom Android-System bereitgestelltes Protokollierungstool. Es hilft Entwicklern, Probleme in Anwendungen wie Abstürze, Speicherverluste und Leistungsprobleme zu diagnostizieren. logcat erfasst Protokollereignisse, indem es sich den Kernelpuffer des Android-Systems und die Protokollausgabe der Anwendung ansieht.

Technisch gesehen wird Logcat über einen Hintergrunddienst namens LogcatService implementiert. Wenn eine Anwendung auf einem Gerät ausgeführt wird, generiert sie Protokollnachrichten und sendet diese an den Logger des Systems . Diese Nachrichten enthalten ereignisbezogene Details wie Ereignistyp, Zeitstempel, Prozess-ID und Tags.

Logcat kann Protokollinformationen nach verschiedenen Filtern filtern und anzeigen. Sie können die Logcat-Ausgabe mit dem Befehlszeilentool oder dem Logcat-Fenster von Android Studio anzeigen. Diese Tools bieten verschiedene Filteroptionen, z. B. das Filtern von Protokollnachrichten nach Tag, Ebene, Prozess-ID usw.

2. Systemlogger

Alle Anwendungen können Logcat verwenden, um Protokollinformationen aufzuzeichnen und darauf zuzugreifen. Allerdings kann jede Anwendung nur auf ihre eigenen Protokollinformationen zugreifen und nicht auf die Protokollinformationen anderer Anwendungen, da das Android-System den Sicherheitsmechanismus des Linux-Kernels nutzt, um die Zugriffsberechtigungen von Anwendungen einzuschränken.

Im Android-System wird jede Anwendung in einem unabhängigen Prozess ausgeführt und jeder Prozess verfügt über einen eigenen Protokollpuffer. Anwendungen können von Android bereitgestellte Klassen verwenden, Logum Protokollinformationen in ihren eigenen Protokollpuffer zu schreiben.

3. ADB-Logcat

Durch Eingabe des Befehls in der Befehlszeile adb logcatkönnen die Protokollinformationen aller Anwendungen angezeigt werden, da dieser Befehl das Tool Android Debug Bridge (ADB) verwendet, das einen privilegierten Modus bietet, der Ihnen den Zugriff auf alle Daten und Dateien auf dem Gerät, einschließlich anderer Anwendungen, ermöglicht. Programmprotokollinformationen.

4. SELinux

Der Sicherheitsmechanismus des Android-Systems hängt eng mit dem Sicherheitsmodul SELinux (Security-Enhanced Linux) zusammen. SELinux ist ein auf dem Linux-Kernel basierendes Mandatory Access Control (MAC)-System, das eine fein abgestufte Kontrolle und Beschränkungen des Zugriffs auf Systemressourcen (wie Dateien, Prozesse und Netzwerke) durchführen und so die Systemsicherheit und -stabilität verbessern kann.

Im Android-System ist das SELinux-Sicherheitsmodul standardmäßig aktiviert und SELinux-Richtlinien werden zum Steuern und Verwalten von Anwendungsberechtigungen verwendet. Jeder Anwendung wird eine eindeutige SELinux-Domäne zugewiesen, um Isolation und Sicherheit zwischen Anwendungen zu erreichen. Eine Anwendung kann nur auf Ressourcen innerhalb ihrer eigenen SELinux-Domäne zugreifen und nicht auf andere Anwendungen und Systemressourcen.

5.READ_LOGS

READ_LOGSEs handelt sich um eine Systemberechtigung im Android-System, die es Anwendungen ermöglicht, Systemprotokollinformationen zu lesen.

In Android 4.1 und höher verfügt Google READ_LOGSüber eingeschränkte Berechtigungen, und nur rootBenutzer und Systemanwendungen mit Berechtigungen können diese Berechtigung erhalten. Dadurch soll die Sicherheit des Systems weiter verbessert und verhindert werden, dass bösartige Anwendungen vertrauliche Informationen abrufen und Sicherheitsprobleme verursachen.

Wenn Sie ein Entwickler sind, der READ_LOGSdie Berechtigung zum Debuggen und Debuggen Ihrer Anwendung benötigt, können Sie AndroidManifest.xmlden Dateien Ihrer Anwendung den folgenden Code hinzufügen:

<uses-permission android:name="android.permission.READ_LOGS" />

READ_LOGSEs ist jedoch wichtig zu beachten, dass eine Ausnahme ausgelöst wird, wenn die Anwendung zur Laufzeit Berechtigungen anfordert, wenn die Anwendung nicht über ein vom System signiertes Zertifikat verfügt SecurityException.

6. Systemsignaturzertifikat

Das systemsignierte Zertifikat wird vom Entwickler oder Gerätehersteller des Android-Systems ausgestellt und dient zum Signieren und Autorisieren von Systemanwendungen. Dieses Zertifikat wird normalerweise vom Gerätehersteller oder ROM-Entwickler gehalten.

Spezifische Schritte

  1. Generieren Sie öffentliche und private Schlüssel
  2. Öffentlichen Schlüssel exportieren
  3. assetsBetten Sie den öffentlichen Schlüssel in den Android-Quellcode ein (er kann beispielsweise im Verzeichnis oder Verzeichnis der Anwendung abgelegt res/rawund dann durch den Code gelesen werden).

19.00 Uhr Stipendium

pm grantist ein Android-Systembefehl, der zum Erteilen anwendungsspezifischer Berechtigungen verwendet wird. Dieser Befehl muss auf einem Gerät mit Root-Berechtigungen ausgeführt werden.

Durch Ausführen pm grantdes Befehls können Sie die Berechtigungen der angegebenen Anwendung auf „Zulassen“ oder „Verweigern“ festlegen.

Zum Beispiel

pm grant com.example android.permission.READ_LOGS

pm grantEs ist wichtig zu beachten, dass Sie zwar Befehle verwenden können, um App- READ_LOGSBerechtigungen zu erteilen, in Android 4.1 und höher jedoch nur systemsignierte Apps diese Berechtigung anfordern und erhalten können. Wenn Ihre Anwendung daher nicht über ein vom System signiertes Zertifikat verfügt, kann sie die Systemprotokollinformationen nicht lesen, selbst wenn Sie ihr über den Befehl die Berechtigung pm granterteilen .READ_LOGS

8. /system/bin/logcat

chmod 04755 /system/bin/logcat

logcatWird verwendet, um die Berechtigungen des Systemprotokolltools zu ändern , sodass normale Anwendungen auch Systemprotokollinformationen lesen können. Dieser Befehl muss auf einem Gerät mit Root-Berechtigungen ausgeführt werden.

Nachwort

In diesem Artikel werden die Gefahren des Verlusts vertraulicher Logcat-Informationen detailliert beschrieben. Es ist ersichtlich, dass in der aktuellen Android-Umgebung das Risiko von Remote-Angriffen tatsächlich relativ gering ist. Die meisten Logcat-Lecks können durch Vorgänge auf Systemebene oder physische Angriffe ausgenutzt werden, es bestehen jedoch immer noch bestimmte Risiken, und es wird empfohlen, diese zu beheben.

Guess you like

Origin blog.csdn.net/xiru9972/article/details/131020022