android安全分析
⑴ APP的安全漏洞怎麼檢測,有什麼工具可以進行檢測
目前我經常用的漏洞檢測工具主要就是愛內測,因為愛內測會根據應用特性,對程序機密性會採取不同程度不同方式的檢測,檢測項目包括代碼是否混淆,DEX、so庫文件是否保護,程序簽名、許可權管理是否完整等;組件安全檢測主要針對Activity、Broadcast Receiver、Service、WebView、Intent等是否存在漏洞,並給出針對性建議;數據安全會全面檢測APP存在的數據泄漏漏洞和輸出層、協議層等所有涉及數據安全的漏洞,確保APP里那些可能導致帳號泄露的漏洞被全部檢測出。
⑵ android中有哪些安全機制
本文從Android系統架構著手,分析Android的安全機制以SE Android,最後給出一些Android安全現狀和常見的安全解決方案。
http://www.cnblogs.com/lao-liang/p/5089336.html
⑶ Android軟體安全與逆向分析的Android術語
逆向分析是一種逆向工程技術,是一種產品設計技術再現過程,即對一項目標產品進行逆向分析及研究,從而演繹並得出該產品的處理流程、組織結構、功能特性及技術規格等設計要素,以製作出功能相近,但又不完全一樣的產品。逆向工程源於商業及軍事領域中的硬體分析。其主要目的是在不能輕易獲得必要的生產信息的情況下,直接從成品分析,推導出產品的設計原理 。Android 軟體安全與逆向分析是針對Android 軟體的逆向分析,對原有APK文件進行反向研究,包括對語法,代碼等進行分析,破解原有APK的源代碼,資源文件比如圖片,音頻等等行為。
1.APK一旦被破解,反編譯之後的源碼就被破解者獲取,開發者的勞動成果就被竊取,危害了開發者的利益。
2.反編譯的APK如果被進行二次打包,那麼APP就成為盜版產品,盜版產品侵害開發者的版權
3.反編譯的產品有可能被破解者進行二次打包,注入惡意代碼,竊取用戶隱私,惡意扣除用戶手機流量和資費,獲取用戶數據等等,這些行為嚴重傷害用戶的利益。
4.盜版產品不受保護,用戶得不到合理的售後支持和服務。
在這種情況下就需要加強對安卓APK DEX文件進行保護的技術,防止反編譯。dex文件其實就是Android系統中可以在Dalvik虛擬機上直接運行的文件格式。java源碼通過ADT編譯成Smali語言這是一個優化的過程,相對於.class文件它體積小、運行效率高、被編譯後可讀性低;Smali再到class. DEX本身就是一個加殼保護的過程。 DEX文件如果未做好保護,黑客通過反編譯可讓源碼完全暴露,可利用閱讀源碼來找到App的設計流程,通過對程序流程的了解將很容易對程序進行盜版、惡意篡改、惡意代碼注入等危險行為 。
1.隔離Jave程序。這種是最根本的保護,將一些關鍵的Class文件進行加密,例如對注冊碼、序列號管理相關的類進行加密,開發人員可以將關鍵的JavaClass放在伺服器端,用戶通過伺服器介面獲取服務而不是直接通過java文件。破解者就無法獲取class文件了。目前有很多通過介面提供服務的標准和協議,比如HTTP,webservice,RPC等等。但是呢,這種方式並不是適合所有的APP,比如單機運行的程序的無法隔離Java程序。
2.對class文件進行加密保護。開發者可以將一些關鍵的class文件進行加密,比如對注冊碼,序列號管理相關的類進行加密來防止反編譯。在使用這些被加密的類之前,程序需要首先對這些類進行解密,然後才能將這些類載入在JVM中。要解密這些類,必須要通過一些硬體或是軟體才能完成。
3.轉換成本地代碼
這是一種防止反編譯的比較有效的方法。因為本地代碼往往難以被反編譯。開發人員可以選擇將整個應用程序轉換成本地代碼,或者可以選擇關鍵模塊轉換。如果僅僅轉換關鍵部分模塊,Java程序在使用這些模塊時,需要使用JNI技術進行調用。當然,在使用這種技術保護Java程序的同時,也犧牲了Java的跨平台特性。對於不同的平台,我們需要維護不同版本的本地代碼,這將加重軟體支持和維護的工作。不過對於一些關鍵的模塊,有時這種方案往往是必要的。為了保證這些本地代碼不被修改和替代,通常需要對這些代碼進行數字簽名。在使用這些本地代碼之前,往往需要對這些本地代碼進行認證,確保這些代碼沒有被黑客更改。如果簽名檢查通過,則調用相關JNI方法.
4.代碼混淆
代碼混淆是對Class文件進行重新組織和處理,使得處理後的代碼與處理前代碼完成相同的功能(語義)。但是混淆後的代碼很難被反編譯,即反編譯後得出的代碼是非常難懂、晦澀的,因此反編譯人員很難得出程序的真正語義。從理論上來說,黑客如果有足夠的時間,被混淆的代碼仍然可能被破解,甚至目前有些人正在研製反混淆的工具。但是從實際情況來看,由於混淆技術的多元化發展,混淆理論的成熟,經過混淆的Java代碼還是能夠很好地防止反編譯。下面我們會詳細介紹混淆技術,因為混淆是一種保護Java程序的重要技術 。
5.第三方工具加密
上面四種方式可能要耗費開發者很大一部分精力和時間,如果想要方便的話,可以尋求第三方的加密工具。目前市場上有一些工具是可以幫助APK加密的,比較知名的是愛加密的加密平台。相對於上面四種方式,這種第三方的加密工具要更全面和專業,可以有效的保護dex文件,so庫文件,xml主配文件以及其他資源文件不被反編譯和惡意篡改。
愛加密專家提醒,這些方式並不是獨立運用的,有時候可以混合使用,根據自己的情況來定,比如說高級混淆之後還是可以使用第三方的愛加密工具進行高級保護,多一重安全。
⑷ android安全性問題都有哪些
Android
開發安全性注意事項:
本地資料庫加密機制
本地
SharedPreferences
保存信息要加密
統一日誌輸出開關控制
(
開發測試日誌輸出打開,版本正式上線日誌輸入關閉
)
正式包需要混淆打包
app
與伺服器交互介面參數以及返回數據需要進行數據加密
app
與伺服器交互介面需要有
token
過期失效機制
聲明適當的
manifest
許可權
關於
Android
組件暴露的問題可以在不需要暴露的組件在
AndroidManifest.xml
中為這個組件
加上屬性
android:exported=
」
false
」
⑸ 《Android軟體安全與逆向分析》pdf下載在線閱讀全文,求百度網盤雲資源
《Android軟體安全與逆向分析》網路網盤pdf最新全集下載:
鏈接: https://pan..com/s/1brYBFOyXsboWMkT_zplYdw
簡介:本書由淺入深、循序漸進地講解了Android 系統的軟體安全、逆向分析與加密解密技術。包括Android軟體逆向分析和系統安全方面的必備知識及概念、如何靜態分析Android 軟體、如何動態調試Android 軟體、Android 軟體的破解與反破解技術的探討,以及對典型Android 病毒的全面剖析。本書適合所有Android 應用開發者、Android 系統開發工程師、Android 系統安全工作者閱讀學習。
⑹ 為什麼android安全漏洞多
1、android系統手機泄密
信息時代很嚴重 先從所有版本android系統的通病數起。最讓用戶不恥的在於,近期美國《華爾街日報》聘用兩位安全分析師發現,谷歌安卓系統手機和 蘋果iphone 手機會自動收集用戶的行蹤信息,並將這些私人信息返回給兩家公司。調查發現,使用安卓系統的htc手機能每隔幾秒鍾自動手機用戶的姓名、位置、所在地附近的無線網路信號強度及一個特殊電話識別碼,並每小時多次將這些信息發送給谷歌。
2、不支持關機鬧鈴
與用戶需求嚴重背離 然後是所有玩家幾乎已經習以為常的事情,谷歌系統的一千遍一萬遍升級都與它無關,它就是不支持關機鬧鈴。可以說現在很多的android系統手機玩家,都是從塞班系統「叛變」過來的,包括小編本人。其中又有多少人曾經喜歡晚上睡覺關機的玩家,因為android系統的這一缺點而大聲罵過街。 有會有人說了,iphone4和微軟系統也都不支持關機鬧鈴呀。沒錯,但是塞班系統的手機支持,mtk晶元的手機支持、展訊晶元的手機,請問你還有什麼理由不支持!如果這條理由還不足以讓你清醒,那麼,我再告訴你同樣基於android系統開發的 聯想樂phone 就支持!聯想可以搞定的事情,你谷歌為什麼搞不定!是實力不濟還是壓根就沒有真正考慮過用戶需求?
3、撥號後自動掛斷電話
通話bug頻繁出現 手機的基本功能就是通訊工具,無論科技發展到多麼隨心所欲的境界,這一點都是毋庸置疑的。但是android系統卻在最基本的通話功能上出了問題。很多論壇里的網友都反應的一件事情就是,android系統手機在撥號通話時經常遇見這樣的郁悶情況。撥號以後,電話尚未接通會被系統自動掛斷。而且,這絕不是某款android手機的問題,而是很多android系統手機的通病。
4、對硬體配置要求高
製造成本增加 近期各種高頻處理器,各種高ram內存的手機頻現,為玩家奉獻了一場幾乎華麗的視覺大餐。可以說谷歌android系統在其中做了推波助瀾的效果,原因很簡單,android系統的手機對硬體配置要求過高,廠商如果不推出高硬體標準的手機怎麼在這個競爭激烈的時代立足呢?不過,我們可以換個角度考慮一下,這些高配置的手機價錢怎麼樣?如果你不是富二代,你爹不是李剛的話,你肯定不會淡定的。 盡管谷歌方面一再聲稱,android系統對手機硬體沒有明確的配置要求,對廠商使用什麼樣規格的硬體配置只是提出建議。但是,如果廠商不接受建議,採用的低配置的硬體,將會是什麼後果?顯然易見,這款手機一定會在競爭中被無情淘汰。我要舉例說明一下,android系統手機的cpu主頻已經達到1.2ghz主頻,甚至雙核1.2ghz主頻的手機也開始出現了。但是塞班系統至今沒有出現過一款cpu主頻能夠達到1ghz主頻的手機。難道塞班手機真的比android系統手機落後那麼多?目前塞班系統很多的手機處理器都只有600mhz,系統ram內存128mb,但是運行速度還是非常流暢的。但是如果是一款android系統手機,配備了600mhz、128mb ram的硬體,運行速度有多慢,我想用過的人都是十分清楚兩者之間的差距的。就象這位網友在論壇里說的那樣,android系統手機的高配置、高硬體帶來的高成本最後都是轉嫁給消費者的。
5、系統偷跑流量
流量流失情況驚人 按照谷歌方面的描述,android系統最大的優勢在於與互聯網貼合緊密,使用android系統手機可以盡享移動互聯網帶來的歡樂。但是,有沒有想過這種谷歌引以為豪的優勢有一天會變成消費者眼中的大敵。查看一下網上的記錄,有多少人抱怨android系統手機費流量,原來塞班時候30m玩一個月的時代已經一去不復返了。
6、系統費電嚴重
安卓手機續航不足 應用程序實時更新產生不僅僅是白白跑掉的網路流量,還在於這些更新活動也導致手機電量白白浪費掉。在各種手機論壇中,我們見到最多的帖子就是抱怨某款手機的續航能力不足。如果是一款兩款手機如此,說明是手機本身的電源管理系統有缺陷,如果是絕大多數的安卓手機都這樣,我們只能把矛頭指向谷歌android系統本身。
7、死機現象頻現
android系統普遍存在 android系統還有一個頻現的bug在於手機死機現象比較頻繁。而死機發生的環境也是多種多樣,有的是在運行某款程序時突然死機,有的是上網期間突然死機,有的甚至是在待機狀態下也會發生死機現象。盡管用戶反應,死機現象發生的頻率不盡相同,但是幾乎所有的android手機用戶都遇到過死機現象。 由於android系統開放程度高,因此造成大量的手機廠商和軟體開放商湧入以圖得一杯美羹。而由於google market的測試、審核機制又不是很完善,導致了很多並不很穩定甚至會導致系統崩潰的軟體被發布出來。此外,由於系統過於開放,很多網友玩家自行製作了很多各種版本的rom,各種rom穩定性,水平參差不齊也是手機死機的誘因之一。此外,對於很多新入手智能手機的玩家來說,各種rom也導致android系統版本眼花繚亂,使得他們顯然無法駕馭得了。
8、系統「智商不高」
計算器不會計算 近日,在各大手機論壇和android社區都會發現一個令人匪夷所思的帖子,不少網友都紛紛表示android系統自帶的計算器爆出低級錯誤,android手機內置的計算器有些最簡單的減法都會算錯。例如在android系統自帶的計算器內輸入14.52-14.49,正確結果應該是0.03,但是計算器結果顯示的數字為0.0299999。
9、簡訊功能也bug
隨機亂發惹人煩 android系統手機的簡訊bug最先由國外媒體曝光,這種小bug會導致簡訊在用戶毫不知情的情況下隨機發送,導致實際接收到簡訊的人並非發信人選擇發送的對象。這種bug著實讓中招的玩家崩潰的,手機的基本通訊功能都出現問題了,其他方面最強大也只能算做雞肋產品。 但是谷歌方面的聲明顯然不能讓玩家信服,隨後,在國內論壇網站了也出現了網友曝光android系統手機簡訊bug的消息。玩家的描述與國外媒體曝光的內容幾乎一致,都是信息發送時被簡訊被隨機發給了其他用戶。不僅如此,部分android手機還爆出已經被閱讀過的短消息依然會被隨機標記為未讀的情況,讓很多玩家十分崩潰。
⑺ 如何對安卓APK進行安全檢測和漏洞檢測
一般APP安全檢測主要就是對APP安全風險以及安全漏洞檢測,根據愛內測平台介紹,主要通過靜態分析、動態分析以及人工檢測:
靜態分析: 利用apktool、dex2jar、jd-gui、smali2dex等靜態分析工具對應用進行反編譯,並對反編譯後的java文件、xml文件等文件靜態掃描分析,通過關鍵詞搜索等靜態方式將具有安全隱患的代碼進行摘錄並存入到檢測平台後台,為後續的安全檢測報告提供數據依據
動態分析:對應用軟體安裝、運行過程的行為監測和分析。檢測的方式包括沙箱模型和虛擬機方式。虛擬機方式通過建立與Android手機終端軟體運行環境幾乎一樣的虛擬執行環境,手機應用軟體在其中獨立運行,從外界觀察應用程序的執行過程和動態,進而記錄應用程序可能表現出來的惡意行為。
人工檢測: 專業安全人員對待檢測應用,對其進行安裝、運行和試用,通過在試用過程中,逐步掌握應用的特點,並通過專業經驗,來圈定檢測重點。人工專業檢測在涵蓋基礎檢測和深度檢測的全部檢測項的同時,兼顧側重點檢測,給予應用更全面、更專業、更貼合應用的量身打造的檢測服務。