99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

移動應用安全常用組件Soot、Flowdroid簡介和基本使用

科技怪授 ? 來源:科技怪授 ? 作者:科技怪授 ? 2022-10-13 09:12 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

Soot

簡介

soot是java優(yōu)化框架,提供4種中間代碼來分析和轉換字節(jié)碼。

l Baf:精簡的字節(jié)碼表示,操作簡單

l Jimple:適用于優(yōu)化的3-address中間表示

l Shimple:Jimple的SSA變體

l Grimple:適用于反編譯和代碼檢查的Jimple匯總版本。

soot提供的輸入格式有:java、android、class等

輸出格式有:Java字節(jié)碼、android字節(jié)碼、Jimple、Jasmin、shimple、baf等,這些實際業(yè)務中常使用的,當然還有其它的格式,這里不再一一列舉。

借助soot對android的分析能力,我們可以進一步分析安卓應用的安全漏洞,比如組件暴露、加密算法等存在的安全問題。

基本使用

可以GIT下載最新的soot jar包,我下載的是4.1.0版本中的sootclasses-trunk-jar-with-dependencies.jar 包,這個包應該自帶了soot所需要的所有依賴。下載完成后使用powershell進入jar文件所在的文件夾,可以輸入以下命令:

java -cp sootclasses-trunk-jar-with-dependencies.jar soot.Main查看soot相關的信息![]image.png

首先我們來看soot怎么分析java代碼(這里以class文件分析為例):

第一步,配置soot環(huán)境信息

StringBuffer** cp = new **StringBuffer();

cp .append(".");

cp .append(File. pathSeparator + apiPath );

cp .append(File.**pathSeparator + "C:Program FilesJavajre1.8.0_171lib
t.jar"
+ **File.**pathSeparator **

** + "C:Program FilesJavajre1.8.0_171libjce.jar");System.setProperty("soot.class.path", cp**.toString());

第二步,設置soot的配置屬性(各屬性說明可以參考GIT上官方文檔信息)

image.png

第三步,拿到代碼信息

image.png

現(xiàn)在,我們在看看soot怎么分析android apk

image.png

同樣,我們可以得到apk的代碼信息,包括class、method、attribute等,基于這些進行進一步分析并應用到實際檢測業(yè)務中。

使用場景

使用Soot對Android應用進行靜態(tài)分析,目前包括主要的檢測場景:

l 檢測應用中敏感字符串url和email、IP等

l 檢測應用中風險代碼片段

l 檢測應用可能存在的漏洞,如組件暴露、過度申請權限、不安全加密算法等

FlowDroid

簡介

FlowDroid(github鏈接)是目前對Android app進行污點分析效果最好的工具之一。 污點分析的目的其實很簡單,就是為了檢查是否應用中是否存在從污點源到泄漏點的數(shù)據(jù)流。 但是它的優(yōu)點在于它構建的數(shù)據(jù)流精度很高,可以對上下文,流,對象和字段敏感,從而使得分析結果非常精確。

![]image.png

image.png

它實現(xiàn)精準分析的原因有幾點:

l 1. 它對Android聲明周期進行了比較完整的構建,例如Activity中的OnCreate,OnResume等。通過抽象一個dummyMain作為分析的入口來支持Android應用的分析;

l 2. 它實現(xiàn)了精準的數(shù)據(jù)流分析,其中包含前向污點分析和后向別名分析。他們的實現(xiàn)其實都是基于heros的數(shù)據(jù)流分析框架來實現(xiàn)的。這里面的算法比較復雜,我的理解是這兩種分析都是滿足上下文敏感和流敏感的,后向分析的算法提供了對象敏感和字段敏感的支持;

l 3. 它支持簡單的native code的污點分析

l 當然,它也存在一些不足之處,包括:

l 1. 不能對組件間(Intent)的污點傳播進行分析

l 2. 隱式流問題

l 3. native code不能完美支持

盡管存在一些不足之處,在各大會議上也已經(jīng)提出了數(shù)十種新的靜態(tài)污點分析算法,相比FlowDroid在一些數(shù)據(jù)集或是DroidBench上有著更快的運行速度以及更優(yōu)的精準度。但FlowDroid仍然是公共資源中可獲取的靜態(tài)污點分析工具的唯一選擇,因為很多paper提供的源代碼幾乎沒有注釋與文檔,導致使用極其困難;另外科研人員往往僅在有限的測試集上進行了運行,所以去使用這樣的程序不可避免的會遇到Bug。相比之下,F(xiàn)lowDroid作為被持續(xù)維護的一款框架,其穩(wěn)定性上具備了一定的保證,同時其底層的Soot框架強大的功能與較為完善的文檔,使得FlowDroid上手難度相對較低。

