成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Android平臺通用安全問題分析及策略

原創
移動開發 Android
Android作為一個優秀的開源移動平臺,其應用范圍和受重視程度已經越來越大。因此,其安全問題也成為業界和用戶的關注焦點。如何正確地認識其安全問題,并采用相應的策略來加強用戶的安全使用是一個非常關鍵的問題,本文將介紹Android平臺通用安全問題,并給出相應的安全策略。

一、Android安全問題產生的根源

【51CTO專稿】研究人員已發現Android上的流行軟件普遍存在安全陷阱與安全漏洞,漏洞頻發的原因可能有很多,主要有如下幾種:

  • 與一切都是集中管理的IOS相比,Android提供了一種開放的環境,在獲得了靈活性、可以滿足各種定制需求的同時,也損失了部分安全性。
  • 開發團隊通常將精力集中在產品設計、功能實現、用戶體驗和系統等方面,而很少考慮安全問題
  • Android提供的安全機制比較復雜,開發者需要理解它們,并對相應的攻擊思路和攻擊方法有所了解,才能有效地保護軟件。
  • 一方面,目前很少出現對特定移動軟件安全漏洞的大規模針對性攻擊,在真實的攻擊出現之前,許多人對此并不重視,另一方面,利用這些漏洞展開攻擊并不太難,許多攻擊方法和工具都已經成熟,一旦出現這種攻擊,用戶的個人隱私數據可能發生泄漏,賬戶信息可能被收集,如果與釣魚等攻擊結合,甚至可能產生經濟損失。產品開始團隊則可能由此面臨信任危機和法律風險。

下面簡單的例舉幾個不注重安全的現象,這些也是我們Android開發團隊容易忽略的地方。

[[65164]]

二、數據存儲安全問題

Android軟件可以使用的存儲區域分外部(SD卡)和內部(NAND閃存)二種,除了大小和位置不同之外,兩者在安全權限上也有很大的區別。外部存儲的文件沒有讀寫權限的管理,所有應用軟件都可以隨意創建、讀取、修改、刪除位于外部存儲中的任何文件,而Android的應用則只需要申明READ_EXTERNAL_STORAGE和WRITE_EXTERNAL_STORAGE權限。

內部存儲則為每個軟件分配了私有區域,并有基本Linux的文件權限控制,其中每個文件的所有者ID均為該軟件設立的一個用戶ID,其他軟件無權讀寫這些文件。

關于數據存儲可能出現的問題包括如下幾點:

將隱私數據明文保存在外部存儲

例如,聊天軟件或社交軟件將聊天記錄、好友信息、社交信息等存儲在SD卡上;備份軟件將通信錄、短信等備份到SD卡上等,如果這些數據是直接明文保存(包括文本格式、XML格式、SQLite數據庫格式等)的,那么攻擊者寫的軟件可以將其讀取出來,并加傳到指定的服務器,造成隱私信息泄露。較好的做法是對這些數據進行加密,密碼保存在內部存儲,由系統托管或者由用戶使用時輸入。

將系統數據明文保存在外部存儲

例如,備份軟件和系統輔助將用戶數據備份到安裝的其他的SD卡,以便刷機或升級后進行恢復等;或者將一些系統數據緩存在SD卡上供后續使用,同樣的,這些數據是明文保存的,惡意軟件可以讀取它們,有可能用于展開進一步的攻擊。

將軟件運行時依賴的數據保存在外部存儲

如果軟件將配置文件存儲在SD卡上,然后在運行期間讀取這些配置文件,并其中的數據決定如何工作,也可能產生問題。攻擊者編寫的軟件可以修改這些配置文件,從而控制這些軟件的運行。例如將登錄使用的服務器列表存儲在SD卡中,修改后,登錄連接就會被發往攻擊者指定的服務器,可能導致賬戶泄露或會話劫持(中間人攻擊)。

對這種配置文件,較安全的方法是保存到內部存儲;如果必須存儲到SD卡,則應該在每次使用前檢驗它是否被篡改,與預先保存在內部的文件哈希值進行比較。

將軟件安裝包或者二進制代碼保存在外部存儲

