關於Android攻擊面

     先對android整個攻擊面有一個體系化的認識,有助於理清思路,linux

對從此的學習有很大的幫助。android

  什麼是攻擊向量:從語言語法的角度來講,是一個動詞,描述用來執行攻擊的方法,描述了攻擊者如何到達並接觸任意給定的漏洞代碼。web

  什麼是攻擊面:從語法語法的角度來講,是一個名詞,用來描述攻擊者能夠執行並而進攻的代碼,它描述了代碼中存在的可能還沒有被發現的安全漏洞的位置。算法

  攻擊面主要屬性:瀏覽器

    1.攻擊向量:所須要的用戶交互以及認證條件,限制了給定攻擊面中發現任意安全漏洞的影響後果。某些攻擊面須要進行物理接觸才能發動一次完整的攻擊,有些則須要運用社會工程學,誘騙用戶對連接進行點擊。安全

    2.獲取的權限:在給定攻擊面背後的代碼可能以極高的權限運行,如內核代碼。有的可能在沙盒中以受限權限運行。服務器

    3.內存安全性:是以c系語言仍是非c系語言寫的,c系語言存在更多的安全漏洞。網絡

    4.複雜性:越複雜的代碼,算法,協議越容易出現漏洞。框架

  攻擊面進行分類:學習

    1:遠程攻擊面:攻擊者無需在物理位置接近目標,而能夠直接經過計算機網絡發動攻擊,具備極大的危害性。

      1>網絡協議棧:安全漏洞研究的聖盃,不須要與目標交互就能實施,並且可以得到系統的徹底訪問控制權,在Android系統中,包含了對IP,TCP,UDP,ICMP等協議的實現。若是在IP包的處理過程當中出現能夠用的緩衝區溢出漏洞,將成爲最爲嚴重的安全漏洞,能夠遠程執行內核中的任意代碼。

      2>暴露的網絡服務:無需目標交互的聯網服務是第二位具備吸引力的攻擊面。這些服務一般的用戶空間執行,可是仍有一些潛在的網絡服務,若是成功利用,仍然能夠得到root權限,固然這類網絡服務極少,能夠經過nmap等端口掃描器得到,也能夠經過netstat得到,當啓動wifi,會有額外的網絡服務。

      3>移動技術:移動設備經過移動通訊暴露了其餘遠程攻擊面,包括經過短信服務(SMS)和多媒體消息服務(MMS),同時使用SMS和MMS消息做爲攻擊向量還能夠達到其它攻擊面。MMS消息中能夠包含一些多媒體內容。而其它一些協議也實如今SMS之上。

    2:客戶端攻擊面:因爲網絡的通常配置屏蔽了許多傳統的遠程的攻擊面,並且客戶端對與它通訊的服務器很是信任。因此,攻擊者很大程度上將關注點轉移到客戶端軟件攻擊面中存在的安全漏洞。

      1>瀏覽器攻擊面:現代Web瀏覽器做爲功能最爲強大的客戶端應用表明,支持HTML,Javascript和豐富的web應用。除了渲染和執行應用邏輯以外還支持一些底層協議。如FTP,HTTP。這些都是有數量驚人的後臺代碼實現的。而其中的每一個組件都帶有一個攻擊面。能夠經過誘導點擊,「水坑」等方法進行攻擊

      2>web驅動的移動應用程序:每一個web驅動的移動應用暴露的攻擊面都是不一樣的。

      3>廣告網絡:廣告網絡因爲嵌入嵌入式瀏覽器引擎(WebView),瀏覽器攻擊對於這些應用都是存在的,但通常只能經過中間人攻擊人向量。並且與傳統瀏覽器攻擊不一樣,這種組件還會暴露額外的攻擊面,能夠利用Java類型的反射攻擊進行遠程攻破。並且,廣告框架可能會對隱私構成顯著威脅。

      4>媒體和文檔處理:常見的文件格式漏洞

      5>電子郵件:相對較少

    3:谷歌基本設施

      1>Google Play商店:國內無需考慮

      2>惡意應用:安裝一款應用就等同於授予應用開發者任意代碼執行的權限,因爲應用數量極大,用戶難以肯定是否該信任特定的開發者。

      3>第三方應用生態圈:在Google play商店以外安裝應用,尤爲是部分破解軟件,極易捆綁病毒。

      4>Bouncer:

      5>Google Phone Home:

    4:物理相鄰

      1>無線通訊:Android設備都支持多種基於射頻的無線技術,幾乎都支持藍牙和wifi和GPS,較新的還支持NFC(近場通訊),每種無線技術都具備特有的頻率,且極易受到大量的攻擊,包括主動攻擊和被動攻擊。其中,主動攻擊包括阻塞,欺騙,中間人(MitM)等形式。因爲wifi和蜂窩網絡是用於訪問整個互聯網,所以能夠達到很是豐富的攻擊面

        1>>GPS:一般指代Android中的位置信息,可讓設備肯定自身在地球的位置。它經過衛星獲取信號肯定自身位置。

        2>>基帶:蜂窩調解器能夠提供給基帶處理器和移動網絡通訊的功能。它是Android電話棧的軟件組件,因爲對它的攻擊終端用戶難以察覺,並且可以訪問手機通話記錄及傳輸數據,對它的攻擊具備很是的吸引力。儘管屬於遠程攻擊,但依舊須要在必定的範圍內,近年來的「僞基站」攻擊

        3>>藍牙:藍牙具備30多種協議,每種藍牙都定義了藍牙設備的一項特殊功能。如FTP(文件傳輸協議),HFP(免提協議),HSP(Handest Profile),HID(人機接口設備協議),DUN(撥號網絡協議)。藍牙協議功能首先須要配對。但一些設備使用硬編碼的數字碼,很是容易攻擊。配對後,有可能劫持會話並進行濫用,可能的攻擊方法包括BlueJacking,BlueSnarfing和BlueBugging。除了能夠與一些免提設備配對,android設備之間還能互相配對,用於傳輸聯繫人列表,文件等。藍牙設計時功能很是多樣化,也提供了攻擊者但願的幾乎全部的功能訪問

        4>>Wi-Fi:Wi-Fi主要用於鏈接局域網,由局域網提供對互聯網的訪問。詳情見於《黑客大曝光:無線網絡安全》

        5>>NFC:NFC是創建與射頻標示之上(RFID)的無線通訊技術,NFC在全部的無線技術中,做用範圍最短,一般不超過20cm。Android設備上的NFC有三種典型場景。第一,標籤被呈現給設備,設備讀取標籤的數據並進行處理。第二,兩位用戶將他們的Anddorid設備貼在一塊兒傳輸數據。第三,用於非接觸式的支付。最流行的消息格式是NFC數據交換格式(NDEF),解析時會致使執行一些動做。在某些狀況下,無需用戶交互。

      2>其餘技術:除了無線通訊外,還有其它兩個技術也與Android設備的總體攻擊面相關。具體來講爲QR碼(快速響應矩陣碼)和語音指令

    5:本地攻擊面:當得到對一個設備的任意代碼執行後,邏輯上的下一步就是權限提高。終極目標是得到享有特權的代碼執行,包括在內存空間執行。或者以root執行。然而只是得到少許權限,也能夠暴露更多受限的攻擊面。因爲權限隔離,爲了實現終極目標,須要結合使用多個小的提高目標。

      1>探究文件系統:Android的UNIX血統意味着許多攻擊面都是經過文件系統條目暴露的

      2>其它的本地攻擊面:除了文件系統,其它的本地攻擊面是有linux'內核暴露的,包括系統調用和套接字實現

        1>>系統調用:系統調用處理表明一個值得關注的攻擊面

        2>>套接字:Android上運行的軟件使用不一樣類型的套接字進行ipc

        3>>Binder:Binder驅動以及它依賴的軟件表明Android特有的一個攻擊面。Binder驅動是Intent的基礎,而Intent是用於在應用層Android組件進行通訊。Binder驅動自己在內核空間實現,並經過。/dev/binder字符設備暴露一個攻擊面。

        4>>共享內存:一種定製的內存共享機制

        5>>基帶接口:Android智能手機上包含第二個操做系統,就是基帶

        6>>攻擊硬件支持的服務:包括GPS接收器,光環境傳感器,陀螺儀

    6:物理攻擊面:須要物理接觸設備的攻擊被稱爲依賴於物理攻擊面,物理面攻擊與物理相鄰不一樣的是物理相鄰不須要實際接觸目標。

        1>>拆解設備:對目標設備進行拆解,就可以對目標設備中的硬件發起攻擊。打開一個硬件設備一般會發現

          【1】:暴露的串口,容許接收調試消息

          【2】:暴露的JTAG調試端口,容許對設備的固件進行調試,重刷或訪問

        2>>USB:USB是Android設備與其它設備進行交互的標準化有線接口

        3>>其它物理攻擊面:包括手機SIM卡,SD卡,HDMI卡,暴露的測試點和對接鏈接器

    7:第三方修改:參與生產Android設備的實體會修改操做系統的不一樣組成部分,通常須要手工進行分析。

相關文章
相關標籤/搜索