日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > Android >内容正文

Android

浅谈Android软件安全自动化审计

發布時間:2024/9/20 Android 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 浅谈Android软件安全自动化审计 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:???? riusksk(泉哥)
郵箱:?????riusksk@qq.com
博客:?????http://hi.baidu.com/riusksk
微博:?????http://t.qq.com/riusksk

【目錄】?

?

0x00 前言 0x10 Android軟件常見漏洞原理及檢測0x11 敏感信息明文保存0x12 程序文件及進程權限問題0x13 網絡數據明文傳輸0x14 組件權限安全問題0x15 其它 0x20 自動化審計工具——DroidAppAuditter 0x30 業界Android軟件安全現狀 0x40 總結 0x50 關于我們

?

【正文】

0×00? 前言

??? 隨著移動互聯網的發展,移動終端安全也越來越受到關注。特別是Android系統的崛起,互聯網上的各類Andriod軟件數量迅速上升。因Android系統是開源的,導致各種android惡意軟件迅猛增加,成為手機系統的最大受害者。與此同時,android系統和軟件本身的漏洞也進一步危害到用戶的隱私安全。本文主要針對Android軟件安全進行審計,提供一些常見的安全檢測點,并借此實現自動化審計工具,最后評估下業界常見android軟件安全的現狀。

0×10? Android軟件常見漏洞原理及檢測

??? 0×11 敏感信息明文保存

??? 敏感信息明文保存一直是Andriod軟件常容易出現的,這些敏感信息包括用戶密碼、住址、姓名等等內容,特別是密碼問題。有些支持“記住密碼”功能的軟件常常將密碼明文保存在軟件目錄下的某xml文件中,若手機中毒或者被其它惡意軟件利用,直接讀取xml文件中的明文密碼然后遠程發送給***者,這將會嚴重影響到用戶帳號安全。以下是用于檢測敏感信息的關鍵代碼:

?

foreach $msg (@msgs) {my $base64msg = encode_base64($msg);my $md5msg = md5_hex($msg);if(/$msg/){print "[高危]:$curfile: 行 $lines: 發現明文敏感信息:$msg !!!\n";$SearchStrResult .= "[高危]:$curfile: 行 $lines: 發現明文敏感信息:$msg !!!\n";push (@risk_level,4);$highnum++;}if(/$base64msg/){print "[高危]:$curfile: 行 $lines: 發現 Base64 敏感信息:$base64msg !!!\n";$SearchStrResult .= "[高危]:$curfile: 行 $lines: 發現 Base64 敏感信息:$base64msg !!!\n";push (@risk_level,4);$highnum++;}if(/$md5msg/){print "[安全]:$curfile: 行 $lines: 發現 MD5 加密信息:$md5msg !!!\n";$SearchStrResult .= "[安全]:$curfile:行 $lines:發現 MD5 加密信息:$md5msg !!!\n";push (@risk_level,1);$secnum++;}}

以下是當檢測到明文密碼時的輸出結果(已過濾掉包名):

[高危]:data/data/com.***.v7/shared_prefs/rem_password.xml: 行 3: 發現明文敏感信息:passwd123 !!!

??? 0×12 程序文件及進程權限問題

??? 如果我們限制程序目錄的權限,禁止其它第三方軟件訪問,也能夠在一定程度上防止明文密碼泄露,除非軟件已獲得root權限,而軟件一般無需root權限,大多是一些惡意軟件或者殺毒軟件才會用到,對于普通軟件應該遵循“最低授權原則”,盡量以最低權限來完成所需操作,避免權限被惡意濫用。因此也可將程序目錄權限和進程是否為root權限作為一個檢測點,以下是DroidAppAuditter檢測到問題時的輸出結果:

?

[低危]:-rw-rw--w- :data/data/com.snda.cloudary/shared_prefs/UserInfo.xml [低危]:存在Root權限 !

??? 0×13 網絡數據明文傳輸

?

