OpenVAS(GSM)で始めるお手軽NW診断！AWS環境構築から脆弱性レポートまで

OSSの脆弱性スキャナである **OpenVAS** (Greenbone Security Manager、以下GSM) を使えば、手軽にネットワークの脆弱性診断を始められます。

今回は、AWSのAMIを利用して高速にOpenVAS(GSM)環境を構築し、実際にNW診断を行うまでの流れをステップ形式でご紹介します。

### 1. AWSのAMIを使って高速環境構築
OpenVAS(GSM)を動かすには、それなりのリソースが必要です。特にスキャン処理はCPUとメモリを消費するため、快適に動作させるには適切なインスタンスタイプを選ぶことが重要です。

**ポイント！ t2.xlarge以上にしないとまともに動かない**

経験上、AWS EC2インスタンスでOpenVAS(GSM)を快適に動作させるには、最低でも **t2.xlarge** 以上のスペックが必要です。これ以下のインスタンスタイプだと、スキャン処理が非常に遅かったり、途中で止まってしまったりする可能性があります。初期費用を抑えたい気持ちも分かりますが、快適な診断のためにはケチらない方が結果的に時間を節約できます。

**環境構築手順**

1. **AWS MarketplaceでOpenVAS(GSM)のAMIを検索:** AWS Marketplaceで「OpenVAS」や「Greenbone」と検索すると、Greenbone社が提供している公式のAMIが見つかります。
2. **AMIを選択してEC2インスタンスを作成:**  適切なAMIを選択し、「EC2で起動」をクリックします。
3. **インスタンスタイプの選択:**  **t2.xlarge** 以上を選択しましょう。もし、より大規模なネットワークを診断する場合は、さらに上位のインスタンスタイプも検討してください。
4. **ネットワーク設定:**  ここが非常に重要です。診断対象のネットワークとOpenVAS(GSM)が稼働するインスタンスが通信できるように設定する必要があります。
    - **サブネット:** 診断対象のネットワークと同じVPC内のサブネット、または診断対象ネットワークにルーティングが設定されているサブネットを選択します。
    - **セキュリティグループ (SG) を修正:** デフォルトのセキュリティグループでは必要な通信が許可されていない可能性があります。以下の設定を追加・修正してください。
        - **インバウンドルール:**
            - **HTTPS (443):** ブラウザからOpenVAS(GSM)のWebインターフェースにアクセスするために必要です。ソースはご自身のIPアドレスや、アクセスを許可したいIPアドレス範囲に設定します。

            ```
            タイプ: HTTPS
            ポート範囲: 443
            ソース: xxx.xxx.xxx.xxx/32 (例)
            ```
            - **SSH (22):**  インスタンスにSSHでログインしてメンテナンス作業などを行う場合に必要です。ソースはご自身のIPアドレスなどに限定することを強く推奨します。

            ```
            タイプ: SSH
            ポート範囲: 22
            ソース: yyy.yyy.yyy.yyy/32 (例)
            ```

            - **必要に応じてICMP (ping):**  疎通確認のために許可しておくと便利です。

            ```
            タイプ: すべてのICMP - IPv4
            ソース: 0.0.0.0/0 (例 - 必要に応じて制限)
            ```

        - **アウトバウンドルール:**  診断対象のネットワークへの通信を許可する必要があります。宛先を診断対象のIPアドレス範囲や、`0.0.0.0/0` (全て許可 - 推奨しません) など、環境に合わせて設定します。

            ```
            宛先: zzz.zzz.zzz.zzz/24 (例 - 診断対象ネットワーク)
            ```


5. **ストレージの設定:**  デフォルトのストレージ容量で足りない場合は、必要に応じて拡張します。診断結果のレポートや設定情報などが保存されます。
6. **キーペアの設定:**  SSHでログインするためのキーペアを選択または作成します。
7. **インスタンスの起動:**  設定を確認してインスタンスを起動します。

### 2. ブラウザからアクセス
インスタンスが起動したら、OpenVAS(GSM)のWebインターフェースにアクセスします。

1. **EC2インスタンスのパブリックIPアドレスを確認:** AWSコンソールから、作成したEC2インスタンスのパブリックIPv4アドレスを確認します。
2. **ブラウザでアクセス:**  `https://<EC2インスタンスのパブリックIPアドレス>` にアクセスします。

    **補足:**  初回アクセス時は、証明書に関する警告が表示される場合があります。これは自己署名証明書を使用しているためです。セキュリティ上のリスクを理解した上で、例外を追加して進んでください。

