Tsunami Security Scanner 調査レポート
1. 基本情報
- ツール名: Tsunami Security Scanner
- ツールの読み方: ツナミ / ツナミ・セキュリティ・スキャナー
- 開発元: Google
- 公式サイト: https://google.github.io/tsunami-security-scanner/
- 関連リンク:
- カテゴリ: セキュリティ/解析
- 概要: Tsunamiは、高確度で深刻度の高い脆弱性を検出するための拡張可能なプラグインシステムを備えた汎用ネットワークセキュリティスキャナです。リモートコード実行(RCE)など、影響の大きいセキュリティ問題の特定に焦点を当てています。
2. 目的と主な利用シーン
- 解決する課題: 本番環境や開発環境に存在する、影響が深刻なネットワーク脆弱性を誤検知なく確実に発見すること。
- 想定利用者: セキュリティエンジニア、ペネトレーションテスター、DevSecOpsチーム。
- 利用シーン:
- 定期的なインフラストラクチャのセキュリティ診断。
- CI/CDパイプラインへの組み込みによる、継続的な脆弱性スキャン。
- 大規模ネットワーク上の公開エンドポイントに対するセキュリティ監査。
3. 主要機能
- Reconnaissance (偵察機能): nmap等の既存ツールを活用し、対象ホストの開いているポート、プロトコル、ネットワークサービスを特定する。
- Fingerprinting (フィンガープリンティング): ポートスキャン結果に基づき、稼働しているソフトウェアやそのバージョンを特定する。
- Vulnerability Verification (脆弱性検証): フィンガープリンティングで特定されたサービスに合致する検証プラグインを選択・実行し、誤検知なしで脆弱性を検証する。
- 拡張可能なプラグインシステム: Java等を用いてカスタムの脆弱性検出プラグイン(Vulnerability Detectors)を開発・追加可能。
- 高確度スキャン: リモートファイルインクルード、認証バイパス、弱い認証情報、OSコマンドインジェクション等、確実にエクスプロイト可能な致命的な脆弱性の発見に特化。
4. 開始手順・セットアップ
- 前提条件:
- Docker
- nmap (7.80以上)
- ncrack (0.7以上)
-
インストール/導入: リポジトリから提供されるスクリプトを使用してスキャンを開始可能。
# Tsunamiを実行するQuick startコマンドの例 bash -c "$(curl -sfL https://raw.githubusercontent.com/google/tsunami-security-scanner/master/quick_start.sh)" - 初期設定: 特別な認証は不要。ローカル環境等でスキャン対象(例: 脆弱なコンテナ)を用意し、Tsunamiのスクリプトからスキャンを実行する。
- クイックスタート: スキャン対象としてJupyter Notebookの脆弱なインスタンスを立ち上げ、Tsunamiを実行して脆弱性を検出するチュートリアルが提供されている。
5. 特徴・強み (Pros)
- 誤検知の最小化: 影響が大きい脆弱性(特にリモートコード実行につながるもの)を高い確度で特定する設計。
- プラグインによる拡張性: 独自の検出ロジックをプラグインとして容易に追加・共有できる。
- Googleの知見と支援: Googleがメンテナンスしており、Tsunami Patch Rewards Program (PRP)を通じてコミュニティからのプラグイン提供を奨励している。
6. 弱み・注意点 (Cons)
- 特定カテゴリの非対応: XSSやCSRFなど、フルチェーンでのRCEに直接結びつきにくい脆弱性は原則として検出対象外(Rejected)となっている。
- 開発中(Pre-alpha)のステータス: プロジェクトは活発に開発中であり、将来的に主要なAPIの変更が予想される。
- 日本語対応: 公式ドキュメントやインターフェースは英語主体であり、日本語のサポートは限定的。
7. 料金プラン
| プラン名 | 料金 | 主な特徴 |
|---|---|---|
| オープンソース (OSS) | 無料 | Apache License 2.0の下で全機能が利用可能 |
- 課金体系: 完全無料のオープンソースツール。
- 無料トライアル: 該当なし。
8. 導入実績・事例
- 導入企業: 公開事例なし。ただし、セキュリティ研究者や各社のDevSecOpsチームでの利用が報告されている。
- 導入事例: 大規模ネットワークのエンドポイント監査や、脆弱性診断の内製化ツールとして活用されるケースが多い。
- 対象業界: テクノロジー、金融、その他セキュリティを重視するあらゆる業界。
9. サポート体制
- ドキュメント: GitHub Pages上に包括的なドキュメント、プラグイン開発ガイド、チュートリアルが提供されている。
- コミュニティ: GitHubのIssueやPull Requestを通じた活発なやり取りが存在する。
- 公式サポート: オープンソースプロジェクトのため、商用レベルのSLAを伴う公式サポートは提供されていない。
10. エコシステムと連携
10.1 API・外部サービス連携
- API: プラグインシステムにより、JavaベースのAPIを通じて拡張可能。
- 外部サービス連携: nmapやncrackといった標準的なセキュリティツールと連携して動作する。
10.2 技術スタックとの相性
| 技術スタック | 相性 | メリット・推奨理由 | 懸念点・注意点 |
|---|---|---|---|
| Docker / コンテナ | ◎ | 公式にDockerイメージが提供されており、デプロイが容易 | 特になし |
| Java | ◎ | プラグイン開発の主要言語であり、豊富な機能を利用可能 | 特になし |
| CI/CDパイプライン | ◯ | コマンドライン実行が基本のため、各種CIツールへの組み込みが可能 | 実行時間やネットワーク構成の調整が必要 |
11. セキュリティとコンプライアンス
- 認証: オープンソースのスキャナツールのため、ツール自体にユーザー認証機能は持たない。
- データ管理: スキャン結果データはローカルまたは実行環境に保存され、SaaSのように外部に送信されることはない。
- 準拠規格: 公式サイトで特定のコンプライアンス認証(SOC2等)の取得は公開されていない。
12. 操作性 (UI/UX) と学習コスト
- UI/UX: コマンドラインインターフェース(CLI)主体。出力されるレポートをパースして利用することが前提。
- 学習コスト: 基本的なスキャン実行は容易だが、独自のプラグインをJavaで開発するには、TsunamiのAPIアーキテクチャに対する理解が必要。
13. ベストプラクティス
- 効果的な活用法 (Modern Practices):
- 公式提供のDockerイメージを使用し、常に最新のビルド環境でスキャンを実行する。
- GitHubから直接依存関係を取得し、プラグインのメンテナンスを容易にする。
- 陥りやすい罠 (Antipatterns):
- Mavenリリースに依存すること。現在はDockerイメージやGitHubへの直接依存が推奨されている。
- XSSやCSRFの検出を期待してTsunamiを使用すること(これらは対象外であるため、別のツールを併用すべき)。
14. ユーザーの声(レビュー分析)
- 調査対象: G2、Capterra、ITreviewにレビューの登録なし。技術ブログやYouTubeのチュートリアルから収集。
- 総合評価: 不明
- ポジティブな評価:
- 「Dockerを使った導入が非常に簡単で、すぐに脆弱性スキャンを始められる。」
- 「致命的な脆弱性(RCEなど)に絞ってスキャンするため、誤検知によるノイズが少ない。」
- ネガティブな評価 / 改善要望:
- 「ドキュメントの一部(Pythonプラグインの開発方法など)がまだ未整備。」
- 「APIの変更が頻繁にあるため、カスタムプラグインのメンテナンスにコストがかかる。」
- 特徴的なユースケース:
- 外部に公開された自社インフラの迅速な初期監査。
15. 直近半年のアップデート情報
- 2026-02-19: v0.2.0 をリリース。
- 2025-10-16: Tsunami Patch Rewards Program (PRP)のアップデート。ペイアウトシステムの簡素化や、Go言語でのフィンガープリンティング機能の書き直し(実験中)を発表。
(出典: GitHub Releases / 公式ブログ)
16. 類似ツールとの比較
16.1 機能比較表 (星取表)
| 機能カテゴリ | 機能項目 | 本ツール | Trivy | OSV-Scanner |
|---|---|---|---|---|
| 基本機能 | ネットワークスキャン | ◎ 対象ホストのポートとサービスを広範にスキャン |
◯ コンテナやクラウド環境のスキャンが主 |
× 依存関係の脆弱性解析に特化 |
| カテゴリ特定 | 依存関係スキャン | × ネットワークスキャンに特化 |
◎ 多数のOSや言語パッケージに対応 |
◎ OSVデータベースを活用した高精度な依存関係スキャン |
| 拡張性 | カスタムプラグイン | ◎ Java等で独自の検出器を追加可能 |
◯ Regoベースのカスタムポリシーを記述可能 |
△ 特定のフォーマットに準拠する必要あり |
| 対象の脆弱性 | RCEなどの致命的脅威 | ◎ 誤検知の少ない高確度検出に特化 |
◯ CVEベースの広範な検出 |
◯ 既知の脆弱性データベースに基づく |
16.2 詳細比較
| ツール名 | 特徴 | 強み | 弱み | 選択肢となるケース |
|---|---|---|---|---|
| 本ツール | 高確度な汎用ネットワークセキュリティスキャナ | RCE等、エクスプロイト可能な致命的脆弱性を誤検知なく検出。拡張性が高い。 | XSS等の特定脆弱性は対象外。APIが変更される可能性がある。 | ネットワーク上に公開されたホストの致命的な脆弱性を自動で発見・検証したい場合。 |
| Trivy | コンテナ、リポジトリ、クラウド環境の包括的スキャナ | コンテナイメージやIaC設定など、多岐にわたる対象を高速かつ詳細にスキャン可能。 | 動的なネットワークスキャンやペネトレーションテスト的な機能は弱い。 | CI/CDパイプライン内でコンテナやコードの静的な脆弱性を検出したい場合。 |
| OSV-Scanner | オープンソース脆弱性(OSV)データベースを利用したスキャナ | パッケージの依存関係ツリーを解析し、既知の脆弱性を正確に特定する。 | ネットワークレベルの動的スキャン機能は持たない。 | 開発中のプロジェクトが依存するライブラリの脆弱性を管理したい場合。 |
17. 総評
- 総合的な評価: Tsunami Security Scannerは、Googleの知見を活かして開発された非常に強力なオープンソースの脆弱性スキャナです。特に、誤検知を極力減らし、リモートコード実行(RCE)のような致命的な影響をもたらす脆弱性に絞って高精度なスキャンを行うアプローチは実践的です。現在は開発の初期段階にありますが、拡張可能なプラグインシステムにより、今後の発展が期待されます。
- 推奨されるチームやプロジェクト:
- パブリッククラウド上に多数のエンドポイントを抱え、定期的な監査を自動化したい運用チーム。
- 独自の脆弱性検出ロジックを統合したいセキュリティ診断チーム。
- 選択時のポイント: コンテナイメージやコードの静的解析(依存関係スキャン)にはTrivyやOSV-Scannerが適していますが、稼働中のシステムに対する動的なネットワークレベルの致命的脆弱性スキャンが必要な場合には、Tsunamiが強力な選択肢となります。