Android靜態安全檢測 -> 系統組件本地拒絕服務檢測

系統組件本地拒絕服務檢測 - Intent.getXXX()


一、API


1. 繼承關係


【1】java.lang.Object

【2】android.content.Intent


2. 主要方法


【1】getAction()  返回String


【2】getSerializableExtra(String name)  返回Serializable


【3】getStringExtra(String name)  返回String


【4】參考鏈接


https://developer.android.com/reference/android/content/Intent.html


二、觸發條件


1. 定位Intent.getXXX方法的位置


【1】對應到smali語句中的特徵

r'Landroid/content/Intent;->get(?:Action|.+Extra)\('


2. 判斷是否爲導出的組件【exported屬性爲true】


3. 判斷是否進行異常捕獲【try...catch】


三、漏洞原理


【1】導出的組件在處理Intent附加數據的時候,沒有進行異常捕獲,攻擊者可通過嚮應用發送空數據、異常或畸形數據等,導致應用程序崩潰


【2】更多內容


http://wolfeye.baidu.com/blog/local-dos/


https://jaq.alibaba.com/community/art/show?spm=a313e.7975615.40002100.22.IAgwPP&articleid=55


http://www.droidsec.cn/阿里聚安全掃描器之本地拒絕服務檢測詳解/


四、修復建議


【1】不必要導出的組件,建議顯示設置組件的“android:exported”屬性爲false


【2】在使用Intent獲取附加數據時,使用try catch進行異常捕獲和處理,防止拋出異常引發崩潰


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章