Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
提出
ツールエクスプロイトブログ
提出

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

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

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

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense- — CISAが指定したアクティブなLinuxカーネルCVE(CVE-2025-39964、CVE-2026-53266、CVE-2025-39682)を、モダンeBPF、モジュール無効化、containerdユーザー名前空間によって無効化する。 | Kitploit
ツール/GitHubGitHub/mc493/linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense-
防御ツールコンテナセキュリティ脆弱性分析DevSecOpsインシデントレスポンス
GitHubmc493/linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense-

linux-kernel-zero-day-mitigation-zero-downtime-kernel-defense-

CISAが指定したアクティブなLinuxカーネルCVE(CVE-2025-39964、CVE-2026-53266、CVE-2025-39682)を、モダンeBPF、モジュール無効化、containerdユーザー名前空間によって無効化する。

人気

すべて見る →

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

すべてのツールを探索

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

すべてのツールを見る →
共有
リポジトリを見る
61日前未レビュー

ゼロダウンタイムのLinuxカーネルゼロデイ防御:eBPFテレメトリ、モジュール無効化、ユーザー名前空間による多層補完コントロール

サイバーセキュリティ・インフラストラクチャ・セキュリティ庁(CISA)が重大なLinuxカーネル脆弱性を**Known Exploited Vulnerabilities(KEV)**カタログに追加すると、インフラチームとSREリードにとって緊急の運用上の時計が動き始めます:

アップストリームパッチのギャップ:
ゼロデイが実際に悪用可能となってから、エンタープライズディストリビューション(Ubuntu HWE、Debian、RHEL)からテスト済みの署名付きバイナリカーネルパッケージが利用可能になるまでの期間は、通常7〜21日に及びます。

本番のKubernetesクラスタでは、ベンダーパッケージをただ待つことはシステムを能動的な悪用に晒すことになり、時期尚早なカーネルアップグレードや緊急再起動は運用停止のリスクを伴います。

このケーススタディでは、ホストの再起動を必要とせずに、3つの同時進行するLinuxカーネル脆弱性(CVE-2025-39964、CVE-2026-53266、CVE-2025-39682)をユーザー空間、カーネルローダー、ランタイム層にわたって管理するために設計された多層防御の補完コントロールフレームワークを文書化します。


脅威マトリクスと防御分類

運用上の正確性を確保するため、防御はそのセキュリティ特性(Prevention、Runtime Detection、Containment)によって厳密に分類されます:

脆弱性サブシステム攻撃メカニズム深刻度防御モード実装メカニズム
CVE-2026-53266Netfilter Bridging (ebtables)ブリッジARPテーブル書き換えルールにおける算術オーバーフローHigh (Memory Corruption)Prevention (Disarmament)RAMからの退避(modprobe -r)+ローダー上書き(/bin/true)
CVE-2025-39964Crypto Netlink (AF_ALG)netlink暗号ソケット割り当てにおける整数切り捨てHigh (LPE / Breakout)Detection (eBPF) / GatingモダンeBPF(sys_enter_socket、domain 38)+SECCOMP
CVE-2025-39682Kernel TLS (kTLS)TCP ULPにおけるゼロ長レコード処理の欠陥High (Kernel Panic / Heap)Detection (eBPF)モダンeBPF(sys_enter_setsockopt、TCP_ULP 31 & SOL_TLS 282)

多層防御アーキテクチャ

