NDSS Symposium 2021 セッション紹介 (3)
先日から2回にわたり NDSS Symposium 2021 のセッション紹介をしています(1本目, 2本目)。続けて今回も興味深いセッションを1つ紹介します。
Does Every Second Count? Time-based Evolution of Malware Behavior in Sandboxes[1]Alexander Küchler (Fraunhofer AISEC), Alessandro Mantovani (EURECOM), Yufei Han (NortonLifeLock Research Group), Leyla Bilge (NortonLifeLock Research Group), Davide Balzarotti (EURECOM), “Does … Continue reading
マルウェア検体を動的解析にかけるとき、実行時間をどのくらいで打ち切るかは、いつの時代でも悩ましい問題です。長時間実行すればそれだけ挙動に関する情報を多く取れるであろうことを期待できますが、一定時間内で処理できる検体数は実行時間に応じて少なくなっていきます。かといって、多数の検体をさばくために解析を短時間で打ち切れば、本来見つけたかった挙動が始まる前に観測を止めていることになるかもしれません。このように、解析にかけられる時間あたりの検体数と観測できる挙動のデータ量はトレードオフの関係にあるといえます。
これを踏まえたうえで、それでは実行時間をどのくらいにするのが良いでしょう?
この問いへの答えを求めて、たくさんの検体を集めて検証したのがこの研究報告です。
Küchler 氏らの研究グループは半年間に渡って計10万件の検体(マルウェア検体 8.6万件、良性検体 1.4万件)を集め、その動的解析データを収集、分析しました。大量の検体に対して重たい分析処理を実施するため、実行データを記録してリプレイできる動的解析環境 PANDA を使用しています。さらに、PANDA 環境でのオーバーヘッドによって生じる時刻の遅れを評価するために、有名な動的解析環境である Cuckoo サンドボックスでの実行データと比較もしています。(図1)
詳細は論文を参照いただくとして、ここでは、彼らの報告の中から興味深い知見を3つ紹介します。
- ほとんどの検体は「最初の2分以内に終了する」「15分以上動き続ける」のどちらか(図2)
- 最初の2分間で実行されるコードのカバー率は、15分後のカバー率とほとんど変わらない。つまり2分を過ぎてからは、検体の新たな振る舞いはほとんど観測されない[2]例えばストレージへのアクセスを続けていても、その振る舞い自体に目新しいものはない。
- 機械学習によるマルウェア判定器を作ると、最初の2分間の挙動を教師データとした場合に最も正解率(accuracy)が高くなった。2分より短くしても、長くしても正解率が下がる
以上のように、複数の観点から「最初の2分間」というのが現時点での最適な答えだろうと結論づけています。
ところで、特徴的な挙動を一切見せずに長時間潜伏するようなマルウェアは多いのか、少ないのか? これは動的解析だけでなく、例えばインシデントレスポンスの立場からも気になることです。また、マルウェア作者の意図次第で潜伏時間は変えられます。このような知見が将来のある時点でも有効なままなのかを確かめるためにも、今後も定期的に調査が行われることを期待します。
脚注
↑1 | Alexander Küchler (Fraunhofer AISEC), Alessandro Mantovani (EURECOM), Yufei Han (NortonLifeLock Research Group), Leyla Bilge (NortonLifeLock Research Group), Davide Balzarotti (EURECOM), “Does Every Second Count? Time-based Evolution of Malware Behavior in Sandboxes”, In Proceedings of the 28th ISOC Annual Network and Distributed Systems Symposium (NDSS), 2021. |
---|---|
↑2 | 例えばストレージへのアクセスを続けていても、その振る舞い自体に目新しいものはない。 |