APP安全檢測

檢測流程

        用戶將APK檔案上傳至分析系統後,系統將自動進行反編譯動作,並比對出可疑的行為,將結果輸出後進行第二階段判定。第二階段之結果將匯入至動態分析系統信行第三階段判定,並產生最終報告。
    用戶依照三階段分析所產生的報告,便可以很清楚的知道APP中是否有安全性漏洞、或隱藏了哪些風險,並加以改善

MOBILE APP SECURITY TESTING 架構示意圖

MOBILE APP SECURITY TESTING 實際操作畫面

APP安全檢測分類

APP安全檢測分類

基於 NIST163 與 ISO17034的精神,並讓後續APP的開發者有所依據,我們針對APP的安全查核做出了分類,分類的依據如下表:



類型描述負面的結果
權限權限允許存取被控制的功能,例如照相機或GPS和在程式中被請求,權限可以在沒有取得用戶同意下申請暗中同意權限。有太多的權限的APP應用程式可以對APP應用程式的預期功能範圍之外執行非預期的功能。此外,權限容易受到另一個應用程式的攻擊。如果被許可太少的權限,則APP應用程式將不能完成所需的功能。
暴露的通訊內部通信協定的意思是由一個APP應用程式經由內部的裝置傳遞訊息,無論是APP本身或其他APP應用程式,而外部通信指的是允許資訊離開設備。暴露內部通信將讓APP應用程式收集非預期的資訊,並且會注入新的資訊。暴露外部通信(數據網路、無線網路、藍牙、NFC等)留下的資訊會公開透露或被執行意外的功能或遭遇中間人攻擊( Man-in-the-middle attack )。
有潛在危險的功能性控制功能可存取系統的關鍵資源或用戶的個人資訊。這個功能可以經由API呼叫或固定寫死編碼存取APP應用程式中。非預期的功能可以在應用程式的功能的範圍之外來執行。
應用程式的勾串行為兩個或更多的APP應用程式傳遞資訊給對方,以增加一個或兩個APP應用程式潛在能力。勾串行為可以造成應用程式獲得非預期的數據例如遊戲應用程式獲得用戶的聯絡人列表。
混淆對用戶隱藏或模糊化功能性及控制流。混淆定義有三個條件:外部程式庫呼叫求、映射和原生碼的使用習慣。1. 外部程式庫可以包含非預期及惡意的功能性。
2. 映射的要求可以模糊一個APP應用程式的控制流或破壞APP應用程式中的權限。
3. 原生碼(寫在Android中非Java語言的其他程式碼)可以執行非預期及惡意的功能性
過度的電源消耗過度的功能或無意的APP應用功能執行在設備上會有意或無意地消耗電池的電量縮短電池的壽命可能會影響到執行重要功能的能力。
傳統的軟體易損性

所有易損性都包括與傳統的Java程式碼有關:

身份驗證和存取控制、緩衝處理、流程控制管理、加密和隨機性機制、錯誤處理、文件處理、資訊洩露、起始和關閉,注入、惡意邏輯、數字處理、以及指標和參考處理。

常見的後果包括意外輸出、資源耗盡、拒絕服務等。
行動應用程式安全檢測項目分類等級
A級B級C級
A1權限行為誤差B1提權C1在程式碼中超過許可
C2在API超過許可
B2權限不足C3在程式碼中許可以下
C4在API許可以下
B3開發者自建權限C5開發者在程式碼中建立
C6開發者在API中建立
B4故意隱含的權限C7經由API許可
C8經由其它權限許可
C9經由追溯許可
A2通訊暴露B5外部通訊暴露C10藍牙
C11全球定位系統
C12網路/數據溝通
C13NFC存取
B6內部通訊暴露C14未受保護的目的
C15無保護的活動
C16無保護的服務
C17未受保護的內容來源
C18未受保護的播送接收器
C19錯誤旗標
A3潛在危險功能B7直接定址C20儲存存取
C21網路存取
B8潛在危險的APIC22API的機密成本
C23API的個人資訊
C24API的設備管理
B9特權增加C25更改文件權限
C26存取高階用戶/來源
A4應用程式勾串行為   B10內容來源/目的 C27未受保護的內容來源
 C28允許保護內容來源
 C29未決定的目的
 B11播送接收器 C30播送接收器的重要訊息
B12數據建立/更改/刪除C31建立/更改/刪除文件資源
C32建立/更改/刪除資料庫資源
B13服務號碼C33過度檢查的服務狀態
A5陷阱B14程式庫呼叫C34使用潛在危險的程式庫
C35潛在的惡意程式庫套裝軟體但不使用
B15本機程式碼檢測C36 
B16映射C37 
B17壓縮的程式碼C38 
A6耗電量過大B18CPU使用率C39 
B19I / OC40 
Close Menu