root@kitploit:~
flowchart TD
    subgraph Ring3 ["User Space / Container Pod (Ring 3)"]
        Workload["Container Workload / Untrusted Process"]
        Probe["Exploit Vectors: socket(AF_ALG) or setsockopt(TCP_ULP)"]
        Workload --> Probe
    end

    subgraph Ring0 ["Linux Kernel (Ring 0)"]
        SyscallTrap["Syscall Trap (sysenter)"]
        Probe --> SyscallTrap
        
        Tracepoint["Kernel Tracepoint: sys_enter"]
        SyscallTrap --> Tracepoint
        
        subgraph eBPFEngine ["Modern eBPF Detection (CO-RE Ring Buffer)"]
            Filter{"Syscall Gating:\n- domain == 38 (AF_ALG)\n- SOL_TCP + TCP_ULP\n- SOL_TLS (282)"}
            Tracepoint --> Filter
        end
        
        Disarmed["Modprobe Hook: /bin/true\n(ebtables evicted & blocked)"]
        UserNS["containerd v2.2.4 User Namespace Remap\nContainer UID 0 -> Host UID 4050714624\n(Bounded Credential Containment)"]
        
        Filter -- "Match (<1ms)" --> AlertRingBuf["Ring Buffer Emission"]
        Filter -- "Pass" --> KernelExec["Normal Execution Path"]
        KernelExec --> UserNS
    end

    subgraph SecurityPipeline ["Reactive Event Pipeline"]
        Falcosidekick["Falco Daemon & Sidekick (:2801)"]
        Forwarder["Event Forwarder Daemon (:9876)"]
        NATSBus["NATS Security Bus (sovereign.security.alert)"]
        
        AlertRingBuf --> Falcosidekick
        Falcosidekick --> Forwarder
        Forwarder --> NATSBus
    end

    subgraph Enforcement ["Automated Remediation & Audit"]
        Remediator["Dynamic Bouncer (CrowdSec / nftables Drop)"]
        AuditLedger["Cryptographically Tamper-Evident Hash Chain\n(SHA-256 Chaining & Cross-Node Replication)"]
        
        NATSBus --> Remediator
        NATSBus --> AuditLedger
    end

    classDef danger fill:#ffdddd,stroke:#ff0000,stroke-width:2px;
    classDef safe fill:#ddffdd,stroke:#00aa00,stroke-width:2px;
    classDef arch fill:#f0f4f8,stroke:#0066cc,stroke-width:1px;
    class Probe danger;
    class Disarmed,UserNS,AuditLedger safe;

レイヤー1:カーネルモジュールの無効化(予防)

1. 運用上のニュアンス:アクティブメモリ vs. 将来のプロービング

/etc/modprobe.d/の上書きに関するよくある落とし穴は、install /bin/trueがその後のモジュールロード試行のみをブロックするという点です。ブリッジネットワーキング(Docker、レガシーCNI)がホストのライフサイクルの早い段階でebtablesをロードしていた場合、脆弱なコードはカーネルRAM内でアクティブなまま残ります。

ゼロダウンタイムの無効化には2段階の手順が必要です:

  1. 退避: 現在カーネルメモリに常駐しているモジュールをアンロードする。
  2. 封鎖: /bin/trueローダー上書きを設定して再ロードを防ぐ。

2. 実装

root@kitploit:~
# Step A: Evict active ebtables modules from running kernel RAM
sudo modprobe -r ebtable_nat ebtable_filter ebtable_broute ebt_snat ebt_dnat ebt_arpreply ebtables 2>/dev/null || true

# Step B: Seal the loader via /etc/modprobe.d/blacklist-ebtables.conf
sudo tee /etc/modprobe.d/blacklist-ebtables.conf << 'EOF'
# Mitigation for CVE-2026-53266: Netfilter ARP table corruption
install ebtables /bin/true
install ebtable_nat /bin/true
install ebtable_broute /bin/true
install ebtable_filter /bin/true
install ebt_snat /bin/true
install ebt_dnat /bin/true
install ebt_arpreply /bin/true

blacklist ebtables
blacklist ebtable_nat
blacklist ebt_snat
blacklist ebt_arpreply
EOF

3. 検証

root@kitploit:~
# Test explicit loading:
$ sudo modprobe ebt_snat
$ lsmod | grep ebt
# Output: (Empty - 0 modules resident in kernel memory)

レイヤー2:eBPFシステムコールテレメトリと振る舞いゲーティング(検知)

1. 検知 vs. インライン防止

  • Falco eBPF(非同期EDR): モダンeBPFリングバッファを介してsys_enterをフックし、SIEM/NATSへのサブミリ秒のアラートを提供します。カーネル制御フローを変更せずにゼロオーバーヘッドの可視性に最適化されています。
  • インラインブロッキング(同期LSM): 同期的な拒否(-EACCES)を必要とする環境では、eBPF LSMプローブまたはSECCOMPプロファイルが実行前にシステムコールをドロップできます。

2. 修正されたkTLSシステムコールメカニクス(2段階ゲーティング)

TCP接続でKernel TLSを有効化するには、2つの異なる段階があります:

  1. フェーズ1(アタッチメント): setsockopt(fd, SOL_TCP=6, TCP_ULP=31, "tls", 4)がUpper Layer Protocolをアタッチします。
  2. フェーズ2(設定): setsockopt(fd, SOL_TLS=282, TLS_TX/TLS_RX, ...)が暗号鍵を初期化します。

SOL_TLS (282)のみでフィルタリングすると、ULPアタッチメントフェーズを見逃します。このルールは両方のフェーズを評価します:

