前言
之前會遇到一些應(yīng)用logcat打印敏感信息,包括但不限于賬號密碼,cookie憑證,或一些敏感的secretkey之類的,下面客觀的記錄下起危害性。
相關(guān)知識
?1. logcat
logcat是Android系統(tǒng)提供的一種記錄日志的工具。它可以幫助開發(fā)人員診斷應(yīng)用程序中的問題,例如崩潰、內(nèi)存泄漏和性能問題。logcat通過查看Android系統(tǒng)的內(nèi)核緩沖區(qū)和應(yīng)用程序的日志輸出來捕獲日志事件。
在技術(shù)上,logcat是通過一個名為LogcatService的后臺服務(wù)來實現(xiàn)的。當應(yīng)用程序在設(shè)備上運行時,它會生成日志消息并將其發(fā)送到系統(tǒng)的日志記錄器中。這些消息包含了與事件相關(guān)的詳細信息,例如事件類型、時間戳、進程ID和標記等。
logcat可以根據(jù)不同的過濾器來過濾和顯示日志信息。您可以使用命令行工具或Android Studio的日志cat窗口來查看logcat輸出。這些工具提供了各種過濾選項,例如按標記、級別、進程ID等過濾日志消息。
2.?系統(tǒng)的日志記錄器
所有應(yīng)用程序都可以使用logcat記錄和訪問日志信息。但是,每個應(yīng)用程序只能訪問自己的日志信息,而不能訪問其他應(yīng)用程序的日志信息,因為Android系統(tǒng)使用Linux內(nèi)核的安全機制來限制應(yīng)用程序的訪問權(quán)限。
在Android系統(tǒng)中,每個應(yīng)用程序都運行在一個獨立的進程中,并且每個進程都有自己的日志緩沖區(qū)。應(yīng)用程序可以使用Android提供的Log
類將日志信息寫入自己的日志緩沖區(qū)中。
3. adb logcat
命令行中輸入adb logcat
命令可以查看所有應(yīng)用程序的日志信息,是因為該命令使用了Android Debug Bridge(ADB)工具,該工具提供了一種特權(quán)模式,允許您訪問設(shè)備的所有數(shù)據(jù)和文件,包括其他應(yīng)用程序的日志信息。
4.?SELinux
Android系統(tǒng)的安全機制與SELinux(Security-Enhanced Linux)安全模塊密切相關(guān)。SELinux是一種基于Linux內(nèi)核的強制訪問控制(MAC)系統(tǒng),可以對系統(tǒng)資源(如文件、進程和網(wǎng)絡(luò))的訪問進行細粒度的控制和限制,從而提高系統(tǒng)的安全性和穩(wěn)定性。
在Android系統(tǒng)中,默認情況下啟用了SELinux安全模塊,并使用SELinux策略對應(yīng)用程序的權(quán)限進行控制和管理。每個應(yīng)用程序都被分配了一個唯一的SELinux域,以此實現(xiàn)應(yīng)用程序之間的隔離和安全。應(yīng)用程序只能訪問其自己的SELinux域內(nèi)的資源,而無法訪問其他應(yīng)用程序和系統(tǒng)資源。
5.READ_LOGS
READ_LOGS
是Android系統(tǒng)中的一項系統(tǒng)權(quán)限,用于允許應(yīng)用程序讀取系統(tǒng)日志信息。
在Android 4.1及以上版本中,Google對READ_LOGS
權(quán)限進行了限制,只有具有root
權(quán)限的用戶和系統(tǒng)應(yīng)用程序才能獲取該權(quán)限。這是為了進一步提高系統(tǒng)的安全性,避免惡意應(yīng)用程序獲取敏感信息并導致安全問題。
如果您是開發(fā)人員,需要使用READ_LOGS
權(quán)限來調(diào)試和排錯應(yīng)用程序,可以在應(yīng)用程序的AndroidManifest.xml
文件中添加以下代碼:
<uses-permission android:name="android.permission.READ_LOGS" />
但需要注意的是,如果應(yīng)用程序沒有具有系統(tǒng)簽名的證書,那么應(yīng)用程序在運行時請求READ_LOGS
權(quán)限時會拋出SecurityException
異常。
6. 系統(tǒng)簽名證書
系統(tǒng)簽名的證書是由Android系統(tǒng)的開發(fā)者或設(shè)備制造商頒發(fā)的,用于對系統(tǒng)應(yīng)用程序進行簽名和授權(quán)。該證書通常是設(shè)備制造商或ROM開發(fā)者所持有的。
具體步驟
- 生成公鑰和私鑰
- 導出公鑰
- 將公鑰嵌入Android源代碼(例如可以放到應(yīng)用程序的
assets
目錄或res/raw
目錄中,再通過代碼讀?。?、
7.?pm grant
pm grant
是一個Android系統(tǒng)命令,用于授予應(yīng)用程序特定的權(quán)限。該命令需要在具有root權(quán)限的設(shè)備上執(zhí)行。
通過執(zhí)行pm grant
命令,您可以將指定應(yīng)用程序的權(quán)限設(shè)置為允許或拒絕。
例如
pm grant com.example android.permission.READ_LOGS
需要注意的是,盡管您可以使用pm grant
命令授予應(yīng)用程序READ_LOGS
權(quán)限,但是在Android 4.1及以上版本中,只有具有系統(tǒng)簽名的應(yīng)用程序才能請求并獲得該權(quán)限。因此,如果您的應(yīng)用程序沒有具有系統(tǒng)簽名的證書,即使您通過pm grant
命令將其授予READ_LOGS
權(quán)限,也無法讀取系統(tǒng)日志信息。
8.?/system/bin/logcat
chmod 04755 /system/bin/logcat
用于修改系統(tǒng)日志工具logcat
的權(quán)限,使得普通應(yīng)用程序也可以讀取系統(tǒng)日志信息。該命令需要在具有root權(quán)限的設(shè)備上執(zhí)行。
后話
本文詳細介紹了logcat敏感信息泄露的危害,可以看到,實際上在當前的android環(huán)境下,遠程攻擊的風險較小。多數(shù)是通過系統(tǒng)級別的操作或者物理攻擊才有可能利用到logcat的泄露,但是還是存在一定的風險,建議修復。文章來源:http://www.zghlxwxcb.cn/news/detail-469983.html
PS:各大SRC基本不再收錄此類問題。文章來源地址http://www.zghlxwxcb.cn/news/detail-469983.html
到了這里,關(guān)于【Android】logcat日志敏感信息泄露的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!