Guardimeshとは?
Guardimeshは、KubernetesおよびOpenShift向けのランタイムコンテナマルウェアスキャンプラットフォームです。クラスター内のすべてのノードにDaemonSetとしてデプロイされ、アプリケーションコードを変更することなく、マルウェア、不審なバイナリ、ファイルレスペイロード、および不正な変更を継続的にスキャンします。
なぜランタイムスキャンなのか?
従来のコンテナセキュリティツールは、ビルド時またはレジストリ内でイメージをスキャンします。これにより、デプロイ前に既知の脅威を検出できますが、以下のものは見逃されます:
- イメージのプル後にマルウェアを挿入する サプライチェーン攻撃
- メモリ内にのみ存在する ファイルレスマルウェア (
memfd_createペイロード) - 元のイメ ージには存在しなかった実行可能ファイルが出現する ランタイムドリフト
- ディスクから自身を削除した後、
/proc/[pid]/exeから実行される 削除済みバイナリ攻撃 - 実行中のプロセスに読み込まれた、削除済みの
.soファイルによる 共有ライブラリインジェクション
Guardimeshは、実行中のクラスター内でこれらすべてをランタイムで検出します。
仕組み
- デプロイ — 単一のHelmコマンドでGuardimeshオペレーターをインストールすると、すべてのノードにスキャナーDaemonSetがデプロイされます。
- スキャン — 新しいコンテナは作成時に自動的にスキャンされます。スケジュールされた再スキャンにより、長時間実行されるワークロードをカバーします。オプションのリアルタイムファイル監視(fanotify)により、ファイルが書き込まれた時点で脅威を検出します。
- 検出 — ClamAVシグネチャ(公式、サードパーティ、およびカスタム)、ドリフト検出、memfdスキャン、削除済みバイナリスキャン、および難読化分析が連携して機能します。
- アラート — 検出結果はWebコンソールに表示され、Webhook、Slack、PagerDuty、Jira、またはServiceNowを介して通知をトリガーします。
検出機能
| 機能 | 説明 |
|---|---|
| ClamAVシグネチャスキャン | 公式およびサードパーティのシグネチャデータベースを使用して既知のマルウェアを検出します |
| ランタイムupperdirスキャン | コンテナの書き込み可能レイヤー(overlayファイルシステム)の新規または変更されたファイルをスキャンします |
| 実行可能ドリフト検出 | 元のコンテナイメージには存在しなかった実行可能ファイルを特定します |
| 削除済みバイナリスキャン | ディスクからバイナリが削除されている実行中のプロセスを見つけます |
| memfdファイルレスペイロードスキャン | memfd_create を介して作成された、メモリ内のみの実行可能ファイルを検出します |
| 削除済み共有ライブラリスキャン | ファイルシステムから削除された、読み込まれた .so ファイルを特定します |
| 難読化検出 | パック、暗号化、または難読化されたバイナリのMLベースの分析(YARA + エントロピー + ランダムフォレスト) |
| リアルタイムファイル監視 | Linux fanotifyを介したコンテナ書き込み可能レイヤーの継続的な監視(Startup層以上) |
サポート対象プラットフォーム
Kubernetesディストリビューション
- Kubernetes 1.24+
- Red Hat OpenShift 4.10+
- Google Kubernetes Engine (GKE)
- Amazon EKS
- Azure AKS
コンテナランタイム
- Docker (containerd)
- CRI-O
- Podman
アーキテクチャ
- AMD64 (x86_64)
- ARM64 (aarch64)
デプロイメントモデル
Guardimeshは、特権DaemonSetとしてクラスター内で完全に実行されます。各ノードには、以下を含むスキャナーポッドが配置されます:
| コンテナ | 役割 |
|---|---|
| guardimesh-scanner | 新しいポッドの監視、スキャンのトリガー、結 果の送信 |
| guardimesh-antivirus | シグネチャベースの検出用のClamAVデーモン |
| guardimesh-inspector | システムおよびコンテナのメタデータの収集 |
| guardimesh-puller | シグネチャデータベースを最新に保つ |
| guardimesh-obfuscation-scanner | 難読化技術のバイナリ分析 |
スキャン結果はTLS経由でGuardimesh SaaSバックエンドに送信され、BigQueryに保存され、Webコンソールと通知統合を通じて利用可能になります。
エアギャップ環境向けに、エンタープライズのオンプレミスデプロイメントオプションでは、Webコンソール、API、データベースを含むスタック全体を、外部接続なしでクラスター内で実行できます。
コンプライアンス対応
Guardimeshは以下のコンプライアンスをサポートするように設計されています:
- ISMAP — NISTおよびISOに準拠し、日本の政府および公共部門のクラウドサービスプロバイダーの要件に対応します
- FedRAMP High — ノードレベルのスキャンにより、NIST SI-3の「エントリおよびエグジットポイント」の要件を満たします
- DoD CMMC — イングレス/エグレスポイントの制御と悪意のあるコード保護のデプロイメントを義務付けています
- NIST SP 800-53 Rev. 5 — SI-3、SI-4、SI-7、AU-2、SC-8、SC-13、および関連するコントロールをカバーします
- NIST SP 800-190 — コンテナ固有のセキュリティ推奨事項に対処します
- SOC 2 Type II — 継続的な監視の証拠と監査証跡
- ISO 27001 — マルウェア対策、ログ記録、および監視コントロール
- PCI DSS v4.0 — ネットワークエントリポイントでの「検出と対応」機能を備えた高度なマルウェア保護メカニズム(要件5)
- CIS v8 — エンドユーザーに到達する前のマルウェア保護を規定(セーフガード9.7)
オンプレミスのEnterpriseオペレーターは、完全に承認境界内にデプロイされ、クラスターからデータが出ることはありません。FIPS 140-3検証済みの暗号化がデフォルトで有効になっています(CMVP証明書#5247)。すべてのイメージはRed Hat UBI9上に構築されています。コントロールのマッピングと評価者向けのガイダンスについては、連邦政府向けデプロイメントガイドを参照してください。
クラスター外に送信されるデータ
スキャンのメタデータのみがGuardimeshバックエンドに送信されます:
- ポッド名、名前空間、コンテナID、イメージ名
- スキャン結果(シグネチャ名、ファイルパス、タイムスタンプ)
- ノードおよびクラスターの識別子
アプリケーションデータ、環境変数、シークレット、またはファイルの内容が送信されることはありません。 スキャナーは、ディスク上のファイルを読み取って、同じノード上のローカルClamAVデーモンにUnixソケット経由で渡すだけです。ファイルの内容がノードを離れることはありません。