はじめに
FFRI リサーチエンジニアの茂木です。今回はFFRI Dataset 2018の活用例として、2019年 暗号と情報セキュリティシンポジウム(SCIS 2019)において情報処理推進機構 産業サイバーセキュリティセンターの岡本様が発表された内容と、私の発表内容についてご紹介いたします。
FFRI Dataset 2018は29万件のマルウェア及び21万件の良性ファイル(クリーンウェア)の表層情報を提供しています。csvファイルではFuzzy HashやpeHash、DLLかどうか、Packされているか、アンチデバッグ技法が使われているか等の情報を提供しています。txtファイルでは各検体のDOSヘッダやOptionalヘッダの情報、各セクションの情報等、pefileによって得られた情報を提供しています。データセットの詳細につきましては第1回の記事をご参照ください。
SCIS 2019では本データセットを用いて、機械学習によりマルウェアとクリーンウェアを分類する手法を岡本様がご提案されました。また私も別途研究を行っており、今回岡本様とは別の手法を提案いたしました。
Tree-Based 機械学習アルゴリズムを用いたマルウェア検出
岡本様が「Tree-Based 機械学習アルゴリズムを用いたマルウェア検出」というタイトルで発表を行われました。この手法ではcsvファイル及びtxtファイルから取得できる、Fuzzy Hash及びpeHash以外のあらゆる情報が用いられています。csvファイルから取得できる情報は、yesを1、noを0と変換したり、TrIDの出力については主要なファイル形式である確率を使うといった前処理が行われています。またtxtファイルから得られる情報は、16進数の数値を10進数に変換し、imported symbolsについてはデータセットに頻出するAPIが出現したか否かの二値とするといった前処理が行われています。こうして得られた特徴ベクトルを用いてXGBoostによりFPR 0.01%未満のときでTPR 94.5%といった高精度なマルウェアの検知を達成していらっしゃいました。
本研究でもまだ抽出していない特徴量の抽出や質的データのOne Hot EncodingなどのFeature Engineeringや、まだ試していないモデルでの実験が今後の課題だそうです。
本研究ではXGBoostとRandom Forestを比較しており、XGBoostの方が性能が良いことが示されていました。一方で、FPRが0.01%未満となる設定においては、両者に有意な差が見られなかったことも述べられていました。もちろんさらなる詳細な検討が要るにせよ、実務では単純なモデルが好まれるため、Random Forestで良い性能が出ることは非常に嬉しい結果です。私が今後期待しているのはLightGBMでの実験です。LightGBMは比較的高速であり、Windows Defender AVでも使用されていることが明かされています。さらにMicrosoftのLightGBMパッケージを用いる場合、Training APIにより質的データがサポートされており、実験がしやすいのではないかと思います。
また岡本様はMWS Cupの課題の延長として研究を行われたとおっしゃっていました。MWS Cupがこうした素晴らしい研究成果に結びつき、問題作成の協力者として嬉しい限りです。
PE 表層情報を用いた機械学習による静的マルウェア検知
以下に私の提案手法の概要を示します。
提案手法では、2つの分類器を組み合わせております。1つ目の分類器は、データセットのtxtファイルから取得した、DOSヘッダやOptionalヘッダの情報やセクション情報といった表層情報を用いて分類します。上の図ではRandom Forestを用いています。もう一方の分類器は自然言語処理技術を用いて、Fuzzy Hash及びpeHashを使い分類します。この2つの分類器を組み合わせ、最終的な出力を得ます。これにより、分類器単体と比較し、FPR 0.01%未満でのTPRが向上することが示されました。
本手法は、Fuzzy Hash及びpeHashを他の表層情報とは別に処理を行うことが重要です。txtファイルから取得した表層情報とFuzzy Hash及びpeHashを1つの分類器に入れると精度は悪くなりました。しかし、分類器を分けて処理を行うことで、検知に貢献できることが示唆されます。
なぜFuzzy Hash及びpeHashを別の分類器に分けるべきなのでしょうか。これらを用いた検知では、SHA256のような暗号学的Hash関数と異なり、似たファイルが似たHash値にあることを利用します。そこで文字列として似ていることを利用できる手法が必要です。Feature Hashing Trickのような手法や、Hash値ごとに数字をふる手法ではこの利点を活かせません。そこで文字レベルの自然言語処理技術が有効なのです。
今回はcsvファイルで提供されている情報については、Fuzzy Hash及びpeHashのみを用いました。しかし岡本様の結果が示すように、他の情報の活用も有効です。その上でFuzzy HashやpeHashが検知に有効かどうか確かめる必要があります。また今回はFFRI Dataset 2018にない、TLSHやsdhash、nextGen-hashでの検討はしておりません。こうしたHash値のほうが良い結果が出るでしょうか。あるいは、単体で検知もクラスタリングも高精度にできるようなHash値はあるでしょうか、なければ作れるでしょうか。こうしたことが今後の課題です。
おわりに
安全なIT社会の実現において、それを阻害するマルウェアの検知は重要なテーマです。機械学習など、日々進歩するテクノロジーを駆使することで、脅威に対抗していく必要があります。今後も最新の動向をキャッチアップし、セキュリティへの応用をしていきたいと考えております。進化したFFRI Datasetが皆様の研究に役立ち、延いては皆様が安心してインターネットを利用できる真のIT社会を実現することに貢献できれば幸いです。
エンジニア募集
弊社ではFFRI Dataset 2018を利用した共同研究を募集中です。またこうしたセキュリティ技術の研究開発に興味のある方、次世代のセキュリティ技術開発し、業界をリードしていきたいという熱意のある方も募集中です。一緒に安全なIT社会に貢献できることを心待ちにしています。是非お問い合わせください。