はじめに
生成AI、特に大規模言語モデル(LLM)は、サイバーセキュリティを含むさまざまな分野において重要な活用方法が模索されています。現在、多くの企業がマルウェアやソフトウェア脆弱性の検出にLLMやその他の生成AI技術を導入し、成果を上げつつあります。
生成AIは、マルウェアや脆弱性検出において複数のアプローチで活用可能です。たとえば、既存の機械学習(ML)ベースの検出モデルに対し、LLMを用いて強力な特徴量(特徴)を生成する手法があります。また、LLMをコード解析に活用して、ソースコード内の悪意ある挙動や脆弱性を特定するアプローチも注目されています。さらに、検出モデルの堅牢性を高めるために、合成データを生成して学習に活用する用途も広がっています。
この記事では、これらの活用シナリオについて詳しく解説していきます。
従来の検出手法の課題
現在主流のマルウェアやソフトウェアの脆弱性の検出には、静的コード解析と動的コード解析という2つの手法が利用されています。
- 静的解析:コードを実行せずに構文構造やデータフロー、制御フローを分析し、悪意あるパターンや命令を検出します。
- 動的解析:制御された環境でコードを実行し、その挙動からマルウェアの兆候を分析します。
これらの手法は一定の成果を上げてきましたが、再現性の低さや、高度なスキルを持つ攻撃者による回避が容易であるという課題が残ります。
LLMを活用した表現ベクトルの生成(LLMによる特徴量生成)
こうした従来手法の限界を補うものとして、機械学習ベースの検出手法が注目されてきました。初期の機械学習手法は手作業で特徴を設計していましたが、作業負荷が高く精度も限定的でした。
そこで登場したのがLLMです。LLMは以下のような特長により、新たな可能性を開いています。
- コンテキスト理解:ソースコード内の各構成要素の意味や関係性を把握し、人間では見落としがちな重要な情報を抽出可能。
- 多様なデータタイプに対応:ソースコード、アセンブリコード、API呼び出しのシーケンス、システムコールログなど、様々な形式のデータを扱えるため、セキュリティ分野での汎用的なフィーチャー(特徴)エンジニアリングに最適です。
【LLM活用例】
以下は、比較的小規模なLLMを応用した実例です:
- BERTroid:Androidアプリが要求するパーミッションのシーケンスから特徴を抽出し、マルウェアの有無を識別。[1]
- BERT-Cuckoo15:Cuckooサンドボックスで得られた15種類の動的特徴の関係性をBERTで分析。[2]
- VulDeBERT:C/C++コードを解析し、抽象コード片を通じて脆弱なパターンを学習。[3]
- XGV-BERT:BERTとグラフニューラルネットワーク(GCN)を組み合わせて、コードの意味と構造の両面から脆弱性を検出。[4]
これらの手法は、計算コスト削減やIP保護のための社内ホスティングおよびパフォーマンス向上のためのカスタムデータでの微調整といった利点も兼ね備えています。
コード解析におけるLLMの進化
LLMは、多数のプログラミング言語のコードサンプルで学習されます。コードスニペットの解析を行い、隠れた悪意、攻撃ベクトルの検出に高い能力を発揮します。
ただし、LLMには入力トークン数に制限があるため、大規模コードベースを処理する際にはスニペット分割が必要となり、全体像の把握に制限が出ることもあります。特にバイナリコードの解析に当てはまります。
まず、バイナリコードをアセンブリコードに変換、次にそれらを逆コンパイルしてソースコードに近い形に変換しますが、精度は限定的です。手作業のリバースエンジニアリングはマルウェア検出の有効なアプローチの一つですが、深い専門知識を必要とし、時間がかかります。
しかし、最新のLLMは数百万トークン規模の入力を処理可能となり、アセンブリ言語を含む大規模なコードベースのトレーニングに対応しています。これにより、バイナリ解析によるマルウェア検出の自動化・スケーラビリティが飛躍的に向上しています。
合成データセットによる攻撃耐性の強化
生成AIのもう一つの重要な応用分野は、敵対的攻撃に対する検出モデルの強化です。
GAN(敵対的生成ネットワーク)やLLMを用いて、既存のマルウェアをわずかに改変した検出回避サンプル(敵対的サンプル)を生成することができます。これにより、セキュリティ研究者は既存モデルの弱点を明らかにし、より堅牢な検出アルゴリズムの開発に役立てることが可能になります。[5]
今後の展望と課題
生成AIは、サイバーセキュリティの分野において極めて強力なツールとなりました。現在では、数億から数千億パラメータを持つLLMが登場しており、目的に応じて次のようなユースケースに適用可能です:
- マルウェア検出に向けた特徴量生成
- バイナリコードのリバースエンジニアリング
- 敵対的攻撃を想定した検出モデルの耐性強化
しかし同時に、攻撃者も同じ技術を使って新たなマルウェアや未知の脆弱性を生み出しているという現実があります。したがって、セキュリティ専門家が先手を打って生成AIを業務に取り入れ、巧妙化する攻撃に対抗していくことが、これまで以上に重要になっています。
参考
[1]Detecting Android Malware: From Neural Embeddings to Hands-On Validation with BERTroid
[2]BERT-Cuckoo15: A Comprehensive Framework for Malware Detection using 15 Dynamic Feature Types
[3]VulDeBERT: A Vulnerability Detection System Using BERT
[4]From Assistant to Analyst: The Power of Gemini 1.5 Pro for Malware Analysis
[5]Exploring LLMs for Malware Detection: Review, Framework Design, and Countermeasure Approaches