??? 在2012年2月UCWEB瀏覽器被爆存在明文密碼網絡傳輸漏洞,若開啟“云端加速”功能,在登錄一些SSL站點時,它會將用戶發送的WEB請求會轉發到UC的代理服務器上,并且未進行任何加密處理,可能導致用戶密碼泄露。最初UC不承認此問題,后來在微博上確認存在此漏洞。對于存在明文網絡傳輸的軟件,若結合中間人***就極有可能造成密碼泄露,特別是在KFC、麥當勞等公共場所。在Android中本身自帶有tcpdump可用于網絡抓包,再借助perl模塊去解析cap,或者利用wireshark的命令行工具來解析也是可行的(以下為示例代碼,不考慮命令注入問題):

?

print "[*] 捕獲網絡數據包......\n\n"; system("adb shell tcpdump -p -vv -s 0 -c 500 -w /sdcard/$targetfile.cap"); print "\n[*] 提取cap文件至PC端分析......\n\n"; system("adb pull sdcard/$targetfile.cap $cwd/TestSoft/$targetfile/$targetfile.cap"); print "\n[*] 解析cap數據包......\n\n"; system("$cwd/tshark/tshark.exe -r $cwd/TestSoft/$targetfile/$targetfile.cap -V > $cwd/TestSoft/$targetfile/$targetfile.txt")

以下是檢測到明文敏感信息網絡傳輸時的輸出結果:

[中危]:存在明文傳輸內容: password=passwd123&provider=sdo&login=13613****** [低危]:存在 IMEI(國際移動設備身份碼)隱私信息竊取行為、IP地址隱私信息竊取行為、SIM序列號隱私信息竊取行為:

?

channel=6666&model=sdk&ip=10.0.2.15&mac=&sim=89014103211118510720&imei=000000000000000&size=480*800&os=2.2&platform=Android&version=1.0.5.1&ua=Mozilla/5.0 (Linux; U; Android 2.2; zh-cn; sdk Build/FRF91) AppleWebKit/533.1

??? 0×14 組件權限安全問題