基本使用

環(huán)境配置

FlowDroid的配置方法有兩種,可以直接下載相關jar包,也可以使用maven配置依賴。jar包可以去FlowDroid的GitHub上進行下載,僅需soot-infoflow-android-classes.jar和soot-infoflow-classes.jar兩個文件即可,另外去Soot的倉庫 下載包含了heros與jasmin的sootclasses-trunk-jar-with-dependencies.jar,將上述三個包加入項目依賴便完成了FlowDroid的配置

運行

整個FlowDroid最頂層的類便是soot.jimple.infoflow.android.SetupApplication,大部分的設置與運行都可以通過操作這個類的實例進行。SetupApplication既可以在調(diào)用runInfoflow()時傳入配置參數(shù),也可以在初始化SetupApplication時或初始化后傳入配置參數(shù)。SetupApplication的初始化函數(shù)以及runInfoflow函數(shù)有多種不同參數(shù)類型的實現(xiàn),可以查閱源碼后根據(jù)情況選擇,這里僅提供我自己使用的一種方式:

關于Source、Sink

污點分析中的source點表示污點分析的起始點,而sink點表示污點分析的結束點。換言之,F(xiàn)lowDroid在“掃描”這個apk后,會從source點開始分析數(shù)據(jù)流,當數(shù)據(jù)流“流到”sink點時將其標注。FlowDroid中的source與sink均為類方法,在soot-infoflow-android下有提供一份SourcesAndSinks.txt的文件,是FlowDroid當時使用的一些可能涉及到訪問隱私數(shù)據(jù)的api,從里面很容易看出聲明文件的格式:

每一行作為獨立的聲明,%開頭的表示注釋,可以根據(jù)應用需求自行添加刪減Source與Sink的聲明。

使用場景

Flowdroid本身輸出結果只是數(shù)據(jù)流信息,需要結合我們定制source、sink信息產(chǎn)生業(yè)務價值,一般有以下使用場景:

l 隱私數(shù)據(jù)泄露檢測

l 污點傳播類問題檢測

