Android Package(APK)の奇形化は標準的なAndroidマルウェアの回避戦術として浮上しており、Teabot、TrickMo、 Godfather、SpyNoteなどのファミリーを含む3000以上の悪意あるサンプルで確認されています。
Cleafyの脅威インテリジェンスとインシデント対応チームからの新しい 研究によると、APKの奇形化には、デバイスにインストールして実行されるが静的分析ツールをクラッシュさせたりファイルを誤解釈させるような、意図的に作成された破損した、または非標準のAPK 構造が関わっています。
研究者らは、攻撃者が厳密なパーサーでは許容できない矛盾を許容するAndroidインストーラーの甘さを悪用し、悪意あるアプリが正常に機能する一方でリバースエンジニアリングの努力を挫折させていると述べています。
APK奇形化が静的分析をバイパスする方法
APKは本質的には、Androidアプリを実行するために必要なコード、リソース、マニフェストを含むZIPアーカイブです。
アーカイブ内の各ファイルはLocal File Headerの後ろにあり、パッケージの末尾近くのCentral Directoryが目次として機能します。攻撃者はこれら2つの構造間に矛盾を導入します。JADXなどのツールは矛盾でクラッシュしますが、Androidインストーラーはアプリで静かに続行します。
彼らの分析では、研究者らは現在積極的に使用されている複数の技術をカタログ化しました:
-
どのエントリをロードするかについてパーサーを混乱させるディレクトリファイル名の衝突
-
Androidが安全に非圧縮として扱うが、分析ツールを失敗させる、サポートされていない圧縮方法
-
ヘッダー全体に矛盾して配置された偽のパスワード保護フラグ
-
ヘッダー構造間でのチェックサム、ファイルサイズ、オフセット参照の不一致
-
マジックヘッダーの変更、文字列プール操作、悪意あるオフセット注入によるAndroidManifest.xmlの破損
Androidマルウェア回避についてさらに詳しく:新しいAndroidマルウェアが検出を回避するために.NET MAUIを使用
別の方法は、非ASCII文字または制御文字を含むファイル名の下にペイロードを保存してassets/ディレクトリを悪用し、デコンパイル中にパストラバーサルエラーをトリガーします。研究者らは、この技術はアナリストがアーカイブの内容を手動で抽出して検査することを強制すると述べています。
ディフェンダーがオープンソースツールで逆襲
対応として、Cleafyチームは、奇形化されたAPKを検出および修復し、従来のリバースエンジニアリングツールが解析できる形式に再構築するPythonユーティリティであるMalfixerをリリースしました。
このプロジェクトは、 GitHubで公開されており、主にTrickMo、Teabot、Godfather、SpyNoteファミリーから取得した70以上の奇形化されたサンプルの分析後に開発されました。
このリリースはAndroidマルウェア開発者とアナリストの間のより広い軍拡競争を反映しています。Cleafyは、以前のインシデントで、奇形化技術が標準的な静的分析がファイルを処理することを防いだため、後にTrickMoに関連付けられたサンプルを分類できなかったと指摘しました。
「ディフェンダーとして、これらの回避戦術に対抗するために、私たちは私たちのツールと技術を進化させなければなりません」と研究者らは書き、コミュニティに新しいサンプルと奇形化方法が実際に出現する際に貢献するよう促しました。
翻訳元: https://www.infosecurity-magazine.com/news/apk-malformation-android-malware/