現在很多軟件都推薦用戶下載并安裝其他軟件;用戶點擊后,會聯網下載另一個軟件的APK文件,保存到SD卡然后安裝。

也有一些軟件為了實現功能擴展,選擇動態加載并執行二進制代碼。例如,下載包含了擴展功能的DEX文件或JRA文件,保存到SD卡,然后在軟件運行時,使用dalvik.system.DexClassLoader類或者java.lang.ClassLoader類加載這些文件,再通過Java反射,執行其中的代碼。

如果安裝或者加載前,軟件沒有對SD卡 的文件進行完整性驗證,判斷其是否可能被篡改和偽造,就可能出現安全問題。

在這里,攻擊者可以使用稱為“重打包”(re-packaging)的方法,目前大量Android惡意代碼已經采用這一技術,重打包的基本原理是,將APK文件反匯編,得到 Dalivik指令的smali語法表示 ;然后在其中添加、修改、刪除等一些指令序列,并適當改動Manifest文件;最后,將這些指令重新匯編并打包成新的APK文件,再次簽名,就可以給其他手機安裝了,通過重打包,攻擊者可以加入惡意代碼、改變數據或指令,而軟件原有功能和界面基本不會受到影響,用戶難以察覺。

如果攻擊者對軟件要安裝的APK文件或要加載DEX、JAR文件重打包,植入惡意代碼,或修改其代碼;然后在SD卡上,用其替換原來的文件,或者拷貝到要執行或加載 的路徑,當軟件沒有驗證這些文件的有效性時,就會運行攻擊者的代碼攻擊。結果有很多可能,例如直接發送扣費短信,或者將用戶輸入的賬戶密碼發送給指定的服務器,或者彈出釣魚界面等。

因此,軟件應該在安裝或加載位于SD卡的任何文件之前,對其完整性做驗證,判斷其與實現保存在內部存儲中的(或從服務器下載來的)哈希值是否一致。

全局可讀寫的內部文件

如果開發者使用openFileOutPut(String name,int mode)方法創建內部文件時,將第二個參數設置為Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE,就會讓這個文件變為全局可讀或全局可寫的。

開發者這樣做是為了實現不同軟件之間的數據共享,但這種問題在于無法控制哪個軟件可以讀寫,所以攻擊者的惡意軟件也擁有這一權限。

如果要跨應用有種較好的方法是實現一個Content Provider 組件,提供數據的讀寫接口并為讀寫操作分別設置一個自定義的權限。

內部敏感文件被root權限軟件讀寫

如果攻擊者的軟件已獲得root權限,自然可以隨意讀寫其他軟件的內部文件,這種情況 并不少見。

1)大量的第三方定制ROM提供了root 權限管理工具,如果攻擊者構造的軟件偽造成一些功能強大的工具??梢云垓_用戶授予它root權限。

2)即便手機預裝的官方系統,國內用戶也大多樂于解鎖,即recovery并刷入toot管理工具。

3)在Android2.2和2.3中,存在一些可用于獲取root權限的漏洞,并且對這種漏洞的利用不需要用戶的確認。

4)因此,我們并不能假設其他軟件無法獲取root權限。即使是存在內部數據,依然有被讀取或修改的可能。

5)前面提到,重要、敏感、隱私的數據應使用內部存儲,現在又遇到root后這些數據依然可能被讀取的問題。我對這個問題的觀點是,如果攻擊者鋌而走險獲取root權限(被用戶或者被安全軟件發現的風險),那理論上他已經擁有了系統的完整控制權,可以直接獲得聯系人信息、短信記錄等,甚至賬戶密碼、會話憑證、賬戶數據等。例如,早期Google錢包將用戶的信用卡數據明文存儲,攻擊者獲取這些數據后,可以偽裝成持卡人進行進一步攻擊以獲得賬戶使用權。這種數據就是“其他軟件管理的重要數據”。

6)這個問題并沒有通用的解決方法,開發者可能需要根據實際情況尋找方案,并在可用性與安全性之前做出恰當的選擇。

#p#

三、網絡通信安全問題

[[65165]]

