安卓APP安全測(cè)試

App安全問題

  • App 運(yùn)行時(shí)虛擬機(jī)監(jiān)測(cè)
  • App 運(yùn)行時(shí)root監(jiān)測(cè)
  • App數(shù)據(jù)備份檢測(cè)
  • 代碼反編譯檢測(cè)
  • 敏感權(quán)限使用
  • 敏感信息泄露
  • 拒絕服務(wù)測(cè)試
  • 目錄穿越安全測(cè)試
  • App 緩存安全檢測(cè)
  • 接口安全測(cè)試
  • 弱加密安全測(cè)試
  • 秘鑰硬編碼安全檢測(cè)
  • 數(shù)據(jù)存儲(chǔ)安全檢測(cè)
  • 數(shù)據(jù)傳輸安全檢測(cè)
  • 日志信息泄露檢測(cè)
  • App組件導(dǎo)出檢測(cè)
  • App組件權(quán)限檢測(cè)
  • webview 多項(xiàng)漏洞安全測(cè)試
  • App Webview DOM 安全測(cè)試
  • 本地SQL注入安全測(cè)試
  • SQLite 存儲(chǔ)安全審計(jì)

案件分析

APP運(yùn)行時(shí)虛擬機(jī)檢測(cè)

該app未進(jìn)行虛擬機(jī)運(yùn)行檢測(cè),攻擊者在虛擬機(jī)中安裝運(yùn)行該app,即可在虛擬機(jī)中截取并操作數(shù)據(jù)包或進(jìn)行其他有害操作田度。

image.png
APP數(shù)據(jù)備份檢測(cè)

在對(duì)某app進(jìn)行安全測(cè)試時(shí)幕庐,發(fā)現(xiàn)并未對(duì)app進(jìn)行數(shù)據(jù)備份檢測(cè),安卓AndroidManifest.xml文件中android:allowBackup為true骤素,當(dāng)這個(gè)標(biāo)志被設(shè)置成true或不設(shè)置該標(biāo)志位時(shí)匙睹,應(yīng)用程序數(shù)據(jù)可以備份和恢復(fù),adb調(diào)試備份允許惡意攻擊者復(fù)制應(yīng)用程序數(shù)據(jù)济竹。
在對(duì)某app進(jìn)行安全測(cè)試時(shí)痕檬,發(fā)現(xiàn)并未對(duì)app進(jìn)行數(shù)據(jù)備份檢測(cè),其AndroidManifest.xml文件中android: allowBackup為true规辱,存在數(shù)據(jù)任意備份漏洞谆棺。


image.png

連接手機(jī),然后輸入以下備份命令罕袋,會(huì)出現(xiàn)一個(gè)對(duì)話窗改淑,輸入備份密碼即可:
adb backup -nosystem -noshared -apk -f com.xxx.wallet com.xxx.wallet

image.png

連接到另一臺(tái)手機(jī)或root的本機(jī),輸入下列命令浴讯,彈出對(duì)話框朵夏,輸入備份時(shí)的密碼即可恢復(fù)數(shù)據(jù)
adb restore com
如果用戶賬號(hào)密碼保存在本地,則恢復(fù)到另一臺(tái)root的手機(jī)后榆纽,可以看到各種敏感信息仰猖。
建議設(shè)置AndroidManifest.xml的android:allowBackup標(biāo)志為false。

代碼反編譯檢測(cè)

若app的apk文件可被反編譯奈籽,就有可能導(dǎo)致源代碼信息泄露饥侵,攻擊者也可對(duì)其進(jìn)行代碼審計(jì)以找出可能存在隱患的攻擊點(diǎn)。
對(duì)某app進(jìn)行安全測(cè)試時(shí)衣屏,通過檢測(cè)apk文件是否通過加固躏升,代碼是否通過加密或者混淆,是否可以通過反編譯攻擊等方面對(duì)該app進(jìn)行測(cè)試狼忱。發(fā)現(xiàn)該apk文件可被反編譯膨疏,反編譯后可以看到j(luò)ava源代碼,導(dǎo)致源代碼信息泄露钻弄。(通過jadx-gui或其他反編譯工具可直接操作apk佃却,查看java源代碼。)
建議窘俺,可使用專業(yè)加固工具對(duì)apk進(jìn)行加殼處理饲帅。

image.png
敏感權(quán)限使用