3. **ログイン:**  初期ログイン情報はAMIのドキュメントに記載されていることが多いです。一般的には、ユーザー名 `admin` と、インスタンスIDなどが初期パスワードとして設定されている場合があります。見つからない場合は、AWSコンソールのインスタンス詳細からシステムログを確認するか、SSHでログインして初期パスワードのリセットを行う必要があるかもしれません。

### 3. 対象のIPを設定してScan
OpenVAS(GSM)にログインしたら、いよいよ診断対象のネットワークやホストを設定してスキャンを実行します。

1. **"Scans" -> "Tasks" を選択:** 左側のメニューから `Scans` を選択し、さらに `Tasks` をクリックします。
2. **新しいタスクの作成:**  右上の `New Task` ボタンをクリックします。
3. **タスクの設定:**
    - **Name:**  スキャンの名前を分かりやすく設定します（例: 社内ネットワーク診断、Webサーバー脆弱性スキャンなど）。
    - **Target:**  診断対象を設定します。
        - **New Target:**  新しいターゲットを作成する場合はこちらを選択します。
            - **Name:** ターゲットの名前を設定します。
            - **Hosts:**  診断対象のIPアドレス、IPアドレス範囲、またはホスト名をカンマ区切りで入力します。

              ```
              192.168.1.100
              192.168.1.0/24
              example.com
              ```

    - **Scan Config:**  スキャンの設定を選択します。
        - `Full and fast`:  一般的なスキャン設定です。
        - `Discovery`:  ホストの発見に特化したスキャンです。
        - **その他の設定:**  必要に応じて、より詳細な設定（ポートスキャン範囲、脆弱性テストの種類など）を選択できます。
4. **"Save" をクリックしてタスクを保存:** 設定内容を確認し、`Save` ボタンをクリックします。
5. **スキャンの開始:**  作成したタスクの右側にある再生ボタン (▶) をクリックしてスキャンを開始します。

### 4. やばいところがレポートされる
スキャンが完了すると、診断結果がレポートとして表示されます。

1. **"Scans" -> "Tasks" を選択:**  再度 `Scans` -> `Tasks` を選択します。
2. **スキャン結果の確認:**  完了したタスクの行をクリックすると、詳細なレポートが表示されます。
3. **レポートの分析:**
    - **Vulnerabilities:**  検出された脆弱性の一覧が表示されます。
    - **Severity:**  脆弱性の重要度 (`High`, `Medium`, `Low`, `Log`) が表示されます。**特に "High" の脆弱性は早急な対応が必要です！**
    - **QIDs:**  脆弱性に関する詳細情報へのリンク (Greenbone Community Feed) が表示されます。クリックすると、脆弱性の詳細な説明、影響、対策などが確認できます。
    - **レポートのエクスポート:**  PDF、CSV、XMLなどの形式でレポートをエクスポートできます。

**レポートの見方と対策のヒント**

* **Critical/High な脆弱性:**  すぐに調査し、対応策を検討・実施する必要があります。
* **Medium な脆弱性:**  放置するとリスクが高まる可能性があるため、計画的に対応を進めましょう。
* **Low な脆弱性:**  直ちに影響があるわけではありませんが、セキュリティ強化のために対応を検討する価値はあります。
* **False Positive (誤検知):**  まれに誤検知が含まれることがあります。QIDの詳細情報を確認し、本当に脆弱性があるのかどうかを確認しましょう。

**重要な注意点**

* **OpenVAS(GSM)はあくまで脆弱性スキャナです。**  検出された脆弱性が必ずしも悪用可能であるとは限りません。
* **検出された脆弱性への対応は、ご自身の責任において行ってください。**
* **診断対象ネットワークの管理者権限がない場合、または許可を得ていない場合は、スキャンを実行しないでください。** 法的な問題に発展する可能性があります。

### まとめ

AWSのAMIを利用したOpenVAS(GSM)環境構築からNW診断、そしてレポート確認までの一連の流れをご紹介しました。OpenVAS(GSM)は強力なOSSの脆弱性スキャナであり、ネットワークのセキュリティ状況を把握する上で非常に役立ちます。

今回の記事を参考に、ぜひOpenVAS(GSM)を活用して、より安全なネットワーク環境の構築を目指してください。

**今後のステップ**

* より詳細なスキャン設定の理解
* 認証が必要なシステムのスキャン方法
* スケジュールスキャンの設定
* レポートのカスタマイズ
* 他のセキュリティツールとの連携

**補足:**

* OpenVAS(GSM)のバージョンによって画面構成や操作方法が異なる場合があります。
* より高度な診断を行うためには、OpenVAS(GSM)の機能を深く理解する必要があります。
* 商用環境での利用を検討している場合は、Greenbone社の有償版製品 (Greenbone Security Manager) の導入も検討ください。より高度な機能やサポートが提供されます。