[論文閲覧] DEPCOMM: 攻撃調査のためのシステム監査ログのグラフ概要 (S&P-2022)

Xu Z、Fang P、Liu C 他 Depcomm: 攻撃調査のためのシステム監査ログのグラフ要約[C]//2022 IEEE Symposium on Security and Privacy (SP)。IEEE、2022: 540-557。

1 概要

我々は、大規模なグラフをプロセス中心のコミュニティに分割し、各コミュニティに要約を提供することによって、依存関係グラフから要約グラフを生成するグラフ要約手法である DEPCOMM を提案します。各コミュニティは、一部のシステム アクティビティ (ファイル圧縮など) と、これらのプロセスがアクセスするリソース (ファイルなど) を協力して実行する親密なプロセスのグループで構成されます。DEPCOMM はコミュニティ内で、重要度の低い反復的なシステム アクティビティによって発生する冗長なエッジをさらに特定し、これらのエッジを圧縮します。

DEPCOMM は、依存関係グラフに対して平均 18.4 のコミュニティを生成します。これは、元のグラフの約 70 分の 1 です。9 つの最先端のコミュニティ検出アルゴリズムと比較して、DEPCOMM はコミュニティの検出においてこれらのアルゴリズムよりも平均 2.29 倍高い F1 スコアを達成しています。HOLMES 自動化テクノロジーと連携して、DEPCOMM は 96.2% の再現率で攻撃関連のコミュニティを特定することができました。

2 はじめに

手動による攻撃調査は、次の 3 つの主な理由から依然として不可欠です。

  • システムには、特にシステム構成ファイルに大きく依存する手法の場合、これらの自動化手法では正確に明らかにできない残留リスクが常に存在します。
  • 防衛テクノロジーを回避するために進化する脅威
  • 既存のテクノロジーは主にヒューリスティック ルールに依存しており、情報損失や侵襲的なシステム変更につながるため、実用化が妨げられています。

動機: 重要度の低い詳細を隠すことでサイズを削減しながら、依存関係グラフ内のシステム アクティビティのセマンティクスを保持するグラフ要約方法を開発すること。

課題と対応:

  • 依存関係グラフは異質なグラフであり、各ノードを同等に扱う汎用の要約手法では、主要なシステム アクティビティを表すコミュニティを効果的に検出できません。

    依存関係グラフをプロセス中心のコミュニティに分割します。各コミュニティには、親密なプロセスのセット (親子関係または兄弟関係) と、これらのプロセスがアクセスするシステム リソースが含まれます。

  • 多くのそれほど重要ではない依存関係が依存関係グラフの主要部分となり、これらのアクティビティを圧縮して非表示にするのは困難な作業です

    DEPCOMM はプロセスベースおよびリソースベースのパターンを認識し、これらのパターンに基づいてコミュニティごとにエッジを圧縮します。

  • 依存関係グラフでは、システム アクティビティを表す一連のエッジが、攻撃調査の結果として得られる概要グラフの中心となる必要があります。これらの利点をどのように要約するかが DEPCOMM のもう 1 つの課題になります

    各コミュニティ内の InfoPath に優先順位を付け、攻撃ステップや主要なシステム アクティビティを表す可能性が高い InfoPath (情報フロー) を上位にランク付けします。