l Android組件間數(shù)據(jù)傳遞風險檢測

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 移動應用
    +關注

    關注

    0

    文章

    65

    瀏覽量

    15770
  • JAVA
    +關注

    關注

    20

    文章

    2989

    瀏覽量

    109561
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    如何監(jiān)聽組件再次顯示的事件?

    ? ##HarmonyOS 應用開發(fā)## 我們知道,對于組件的生命周期,有aboutToAppear和aboutToDisAppear,即監(jiān)聽這個組件被掛載和卸載的事件,和被@Entry修飾的頁面
    發(fā)表于 06-30 18:02

    如何實現(xiàn)組件截圖 -- componentSnapshot

    等,文字和圖片都是根據(jù)用戶信息動態(tài)生成的,整個證書在顯示的時候是通過Stack組件去完成的,如果只是在程序里顯示那么當然很簡單,但是還需要將其作為一張圖片保存到相冊里。 按照我以前的做法,就是直接
    發(fā)表于 06-30 17:45

    淺談OCP SAFE服務器組件安全注意事項

    保護超大規(guī)模數(shù)據(jù)中心組件(包括 CPU、存儲控制器和硬件安全模塊)免受網(wǎng)絡威脅對于維護超大規(guī)模數(shù)據(jù)中心的安全至關重要,以防范可能危及整個網(wǎng)絡的漏洞。現(xiàn)代供應鏈涉及多家供應商和復雜的集成點,在
    的頭像 發(fā)表于 06-23 10:16 ?438次閱讀

    KaihongOS操作系統(tǒng):Button按鈕組件介紹

    Button 按鈕組件,可快速創(chuàng)建不同樣式的按鈕。 常用接口 Button Button(options: ButtonOptions) 創(chuàng)建可以包含單個子組件的按鈕。 參數(shù): 參數(shù)名類型必填
    發(fā)表于 04-25 07:09

    RF-Labs手工成型電纜組件

    RF-Labs手工成型電纜組件 RF-Labs推出了一款手工成型的高性能電纜組件,采用Conformable?技術或手工編織護套設計。RF-Labs手工成型電纜組件的特色在于其帶有金屬箔襯墊的錫填充
    發(fā)表于 03-14 09:23

    亞馬遜移動電源UL2056檢測認證辦理?

    可以用作移動電源。亞馬遜可能隨時要求為移動電源提供相關安全文件,以確認其合規(guī)!!! 誰應該提交相關文件? 如果您銷售的是移動電源,我們可能會要求您提供相關文件,以確認商品的
    發(fā)表于 02-25 09:22

    SQLite數(shù)據(jù)訪問組件

    SQLite 數(shù)據(jù)訪問組件 SQLite 數(shù)據(jù)訪問組件 (LiteDAC) 是一個組件庫 它提供從 Delphi 和 C++ Builder 到 SQLite 的原生連接,包括 Community
    的頭像 發(fā)表于 02-08 11:48 ?468次閱讀
    SQLite數(shù)據(jù)訪問<b class='flag-5'>組件</b>

    貼片NTC熱敏電阻在移動設備電池中的應用

    移動設備電池中常用的是英制0402和0201尺寸的產(chǎn)品,敏瓷科技擁有該類產(chǎn)品豐富的研發(fā)和制造經(jīng)驗,可提供全系列,高可靠性的產(chǎn)品,為各種移動設備中的鋰電池充電安全保駕護航。
    的頭像 發(fā)表于 01-07 15:50 ?625次閱讀
    貼片NTC熱敏電阻在<b class='flag-5'>移動</b>設備電池中的應用

    DIY項目中常用的端子類型

    在DIY項目中,選擇合適的端子類型對于確保電氣連接的可靠性和安全性至關重要。以下是一些常用的端子類型,以及它們的特點和應用場景: 1. 針式端子(Pin Terminals) 特點 :針式端子通常用
    的頭像 發(fā)表于 12-29 10:45 ?1337次閱讀

    芯盾時代入選中國移動安全解決方案市場洞察報告

    近日,全球領先的IT市場研究和咨詢公司IDC發(fā)布《中國移動安全解決方案市場洞察,2024:市場迎來新機遇,安全與管控協(xié)同發(fā)展》報告(以下簡稱《報告》),深度剖析了當前中國移動
    的頭像 發(fā)表于 12-02 11:26 ?1157次閱讀

    賽思×廣東移動 | 賽思攜手國內(nèi)最大運營商省公司,筑牢超1.1億用戶移動通信安全防線!

    賽思攜手廣東移動,增強核心骨干同步網(wǎng)授時性能,筑牢移動網(wǎng)絡安全每一道防線,讓時間“黑客”無機可乘!
    的頭像 發(fā)表于 11-23 20:16 ?887次閱讀
    賽思×廣東<b class='flag-5'>移動</b> | 賽思攜手國內(nèi)最大運營商省公司,筑牢超1.1億用戶<b class='flag-5'>移動</b>通信<b class='flag-5'>安全</b>防線!

    aes算法在移動應用中的應用場景

    傳輸敏感數(shù)據(jù),如個人信息、賬戶密碼、交易記錄等。AES算法能夠對這些數(shù)據(jù)進行加密,確保在傳輸過程中不被竊取或篡改。例如,在移動支付應用中,AES算法常用于保護用戶支付信息的安全傳輸,防止信息在傳輸過程中被黑客截獲。 2. 本地數(shù)
    的頭像 發(fā)表于 11-14 15:14 ?891次閱讀

    RVBacktrace RISC-V極簡?;厮?b class='flag-5'>組件

    RVBacktrace組件簡介一個極簡的RISC-V?;厮?b class='flag-5'>組件。功能在需要的地方調(diào)用組件提供的唯一API,開始當前環(huán)境的?;厮葜С州敵鯽ddr2line需要的命令,使用addr2lin
    的頭像 發(fā)表于 09-15 08:12 ?815次閱讀
    RVBacktrace RISC-V極簡棧回溯<b class='flag-5'>組件</b>

    芯盾時代設備指紋技術如何助力移動安全

    隨著移動互聯(lián)網(wǎng)的快速發(fā)展,移動安全風險頻發(fā)。設備指紋技術憑借高精度的設備識別能力,能夠幫助企業(yè)提升移動安全防護能力,精準區(qū)分合法與風險行
    的頭像 發(fā)表于 08-28 09:41 ?996次閱讀

    鴻蒙ArkTS容器組件:Stack

    堆疊容器,子組件按照順序依次入棧,后一個子組件覆蓋前一個子組件。
    的頭像 發(fā)表于 07-15 18:23 ?1399次閱讀