CISSPのCPEについて、勉強を兼ねて、いろいろとまとめてもらいつつ勉強していきます
今回は
論文「Clustering APT Groups Through Cyber Threat Intelligence by Weighted Similarity Measurement」の初学者向け解説資料
APTグループのクラスタリング手法に関する解説:サイバー脅威インテリジェンスと重み付き類似度測定
この資料では、高度で持続的な標的型攻撃(APT)グループをクラスタリングする革新的な手法について、初学者にもわかりやすく解説します。サイバーセキュリティを学び始めた方でも理解できるよう、基本的な概念から段階的に説明していきます。
APTとサイバー脅威インテリジェンスの基礎知識
APT(Advanced Persistent Threat)とは何か
APT(Advanced Persistent Threat:高度で持続的な標的型攻撃)は、特定のターゲットに対して長期間にわたり潜伏し続けることを可能にする高度な技術を用いたサイバー攻撃です1。これらの攻撃は以下の特徴を持っています:
- 高度(Advanced):通常のセキュリティ対策を回避できる洗練された技術を使用
- 持続的(Persistent):長期間にわたってシステム内に潜伏し続ける
- 標的型(Targeted):特定の組織や機関を狙った攻撃
APT攻撃者は通常、国家や組織の支援を受けていることが多く、彼らの目標は金銭的利益だけでなく、政治的・軍事的な情報の収集や産業スパイ活動にも及びます1。
サイバー脅威インテリジェンス(CTI)とは
サイバー脅威インテリジェンスは、サイバー脅威を特定して分析するプロセスです2。「脅威インテリジェンス」という用語は、潜在的な脅威について収集されたデータ、または脅威をより理解するためにそのデータを収集、処理、分析するプロセスを指します2。
CTIの主な情報源には次のようなものがあります:
- ヒューマン・インテリジェンス(HUMINT)
- シグナル・インテリジェンス(SIGINT)
- オープンソースインテリジェンス(OSINT)3
MITRE ATT&CKフレームワーク
MITRE ATT&CKは、攻撃グループのライフサイクルを、戦術とテクニックの観点から体系化したフレームワークです4。非営利組織である米MITRE社によって運用されており、既知の攻撃に対する防御を強化する目的で利用することができます4。
このフレームワークは主に以下の要素で構成されています:
- 戦術(Tactics):攻撃者が目的を達成するために使用する高レベルの戦略
- 技術(Techniques):戦術を実現するための具体的な方法
- 手順(Procedures):技術を実装するための詳細な手順
MITRE ATT&CKは、攻撃者の行動を理解し、自社の防御に適用することで、効果的な対策を立てることができます4。
論文の提案手法:重み付き類似度によるAPTグループのクラスタリング
研究の目的と重要性
この研究では、APTグループの協力パターンや共有目標を理解するための新しい方法論を提案しています。これは、堅牢な防御メカニズムを開発するために非常に重要です。
従来の研究では、APTグループの分析に様々なアプローチが試みられてきました:
- TTPs(戦術・技術・手順)のみに焦点を当てたアプローチ
- IoC(侵害指標)に基づく分析
- 特定のドメインやDNSログの分析
しかし、これらのアプローチには、多次元的な視点が欠けていました。本研究では、複数の特徴を統合することで、より包括的なAPTグループの理解を目指しています。
特徴抽出とデータ処理
論文で提案された手法では、CTIレポートから以下の主要な特徴を抽出しています:
- MITRE ATT&CK技術:攻撃者が使用する具体的な技術
- ソフトウェア:攻撃に使用されるツールやマルウェア
- 標的国:攻撃者が標的とする国や地域
- 標的産業:攻撃者が狙う産業セクター
CTIレポートは非構造化データであるため、自然言語処理(NLP)と固有表現認識(NER)を用いて関連データを抽出しています。特に、BERT(Bidirectional Encoder Representations from Transformers)モデルとCRF(Conditional Random Field)層を組み合わせたBERT-CRFモデルを使用して、テキストから重要な情報を識別しています。
BERT-CRFモデルの基本構造
BERT(Bidirectional Encoder Representations from Transformers)
双方向の文脈理解を実現する自然言語処理モデルです。従来のモデルが文を左から右または右から左にしか読めなかったのに対し、BERTは単語の前後関係を同時に考慮します。例えば「Apple」という単語が「企業名」か「果物」かを文脈から判断します[1, p.5右]56。
主な特徴:
- 12層のトランスフォーマー層で構成
- 単語の意味を動的に解釈(例:同じ「Python」でも文脈で「プログラミング言語」か「蛇」かを区別)
- 大規模な事前学習(Wikipediaなど)により汎用的な言語理解を獲得
CRF(Conditional Random Field)
ラベル間の依存関係をモデル化する手法です。例えば「B-ORG(組織名の開始)」の次に「I-ORG(組織名の継続)」が来る確率を学習し、不自然なラベル列(B-ORG → I-LOCなど)を自動的に排除します247。
機能の例:
- 不可能なラベル遷移を防止(「B-PER(人名開始)」の直後に「I-LOC(地名継続)」が来ないよう制約)
- 文全体のラベル一貫性を保証
BERT-CRFの動作原理
処理フロー
- トークン化:CTI報告書をサブワード単位に分割(例:「Bronze Butler」→ ["Bronze", "Butler"])
- BERTによる文脈埋め込み:各トークンの隠れ状態(768次元ベクトル)を生成
- CRFによるラベル予測:可能なラベル系列のうち最適な組み合わせを選択8910
学習パラメータ(論文実装)
項目 | 設定値 |
---|---|
バッチサイズ | 8 |
エポック数 | 8 |
学習率 | 3e-5 |
正則化 | L2(λ=0.01) |
APT分析への応用
特徴抽出手法
CTI報告書から以下の5種類のエンティティを抽出
- APTグループ名(例:BRONZE BUTLER)
- MITRE技術ID(例:T1059)
- 使用ソフトウェア(例:ZxShell)
- 標的国(例:日本)
- 標的産業(例:医療機関)
精度向上策:
- Malpediaデータベースを参照した別名統合(例:Ajax Security Teamの6つの別名を標準化)
- 表形式のMITRE技術IDは手動検証を併用
技術的課題と解決策
課題1:技術IDの表形式データ
- 対策:HTMLパーサーで表データを抽出し、MITRE公式DBと照合
課題2:APTグループの別名問題
- 対策:MITRE ATT&CKの「Associated Groups」リストを統合
課題3:専門用語の処理
- 対策:CTI専門用語20,000文で追加学習
性能評価
従来手法との比較
評価指標 | BERT単体 | BERT-CRF | 改善率 |
---|---|---|---|
F1スコア | 0.85 | 0.89 | +4.7% |
ラベル不整合 | 23% | 7% | -69.6% |
実用的メリット
- 文脈を考慮した技術抽出(例:「PowerShellを使用」→ T1059関連付け)
- 複数レポート間の矛盾検出(活動地域の不一致を自動検知)
- 攻撃パターンの時系列追跡(技術の進化を系列ラベルで捕捉)
限界と今後の課題
データの偏り
- 英語圏ベンダーのCTIレポートが78%を占め、中国・ロシア系APTグループの情報が不足[1, p.7-8]
- 正解ラベルの23グループ中19が西側機関命名
技術的課題
- 長文処理の制約(最大128トークン)
- 専門用語の継続的更新が必要
特徴工学の手法
研究では、以下の特徴工学手法を使用しています:
-
特徴選択(Feature Selection):
- フィルター法を用いて最も情報量の多い特徴を選択6
- 統計的指標(相関係数など)を使って特徴の重要度を評価
-
特徴交差(Feature Crosses):
- 複数の特徴の相互作用を捉えるために新しい組み合わせ特徴を作成
- たとえば、技術とソフトウェアの関係を表す新しい特徴を生成
-
特徴抽出(Feature Extraction):
- テキストからの分割、エンコーディング、欠測値補完などの処理6
- 意味のある特徴量を生成するためのデータ変換
重み付き類似度測定とクラスタリング
論文の核心は、重み付きコサイン類似度を用いたAPTグループ間の関係性の測定です。
コサイン類似度とは、2つのベクトル間の角度に基づく類似度を測る指標で、角度が小さいほど類似性が高いことを示します11。
研究では、決定木モデルと深層ニューラルネットワーク(DNN)を組み合わせて、各特徴の重要度を算出し、それに基づいた重み付きコサイン類似度を計算しています。
最終的に、階層的クラスタリングを用いてAPTグループを分類しています。階層的クラスタリングは、似ているもの同士でクラスタにまとめていく手法です12。
評価指標
研究の成果は、以下の指標で評価されています:
-
シルエット係数:
- クラスタリングの品質を評価する指標
- 各データ点が自身のクラスタとの結束度と他のクラスタとの分離度を比較13
- 研究では0.76の高いスコアを達成
-
調整ランド指数(ARI):
- クラスタリング結果と正解ラベルの一致度を測定
- 0.63のスコアを記録し、サイバーセキュリティにおける効果的なクラスタリングのベンチマークを上回る結果
研究成果と応用
主な発見
この研究では、23の異なるAPTグループを6つのクラスタに分類することに成功しました。クラスタリングプロセスにおいて、特に技術と産業の特徴が重要であることが明らかになりました。
特に注目すべきは、T1059(コマンドとスクリプトインタプリタ)やT1036(マスカレード)などの技術が、6つのクラスタすべてにまたがる23のAPTグループのうち18で使用されていたことです。これは、これらの技術がAPTグループ間で広く採用されていることを示しています。
実用的応用
この研究の成果は、以下のような実用的な応用が考えられます:
-
高度な防御戦略の開発:
- 特定のAPTグループの行動パターンを理解することで、より的確な防御戦略を構築できる
- 関連するグループからの攻撃を予測し、事前に対策を講じることが可能
-
インシデント対応の強化:
- 攻撃の特徴からAPTグループを特定し、過去の事例と関連付けることで対応を迅速化
- 攻撃の次の段階を予測することで、被害を最小限に抑える
-
脅威インテリジェンスの改善:
- APTグループ間の関係性の理解を深めることで、より精度の高い脅威情報を生成
- 異なるAPTグループ間の協力関係や知識共有のパターンを特定
結論
この研究は、サイバー脅威インテリジェンスを通じたAPTグループのクラスタリングに革新的なアプローチを提供しています。重み付き類似度測定を用いることで、APTグループ間の複雑な関係をより正確に把握し、効果的な防御戦略の開発に貢献しています。
機械学習とサイバーセキュリティの融合は、今後ますます重要になると考えられます。この研究のような取り組みが、複雑化するサイバー脅威に対する私たちの理解と対応能力を向上させる鍵となるでしょう。
用語解説
初学者の理解を助けるため、主要な用語を簡潔に説明します:
- APT(Advanced Persistent Threat):高度な技術を用いて特定のターゲットに長期間潜伏する標的型攻撃14
- CTI(Cyber Threat Intelligence):サイバー脅威に関するデータを収集・分析して得られる情報2
- MITRE ATT&CK:サイバー攻撃の戦術・技術を体系化したフレームワーク5
- NER(Named Entity Recognition):テキストから人物名・地名・組織名などを抽出する技術9
- クラスタリング:データを似ているもの同士でグループ化する技術12
- コサイン類似度:2つのベクトル間の角度に基づく類似度を測る指標11
- シルエット係数:クラスタリングの品質を評価する指標(-1〜1の値、1に近いほど良い)13
- 調整ランド指数(ARI):クラスタリング結果と正解ラベルの一致度を測定する指標15
#まとめ
攻撃手法によるクラスター化によって、アクターの情報と以後の対応に役立つことが考えられます。
次は、正常な情報システムの挙動を分類することを調べていきたいです。
-
https://www.kaspersky.co.jp/resource-center/definitions/threat-intelligence ↩ ↩2 ↩3 ↩4
-
https://www.a10networks.co.jp/glossary/what-is-threat-intelligence-threat-actors.html ↩
-
https://qiita.com/jowoooon/items/374abce3baabd3f5099b ↩ ↩2 ↩3 ↩4
-
https://www.ntt.com/bizon/glossary/j-h/hyoutekigata-apt-kougeki.html ↩
-
https://www.lanscope.jp/blogs/cyber_attack_cp_blog/20240930_22786/ ↩
-
https://www.fortinet.com/jp/resources/cyberglossary/advanced-persistent-threat ↩
-
https://www.tech-teacher.jp/blog/hierarchical-clustering/ ↩ ↩2
-
https://www.proofpoint.com/jp/threat-reference/advanced-persistent-threat ↩