DEPCOMM は、プロセス中心のコミュニティを検出し、検出されたコミュニティ内で圧縮を実行し、各コミュニティの代表的な概要を生成するための新しい技術を提供します。研究所 + DARPA TC、合計約 1 億 5,000 万件のシステム監査イベントにより、生成された依存関係グラフは平均 1,302.1 ノードと 7,553.4 エッジで構成されます。私たちの評価では、DEPCOMM は依存関係グラフに対して平均 18.4 のコミュニティを生成しました。これは、元のグラフの約 70 分の 1 です。これらのコミュニティには、平均 43.1 個のノードと 248.5 個のエッジが含まれています。

  • DEPCOMM は、各プロセス ノードでランダム ウォークを実行してウォーク ルートを取得し、これらのウォーク ルートをベクトル化することで各プロセス ノードの動作表現を計算します。一連の斬新な階層型歩行スキームが設計されました。プロセスのローカル隣接プロセスとグローバル プロセス系統ツリーに関する情報を活用して、近いプロセスを見つける可能性がより高いウォークを選択します。各プロセス ノードの学習された表現を使用して、DEPCOMM はこれらのプロセス ノードをコミュニティにクラスタ化し、これらのプロセスによってアクセスされるリソース ノードを検出されたコミュニティにさらに分類して、プロセス中心のコミュニティを生成します。
  • DEPCOMM はまず、プロセスツリー、各プロセス ノードをリソース ノードにアクセスするイベントに関連付けます。このツリーを検索することで、DEPCOMM はプロセスベースのパターン (たとえば、1 つの bash プロセスが複数の vim プロセスを生成する) とリソースベースのパターン (たとえば、複数の vim プロセスがソースファイルを編集する) を識別できます。特定されたプロセスベースおよびリソースベースのパターンに基づいて、DEPCOMM重複するエッジとノードをすべてマージしますコミュニティを圧縮するためです。
  • DEPCOMM は、まずコミュニティ間の情報フローに従って各コミュニティの入力ノードと出力ノードを識別し、次に入力ノードと出力ノードの各ペアのパスを検索して、InfoPath を生成します。次に、DEPCOMM は、コミュニティ内の主要なシステム アクティビティ (たとえば、POI イベントを含む) を表す可能性に基づいて、各 InfoPath に優先度スコアを割り当てます。最後に、DEPCOMM はこれらの InfoPath を優先度に従って並べ替えます。ランキング、上位の InfoPath がコミュニティの概要として表示されます。

3 システム設計

ここに画像の説明を挿入

3.1 依存関係グラフの生成

POI イベント (ファイルのダウンロードに関するアラートなど) が与えられると、DEPCOMM は後方因果分析を実行することによって依存関係を追跡し、それによって依存関係グラフを構築します。

前方と後方の両方を分析してみませんか?

3.2 依存関係グラフの前処理

エッジ結合: 通常、オペレーティング システムは、データを複数のシステム コールに比例的に分散することによって読み取り/書き込みタスクを実行します。その結果、多くの場合、プロセス ノードとファイル/ネットワーク ノードの間に多数の並列エッジが発生し、短期間での読み取り/書き込み操作の繰り返しを表します。これにより、これらの平行なエッジが 1 つのエッジにマージされます。

読み取り専用ファイルのフィルタリング: 読み取り専用ファイルの多くは、通常、プロセスの初期化に使用されるライブラリ、構成ファイル、リソースであり、これらには有用な攻撃関連情報が含まれていないため、削除されます。

3.3 コミュニティの検出

画像-20230706142236507

階層的ランダムウォーク

プロセス中心のコミュニティは、(1) メイン プロセス ノード、および (2) メイン プロセスから派生したサブプロセスのサブセットを表す一連のサブプロセス ノードを含むグラフであり、データ依存性が存在します。これらのサブプロセスのプロパティ間、および (3) メインプロセスとそれらの子プロセスによってアクセスされるリソースノードのセット。

