Indiana university と Penn State Universityの研究者たちが、単純かつ高速で、zero day 攻撃をかけるMalwareの多くも検出できる手法を発表しました。
Finding Unknown Malice in 10 Seconds: Mass Vetting for New Threats at the Google-Play Scale[1] という論文で、その手法が紹介されています。私もまだちゃんと読んでいないのですが、ざっと見る限り、
- Android Malwareの大部分は既存のMalwareのリパッケージングである=>Java method を見れば分かる、
- 有名なライブラリのメソッド以外で、関係ないAppが同じmethodを使っているのは怪しい、
ということを使って検出するようです。つまり、すごーくざっくり書くと、
- 最初に、有名なライブラリのメソッドリスト(A)を作っておき、
- Google Playストアの各apkファイルのメソッドを抽出(bi)、
- 各iについて、ci=bi\Aを求め、
- 全てのi,jについて、ci ∩cj≠∅があるかを確かめる
ことによってチェックするようです。もし ci ∩cj≠∅があったら怪しいというわけです。
これだと随分擬陽性が出そうですが、実際にやってみるとそんなに出ないらしい。そして、ゼロ・デイ攻撃をかけるコードは複数のアプリで拡散される傾向があるので、それも検出できるそうです。
現在のGoogle Playストアの審査体制だと、あるMalwareが排除されても、それは開発者が排除されるだけなので、同じコードが他の申請者から出て通ってしまうというのがままあるそうですので、このような仕組みを審査体制に入れると非常に役立ちそうです。
ちょっとここのところ時間がなくて詳しいことを書く時間がないのですが、ご興味のある方は、原論文を読んではいかがでしょうか?
[1] Chen, K., et al:Finding Unknown Malice in 10 Seconds: Mass Vetting for New Threats at the Google-Play Scale, Indiana University (2015/8/31) http://www.informatics.indiana.edu/xw7/papers/vetfast.pdf