SOC Prime Bias: Critical

30 3月 2026 16:15

T1547.008 LSASS ドライバーのMITRE ATT&CKでの解説

Author Photo
Ruslan Mikhalov SOC Primeの脅威リサーチ責任者 linkedin icon フォローする
T1547.008 LSASS ドライバーのMITRE ATT&CKでの解説
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

概要

この記事は、LSASSがセキュリティ関連のコンポーネントを読み込む方法を悪用して、Windowsシステム上で持続的で高権限の実行を得るために脅威アクターが使用するLSASSドライバー永続化サブテクニック、T1547.008について説明します。

調査

攻撃者は通常、SYSTEM権限を得ることから始め、ターゲットホストに悪意のあるDLLまたはドライバーを置き、LSASSがブート時に不正なコンポーネントを読み込むように、LSA構成内のレジストリキーを変更します。場合によっては、同じアプローチでドメインコントローラーサービスの拡張ポイントを悪用することもできます。

緩和策

防御者はLSAキーに影響を与えるレジストリの変更を監視し、ドライバーとDLLに対して厳格なコードサイニングを要求し、関連するレジストリパスの書き込み権限を制限し、LSASSプロセスによって読み込まれるコンポーネントに対して整合性モニタリングを適用する必要があります。

対応

疑わしいレジストリの変更や予期しないドライバーの読み込みが lsass.exe で検出された場合、そのホストを隔離し、クレデンシャル分析に焦点を当ててLSASSメモリを取得し、親プロセスを調査しながら変更されたレジストリの値を既知の良好な状態に戻します。

攻撃フロー

この部分をまだ更新中です。通知を受け取るためにサインアップしてください

私に知らせて

シミュレーション実行

前提条件: テレメトリー&ベースラインプリフライトチェックが合格していること。

根拠: このセクションは、検出ルールを引き起こすための敵対者の技術(TTP)の正確な実行を詳述しています。コマンドと記述は、発見されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリーを生成することを目的とします。

  • 攻撃の流れとコマンド:

    1. 準備 – 悪意のあるDLLをドロップ – 敵対者はDLL(maliciousLSASS.dll)を作成し、それがLSASSによって読み込まれると、クレデンシャルハッシュを抽出し、それらを %TEMP%に書き込む。このDLLは被害者のワークステーションに舞台があります。
    2. レジストリ変更による永続性 – ネイティブ reg.exeを使用して、攻撃者は悪意のあるDLLのフルパスを セキュリティパッケージ のマルチ文字列値に追加し、LSASSがサービス開始時にそれを読み込みます。
    3. トリガー – 攻撃者は LSASS サービスを再起動してパッケージを再読み込みさせる(システムの再起動が必要; テストではサービスを停止して再起動することで WinDefend サービス、これによりLSASSがセキュリティパッケージリストを再読み込みする)
  • リグレッションテストスクリプト:

    # -------------------------------------------------
    # シミュレーション LSASS ドライバー永続化 (T1547.008)
    # -------------------------------------------------
    $dllPath = "$env:USERPROFILEDesktopmaliciousLSASS.dll"
    # ダミーDLLファイルが存在することを確認(テスト用に空のプレースホルダー)
    if (-not (Test-Path $dllPath)) {
        New-Item -Path $dllPath -ItemType File -Force | Out-Null
    }
    
    # 元の値をバックアップ
    $regPath = 'HKLM:SYSTEMCurrentControlSetControlLsaSecurity Packages'
    $original = (Get-ItemProperty -Path $regPath -Name '(Default)' -ErrorAction SilentlyContinue).'(Default)'
    
    # 悪意のあるDLLパスを追加
    $newValue = @()
    if ($original) { $newValue = $original -split "`0" }
    $newValue += $dllPath
    Set-ItemProperty -Path $regPath -Name '(Default)' -Value $newValue -Force
    
    Write-Host "[+] 悪意のあるDLLを含むようにセキュリティパッケージのレジストリ値を変更しました。"
    
    # オプション: 再起動せずにLSASSがパッケージを再読み込みするようにする(依存サービスを再起動)
    Restart-Service -Name WinDefend -Force -ErrorAction SilentlyContinue
    Write-Host "[+] サービスの再起動を要求し、LSASS再読み込みを誘発しました。"
    
    # ログ収集を許可するために一時停止
    Start-Sleep -Seconds 10
    
    # 元の値を復元(クリーンアップステップを別途実行)
  • クリーンアップコマンド:

    # -------------------------------------------------
    # シミュレーション後のクリーンアップ
    # -------------------------------------------------
    $regPath = 'HKLM:SYSTEMCurrentControlSetControlLsaSecurity Packages'
    # 以前にキャプチャした元のマルチ文字列値を復元(あれば)
    if ($original) {
        Set-ItemProperty -Path $regPath -Name '(Default)' -Value $original -Force
    } else {
        # 元々空の場合は値を完全に削除
        Remove-ItemProperty -Path $regPath -Name '(Default)' -Force -ErrorAction SilentlyContinue
    }
    Write-Host "[+] 元のセキュリティパッケージレジストリ値を復元しました。"
    
    # ダミーDLLを削除
    Remove-Item -Path "$env:USERPROFILEDesktopmaliciousLSASS.dll" -Force -ErrorAction SilentlyContinue
    Write-Host "[+] 一時的な悪意のあるDLLを削除しました。"
    
    # オプション: LSASSの状態を完全にリセットするためにホストを再起動(テストでは不要)
    # Restart-Computer -Force