Skip to content
KitploitKITPLOIT
ツールブログ
提出
ツールブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
alg_check — Linuxシステムを監査・強化し、カーネル暗号APIの公開状況を確認してモジュールを制限し、復元スクリプトを提供することで、AF_ALGローカル権限昇格(CVE-2026-31431)から保護します。 | Kitploit
ツール/GitHubGitHub/professional-slacker/alg_check
防御ツール脆弱性分析構成監査
GitHubprofessional-slacker/alg_check

alg_check

Linuxシステムを監査・強化し、カーネル暗号APIの公開状況を確認してモジュールを制限し、復元スクリプトを提供することで、AF_ALGローカル権限昇格(CVE-2026-31431)から保護します。

リポジトリを見る
3ヶ月前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

⚠️ 重要免責事項: 構造的ハードニングのリスク

このツールは、カーネルモジュールを物理的にリネームし、メモリからパージすることで CVE-2026-31431 を緩和する 構造的ブロッキング を実装しています。使用前に、以下のアーキテクチャ上のリスクを認識してください:

  • カーネル更新による変動性: ハードニングの効果は 一時的 です。カーネル更新により、新しい /lib/modules/ ディレクトリ配下に脆弱なモジュールが新規展開され、以前の妨害措置は無効になります。
  • 機能的な副作用: AF_ALG(カーネル暗号API)を無効にすると、カーネルレベルのハードウェアアクセラレーションに依存する特定のアプリケーションやサービス(特殊なVPN、ディスク暗号化ユーティリティ、カスタムセキュリティツールなど)が動作しなくなる可能性があります。[cite: 3]
  • 緩和策とパッチの違い: これは 恒久的なパッチではなく、一時的な回避策 です。ディストリビューション提供のパッチ適用済みカーネルが利用可能になるまでのつなぎを目的としています。

自己責任で使用してください。 solution.sh を実行した後は、システムの重要な機能を必ず検証してください。[cite: 3]

SSIA - システム構造的整合性監査

Linuxカーネル暗号API(AF_ALG)を介したLPE(ローカル権限昇格)ベクターを発見、診断、封じ込めるためのツールキットです。

⚠️ 重要免責事項: 構造的ハードニングのリスク

このツールは、カーネルモジュールをリネームし、メモリからパージすることで CVE-2026-31431 に対処する 構造的ブロッキング を使用します。主なアーキテクチャ上のリスクは以下の通りです:

  • カーネル更新による変動性: 効果は一時的です。カーネル更新により、新しい /lib/modules/ ディレクトリ配下に脆弱なモジュールが新規展開され、以前の妨害措置は無効になります。
  • 機能的な副作用: AF_ALG を無効にすると、特殊なVPN、ディスク暗号化ユーティリティ、カスタムセキュリティツールなど、カーネルレベルのハードウェアアクセラレーションに依存するサービスが中断される可能性があります。
  • 緩和策とパッチの違い: これは 恒久的なパッチではなく、一時的な回避策 であり、パッチ適用済みカーネルが利用可能になるまでのつなぎとして機能することを目的としています。

自己責任で使用してください。

概要

このリポジトリは、AF_ALG(socket(38, 5, 0))を介した権限昇格攻撃に対する 診断 → 封じ込め → 検証 のワークフローを形成する2つのスクリプトを提供します:

  • check.sh — 多層的なセキュリティ態勢監査(非特権で実行)
  • solution.sh — AF_ALG モジュールをメモリから強制排除 + 物理モジュールファイルの存在を確認(要root)
  • restore.sh — AF_ALG モジュールを再ロードし、システムを solution.sh 実行前の状態に復元(要root)

チェック項目

使用方法

監査(非特権)

root@kitploit:~
./check.sh

封じ込め(要root)

root@kitploit:~
sudo ./solution.sh

復元(要root)

root@kitploit:~
sudo ./restore.sh

復元

restore.sh は、AF_ALG カーネルモジュール(af_alg、algif_rng、algif_aead、algif_skcipher、algif_hash)を再ロードすることで、solution.sh の効果を元に戻します。物理モジュールファイル(af_alg.ko.xz)がリネームまたは削除された場合、スクリプトは警告を表示し、モジュールのロードを試みる前に手動での復元を促します。

⚠️ 警告