root@kitploit:~
# falco-rules-kernel-cve.yaml
customRules:
  rules-kernel-cve.yaml: |-
    - rule: Detect AF_ALG Crypto Socket Creation (CVE-2025-39964)
      desc: Detects creation of Crypto API Netlink sockets used in local privilege escalation
      condition: evt.type = socket and evt.rawarg.domain = 38
      output: "Active Exploit Probe: AF_ALG socket requested (domain=%evt.rawarg.domain type=%evt.rawarg.type user=%user.name proc=%proc.name container=%container.id)"
      priority: WARNING
      tags: [cve, zero-day, cve-2025-39964, crypto, container_escape]

    - rule: Detect Container Kernel TLS Activation (CVE-2025-39682)
      desc: Detects container workloads attaching kTLS TCP_ULP or configuring SOL_TLS
      condition: container.id != host and evt.type = setsockopt and 
                 ((evt.rawarg.level = 6 and evt.rawarg.optname = 31) or (evt.rawarg.level = 282))
      output: "Container kTLS Activation Detected (level=%evt.rawarg.level optname=%evt.rawarg.optname user=%user.name proc=%proc.name container=%container.name)"
      priority: WARNING
      tags: [cve, zero-day, cve-2025-39682, ktls, tcp_ulp]

3. 本番環境の安定性:Linux 7.0 ABIフィルタ不変条件

モダンなLinuxカーネル(Linux 7.0+ HWE)では、Falcoのユーザー空間インスペクタエンジン(sinsp)がopenatパラメータでレジスタ解析の不一致に遭遇します(sinsp_exception: could not parse param 2 (name))。

クラッシュループなしでDaemonSetの継続的な安定性を確保するには:

root@kitploit:~
falco:
  base_syscalls:
    custom_set: ['!openat']

4.(オプション)SECCOMPによる同期インラインブロッキング

コンテナ内のワークロードがAF_ALGを呼び出すことを厳密に禁止する必要がある場合は、SCMP_ACT_ERRNOを返すSECCOMPプロファイルを適用します:

root@kitploit:~
{
  "defaultAction": "SCMP_ACT_ALLOW",
  "syscalls": [
    {
      "names": ["socket"],
      "action": "SCMP_ACT_ERRNO",
      "args": [
        {
          "index": 0,
          "value": 38,
          "op": "SCMP_CMP_EQ"
        }
      ]
    }
  ]
}

レイヤー3:ユーザー名前空間の分離(封じ込め)

1. 境界付き昇格 vs. 任意のRing-0書き込み

  • 境界付き特権昇格: ほとんどのNetlink/ソケットLPEは、カーネルロジックの欠陥を悪用してプロセス資格情報構造体(current->cred)内でrootを取得します。
  • UserNS防御: Kubernetes CRI v1.30(hostUsers: false)を備えたcontainerd v2.2.4では、コンテナのroot(UID 0)が非特権のホスト範囲(ホストUID 4050714624)にマッピングされます。境界付きの資格情報昇格は、非root名前空間内に制約されたままです。
  • 現実的な境界: 完全な任意のring-0書き込み脆弱性(カーネル命令ポインタやページテーブルの直接制御)は、ユーザー名前空間の境界をバイパスする可能性があります。そのような脅威にはmicroVMまたはハイパーバイザレベルの分離(例:Firecracker、Kata)が必要です。

2. ワークロード設定

root@kitploit:~
apiVersion: v1
kind: Pod
metadata:
  name: hardened-workload
spec:
  runtimeClassName: runc
  hostUsers: false  # Remaps container root away from host root
  containers:
  - name: app
    image: app:latest

3. ホスト検証

root@kitploit:~
$ cat /proc/$(pgrep -f hardened-workload)/uid_map
         0 4050714624      65536

レイヤー4:暗号学的に改ざん検知可能な監査チェーン

1. 改ざん検知 vs. ハードウェアWORM

侵害されたホスト上のローカルログファイルは、攻撃者が無制限のring-0実行を獲得した場合、理論的には変更される可能性があります。真の不変性には、書き込み一回型の物理メディアまたは暗号学的分散のいずれかが必要です:

  1. 逐次SHA-256チェーン: 各レコードは前のレコードのハッシュにコミットします: $$\text{Hash}n = \mathcal{H}\left(n \parallel \text{Timestamp} \parallel \text{Topic} \parallel \text{Payload} \parallel \text{Hash}{n-1}\right)$$
  2. クロスノードレプリケーション: ログはNATSを介してストリーミングされ、独立したアテステーションノード(192.0.2.52)に複製されるため、単一の侵害されたホストによる一方的なログ書き換えを防ぎます。

