Windows Security Support Provider (SSP) DLLs are loaded into the Local Security Authority (LSA) process at system start. Once loaded into the LSA, SSP DLLs have access to encrypted and plaintext passwords that are stored in Windows, such as any logged-on user's Domain password or smart card PINs. The SSP configuration is stored in two Registry keys: HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages and HKLM\SYSTEM\CurrentControlSet\Control\Lsa\OSConfig\Security Packages. An adversary may modify these Registry keys to add new SSPs, which will be loaded the next time the system boots, or when the AddSecurityPackage Windows API function is called.
(Citation: Graeber 2014)
T1101は、Windowsの認証アーキテクチャであるSSP(Security Support Provider)に、悪意のある独自のDLL(SSPモジュール)を注入または登録することで、ユーザーがログインやパスワード変更を行った瞬間に、その生パスワード(プレーンテキスト)をリアルタイムに横取りする手法です。主に「認証情報アクセス(Credential Access)」と「永続化(Persistence)」の目的で悪用されます。
この手法で攻撃者は、「暗号化やハッシュ化される前の、最も純粋なパスワードを自動で盗み続けること」を実現します。
生パスワードの窃取:
Windowsは通常パスワードをハッシュ化して保存しますが、この手法ではユーザーがキーボードから入力した直後の「プレーンテキスト(平文)」をそのままテキストファイルなどに保存して盗み出すことができます。
超強力な永続化:
認証の根幹プロセスである lsass.exe(ローカルセキュリティ認証サブシステム)に深く寄生するため、セキュリティソフトに検知されにくく、ユーザーがパスワードを定期変更しても、その新しいパスワードを即座に自動回収できます。
この手法はOSのセキュリティの核心部である lsass.exe に影響を与えるため、攻撃者は事前に管理者権限(Administrator)またはSYSTEM権限を確保している必要があります。
攻撃には「レジストリを書き換えて再起動を待つ方法」と「起動中のメモリに直接注入する方法」の2種類があります。
悪意のあるSSP(DLL)の用意:
パスワードを横取りしてファイルに書き出す機能を持ったカスタムDLL(例:mimiSsp.dll など)をシステム内に配置します。
永続的な登録(レジストリ改ざん):
HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packagesプロセスの起動・横取り:
lsass.exe はこのレジストリを見て、攻撃者のDLLを正規の認証パッケージとして自身のメモリ空間に読み込みます。認証情報の回収:
C:\Windows\System32\kiwissp.log など)に静かに書き出されます。lsass.exe への不審なアクセスをいかに遮断するかが防御の要となります。
LSA保護(RunAsPPL)の有効化:
Windowsの標準機能であるLSA保護を有効にします。これにより、Microsoftが認めた正規のデジタル署名がないDLLは、たとえ管理者権限であっても lsass.exe に読み込ませない(注入させない)ようにブロックできます。
レジストリの変更監視:
重要なレジストリキーである HKLM\SYSTEM\CurrentControlSet\Control\Lsa\Security Packages への書き込みが発生した場合に、SIEMやEDRで即座に検知・アラートを上げるよう設定します。
Credential Guard(資格情報ガード)の有効化:
仮想化ベースのセキュリティ(VBS)を利用した「Windows Defender Credential Guard」を導入することで、認証情報の保存領域を隔離し、lsass.exe 自体が侵害されてもシステム全体の資格情報が一度に抜かれるリスクを大幅に低減します。
「ハッシュのクラック」が不要:
従来のハッシュ値を盗み出して解析する攻撃(Pass-the-Hashなど)とは異なり、文字通りのパスワード(例: P@ssw0rd123!)がそのまま手に入るため、攻撃者は別のシステムや外部のクラウドサービス(Microsoft 365など)へもそのパスワードを使って簡単に不正ログインできるようになります。
インメモリ攻撃(再起動なし):
高度な攻撃ツールはレジストリを触らず、WindowsのAPI(VirtualAllocEx や CreateRemoteThread)を使って、現在起動中の lsass.exe のメモリへ直接SSPをインジェクションする手法をとるため、足跡(ログ)がさらに残りにくくなります。
CWE-287: Improper Authentication:
認証システムの実装や拡張における不備。
CWE-267: Privilege Defined With Unsafe Actions:
特権を持つシステムプロセス(LSA)が、安全性が検証されていない外部モジュールを実行してしまう設計上の問題。
特定の既知の製品バグ(CVE)ではなく、Windowsがサードパーティ製の認証システム(スマートカードや指紋認証など)を組み込めるように用意している「仕様」を逆手に取った手法です。
Mimikatz:
このT1101(T1556.002)を世界中に知らしめた最も有名なツールです。privilege::debug で権限を昇格させた後、misc::ssp コマンドを入力するだけで、起動中のシステムに一瞬で悪意あるSSPモジュールを注入し、パスワードの平文書き出しを開始させることができます。
APT41 / APTSndicg:
国家支援型とされる高度なサイバースパイグループは、標的のドメインコントローラー(AD)に侵入した際、全ドメインユーザーのパスワード変更を長期間にわたって監視・収集するために、このSSP改ざんの手法を隠密に仕込むことが知られています。
現代のWindows 10/11やWindows Serverでは、「LSA保護(RunAsPPL)」を有効化するだけで、この手法(特にMimikatz等によるインメモリ注入)の大部分を無効化できます。 セキュリティ設定のベースラインとして、グループポリシーでLSA保護が全社的に有効になっているかを最優先で確認することをお勧めします。