AF_ALG をアクティブに使用している稼働中のシステム(IPsec、dm-crypt/LUKS、またはハードウェア暗号オフロードを使用するシステムなど)で solution.sh を実行すると、すべてのカーネル暗号操作が即座に停止します。 これには以下が含まれます:

  • IPsec VPN 接続と WireGuard
  • ディスク暗号化 (LUKS/dm-crypt)
  • カーネルバックアップの暗号化を使用する TLS 終端
  • algif_* ソケットインターフェースに依存するコンテナまたはアプリケーション

このスクリプトは AF_ALG カーネルモジュールを強制アンロードします。カーネル暗号操作は再起動まで失敗します。このスクリプトは、テストおよび分析目的のために、エアギャップ環境、非本番環境、または使い捨てシステムのみ を対象としています。本番環境や重要なインフラストラクチャでは実行しないでください。

要件

  • Linux(任意のディストリビューション)
  • check.sh は POSIX シェルと /proc//sys 以外の依存関係は不要
  • solution.sh は root 権限が必要
  • restore.sh は root 権限が必要
  • af_alg_block.so は /etc/ld.so.preload を介してインストールするために root 権限が必要

WSL2 に関する注意事項

このPOCは WSL2 でテストされています。以下の点に注意してください:

  • WSL2 は再起動(wsl --shutdown)時にすべての状態をリセットします。これには、solution.sh によるカーネルモジュールの状態変更、ファイルのリネーム、check.sh の結果、およびこのリポジトリ内のローカルファイルの変更が含まれます。
  • WSL2 で永続的なハードニングを行うには、.wslconfig、/etc/wsl.conf、または自動起動スクリプト(例: /etc/rc.local)を個別に設定することを検討してください。
  • WSL2 はテストおよび検証目的には適していますが、本番環境での使用や永続的なセキュリティ緩和には適していません。

緩和策

AF_ALG 攻撃ベクターを確実に閉じるには:

  1. カーネルモジュールをブラックリストに登録(最も信頼性が高い):

    root@kitploit:~
    echo "blacklist af_alg" | sudo tee /etc/modprobe.d/af_alg-blacklist.conf
    

    または、物理ファイルをリネーム:

    root@kitploit:~
    sudo mv /lib/modules/$(uname -r)/kernel/crypto/af_alg.ko.xz \
            /lib/modules/$(uname -r)/kernel/crypto/af_alg.ko.xz.bak
    
  2. sysctl で AF_ALG を無効化:

    root@kitploit:~
    sudo sysctl -w net.core.af_alg_disabled=1
    
  3. SELinux / AppArmor ポリシーで AF_ALG ソケット作成をブロック

  4. 非特権ユーザーネームスペースを無効化(コンテナ環境):

    root@kitploit:~
    sudo sysctl -w kernel.unprivileged_userns_clone=0
    
  5. LD_PRELOAD で socket() システムコールレベルで AF_ALG をブロック(WSL2 回避策):

    root@kitploit:~
    # システム全体にインストール(要root)
    echo /absolute/path/to/af_alg_block.so | sudo tee -a /etc/ld.so.preload
    

    プリビルドされた共有ライブラリ(af_alg_block.so)がリポジトリに含まれています。これは socket(2) をインターセプトし、ドメインが (38) の場合に を返します。他のすべてのソケット呼び出しは、変更なしで実際の実装に渡されます。

ライセンス

MIT

ツールをダウンロード
チェック検査内容重大度
プロセスコンテキスト現在のUID/GIDと実効ケーパビリティ低
AF_ALG 暗号ソケットsocket(AF_ALG, ...) によるカーネル暗号APIへのアクセス可能性高
kptr_restrictユーザースペースへのカーネルポインタ可視性中
dmesg_restrictカーネルリングバッファへのアクセス制限中
SELinuxEnforcing / Permissive / Disabled 状態中
/proc hidepid/proc が他のプロセスの情報を隠すかどうか低
AF_ALG
EAFNOSUPPORT

このアプローチは主に、シングルユーザーセマンティクスと再起動時のリセット動作により、システム全体の LD_PRELOAD が実用的である WSL2 を対象としています。従来のマルチユーザー Linux システムでは、代わりに方法1(モジュールのブラックリスト登録)を推奨します — /etc/ld.so.preload を介したインジェクションはシステム上のすべてのプロセスに影響を与え、AF_ALG 依存のサービスを静かに壊す可能性があります。

注: glibc が必要です(musl では不可)。/etc/ld.so.preload の変更には root 権限が必要です。削除は、ファイルから該当行を削除することで行います。