目前很多系統(tǒng)在app請(qǐng)求權(quán)限這一方面上都不甚敏感,這也是如今移動(dòng)端并不那么安全的成因之一。很多app都會(huì)請(qǐng)求一些敏感的權(quán)限洒闸,有的甚至?xí)苯永@過染坯,不向用戶請(qǐng)求就直接自行取得了權(quán)限。而這些app有可能對(duì)用戶都產(chǎn)生足夠的惡意影響丘逸。
在對(duì)某app進(jìn)行安全測(cè)試時(shí)单鹿,檢測(cè)APP程序中是否存在敏感權(quán)限的使用,發(fā)現(xiàn)確實(shí)存在敏感權(quán)限使用漏洞深纲。
建議仲锄,可使用專業(yè)加固工具對(duì)apk進(jìn)行加殼處理。

image.png

敏感權(quán)限如下:

  • android.permision.WRITE_EXTERNAL_STORAGE 允許應(yīng)用寫入外部存儲(chǔ)
  • ndroid.permission.READ_PHONE_STATE 允許訪問電話狀態(tài)湃鹊、設(shè)備信息
  • ndroid.permission.CAMERA 允許訪問攝像頭
  • android.permission.GET_TASKS 允許獲取系統(tǒng)應(yīng)用列表
  • android.permission.MOUNT_UNMOUNT_FILESYSTEMS 允許掛載儒喊、反掛載外部文件系統(tǒng)
    建議禁用不需要的敏感權(quán)限。
敏感信息泄露

敏感信息泄露危害極大币呵,如泄露出測(cè)試/管理員數(shù)據(jù)怀愧,參數(shù)注釋信息等。但它又是一種危害雖大卻又較容易避免的漏洞余赢,只要開發(fā)人員多加注重安全意識(shí)即可避免大部分問題芯义。
在對(duì)某app進(jìn)行安全測(cè)試時(shí),查找其 app 程序文件中是否存在敏感信息泄露(如源碼中妻柒,備份文件中扛拨,xml 資源文件中等),發(fā)現(xiàn)確實(shí)存在敏感信息泄露漏洞举塔,源碼中泄露了微信公眾號(hào) appid 和 secretkey:

image.png

獲取token:

image.png
秘鑰硬編碼安全

被測(cè)試的app绑警,若通信存在加密處理,即可檢查源碼或者靜態(tài)資源文件中是否存在硬編碼的加密秘鑰央渣,從而破解通信加密的數(shù)據(jù)计盒。
在對(duì)某app進(jìn)行安全測(cè)試時(shí),檢查是否存在秘鑰硬編碼漏洞芽丹,此app請(qǐng)求數(shù)據(jù)默認(rèn)是通過請(qǐng)求數(shù)據(jù)排列章郁,然后加上appkey加上另外一個(gè)秘鑰進(jìn)行md5,再通過算法后去字符串再次md5得到最后的簽名志衍。
這里加密使用的appkey硬編碼到apk中。如下圖:

image.png

另一個(gè)加密key在so文件中聊替,通過逆向可以獲嚷シ尽:

image.png

這樣一來即可通過修改數(shù)據(jù)后重新簽名構(gòu)造任意數(shù)據(jù)了,加簽也就失去了意義惹悄。
(以下為第二個(gè)例子春叫。)
在對(duì)另一個(gè)app進(jìn)行測(cè)試時(shí),使用burp工具截取該app傳輸?shù)臄?shù)據(jù)包,發(fā)現(xiàn)響應(yīng)包內(nèi)容已經(jīng)過加密并有base64的特征暂殖。

image.png

對(duì)apk進(jìn)行逆向獲取到加密方式為aes cbc補(bǔ)碼方式為pkcs7价匠。

image.png

在反編譯源碼中未查詢到aes秘鑰相關(guān)信息 對(duì)apk進(jìn)行解壓 在靜態(tài)資源文件中發(fā)現(xiàn)aes_key與aes_iv。

image.png

使用收集到的aes_key與aes_iv 以pkcs7為補(bǔ)碼方式構(gòu)造aes cbc解密獲取到明文數(shù)據(jù)呛每。

數(shù)據(jù)存儲(chǔ)安全

如果安卓手機(jī)用戶的app文件存放在external storage踩窖,例如SD卡,那這些文件就是全局可讀寫的晨横,external storage可以被任何用戶操作洋腮,且可以被所有的應(yīng)用修改使用。
在對(duì)某app進(jìn)行安全測(cè)試時(shí)手形,使用動(dòng)態(tài)方法監(jiān)測(cè)/data/data/<packagename>/目錄下所有生成的目錄是否帶有明文信息泄露啥供。
進(jìn)入到/data/data/com.xxx.wallet/shared_prefs目錄,查看config.xml文件库糠,此文件存儲(chǔ)了用戶的支付信息等非常敏感的信息伙狐,而這些信息可被其他用戶接觸導(dǎo)致信息被盜取等。
建議瞬欧,app的敏感數(shù)據(jù)不要存放在external storage贷屎,如若不得不這樣做,請(qǐng)對(duì)數(shù)據(jù)進(jìn)行加密處理