Android軟件通常使用WIFI網絡與服務器進行通信。WiFi并非總是可靠的,例如,開放式網絡或弱加密網絡中,接入者可以監聽網絡流量;攻擊者可能 自己設置WIFI網絡釣魚。此外,在獲得root權限后,還可以在Android系統中監聽網絡數據。

不加密地明文傳輸敏感數據

最危險的是直接使用HTTP協議登錄賬戶或交換數據。例如,攻擊者在自己設置的釣魚網絡中配置DNS服務器,將軟件要連接的服務器域名解析至攻擊者的另一臺服務器在,這臺服務器就可以獲得用戶登錄信息,或者充當客戶端與原服務器的中間人,轉發雙方數據。

早期,國外一些著名社交網站的Android客戶端的登錄會話沒有加密,后來出現了黑客工具FaceNiff,專門嗅探這些會話并進行劫持(它甚至支持在WEP、WPA、WPA2加密的WIFI網絡上展開攻擊),這 是目前我所知的唯一一個公開攻擊移動軟件漏洞的案例。

這類問題的解決方法很顯然-----對敏感數據采用基于SSL/TLS的HTTPS進行傳輸。

SSL通信不檢查證書有效性

在SSL/TLS通信中,客戶端通過數字證書判斷服務器是否可信,并采用證書的公鑰與服務器進行加密通信。

然而,在開發者在代碼中不檢查服務器證書的有效性,或選擇接受所有的證書時,例如,開發者可以自己實現一個X509TrustManager接口,將其中的CheckServerTrusted()方法實現為空,即不檢查服務器是否可信或者在SSLSoketFactory的實例中,通過setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIET),接受所有證書。做出這種選擇的可能原因是,使用了自己生成了證書,客戶端發現證書沒有和可信CA 形成信任鏈,出現 了CertificateException等異常。

這種做法可能導致的問題是中間人攻擊。

在釣魚Wifi網絡中,同樣地,攻擊者可以通過設置DNS服務器使客戶端與指定的服務器進行通信。攻擊者在服務器上部署另一個證書,在會話建立階段,客戶端會收到這張證書,如果客戶端忽略這個證書上的異常,或者接受這個證書,就會成功建立會話、開始加密通信。但攻擊者擁有私鑰,因此可以解密得到客戶端發來數據的明文。攻擊者還可以模擬客戶端,與真正的服務器聯系,充當中間人做監聽。

解決問題的一種方法是從可信CA申請一個證書。但在移動軟件開發中,不推薦這種方法。除了申請證書的時間成本和經濟成本外,這種驗證只判斷了證書是否CA可信的,并沒有驗證服務器本身是否可信,例如,攻擊者可以盜用其他可信證書,或者盜取CA私鑰為自己頒發虛假證書,這樣的攻擊事件在過去二年已經有多次出現。

事實上,在移動軟件大多只和固定的服務器通信,因此可以在代碼更精確地直接驗證是否某張特定的證書,這種方法稱為“證書鎖定”(certificate pinning)。實現證書的方法有二種:一種是前文提到的實現X509TrustManager接口,另一種則是使用keystore。具體可以參考Android開發文檔中的HttpsURLConnection類的概述。

使用短信注冊賬戶或接收密碼

也有軟件使用短信進行通信,例如自動發送短信來注冊、用短信接收初始密碼、用短信接收用戶重置密碼等。

短信并不是一種安全的通信方式。惡意軟件只要申明了SEND_SMS  、RECEIVE_SMS和READ_SMS這些權限,就可以通過系統提供的API向任意號碼發送任意短信、接收指定號碼發來的短信并讀取其內容,甚至攔截短信。這些方法 已在Android惡意代碼中普遍使用,甚至2011年就已經出現攔截并回傳短信中的網銀驗證碼(mTANs)的盜號木馬Zitmo。

因此,這種通過短信注冊或接收密碼的方法,可能引起假冒注冊、惡意密碼重置、密碼竊取等攻擊,此外,這種與手機號關聯的賬戶還可能產生增值服務、危險更大。較好的實現方式還是走Intent。

#p#

