APKは、Android Package Kitの略です。
Android専用ソフトウェアパッケージのファイルフォーマットです。
JARファイルをベースとしたZIP形式で、アーカイブファイルの一種です。
Androidの機器ではこれがアプリケーションの配布用形式として扱われます。
このAPKの仕様のつらい点を突くマルウェアが多数観測されています。
これらのマルウェアはいずれも解析の困難化を狙ったものと考えられています。
どのような手法での解析困難化が行われているのでしょうか。
- 圧縮方式の異常
ZIP形式そのものの仕様では、いくつもの圧縮方式を利用することができます。
Stored(無圧縮)、Shrunk、Reduced(メソッド1-4)、Imploded、Tokenizing、Deflate、Deflate64、BZIP2、LZMA (EFS)、WavPack、PPMdがあります。
これらのなかで最も一般的な圧縮メソッドはDeflateです。
そしてAPKでサポートされているのは、StoredとDeflateのみです。
しかしこの解析困難化を狙うマルウェアでは、これらのサポートされた2種以外の方式を使います。
Android9より前のAndroidではそういった形式のAPKはシステムにインストールすることができなかったのですが、Android9以降ではインストールができるようになっています。
Android用の逆コンパイルができる解析ツールには、こういったイレギュラーなファイルを処理することができないものが多くあります。 - 長すぎるファイル名
長すぎるファイル名が回避行動に悪用されてしまっています。
ZIP形式では、65535バイトまでのファイル名が利用できます。
しかしAndroidで利用できるファイル名は、256バイトまでと定義されています。
このため、このAPKを逆コンパイル/抽出しようとすると、apktoolや一部のzipデコンプレッサーなどの一部のツールがクラッシュします。 - 不正なxml
APKにはAndroidManifest.xmlを含める必要があります。
AndroidManifest.xmlはアプリの基本的な情報が含まれているファイルですので、アプリの実行時もそうですが、アプリの解析時にはこれが読み込まれます。
そしてこれらのマルウェアに含まれるAndroidManifest.xmlはその内容が正しい状態となっていません。
このため、いくつかのオープンソースの逆コンパイルツールは正しく動作することができずクラッシュしてしまいます。
いずれの手法も、マルウェアの解析を困難化することを狙って仕込まれたものといえそうです。
こういった構造となっているマルウェアのその数は実に3300種が確認されています。
しかし、これらのマルウェアはGoogle Playストアには登録されていないようなのです。
これらを入手してしまうことになるのは、野良サイトの利用や、なんらかのソーシャルエンジニアリングを経由するということなのでしょう。
正しい運用と定期的な従業員教育で対応できる部分も少なくなさそうですね。
2023/8/22から2023/8/25は、ほぼこもセキュリティニュースはお休みです。
次の更新は2023/8/28以降です。
参考記事(外部リンク):Over 3,000 Android Malware Samples Using Multiple Techniques
to Bypass Detection
www.zimperium.com/blog/over-3000-android-malware-samples-using-multiple-techniques-to-bypass-detection/
この記事をシェア |
---|