2. チェーンレコードのサンプル

root@kitploit:~
{
  "index": 386200,
  "timestamp": "2026-09-22T08:58:36.564478+00:00",
  "topic": "sovereign.security.alert",
  "prev_hash": "b2f6ef1e467cf8402da283f58e470ee64993a479a957a0914ec8c351be7fa83d",
  "hash": "cece8f9bd8839d3753232dd7e504c538a0f58fe0bcf2e260fbefb7d27e77b8cf",
  "data": {
    "output": "Active Exploit Probe: AF_ALG socket requested (domain=38 type=5 user=root ...)",
    "priority": "Warning",
    "rule": "Detect AF_ALG Crypto Socket Creation (CVE-2025-39964)"
  }
}

実証的検証とテレメトリ

検証は、非特権テストコンテナ内で合成AF_ALGソケット割り当てを使用して実施されました:

root@kitploit:~
import socket
# Requests AF_ALG Netlink family (domain 38, SOCK_SEQPACKET 5)
s = socket.socket(38, socket.SOCK_SEQPACKET, 0)

イベントライフサイクル:

  1. カーネルシステムコール: socket(38, 5, 0)がsys_enter_socketを呼び出します。
  2. eBPF評価(< 1ms): モダンeBPFトレースポイントがdomain == 38を評価し、イベントをリングバッファに送信します。
  3. パイプライン送出(2ms): FalcoがFalcosidekick webhook(:9876)にアラートを発行します。
  4. NATS配信(4ms): Forwarderデーモンがイベントをsovereign.security.alertにブロードキャストします。
  5. 台帳封鎖(12ms): 監査デーモンがレコードをSHA-256暗号チェーンに追加します。
  6. 暗号学的検証:
    root@kitploit:~
    $ python3 fsm_audit_vault.py --verify
    # Verified 386,213 records. Zero tampering detected.
    

リポジトリ構造とデプロイ可能な成果物

このリポジトリには、即時デプロイのための本番対応設定が含まれています:

root@kitploit:~
|-- etc/
|   \-- modprobe.d/
|       \-- blacklist-ebtables.conf     # Modprobe loader override
|-- helm/
|   |-- falco-rules-kernel-cve.yaml     # Falco modern eBPF rules (CO-RE)
|   \-- README.md                       # One-line Helm deployment guide
|-- k8s/
|   \-- pod-userns-hardened.yaml        # containerd v2.2.4 UserNS manifest
|-- scripts/
|   |-- evict-and-harden.sh             # Two-step module eviction & sealing
|   \-- verify-mitigation.sh            # Automated verification & CI test suite
|-- seccomp/
|   \-- seccomp-block-af-alg.json       # Inline SECCOMP blocking profile (EACCES)
|-- vault/
|   \-- audit_vault.py                  # Cryptographic SHA-256 hash-chain engine
|-- README.md
\-- LICENSE

SREおよびシステムアーキテクト向けの要点

  1. 補完コントロールがパッチギャップを埋める: アクティブなカーネルゼロデイが悪用可能になった場合、アップストリームディストロパッケージの検証を待つ間、ローダーとランタイムのコントロールを直ちにデプロイします。
  2. アクティブモジュールの退避は必須: Modprobe上書きは将来のローダー要求にのみ影響します。常にlsmodで実行中のメモリを検証し、常駐モジュールを明示的に退避(modprobe -r)してください。
  3. kTLSの2段階ゲーティング: kTLSのセキュリティルールは、TCP_ULPアタッチメント(SOL_TCP=6、optname=31)とオプション初期化(SOL_TLS=282)の両方を評価する必要があります。
  4. ユーザー名前空間が特権昇格を制限する: Kubernetesワークロードをcontainerdユーザー名前空間(hostUsers: false)と組み合わせることで、コンテナレベルの特権昇格がホストring-0 rootを安易に取得することを防ぎます。
  5. EDRをインライン強制から分離する: 低オーバーヘッドのクラスタ可観測性には非同期eBPF(Falco)を使用し、ゼロマイクロ秒の終了が必須の場合は同期LSM / SECCOMPを使用します。

Sovereign Systems & Security Architecture Teamによって維持されています。
Linux HWE & Kubernetes CRI v1.30(containerd v2.2+)で本番テスト済み。

ツールをダウンロード