??? 在Android中存在多種組件,比如Content Provider、Broadcast Receiver等等,這些組件可能因權限設置不當導致信息泄露或者釣魚欺騙等***。在2011年,香港理工大學的安全研究人員陸續報告了許多android軟件中存在的Content Provider信息泄露漏洞(參見鏈接:http://www4.comp.polyu.edu.hk/~appsec/),由于程序對Provider的權限設置不當,導致第三方軟件可讀取Content Provider提供的信息,其危害程度取決于Content Provider提供的信息內容,比如聯系人、電話、短信等隱私信息就可能包含其中。默認情況下,Content Provider的權限為android:protectionLevel=”normal”,最好的權限設置應為signature或者signatureOrSystem,進而避免被第三方惡意軟件利用。下面是DroidAppAuditter中用于檢測Content Provider權限的關鍵代碼:

?

while(index($cont[$line],"<permission android:name=\"$ProviderName\"") == -1){if ($line <= $linecount) {$line++;}else{print "[中危]:Content Provider:$ProviderName 默認設置為\“normal\”權限,可能導致敏感信息泄露!\n";$CheckComponentResult .= "[中危]:Content Provider:$ProviderName 默認設置為\“normal\”權限,可能導致敏感信息泄露,建議修改為\“signature\”或者\“signatureOrSystem\”!\n";……省略……last;}}if(index($cont[$line],"android:protectionLevel=\"normal\"") > -1){print "[中危]:Content Provider:$ProviderName 權限為\“normal\”,可能導致敏感信息泄露!\n";$CheckComponentResult .= "[中危]:Content Provider:$ProviderName 為\“normal\”權限,可能導致敏感信息泄露,建議修改為\“signature\”或者\“signatureOrSystem\”!\n";……省略……}

?

除protectionLevel權限問題外,<grant-uri-permission>權限問題也可作為一個檢測點,若設為true,可被其它程序通過URL訪問到content provider的內容,容易造成信息泄露。

??? 2011年盛大的安全研究人員DoDo在其博客寫一系列關于Android安全的文章,其中有篇就提到關于Broadcast Receiver的問題,鏈接見:http://www.sectop.com/?p=128,這個依然是組件權限控制的問題,由于Broadcast Receiver被允許外部調用,可能被第三方惡意軟件標記相關action給正常應用發送broadcast,那么正常應用就會對此進行響應處理,其危害程度也是取決于正常應用對廣播接收采取的操作,比如發送短信、任務欄通知等操作,就有可能被用于釣魚欺騙。防御此問題最簡單的方法就是通過android:exproted來關閉receiver對外部應用的響應,但可能在同一公司開發的一些產品之間需要進行相互廣播通訊,此時就可采取DoDo在文中提到的另一種方法:在receiver方的androidmanifest.xml中增加<permission>自定義權限項,并在sendbroadcast方得androidmanifest.xml中增加<uses-permission>匹配此權限。

下面是DroidAppAuditter用于檢測Broadcast Receiver權限的部分檢測代碼:

?

if(index($cont[$line],"android:exported=\"flase\"") > -1){print "[安全]:Broadcast Receiver:$Receiver 禁止被外部調用!\n";$CheckComponentResult .= "[安全]:$Receiver 禁止被外部調用!\n";} elsif(index($cont[$line],"android:permission=") == -1){print "[低危]:Broadcast Receiver:$Receiver 可被外部調用,可能造成釣魚欺騙,建議添加 android:exported=\"flase\"!\n";$CheckComponentResult .= "[低危]:Brodcat Receiver:$Receiver 可被外部調用,可能造成釣魚欺騙,建議添加 android:exported=\"flase\"!\n";……省略……}?

?

除receiver和content provider的權限問題外,其它組件如service和activies也可能存在權限安全問題,亦可將其列入檢測范圍。

??? 0×15 其它

??? 除上文中提到的各個安全檢查點之外,讀者還可進行擴充,比如其它組件權限、XSS、SQL注入檢測、內存泄露、intent fuzzing等多個方向進行分析,DoDo’s Blog上面也有一些安全文章可作為參考,大家如果有什么好的思路或檢測點也可郵件與本人交流:riusksk@qq.com。

0×20? 自動化審計工具——DroidAppAuditter

??? 對于業務量較大的公司,Android軟件產品可能會很多,若一一通過手工檢測,就會影響到效率,因此實現一款自動化審計工具是非常有必要的,至少可以減輕工作量,以騰出更多的時間出來看片……筆者將此審計工具命名為DroidAppAuditter,主要用Perl語言編寫的,支持Android模擬器和實體機,可自動安裝apk文件并運行軟件,然后實現動態自動化檢測,并圖文并茂地輸出分析報告。最后這里附上一份輸出的完整分析報告,如下圖所示,報告中的漏洞已于2011年修復:

?

0×02? 業界Android軟件安全現狀

?

???????? 2011年我們借助自動化審計工具DroidAppAuditter,對業界各個主流Android軟件進行安全審計,共審計了29個國內流行的Android軟件,其中存在明文保存密碼的有10個,其它XSS漏洞、明文傳輸,以及隱私竊取的行為共有12個,所有被審計的軟件有超過一半是存在安全漏洞的。由此可見,目前android軟件安全還未受到業界重視,但這也將成為今后發展的趨勢。最后附上審計結果的部分截圖,如下圖所示:

0×03? 總結

???????? 本文主要探討了Android軟件的一些常用安全檢測點,并通過代碼實現自動化審計工具,希望對各位有所幫助,如果你有更好的檢測方案,也可與本人探討。至于審計工具,由于各種原因就不公開了,因為我相信:“授人以魚不如授人以漁”。

0×04? 關于我們

???????? 騰訊安全應急響應中心(Tencent Security Response Center)簡稱TSRC,是騰訊公司負責突發安全事件處理的團隊,如果您對騰訊產品和業務有任何安全上的建議和意見可以與我們聯系,也歡迎有意在互聯網安全行業發展的同學加入我們。

轉載于:https://blog.51cto.com/metasploit/1005801

總結

以上是生活随笔為你收集整理的浅谈Android软件安全自动化审计的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。