三、不安全的密碼和認證策略

明文存儲和編碼存儲密碼

許多軟件有“記住密碼”的功能。如果開發者依字面含義將密碼存儲在本地,可能導致泄漏。

另外,有的軟件不是直接保存密碼,而是和Base64、固定字節或字符串異或、ProtoBuf等方法對密碼然后存儲在本地,這些編碼也不會增加密碼的安全性,采用 smali、dex2jar、jd-gui、IDA Pro等工具,攻擊者可以對Android軟件進行反匯編和反編譯。攻擊者可以借此了解軟件對密碼的編碼方法和編碼參數。

較好的做法是,使用基于憑據而不是密碼的協議滿足這種資源持久訪問的需求,例如OAuth。

對外服務器的弱密碼或固定密碼

另一種曾引起關注的問題是,部分軟件向外提供網絡服務,而不使用密碼或使用固定密碼,例如,系統輔助軟件經常在WiFi下開啟FTP服務,部分軟件對這個FTP服務不用密碼或者用固定密碼。在開放或釣魚的WiFi網絡下,攻擊者也可以掃描到這個服務并直接訪問。

還有弱密碼的問題,例如,早期Google錢包的本地訪問密碼是4位數字,這個密碼的SHA256值 被存儲在內部存儲中,4位數字一共只有10000種情況,這樣攻擊軟件即使是在手機上直接暴力破解,都可以在短時間內獲得密碼。

使用IMEI或IMSI作為唯一認證憑據

IMEI、IMSI是用于標識手機設備、手機卡的唯一編號。如果使用IMSI或IMEI作為用戶的唯一憑據,可能導致假冒用戶的攻擊。

首先,應用要獲取手機IMEI、手機卡的IMSI不需要特殊權限。事實上許多第三方廣告會回傳它們用于用戶統計。其次得到IMEI或IMSI后,攻擊者有多種方法偽造成用戶與服務器進行通信。例如,將原軟件重打包,使其中獲取IMEI、IMSI的代碼始終返回指定的值;或者修改Android代碼,使相關API始終返回指定的值,編譯為ROM在模擬器中運行;甚至可以分析客戶端與服務器的通信協議,直接模擬客戶端的網絡行為。

因此,若使用IMEI或IMSI作為認證唯一憑據,攻擊者可能獲得服務器原用戶賬戶及數據。

#p#

四、一些供參考的安全機制

除了上文中講述的一些安全問題,采用相應的安全配置手段進行安全加固外。用戶在使用Android平臺的時候,還可以采用如下的一些安全機制。

使用Android 智能型手機內建的安全功能

讓智能型手機保持安全最有效的方法就是正確的設定位置與安全性。可以在『位置與安全性』選項內設定。設定智能型手機的PIN 碼或密碼鎖定功能也是個好方法。雖然需要輸入密碼才能從待機中回復使用似乎有點浪費時間。但是在手機不慎遺失時,這可以幫你保持資料安全。

如果這還不夠,你也可以選擇使用指紋鎖定功能。這可能是最好的辦法,因為它能確保你是唯一可以使用你智能型手機內資料的人。提醒大家記住,使用上述這些安全設定總是比沒有來的好。有了密碼,畢竟就有了一道鎖來防止犯罪分子存取你的資料。

停用WiFi自動連接

除了正確地設定Android 智能型手機的『位置與安全性』選項,停用自動連接無線網絡也有幫助,盡管它的確是挺方便的功能。

免費的無線網絡總是有一些安全上的疑慮。連上一個開放網絡可能簡單、方便又免費,但這樣做是有風險的。自動連接開放的無線網絡就等于開放大門給幾乎所有人。你的智能型手機跟無線路由器或AP 之間的數據可以自由的傳輸。因此,就算你可能并不希望,但任何在同一網絡上的人都可以看到。

個人電腦使用者所面對的威脅,Android 智能型手機的使用者也同樣可能會遇到。就像是透過自動連接無線網絡所帶來的風險,特別是那些沒有安全設定的網絡。停用自動連接無線網絡選項也是另一個保持手機遠離威脅的方法。

封鎖從官方應用商店以外的應用程式來源