image.png
App組件導(dǎo)出檢測(cè)

檢測(cè)app中Activity黍判、activity-alias豫尽、service、receiver組件對(duì)外暴露情況顷帖,如果檢測(cè)到組件的exported屬性為true或者未設(shè)置美旧,而且組件的permission屬性為normal或者dangerous或者未設(shè)置組件的permission屬性時(shí),app將存在組件導(dǎo)出漏洞贬墩,導(dǎo)致數(shù)據(jù)泄露和惡意的dos攻擊以及釣魚攻擊榴嗅。
在對(duì)某app進(jìn)行安全測(cè)試時(shí),檢測(cè)到該app存在Activity組件導(dǎo)出漏洞陶舞。
檢測(cè)app中Activity嗽测、activity-alias、service肿孵、receiver組件對(duì)外暴露情況唠粥,先檢測(cè)組件的exported屬性,再檢測(cè)組件的permission對(duì)應(yīng)的protectionlevel屬性停做。

image.png

具體檢測(cè)存在漏洞的方法如下:


image.png

建議:

  • 最小化組件暴露晤愧。對(duì)不會(huì)參與跨應(yīng)用調(diào)用的組件添加android:exported=”false”屬性。
  • 設(shè)置組件訪問權(quán)限蛉腌。對(duì)跨應(yīng)用間調(diào)用的組件或者公開的receiver官份、service只厘、activity和activity-alias設(shè)置權(quán)限,同時(shí)將權(quán)限的protectionLevel設(shè)置為”signature”或”signatureOrSystem”舅巷。
  • 組件傳輸數(shù)據(jù)驗(yàn)證羔味。對(duì)組件之間,特別是跨應(yīng)用的組件之間的數(shù)據(jù)傳入與返回做驗(yàn)證和增加異常處理钠右,防止惡意調(diào)試數(shù)據(jù)傳入赋元,更要防止敏感數(shù)據(jù)返回。
SQLite 存儲(chǔ)安全

此類安全問題的檢測(cè)爬舰,使用adb工具將sqlite數(shù)據(jù)庫拖到本地们陆,使用sqlite數(shù)據(jù)庫連接軟件查看是否存在敏感數(shù)據(jù)即可。如下為測(cè)試某app發(fā)現(xiàn)的漏洞范例情屹。


image.png

零時(shí)科技

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坪仇,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子垃你,更是在濱河造成了極大的恐慌椅文,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,185評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惜颇,死亡現(xiàn)場(chǎng)離奇詭異皆刺,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)凌摄,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,652評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門羡蛾,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人锨亏,你說我怎么就攤上這事痴怨。” “怎么了器予?”我有些...
    開封第一講書人閱讀 163,524評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵浪藻,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我乾翔,道長(zhǎng)爱葵,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,339評(píng)論 1 293
  • 正文 為了忘掉前任反浓,我火速辦了婚禮萌丈,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘雷则。我一直安慰自己辆雾,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,387評(píng)論 6 391
  • 文/花漫 我一把揭開白布巧婶。 她就那樣靜靜地躺著乾颁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪艺栈。 梳的紋絲不亂的頭發(fā)上英岭,一...
    開封第一講書人閱讀 51,287評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音湿右,去河邊找鬼诅妹。 笑死,一個(gè)胖子當(dāng)著我的面吹牛毅人,可吹牛的內(nèi)容都是我干的吭狡。 我是一名探鬼主播,決...
    沈念sama閱讀 40,130評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼丈莺,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼划煮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起缔俄,我...
    開封第一講書人閱讀 38,985評(píng)論 0 275
  • 序言:老撾萬榮一對(duì)情侶失蹤弛秋,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后俐载,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蟹略,經(jīng)...
    沈念sama閱讀 45,420評(píng)論 1 313
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,617評(píng)論 3 334
  • 正文 我和宋清朗相戀三年遏佣,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了挖炬。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,779評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡状婶,死狀恐怖意敛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情太抓,我是刑警寧澤空闲,帶...
    沈念sama閱讀 35,477評(píng)論 5 345
  • 正文 年R本政府宣布,位于F島的核電站走敌,受9級(jí)特大地震影響碴倾,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜掉丽,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,088評(píng)論 3 328
  • 文/蒙蒙 一跌榔、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧捶障,春花似錦僧须、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,716評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽示绊。三九已至,卻和暖如春暂论,著一層夾襖步出監(jiān)牢的瞬間面褐,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,857評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工取胎, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留展哭,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,876評(píng)論 2 370
  • 正文 我出身青樓闻蛀,卻偏偏與公主長(zhǎng)得像匪傍,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子觉痛,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,700評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容