重み付きランダム ウォークは、近傍およびグローバル系統ツリーに従って固定ステップ サイズで実行され、word2vec を使用してパスの動作表現を学習し、これらのパスを異なるコミュニティにクラスタリングします。ウォーキングの8つのルール:

  1. 隣接ノードをランダムに選択します。隣接ノードが 1 つしかない場合は、早期終了を避けるために、前のノードに戻ります。
  2. 独自の子プロセスから来ており、子プロセスにはデータ依存関係のある兄弟プロセスがあるため、兄弟プロセスに直接移動します。
  3. それが一人息子からのもので、他に隣人がいない場合、それは父と息子が協力していくつかの仕事を処理し、父親が隣人を選んだことを意味します
  4. 前のノードと同じ親プロセスを共有する隣接ノードまで高確率でウォークします。
  5. 子プロセスが訪問したリソース ノードから、同時に子プロセスまたは子プロセスと他の依存関係を持つリソース ノードに戻ります。
  6. 2 つのプロセス ノードが共通のリソース ノード以外の関係を持たない場合、別のコミュニティとみなされ、直接返されます。
  7. リソース ノードを介してプロセスに戻る場合、それは情報フローの終わりに到達し、他の隣接ノードに向かって歩き続けることを意味します。
  8. 1 と似ていますが、ランダムに選択され、返されません。これは、新しいコミュニティに参加したことを意味します。

画像-20230706151408671

プロセスノードの表現

DEPCOMM は、歩行ルート内のプロセス ノードの動作表現を学習するために、広く使用されている単語表現学習アルゴリズムである SkipGram を採用しています。より具体的には、プロセス ノード p とコンテキスト ウィンドウ サイズ t が与えられると、SkipGram は p を含む各歩行ルートから部分列 Wp = {vi−t,···,vi,··,vi+t} を抽出します。この部分列は次のように構成されます。 vi = p とそのコンテキスト ノード vi+k (k ∈ (−t, t))。次に、サブシーケンス内に出現するノードの対数確率を最大化することによって、vi の d 次元ベクトル Φ(vi) が学習されます。

プロセスノードのクラスタリング

DEPCOMMはソフトクラスタリング手法FCM(Fuzzy C-Means)を採用しており、FCMは目的関数を最小化することで各クラスタ内の各プロセスノードのメンバーシップ度を出力します

J = ∑ i = 1 ∣ V p ∣ ∑ j = 1 ∣ C ∣ uij 2 ∣ ∣ vi − cj ∣ ∣ 2 J~=~\sum_{i=1}^{|V_{p}|}\sum_{ j=1}^{|C|}u_{ij}^{2}||v_{i}~-~c_{j}||^{2}J = i = 1Vpj = 1Cあなたij2∣∣ v私は  cj図2において、uijはプロセスノードviがコミュニティcjに属する度合いを表し、uijが所定の閾値より高い場合、Viはcjとして分類される。

ファジー分配係数 (FPC) に基づく DEPCOMM F ( ∣ C ∣ ) = 1 / ∣ V p ∣ ∑ j = 1 ∣ C ˉ ∣ ∑ i = 1 ∣ V p ∣ uij 2 F(|C|)=1/ | V_{p}|\sum_{j=1}^{|\bar{C}|}\sum_{i=1}^{|V_{p}|}u_{ij}^{2}F ( C )=1/ ∣Vpj = 1Cˉi = 1Vpあなたij2コミュニティの数 |C| を決定し、さまざまな数のクラスターの有効性を測定するために使用されます。

リソースノードの関連付け

リソース ノード r とプロセス ノード p が与えられ、それらがエッジによって接続されている場合、v は p が属するコミュニティに関連付けられます。リソース ノードが異なるコミュニティの複数のプロセス ノードに接続されている場合、リソース ノードは重複ノードとなり、リソース ノードのコピーを作成し、そのコピーを各コミュニティに割り当てます。

コミュニティ間の依存関係

コミュニティ間の依存関係を、エッジベースの依存関係 (つまり、コミュニティ間のコミュニティ間エッジによって表される依存関係) とノードベースの依存関係 (つまり、重複するノードによって表される依存関係) に分類します。コミュニティごとに 1 つずつコピーを作成し、中央に新しいエッジを入れます。

3.4 コミュニティの圧縮

画像-20230707003215180

プロセスベースのモデル

