この記事ではKali LinuxとGemini CLIを使用してOSレベルの脆弱性を発見、分析するまでの一連の流れを実行する方法についてまとめています。
導入
セキュリティ診断等で広く使われるOS「Kali Linux」の最新版リポジトリに、Gemini CLIが公式に追加されました。
これにより、自然言語の指示で脆弱性スキャンや情報収集といったセキュリティタスクのコマンドシーケンスを自動生成・実行することができるようになります。
今回はこの最新版 Kali Linux に Gemini CLI をインストールし、ユーザーが直接コマンドを実行することなくプロンプトのみで脆弱性のスキャンから攻撃シナリオの提示までの一連の流れを体験してみようと思います。
事前準備
今回の検証では意図的に脆弱な環境(例:DVWA https://github.com/digininja/DVWA)を用意し、その環境に対しスキャンを実施することで脆弱性管理のデモを行っていきます。
(※注:今回の検証では、スキャン対象のDVWAをKali Linuxインスタンス上のDockerコンテナで起動し、localhostのポート80で公開しています)
AWS Marketplace AMIからKali Linuxを選択し、インスタンスを起動します。
その後SSHにて接続し、gemini-cliをインストールしていきます。
sudo apt install gemini-cli(注意: インストールとは別に、事前にGemini APIキーを取得し、環境変数 GEMINI_API_KEY などに設定しておく必要があります)
https://ai.google.dev/gemini-api/docs/api-key

実践:Gemini CLIによるスキャン手順
gemini-cliのインストールが終了したら起動してみましょう。
以下のプロンプトを入力して、Nmapスキャンを実行させます。
localhostのポート80に対してNmapスキャンを実行してください。サービスバージョン検出とデフォルトの脆弱性スクリプトを実行し、完全な出力をXML形式で'nmap_scan_results.xml'という名前のファイルに保存してください。
スキャンが完了したら、次のプロンプトで結果を分析させます。
ファイル@nmap_scan_results.xmlを読み込み、結果の要約を提供してください。開いているポート、実行中のサービスとバージョン、Nmapスクリプトによって発見された潜在的な脆弱性を特定してください。
実践:想定される攻撃シナリオの提示
nmapスキャンで得られた情報を元に想定される攻撃シナリオを提示してもらいます。次のプロンプトを入力します。
これまでの情報に基づき、悪用が懸念されるCVEの提示と攻撃者が取りうる完全な攻撃経路を説明してください。しばらく待つと次のような結果が返ってきました。


このように具体的な攻撃経路と注意すべき箇所について詳細に解説してくれます。
セキュリティにそこまで詳しくない方でもわかりやすい分析となっていると思います。
EX:拡張機能を使用したコードの静的分析
今回はNmapスキャンの結果に基づくOSレベルの脆弱性に対しアプローチしましたが、コードをGitリポジトリやローカルファイルとして配置することで、コード自体の脆弱性検査も行うことができます。
以下コマンドでGemini CLIのセキュリティ拡張機能をインストールします。
gemini-cli extensions install https://github.com/google-gemini/gemini-cli-security
インストール完了後Gemini CLIを起動し、入力ウィンドウに/security:analyzeコマンド(と対象ファイルパス)を入力してください。
ファイルのスキャン結果を表示してくれます。
(以下は意図的にSQLインジェクションとXSSの脆弱性を含むコードを検査させた結果です)

このように、コードの脆弱性についても分析することが出来ます。Nmap等のスキャン結果と組み合わせることでより精密な知見を得られるかと思います。
まとめ
今回は、Kali Linux と Gemini CLI を用いて、脆弱性のスキャンから分析までの一連のフローを紹介しました。
この手法により、従来は専門的なコマンド操作やそれに伴う結果の解釈が必要だった、
以下のようなプロセスを自然言語の指示のみで非常にスムーズに実行できることが確認できました。
- Gemini CLI を介した Nmap スキャンの実行
- スキャン結果の自動要約と分析
- 分析結果に基づく攻撃経路や現構成の懸念点の提示
多彩なツールを備えた Kali Linux と Gemini CLI のような AI ツールを併用することは、セキュリティオペレーションにかかる工数や専門知識のギャップを大幅に削減できる可能性を秘めています。
一方で、こうした技術革新は防御側だけのものではありません。今後は攻撃者も LLM を駆使し、より高度で迅速な攻撃を仕掛けてくることが予想されます。
この新しい現実を念頭に置き、システムを防御する側も 先進技術を積極的に取り入れ、より効率的かつ高度な防御体制を学んでいく必要があると言えるでしょう。