<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                該部分旨在建立了一個客觀、準確評估應用安全性的模型,主要用于分析Android APP掃描后的數據,根據風險的數量、分布和威脅程度,計算應用的安全分值。該模型認為,應用風險是造成應用安全問題的最主要的原因,將風險分為高危、中危、低危、警告、提醒和安全六個等級,每個等級賦予一定的分值,計算所有存在風險的分值之和,利用給定的指數函數模型,計算出該應用的安全分值,完成安全性評估。 ### 1 風險等級的劃分與數學表達 我們將風險分為六個等級,每個等級對應的分值見下表: | 風險等級 | 分值 | 符號| 編程所用的代號| | :----------: | :------: | :------------------:|:------------------:| |高危|8|` $ R_{3} $ `|3| |中危|4|` $ R_{2} $ `|2| | 低危|2|` $ R_{1} $ `|1| | 提醒|1| ` $ R_{0} $ `|0| | 安全|0| ` $ R_{-1} $ ` |-1 | | 展示|0| ` $ R_{-2} $ ` |-2| :-: 表1.風險等級分值表 **提醒**一般為羅列需要注意的事項,**低危、中危和高危**說明存在由低至高的風險威脅,**安全**說明該風險項的威脅不存在,**展示**僅羅列給用戶看的有意義的信息。 顯然,分值分布符合2的指數冪的關系,即 ```[math] R_{3} = 8 = 2^{3} ``` ```[math] R_{2} = 4 = 2^{2} ``` ```[math] R_{1} = 2 = 2^{1} ``` ```[math] R_{0} = 1 = 2^{0} ``` 特別地,令`$ R_{-1} = R_{-2} = 0 $` 在文檔的后面,我會講述為什么要將等級的分值進行這樣的設定,此處暫且不解釋。 該模型將所有的檢測項目分為12類(表2),其中前3類是應用的基本信息共12項,不計入風險的評估環節,從第4類到第12類總共有70項,每項的風險等級在評估前可能有多個取值,但是在評估后都是唯一的,例如第4檢查項,根據應用風險的暴露程度,可能是高危,也可能是提醒,但是在評估后,可以確認為是高危和提醒的其中一個,這是唯一的。 12類風險掃描項涵蓋了大部分安卓應用存在的風險點,更詳細的信息可參見文檔 **《掃描項目詳述》**,里邊有關于每一個檢測項的詳細說明。 * **第1類** 文件信息 * **第2類** 權限信息檢測 * **第3類** 四大組件 * **第4類** Menifest文件檢測 * **第5類** 組件安全檢測 * **第6類** Webview組件安全檢測 * **第7類** Sqlite安全檢測 * **第8類** 網絡通信安全檢測 * **第9類** 弱加密風險檢測 * **第10類** 數據安全檢測 * **第11類** 敏感函數調用檢測 * **第12類** 系統漏洞檢測 定義`$ P_{i} $`為**評估前**第i個檢測項的風險等級的**取值集合** | 項目序號 | 唯一標識 | 風險描述 | 風險等級 | 檢測方式 | 風險集合Pi | |----|-------|-----------------------------------------------------------|:------:|:------:|:---------:| | 1 | 01001 | 文件名 | 無 | `靜態` | ` $ \varnothing $ ` | | 2 | 01002 | 文件大小 | 無 | `靜態` | ` $ \varnothing $ ` | | 3 | 01003 | MD5 | 無 | `靜態` | ` $ \varnothing $ ` | | 4 | 01004 | 包名 | 無 | `靜態` | ` $ \varnothing $ ` | | 5 | 01005 | Main Activity | 無 | `靜態` | ` $ \varnothing $ ` | | 6 | 01006 | Min SDK | 無 | `靜態` | ` $ \varnothing $ ` | | 7 | 01007 | Target SDK | 無 | `靜態` | ` $ \varnothing $ ` | | 8 | 02001 | 權限信息檢測 | 無 | `靜態` | ` $ \varnothing $ ` | | 9 | 03001 | Activity組件 | 無 | `靜態` | ` $ \varnothing $ ` | | 10 | 03002 | Service組件 | 無 | `靜態` | ` $ \varnothing $ ` | | 11 | 03003 | BroadcastReceiver組件 | 無 | `靜態` | ` $ \varnothing $ ` | | 12 | 03004 | ContentProvider組件 | 無 | `靜態` | ` $ \varnothing $ ` | | 13 | 04001 | AndroidManifest文件中PermissionGroup檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 14 | 04002 | AndroidManifest文件中系統權限使用檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 15 | 04003 | AndroidManifest文件中ProtectionLevel權限檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 16 | 04004 | AndroidManifest sharedUserId檢測 | `提醒`,`高危` | `靜態` |` $ \{R_{0},R_3\} $ ` | | 17 | 04005 | allowBackup標志檢測 | `低危` | `靜態` |` $ \{R_{1}\} $ ` | | 18 | 04006 | Debuggable配置檢測 | `高危` | `靜態` |` $ \{R_{3}\} $ ` | | 19 | 04007 | 非必要權限檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 20 | 04008 | app最低版本檢測 | `展示` | `靜態` |` $ \{R_{-2}\} $ ` | | 21 | 05001 | Activity組件導出檢測 | `中危` | `靜態` |` $ R_{3} $ ` | | 22 | 05002 | Service組件導出檢測 | `中危` | `靜態` |` $ \{R_{2}\} $ ` | | 23 | 05003 | Receiver組件導出檢測 | `中危` | `靜態` |` $ \{R_{2}\} $ ` | | 24 | 05004 | Provider組件導出檢測 | `高危` | `靜態` |` $ \{R_{3}\} $ ` | | 25 | 05005 | Provider: grant-uri-permission屬性檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 26 | 05006 | Intent-Based攻擊檢測 | `低危` | `靜態` |` $ \{R_{1}\} $ ` | | 27 | 05007 | Intent Scheme URL漏洞攻擊檢測 | `高危` | `靜態` |` $ \{R_{3}\} $ ` | | 28 | 05008 | 應用本地拒絕服務器漏洞檢測 | `低危` | `靜態` |` $ \{R_{1}\} $ ` | | 29 | 05009 | manifest中定義組件未實現檢測 | `中危` | `靜態` |` $ \{R_{2}\} $ ` | | 30 | 05010 | Debug或Test敏感測試組件泄露檢測 | `中危`,`低危` | `靜態` |` $ \{R_{2},R_1\} $ ` | | 31 | 05011 | Intent不安全反射風險檢測 | `低危` | `靜態` |` $ \{R_{1}\} $ ` | | 32 | 06001 | Webview遠程執行漏洞檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 33 | 06002 | WebView潛在XSS攻擊檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 34 | 06003 | WebView本地文件訪問漏洞檢測 | `高危` | `靜態` |` $ \{R_{3}\} $ ` | | 35 | 06004 | WebView密碼明文存儲漏洞檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 36 | 06005 | 主機名弱校驗檢測 | `中危` | `靜態` |` $ \{R_{2}\} $ ` | | 37 | 06006 | 證書弱校驗檢測 | `中危` | `靜態` |` $ \{R_{2}\} $ `| | 38 | 06007 | 中間人攻擊漏洞檢測 | `中危` | `靜態` |` $ \{R_{2}\} $ ` | | 39 | 06008 | WebView不校驗證書漏洞檢測 | `中危` | `靜態` |` $ \{R_{2}\} $ ` | | 40 | 06009 | WebView組件系統隱藏接口未移除漏洞 | `低危` | `靜態` |` $ \{R_{1}\} $ ` | | 41 | 07001 | SQLite數據庫加密(SQLCipher)檢測 | `展示` | `靜態` |` $ \{R_{-2}\} $ ` | | 42 | 07002 | SQLite數據庫加密拓展(SQLite Encryption Extension,SEE)檢測 | `展示` | `靜態` |` $ \{R_{-2}\} $ ` | | 43 | 07003 | SQLite數據庫的對稱密鑰檢測 - 未實現 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 44 | 07004 | SQLite Database Transaction Deprecated(SQL注入)檢測 - 未實現 | `所有` | `動態` |` $ \{R_{3},R_{2},R_{1},R_{0}\} $ ` | | 45 | 07005 | Databases任意讀寫漏洞檢測 - 廢棄 | `中危` | `靜態` |` $ \{R_{2}\} $ ` | | 46 | 08001 | SSL不安全組件檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 47 | 08002 | SSL連接檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 48 | 08003 | HttpHost檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 49 | 08004 | HttpURLConnection漏洞檢測 - 廢棄 | `低危` | `靜態` |` $ \{R_{1}\} $ ` | | 50 | 08005 | 網絡端口開放威脅檢測 | `低危` | `混合` |` $ \{R_{1}\} $ ` | | 51 | 09001 | 弱加密算法風險檢測 | `低危` | `靜態` |` $ \{R_{1}\} $ ` | | 52 | 09002 | 不安全的密鑰長度風險檢測 | `低危` | `靜態` |` $ \{R_{1}\} $ ` | | 53 | 09003 | ECB弱加密模式風險檢測 | `低危` | `靜態` |` $ \{R_{1}\} $ ` | | 54 | 09004 | IVParameterSpec不安全初始化向量風險檢測 | `低危` | `混合` |` $ \{R_{1}\} $ ` | | 55 | 09005 | RSA中不使用Padding風險檢測 | `低危` | `靜態` |` $ \{R_{1}\} $ ` | | 56 | 09006 | 檢測keystore是否使用密碼保護 - 未實現 | `高危` | `動態` |` $ \{R_{3}\} $ ` | | 57 | 10001 | 敏感信息檢測 | `展示` | `靜態` |` $ \{R_{-2}\} $ ` | | 58 | 10002 | 剪貼板敏感信息泄露風險檢測 | `展示` | `靜態` |` $ \{R_{-2}\} $ ` | | 59 | 10003 | Intent敏感數據泄露風險檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 60 | 10004 | PendingIntent誤用風險 | `中危` | `靜態` |` $ \{ R_{2} \} $ ` | | 61 | 10005 | 密鑰硬編碼風險檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 62 | 10006 | 數據或程序加載檢查 - 未實現 | `提醒` | `動態` |` $ \{R_{0}\} $ ` | | 63 | 10007 | BASE64安全檢測 | `展示` | `靜態` |` $ \{R_{-2}\} $ ` | | 64 | 10008 | 文件全局讀寫漏洞檢測 | `中危` | `靜態` |` $ \{R_{2}\} $ ` | | 65 | 10009 | 日志泄露風險檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 66 | 10010 | 外部加載Dex檢測 - 去掉 | `高危` | `靜態` |` $ \{R_{3}\} $ ` | | 67 | 10011 | 外部存儲路徑檢測 - 未實現 | `提醒` | `動態` |` $ \{R_{0}\} $ ` | | 68 | 10012 | 明文數字證書風險 - 未實現 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 69 | 11001 | 安全相關的函數檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 70 | 11002 | 安全相關的類檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 71 | 11003 | 運行命令檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 72 | 11004 | Native Library加載檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 73 | 11005 | 外部動態加載DEX檢測 | `高危` | `混合` |` $ \{R_{3}\} $ ` | | 74 | 11006 | root代碼檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 75 | 11007 | 獲取IMEI和Device ID敏感信息代碼檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 76 | 11008 | 獲取Android ID敏感信息代碼檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 77 | 11009 | 發送SMS敏感代碼檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 78 | 11010 | 文件刪除代碼檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 79 | 11011 | signature代碼檢測 | `提醒` | `靜態` |` $ \{R_{0}\} $ ` | | 80 | 12001 | fragment注入漏洞檢測 | `中危` | `靜態` |` $ \{R_{2}\} $ ` | | 81 | 12002 | sqlite數據庫日志泄露漏洞檢測 | `低危` | `靜態` |` $ \{R_{1}\} $ ` | | 82 | 12003 | 隨機數生成漏洞檢測 | `高危` | `靜態` |` $ \{R_{3}\} $ ` | :-: 表2.風險評估環節表 現在考慮評估完成后的情況,每個檢測項都會有唯一標定的風險等級,即從每一項的風險等級集合與安全集合的并集` $ P_i\cup\{R_{-1}\} $ `中選取一個合適的值,作為該檢測項的評估結果。 定義` $ r_{i} $`為**評估后**第i個檢測項的風險等級,即 ```[math] r_i \in P_i \cup\{R_{-1}\} ``` 特別地, ` $ P_i = \varnothing $ `則令` $ r_i = 0 $ ` 所以,所有檢測項的風險等級的分值總和為S,可以表示為 ```[math] S = \sum_{i=1}^{82}{r_i} ``` 最后,定義安全系數*K* ```[math] K(s) = {Floor(0.985}^{S} \times 100) ``` 其中Floor是向下取整函數,則*K*就是我們所要的結果 為什么采用K(s)來表示威脅與安全系數的關系是接下來要說明的,我們來考慮函數K(s)的性質: 其原型是一個以0.985為底的指數衰減函數,我們記為取整前的函數為**K(s)\***,即 ```[math] K(s)^* = 0.985^S \times 100 ``` **性質一** K(s)是單調遞減函數 **性質二** K(s)\*變化率隨S的增大而減小,表現為曲線由抖變緩 **性質三** K(s)\*的值域為(0,100],當s足夠大時,K(s)\*無限趨近于0,向下取整后為0 **性質四** 令s = 1, 則K(s) = 98 令s = 2, 則K(s) = 97 令s = 4, 則K(s) = 94 令s = 8, 則K(s) = 88 令s = 16, 則K(s) = 78 ![安全系數模型1](https://wiki-1252789527.cos.ap-shanghai.myqcloud.com/%E5%AE%89%E5%85%A8%E7%B3%BB%E6%95%B0%E6%A8%A1%E5%9E%8B1.png) :-: 圖1 K(s)函數圖像 我們可以觀察到,K(s)符合現實中風險與安全系數的關系: **性質一** 風險分值S越高,安全指數K越低,應用面臨的風險越大;風險分值S越低,安全指數K越高,應用越安全。 **性質二** K前期變化率大,后期變化率小,說明在應用出現風險時,應用安全系數會快速下跌,此時往往一兩個高危漏洞就可以讓系統淪陷;可是當風險已經足夠多時,系統已不再安全,應用已經有夠多的漏洞可以利用時,再增加風險的分值,對安全系數的減小的影響會降低 **性質三** 風險評估采用常見的百分制。當風險分值為0,安全系數為100;當風險值不斷增大時,安全系數能夠取到0。安全系數位于閉區間[0,100]。 **性質四** 性質四的現實意義可以用下表來表示: |安全系數分值|風險分值|風險組合的集合表示|風險組合的文字表述| |:--------:|:--------:|:--------:|:--------:| |98|1|` $ \{R_{0}\times2 \} $ ` |1個提醒| |97|2|` $ \{R_{1}\} $ ` |1個低危| |94|4|` $ \{R_{2} \} $ ` |1個中危| |88|8|` $ \{R_{3} \} $ ` |1個高危| |78|16|` $ \{R_{3} \} $ ` |2個高危| :-: 表3.風險組合與安全系數的關系 根據性質四,我們可以制定應用安全的等級的標準 | 應用安全等級 | 安全系數分值區間 |編程所用的代碼 | |:--------------:|:------------------:|:------------------:| | 安全 | 90~100 |-1| | 合格 | 70~89 |0| | 警告 | 50~69 |1| | 危險 | < 50 |2| :-: 表4.應用安全的等級標準說明 最后,我需要說明風險等級分值標定的原因,安全和展示等級可以認為對風險的貢獻為0。根據經驗,我們可以直觀地理解,隨著風險等級的提升,其危害程度不應該是線性遞增,而應該是指數遞增,例如高危風險的危害程度應該遠遠大于低危風險。所以在標定風險的分值時,我采用了2的指數冪的方式進行標定分值,能更好地擬合現實中**危害程度**隨**風險等級**的變化。 | 風險等級 | 分值 | 符號| 指數關系| | :----------: | :------: | :------------------:|:------------------:| |高危|8|` $ R_{3} $ `|` $ 2^3 $ `| |中危|4|` $ R_{2} $ `|` $ 2^2 $ `| | 低危|2|` $ R_{1} $ `|` $ 2^1 $ `| | 提醒|1| ` $ R_{0} $ `|` $ 2^0 $ `| | 安全|0| ` $ R_{-1} $ ` | 特殊情況 | | 展示|0| ` $ R_{-2} $ ` |特殊情況| :-: 表5.風險等級與指數的關系
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看