第一個 Android 木馬是以Windows 多媒體播放器的模樣出現。很快地,另個新的Android 木馬出現在某個中國的第三方軟件商店。雖然我們不能保證官方應用商店下載的應用絕對安全。但由于它屬于官方,所以我們還是可以假設它比其他人更值得信賴些。

也因為如此,我們建議你設定禁止安裝非來自官方應用商店的應用。這將帶給你的智能手機多一層的保護。

接受授權要求時先確認

在分析惡意的Android 應用程式時,我們發現這些程序通常會要求你允許他們存取許多儲存在手機內的資料。一個最近的例子是木馬化的 Android Market Security Tool。它會要求權限去發送簡訊到服務號碼,知道目前位置,查看儲存的簡訊和更改你的系統設定。提供你的授權去讓它能夠成為一個后門程式。它會收集設備資訊并且傳送到遠端URL 。同時也會在未經授權下去執行其他功能,像是修改通話記錄,監看攔截簡訊以及下載視訊檔。

接受授權要求時,要小心那些要求存取個人及設備資訊,還有其他該應用程式不會用到的權限。要先想想這應用程式是作什么的。比方說,如果不是電話簿軟體,就不需要權限去存取聯絡人列表。

考慮安裝有效的手機安全軟件

有時候,光是小心手機軟體的下載和安裝是不夠的。因為網絡犯罪分子不會停止開發新的巧妙手法來誘騙你去泄漏個人資料。有效的安全解決方案仍然是最好的選擇。

為了能夠隨時隨地得到保護,你可以使用解決方案像是360安全衛士、金山毒霸、騰訊手機管家等。這可以保護你儲存在手機上的數字資料,并保護你在Android 智能手機上所進行的銀行交易。它甚至可以在惡意軟體下載到手機之前就先識別并封鎖它,讓你能夠更加安心。

責任編輯:徐川 來源: 51CTO
相關推薦

2021-03-13 20:45:11

安全Web策略

2012-05-17 12:00:17

2013-11-19 15:48:34

電商安全網購安全

2019-09-03 15:23:53

郵件安全網絡釣魚電子郵件

2012-12-18 13:56:55

2019-09-02 15:01:18

2021-11-12 10:31:11

云計算云計算環境云應用

2011-09-27 09:26:30

Linux平臺數據安全

2009-07-30 21:34:45

2017-12-05 07:57:34

2013-03-11 17:37:36

大數據

2013-03-07 10:18:55

大數據大數據分析隱私安全

2017-08-17 17:48:06

2012-07-06 10:12:27

2019-04-04 11:55:59

2012-11-20 10:47:16

2009-05-30 09:36:18

2015-05-15 10:36:13

2022-06-08 08:23:18

低代碼無代碼網絡安全

2016-04-20 18:40:23

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 9191在线播放 | 国产精品亚洲二区 | 欧美日日 | 国产成人在线视频免费观看 | 欧美精品一区二区三区在线播放 | 欧美日韩精品影院 | 欧美日韩激情 | 亚洲精品久久久一区二区三区 | 一区二区三区四区五区在线视频 | 丁香婷婷久久久综合精品国产 | 操夜夜| 自拍偷拍3p| 久久久噜噜噜www成人网 | 国产女人与拘做受视频 | 中文字幕一区二区三区在线观看 | 91pron在线 | 久久久久久久一级 | 日韩精品影院 | 亚洲美女一区 | 午夜欧美| 中文字幕一区二区三 | 久久一区二| 精品成人免费一区二区在线播放 | 午夜天堂精品久久久久 | 精产国产伦理一二三区 | 精品一区二区三区四区外站 | 日韩免费高清视频 | 国产美女高潮 | 在线激情视频 | 久久精品小视频 | 日本又色又爽又黄又高潮 | 一级久久久久久 | 久久精品一区 | 天天操夜夜操 | caoporn免费在线视频 | 成人午夜在线观看 | 日韩欧美一区二区三区免费观看 | 成人午夜视频在线观看 | 中文字幕第十一页 | 久热精品视频 | 日韩精品成人 |