<bdo id="4awyc"><del id="4awyc"></del></bdo>
  • <s id="4awyc"></s>
  • <tfoot id="4awyc"><small id="4awyc"></small></tfoot>
    <s id="4awyc"><acronym id="4awyc"></acronym></s>
  • <center id="4awyc"></center>
    <s id="4awyc"><acronym id="4awyc"></acronym></s>

    通過文本分類檢測中的代碼混淆 世界焦點

    2023-06-26 19:38:57 來源: ZAKER科技

    概述

    安卓 APK 中的混淆


    【資料圖】

    混淆是軟件開發(fā)中常用的技術,用于使代碼更難理解、分析和逆向工程。它將代碼轉化為一種復雜而紛繁的形式,同時保留其功能。混淆的主要目標是阻礙對代碼的未經授權訪問,保護軟件的知識產權或者隱藏軟件的真實行為。

    在 Android APK 中,常用多種混淆技術來保護代碼,使其更難理解或逆向工程。其中一種技術是代碼混淆,它將源代碼轉換為等效但更復雜的形式,使其難以解讀和分析。另一種常用的技術是字符串加密,在這種技術中,敏感字符串(如 API 密鑰或 URL)被加密,以防止輕易提取。此外,還采用控制流混淆來干擾代碼的邏輯流程,使其難以跟蹤程序的執(zhí)行路徑和理解其功能。

    混淆對 Android 安全的影響

    混淆技術的使用增加了安全研究分析的難度,并使一些基于簽名的檢測方法失效。字符串加密使得追蹤關鍵信息變得具有挑戰(zhàn)性。這些措施使得惡意軟件更難以識別和追蹤。

    一種基于文本分類的軟件包混淆檢測方法

    出于這些原因,我們的公司—— Liansecurity 開發(fā)了一款名為 "Incinerator" 的產品,旨在提供高效、準確和自動化的逆向工程服務。通過對惡意軟件的廣泛分析和先前混淆檢測技術的研究,在我們的 Android APK 逆向工程產品 " 焚化爐 " 中實現了一種基于文本分類的混淆檢測方法。根據我們的測試,我們的方法實現了 98% 的準確率,這超出了我們的期望。在接下來的章節(jié)中,我們將詳細描述我們的方法。

    背景

    在檢測 Android 應用程序中的混淆技術方面,最先進的系統是 "AndrODet"。在這項工作中,作者構建了一個混淆檢測系統,針對每種混淆類型提取不同的特征,然后訓練一個在線機器學習模型。下面列出了目標混淆類型和 AndrODet 實現后的測試結果:

    標識符重命名:0.92

    字符串加密:0.79

    控制流混淆:0.67

    AndrODet 在 Android 環(huán)境中的局限性

    在 Android 的背景下,AndrODet 面臨某些限制,影響其作為靜態(tài)代碼分析工具的準確性和有效性。主要集中在兩個方面:

    基于 APK 的計算和特征弱化

    AndrODet 計算其度量指標是基于整個 APK,包括核心業(yè)務代碼和關聯的庫文件。在 Android 生態(tài)系統中,依賴庫可能會非常龐大,有時甚至比核心業(yè)務代碼本身還要大。而且大多數情況下,依賴庫并不需要進行混淆。當僅依靠整個 APK 進行計算時,這些大型未混淆的庫的存在削弱了混淆部分的重要性,最終影響了 AndrODet 進行正確判斷的準確性。

    無法處理 Unicode 編碼

    AndrODet 計算距離的方法局限于 ASCII 編碼。然而,使用 Unicode 編碼進行混淆技術的使用越來越普遍。因此,AndrODet 無法處理和分析使用 Unicode 編碼進行混淆的代碼。這個限制阻礙了該工具在真實生產場景中準確檢測和評估混淆代碼的安全性和質量方面的能力。

    AndrODet 的限制對其在真實生產場景中的準確性構成了挑戰(zhàn)。了解這些限制及其對真實生產環(huán)境的影響對于尋求改進 Android 應用程序安全領域代碼分析工具能力的研究人員和從業(yè)者至關重要。

    我們的方法

    我們的方法主要解決了代碼混淆技術中最常見的標識符重命名的識別問題,這是惡意軟件常用的混淆技術。我們的方法也可以擴展到字符串加密。在我們的研究中,我們觀察到,當研究人員評估一個代碼片段是否被混淆時,他們最初的判斷依賴于類名、方法名和變量名的可理解性,以及可識別和常用的編碼約定,即所謂的 " 編碼英語 ",與類似 "a"、"Zb"、"c4"、"1li"、"0Oo" 等不容易理解的名稱進行對比。最初,我們嘗試了算法方法來解決這個問題,但測試結果不怎么理想。然而,我們突然想到,這實際上是一個經典的自然語言(NLP)分類問題。

    憑借這一靈感,我們將混淆檢測問題轉化為文本分類問題,而深度神經網絡處理文本分類,已經非常成熟。我們的測試結果也證明了這種轉換非常成功。" 字符串加密 " 本質上也是一個文本分類問題,因此我們相信這種方法可以輕松擴展到字符串加密。

    方法說明

    第 1 步:反編譯和 Smali 提取

    第 1 步涉及反編譯 AndroidAPK 和提取 Smali 代碼。在我們的實現中,我們使用我們自己的反編譯引擎 "Reactor"。其他開源工具,如 AndroGuard 或 Apktools 也可以。從每個類中,我們提取類名和類變量名,這些是下一步分析的輸入。理論上可以提取更多特征,如函數參數名稱和局部變量,但提取更多的特征對準確率沒有太大的提升,因為前面的三個特征已經達到了很高的準確性。

    第 2 步:創(chuàng)建訓練集

    創(chuàng)建兩個不同的訓練集。第 1 個訓練集是混淆的類生成的數據,標記為 1。第 2 個訓練集是未混淆的類生成的數據,標記為 0。

    第 3 步:文本分類神經網絡訓練

    我們構建了一個文本分類神經網絡。該神經網絡使用步驟 1 中提取的特征和步驟 2 中的相應標簽進行訓練。通過利用深度學習網絡模型進行訓練。

    該模型分成 3 層:嵌入層、LSTM 層和密集層。

    1)嵌入層:嵌入層將輸入整數序列轉換為密集矢量表示。

    2)LSTM 層:LSTM(長短期記憶)層是一種能夠處理序列數據和捕獲長期依賴關系的循環(huán)神經網絡(RNN)。在該模型中,使用了具有 128 個單元的 LSTM 層。

    3)Dense 層:Dense 層是一個全連接層,對 LSTM 層的輸出進行線性變換并應用 sigmoid 激活函數。

    第 4 步:訓練

    我們從 1000 個數據樣本開始,發(fā)現結果已經非常不錯。隨著我們將樣本量增加到 10000,準確率和驗證準確率都變得非常令人滿意。最終,我們的模型使用 100000 個數據樣本進行了訓練。我們試圖進一步擴充數據集,但準確率和驗證準確率沒有提高。為了避免由單個 APK 生成的數據引起的偏差,我們從數據庫中隨機提取了幾百個 APK 來生成我們的數據。從生成的數百萬個數據樣本中,我們隨機選擇了 100000 個進行訓練。

    訓練結果如下:

    訓練準確率:99.75%

    驗證準確率:98.50%

    實驗結果與分析

    在實際應用中,為了確定一個 APK 是否被混淆,我們使用了一種方法,該方法涉及檢查 APK 內的每個類是否進行混淆。通過將混淆類的數量除以類的總數,我們可以計算 APK 中混淆代碼的比例。盡管在理論,針對每個類,判斷可能出現假陽或者假陰,但是在判斷一個 APK 是否存在現象時,很難出錯,因為一個被混淆的 APK,需要確保它的大部分代碼很難理解,這正是混淆的目的和最終呈現,大部分難以理解的類,是不能逃過模型的檢測的。因此,我們的模型在確定 APK 中是否存在混淆時達到了接近 100% 的準確率。

    第一輪訓練后,我們從 Fdroid 和 Abuse 各獲取了 1000 個 APK,進行驗證測試。FDroid 代表良性 apk, abuse 代表惡意 apks,測試后,我們發(fā)現有較高概率出現假陽,一些非常短的內部類,例如 "Class: MainActivity ExternalSyntheticLambda15; Method:

    下面是我們抽取隨機的 100 個測試樣本,因為我們的模型校驗準確率是 98.5%,所以測試結果中,混淆覆蓋率 1%,2% 這樣的情況,應該判斷為沒有混淆。剩下結果中的 4% ( md5:8328cd96c931d06d25f67d42a50fd20d ) 這個是誤報,分析原因是因為這個 apk 的類非常少,三條假陽數據導致了這個錯誤。其他的 5% ( 923df6854199e999fdd274729b28a1ad ) ,7% ( 71e293f29e636112e0a00ebac8cf3eb8 ) 都是真實存在的混淆。所以這個模型,判斷混淆的準確率接近 100%,而且 APK 中存在非常少量的混淆也是可以檢測出來。

    我們的訓練集中并沒有出現 unicode 的混淆樣本,但是在測試的時候,這種情況也會被識別為混淆,因為模型對非混淆的文本有非常好的識別,所以即便出現樣本中沒有出現的其他混淆情況,也可以識別。

    APK

    APK Md5

    Obfuscation Coverage

    et.nWifiManager.apk

    11c43f6d781457352e5e61e725998ea8

    0%

    jackpal.androidterm.apk

    8bbc3d9173e6d6b19e561a8651e83731

    com.boombuler.widgets.contacts.apk

    8328cd96c931d06d25f67d42a50fd20d

    4%

    cz.jirkovsky.lukas.chmupocasi.apk

    86f763c8cf4530e1c46c75d26374855a

    99%

    com.example.poleidoscope.apk

    08cf9be157669f3e0f7dd88975fdc22c

    1%

    dufmvh.frdnoj.oggtsh.apk

    cf2f9963933457dcdd1f28fec054cd07

    56%

    ua.com.radiokot.lnaddr2invoice.apk

    c1ade85027c6178e43daac2e957ba9b1

    96%

    org.openbmap.unifiedNlp.apk

    79ce98b9d38490625ad15f5948afe32f

    com.dekics.chat.message.apk

    dc84f225fdb1c21071ee70d43af39224

    50%

    org.getdisconnected.libreipsum.apk

    a394d3131303bd24bdcddc7e0a507f0d

    com.pnr.engproverbsandsayings.apk

    1d28e138a9ecf1c9b3240868879bbd54

    10%

    org.ligi.blexplorer.apk

    49619da57858ffdd6bd55bb5b962efe3

    net.osmand.srtmPlugin.paid.apk

    c7dd9b418933ceea723527487bd94268

    org.broeuschmeul.android.gps.bluetooth.provider.apk

    cf1d9aa2d5eec5a8e0af76d9708a8da0

    com.intense.pub1.sbgs.apk

    e272df5c9abd7d4c03982bb506922428

    15%

    tgr.kitach.messenger.apk

    cd4acd78cf29adf56837e944c0ea3791

    com.github.lamarios.clipious.apk

    0e728b50b101456d74329f97552ea2db

    94%

    com.ctbcad.cnove01.apk

    782216c3d9db96da2ef0285daddbdcdb

    in.ac.iitb.cse.cartsbusboarding.apk

    ee83d9a3c3fcffbd833f1b73d28d28cd

    2%

    de.reimardoeffinger.quickdic.apk

    8e5e7cc0e581fac6c5d83802dadc0095

    98%

    com.fastcleaner.forphoneandroid.freenoads.apk

    c31ca58e67d55bb20a06e0f986cf04c1

    92%

    com.gh4a.apk

    22556b8c3b0f4196b0db777d64cac5ee

    nznm.qfvxs.apk

    a827ee829d6067eda9c19f1dee15b9af

    com.freezingwind.animereleasenotifier.apk

    c0786ccbcfe7cb57f82f36a66040d452

    ogjp.otmyswhz.apk

    ef3c97b748088019dc986dce53ae0755

    com.scare.obscure.apk

    b11e72c94d810958df65d8716d853bc3

    46%

    org.smc.inputmethod.indic.apk

    c9eeb111666c723e3a4f78e2e11ab10d

    com.blame.annual.apk

    376fc34c1eb64a348311156b1f22763e

    45%

    org.xapek.andiodine.apk

    923df6854199e999fdd274729b28a1ad

    5%

    ir.PluTus.pluto.apk

    dc9f73c8ec88a8b493a15a3cbcb36f15

    33%

    org.sufficientlysecure.viewer.apk

    dcb35395a9a3fa0aea0bd9c876c4fadc

    ir.shz.shzkisi.apk

    7ec247424733c287c3322fc49f1a7766

    com.mimic.left.apk

    4076db4387eb8ddf8f2010e3db8c8b07

    59%

    com.igllc.reign.apk

    bb78d33aac9b1c0c741b9e66d1ad9710

    org.tuxpaint.apk

    5f1d4d542004efd946a40a26166aed00

    Adliran.ir.apk

    3c0cccf2790ba49a122d0235225dbceb

    26%

    com.believe.blouse.apk

    768ec2246d2c92330ba8fafe6513963e

    Rahbar.Api.apk

    2f1570b5b5723d3f4ddd615905e8c08f

    27%

    net.everythingandroid.smspopup.apk

    1e5d955dabdd0ee548054c8cdc223653

    com.cointrend.apk

    cb3726beeb870d96e2dd458da66af96b

    97%

    com.junjunguo.pocketmaps.apk

    0be11a3a032b35e2ce8021d32780cf32

    21%

    com.kabood.koroshkabir.apk

    6129cc4392d2e10ffdb80db67ca2534b

    24%

    site.leos.setter.apk

    2f03d669939c74b508a3959838fbba4c

    jp.co.qsdn.android.jinbei3d.apk

    f25da1334e4db5d6c14c2361ba4defa8

    ir.game.co.apk

    9849247aef1aa1ae82c4dc06a638f29d

    fr.xgouchet.texteditor.apk

    a3f79b347a1c06140697326acb04581a

    org.smssecure.smssecure.apk

    a6dcb00ee7482256f8070b2d2eb23f62

    com.ebaschiera.triplecamel.apk

    d36cd1850f8dfec7298c08e8eed3f997

    org.y20k.trackbook.apk

    d4054bf60b2fbcfc152b32397cb861b0

    com.comfort.digital.apk

    a32c36009a37893be90e4f385b26b5ee

    35%

    com.kylecorry.trail_sense.apk

    42501430e5b199df00f0068b3bd59db4

    com.helphomestickers.heartcarejingchat.apk

    fec9d39eb80814e1eec29e52e0fede2d

    de.markusfisch.android.pielauncher.apk

    d0cf7f183b84ff040f237da0d7e89c58

    90%

    org.xcsoar.apk

    35923a4197bcd2efd8d22a167af3f028

    com.takela.message.apk

    55774d1c8251ee3c12ce08af65000bd7

    16%

    tech.bogomolov.incomingsmsgateway.apk

    85d0288b9b04c7d71bfd8185a916490b

    com.rmowa.wpamz.apk

    23e49cc28a5feeed4b9e362aa43e158a

    65%

    piste.security.path.vf.apk

    95d33595783ede50bd428a18823ca0a9

    20%

    de.rwth_aachen.phyphox.apk

    0a3fa3b09980e629c6a983a2c33d0400

    com.brief.blouse.apk

    be9d61e3363c3399b55a44895fd1cf60

    47%

    xjl.lrl.jzk.xkbnif.apk

    f140ec3c051717491aac1a477c0f453a

    44%

    net.goroid.maya.apk

    9b1de8718bb348e74ecde66dfa7332a8

    19%

    eu.polarclock.apk

    c3c6f8ba040f1715d32ac7563d7d9b0c

    tube.chikichiki.sako.apk

    d79144a6e4aad73e78bc25af25e8f8d1

    org.dyndns.fules.ck.apk

    7c1e243288ff30b602976d2ce634b0f3

    com.nima.demomusix.apk

    93a79a8f1b2ad1eb2b670782e571107d

    aps.js.piste.asd.apk

    b1e0ad60b4113ecfdf74e930848dcab4

    com.tutpro.baresip.apk

    702d0800421413f73f0f3d65a577986e

    iroj.jnafjk.apk

    d0118fe80f1af4cf2fad4579fa7f8741

    de.monocles.mail.apk

    21ce417bd40a12c2333ab505a0095891

    com.example.myapplication.apk

    52a5b10ae074459fbbeb1a0e8c297eac

    com.piolang.transltor.voice.apk

    c4c0982149feaf5266d6b2a9c4634858

    84%

    net.sourceforge.kid3.apk

    7bff47951d893d50b7bf1bb151225006

    com.burtonben.goodlauncher.apk

    d7ffbdf8e491f0c3e53901cf830f10b2

    9%

    com.howwatchfunsms.locktextmessage.apk

    d59b366ab1870d17f9abdd4824461327

    free.vpn.unblock.proxy.turbovpn.apk

    1fd53adfc1ff5f6262567592dfc88fd4

    70%

    com.yshlhh.com.apk

    f0c84c3ffcc77a88ce344e7f632afb2d

    67%

    com.feis.bphealthy.blood.apk

    6e05b674fb8725a4f1faae9d39be1b94

    14%

    org.servalproject.apk

    8b2df68517574eb0c7d1b42858403695

    plus.H59300BC9.apk

    889e1c52bdebe6e1ae952bcc38b5daf1

    11%

    mon.suxzgi.apk

    b48f43a3c6b7c4ef07b7f87b62f64d61

    com.seleuco.easshs.apk

    013a0f9ddc9db42f06ae2cd1b6228c8f

    31%

    com.vicman.toonmeapp.apk

    f724e92bdf978fb3bbdac308d4ba800c

    73%

    com.hugo.apk

    6320c822ba4ce417ffb82746dbf6f6f8

    org.segin.bfinterpreter.apk

    69d3cd2ef0e619193f145c89b22ce920

    de.jonasbernard.tudarmstadtmoodlewrapper.apk

    29bf40b35ce52d6e44c61304fdd8561a

    com.belt.space.apk

    71e293f29e636112e0a00ebac8cf3eb8

    7%

    center.bestlinks.samuraivpn.apk

    f6e5f704bf5910b4d0aff44df2a77a8b

    91%

    com.dev.xavier.tempusromanum.apk

    1d51ef04566cc66661358f7708c0a9d3

    com.zanghh.pdfreader.apk

    e9133a533614dafee5780d50b29484c3

    org.avmedia.gshockGoogleSync.apk

    f942cf3de1107400be084ddd596016d9

    com.github.igrmk.smsq.apk

    72dfae851b1c93838094fe3b059ac5b1

    com.ljechbei.apk

    87118a9b63adebe8ad642509ff76818b

    org.courville.nova.apk

    7041af61162329c4e2022d82939a2d2d

    com.cliambrown.easynoise.apk

    8755ffdd6fe155593af77536bc8d1da1

    net.mullvad.mullvadvpn.apk

    956659e2df6362a79e110fac0fda3534

    nl.eduvpn.app.apk

    aa2099699b3c8b68aa33925899ad9e84

    com.cheogram.android.apk

    4987ea46c3679a191434c1546231bade

    io.pslab.apk

    37f9a2a3e4c906bf2cc3c14895620b1e

    ru.yanus171.feedexfork.apk

    742aebc4c88564678e78276dbf29e935

    限制和未來方向

    本文討論的都是針對標識符重命名的混淆檢測,相同的辦法可以應用到字符串檢測上。但是不能應用到控制流混淆檢測。AndrODet 的結果在這方面的表現也不盡如人意。未來我們會針對控制流檢測專門設計新的模型。

    與 AndrODet 相比,我們的模型需要相對更多的時間來確定 APK 是否被混淆,因為它需要單獨檢測每個類。雖然可以批量檢測,但 APK 可能包含數千甚至數萬個類。然而,在生產環(huán)境中,這是可以接受的,因為分析 APK 涉及靜態(tài)分析、動態(tài)分析等各個方面,需要更長的時間來執(zhí)行。因此,在我們的產品中,混淆檢測的等待時間是合理的。此外,這個時間也可以通過并行架構處理來緩解。

    結論

    我們提出了一種基于文本分類的方法來檢測 APK 是否被混淆。這種方法以前在現有研究中沒有應用過,可以擴展到其他軟件中的混淆檢測以及字符串加密檢測。此外,我們建議 APK 中混淆的檢測應該在類級別進行,因為這樣可以達到基本 100% 的準確率。

    我們已經在正式生產環(huán)境中實現了這種方法。

    Appendix

    [ 1 ] https://0m1d.com/software/AndrODet

    [ 2 ] https://drive.google.com/file/d/1OYYegY7MP7nGgfMORz_M7L4c3QFEjJW0/view?usp=sharing

    源地址:https://www.liansecurity.com/#/main/news/HPMR8ogBE2npFSfFmiR_/detail

    標簽:

    相關熱詞搜索:

    [責任編輯:]

    相關閱讀

    最近更新

    日日噜噜夜夜狠狠扒开双腿,欧美视频在线第一页,伦理草民看一天宅急看,超清国产粉嫩456在线免播放
    <bdo id="4awyc"><del id="4awyc"></del></bdo>
  • <s id="4awyc"></s>
  • <tfoot id="4awyc"><small id="4awyc"></small></tfoot>
    <s id="4awyc"><acronym id="4awyc"></acronym></s>
  • <center id="4awyc"></center>
    <s id="4awyc"><acronym id="4awyc"></acronym></s>
    主站蜘蛛池模板: 国产av人人夜夜澡人人爽麻豆| 精品国自产拍天天拍2021| 精品亚洲成a人无码成a在线观看| 日本特黄特黄刺激大片免费| 在线观看成人网站| 国产乱人伦AV在线麻豆A| 亚洲女初尝黑人巨高清| 99久久国产免费中文无字幕| 老扒夜夜春宵粗大好爽aa毛片| 日本毛茸茸的丰满熟妇| 国产大片内射1区2区| 亚洲福利视频网| 99RE6在线视频精品免费| 狂野欧美性猛交xxxx| 成人免费无毒在线观看网站| 国产嫩草影院精品免费网址| 久久综合久久精品| 高h视频免费观看| 欧美无人区码卡二三卡四卡| 妞干网手机视频| 免费av一区二区三区| 中文字幕国产日韩| 日本黄色小视频在线观看| 波多野结衣在线视频观看| 性高朝久久久久久久3小时| 国产亚洲精品精品国产亚洲综合| 亚洲国产午夜电影在线入口| 五月天国产视频| 欧美成aⅴ人高清免费观看| 国产精品亚洲一区二区三区在线| 亚洲色偷偷色噜噜狠狠99| 97人人模人人爽人人喊6| 男女男精品网站| 成人a毛片视频免费看| 免费一级黄色毛片| 8x成年视频在线观看| 本道久久综合无码中文字幕| 国产精品单位女同事在线| 亚洲欧美日韩国产一区二区精品 | 亚洲伊人久久网| 高清国产美女一级毛片|