1 <application 2 android:allowBackup="false" 3 android:label="@string/app_name"> 4 <activity android:name="LoginActivity" 5 android:label="@string/app_name"> 6 <intent-filter> 7 <action android:name="android.intent.action.MAIN"/> 8 <category android:name="android.intent.category.LAUNCHER"/> 9 </intent-filter> 10 </activity> 11 <activity android:name=".HomeActivity"/> 12 </application
<application android:allowBackup="false">
是否允許備份應用的數據,默認是true,當備份數據的時候,它的數據會被備份下來。如果設為false,那么絕對不會備份應用的數據,即使是備份整個系統。
1.allowBackup安全風險描述
Android API Level 8及其以上Android系統提供了為應用程序數據的備份和恢復功能,此功能的開關決定於該應用程序中AndroidManifest.xml文件中的allowBackup屬性值[1] ,其屬性值默認是True。當allowBackup標志為true時,用戶即可通過adb backup和adb restore來進行對應用數據的備份和恢復,這可能會帶來一定的安全風險。
Android屬性allowBackup安全風險源於adb backup容許任何一個能夠打開USB 調試開關的人從Android手機中復制應用數據到外設,一旦應用數據被備份之后,所有應用數據都可被用戶讀取;adb restore容許用戶指定一個恢復的數據來源(即備份的應用數據)來恢復應用程序數據的創建。因此,當一個應用數據被備份之后,用戶即可在其他Android手機或模擬器上安裝同一個應用,以及通過恢復該備份的應用數據到該設備上,在該設備上打開該應用即可恢復到被備份的應用程序的狀態。
尤其是通訊錄應用,一旦應用程序支持備份和恢復功能,攻擊者即可通過adb backup和adb restore進行恢復新安裝的同一個應用來查看聊天記錄等信息;對於支付金融類應用,攻擊者可通過此來進行惡意支付、盜取存款等;因此為了安全起見,開發者務必將allowBackup標志值設置為false來關閉應用程序的備份和恢復功能,以免造成信息泄露和財產損失。
2.allowBackup安全影響范圍
Android API Level 8以及以上系統
3.allowBackup安全風險詳情
1)allowBackup 風險位置:
AndroidMannifest.xml文件android:allowBackup屬性;
2) allowBackup風險觸發前提條件:
未將AndroidMannifest.xml文件中的android:allowBackup屬性值設為false;
3) allowBackup風險原理:
當allowBackup標志值為true時,即可通過adb backup和adb restore來備份和恢復應用程序數據;
推薦兩篇文章:http://www.freebuf.com/articles/terminal/60778.html
https://www.secpulse.com/archives/5228.html