図 a に示すように、定期的なアクティビティがマージされます。これは 4 つのステップで構成されます。

  • プロセス系図ツリーを構築する
  • プロセスはアクセスされたリソースに関連付けられています
  • プロセスベースのパターンのマイニング: DEPCOMM はプロセスに沿ったツリーを使用して、プロセス ノードごとにサブツリーを生成します。次に、DEPCOMM はサブツリーを文字列としてエンコードし、サブツリー内のプロセス ノードの関連リソース属性を追加することで同一の文字列 (つまり、重複したサブツリー) を識別します。
  • パターンベースの圧縮: DEPCOMM は、同じ親ノードを持つ重複するサブツリーのみを選択し、選択されたサブツリーを 1 つにマージします。マージされたサブツリー内の各ノードとエッジのプロパティは、元のノードとエッジのプロパティを結合したものです。

リソースベースのパターン:

DEPCOMM は、まずプロセスをアクセスするリソースに関連付け、次に各リソースを検索して重複したアクセスを特定します。発見されたパターンによれば、リソース ノードは 1 つのノードにマージされ、マージされたノードの属性は元のリソース ノードの属性の結合になります。

3.5 コミュニティの概要

DEPCOMM は、メイン プロセス、タイム スパン、および上位の情報パスの 3 つの部分からなる概要を生成します。

画像-20230707015821520

情報フローの抽出

コミュニティの場合は、その入力ノードと出力ノードを決定し、深さ優先検索を使用して最長のパスを見つけます。

情報フローの優先順位

優先順位付けは、次の 4 つの主要な特性で構成されます。

  • fpoi: POI イベントを含めるかどうか。含めるパラメータの値は 1、それ以外の場合は 0
  • foit: 入出力タイプ。先頭と末尾がプロセスの場合、情報フロー スコアは高くなります。fiot = 1 2 ( δ ( v 0 ) + δ ( v ∣ P k ∣ − 1 ) ) f_{iot}=\frac{1}{2}(\delta(v_0)+\delta(v_{|P_k| -1}))f_=21( d ( v0)+d ( v∣P _ 1))
  • funi: イベントの一意性。少数のコミュニティで発生するファイル イベントは、コミュニティ内の主要なアクティビティを表す可能性が高くなります。funi = 1 ∣ E vt ( P k ) ∣ ∑ ei ∈ P k , ei ∈ E vtf 1 ∣ C omm ( ei ) ∣ f_{uni}=\frac{1}{|Evt(P_k)|}\sum_{ e_i\in P_k,e_i\in Evt_f}\frac{1}{|Comm(e_i)|}fうに_=E v t ( P) 1e私はPe私はEVt _ _C o mm ( e私は) 1
  • fspan: タイム スパン、コミュニティのタイム スパンと類似したタイム スパンを持つ InfoPath は、コミュニティ内の主要なアクティビティを表す可能性が高くなります。 fspan = e ( v ∣ P k ∣ − 2 , v ∣ P k ∣ − 1 ) . et − e ( v 0 , v 1 ) . stc . et − c . st f_{span}=\frac{e(v_{|P_{k}|-2},v_{|P_{k}|-1}) .et- e(v_{0},v_{1}).st}{c.et-c.st}fスパン_ _=e ts te ( v∣P _ 2v∣P _ 1e te ( v0v1s t

これらの特徴に基づいて、各特徴に等しい重みを与えることによって Pk の優先度スコアを計算します。割り当てられた優先度スコアに基づいて、インフラストラクチャを並べ替え、上位 n 個のパスを集計として選択します。セキュリティ アナリストは n の値を柔軟に選択できます。

4 評価

実験室環境で 6 回の攻撃、DARPA TC で 8 回の攻撃。

専門家を招いて事前にコミュニティを分けて自動検出と比較してもらいます。

画像-20230707030511095

画像-20230707030240072

NoDozeとの比較

画像-20230707030613465

おすすめ

転載: blog.csdn.net/qq_44623371/article/details/132231810