はじめに
本記事では Vulnerability Scanning Service についてまとめていきます。
概要
Vulnerability Scanning Service (VSS) とは
コンピュートインスタンス及びコンテナイメージの脆弱性をチェックしてくれるサービスです。 無償で利用可能です。
サポートされているOSで稼働しているコンピュートインスタンス、及びサポートされているOSで作成されたコンテナイメージがチェック対象となります。
VSS にてチェックされる内容は大きく以下2つです。
- TCP/UDP オープンポート
- OS内 / イメージ内の脆弱性
- コンピュートインスタンス:オープンポート 及び 脆弱性のチェックがされる
- コンテナイメージ:脆弱性のチェックのみされる
VSS の概念
VSS の全体像は以下の通りです。
ターゲットに紐づけたスキャンレシピを基に脆弱性チェック(コンピュートインスタンスの場合はオープンポートもチェック)を行い、レポートを作成します。
ターゲットは コンパートメント単位 で指定し、指定したコンパートメント内リソース及びサブコンパートメント内リソースがスキャン対象となります。ただし、特定のリソースだけを対象とすることも可能です。
レポート結果は、Cloud Guard を有効化している場合、Cloud Guard からも確認することが可能です。
連携は自動でされるため特に設定する必要はなく、Cloud Guard の 構成ディテクタ・レシピ が有効になっていれば確認することが可能です。
ただし、VSS のターゲットで指定したコンパートメントが、Cloud Guard のターゲットで指定したコンパートメントと同一もしくはサブコンパートメントである必要があります。
脆弱性スキャンソースについて
脆弱性スキャンに利用される脆弱性ソースはOSによって異なります。

セキュリティ要件にもよりますが、公式からは Windows に関しては VSS のみに依存しないことを推奨しています。
WindowsのスキャンにはVALデータが含まれていないため、Windowsインスタンスが最新かつセキュアであることを確認するためにOracle Cloud Infrastructure Vulnerability Scanning Serviceのみに依存することはお薦めしません。
- PCIには準拠していないのでご注意
Oracle Cloud Infrastructure Vulnerability Scanning Serviceは、脆弱性とエクスポージャを迅速に修正するのに役立ちますが、このサービスはPayment Card Industry (PCI)準拠のスキャナではありません。PCIコンプライアンス要件を満たすために脆弱性スキャン・サービスを使用しないでください。
使用方法(デモ)
検証構成
検証構成図は以下の通りです。
なお、以下リソースは作成済みで進めていきます。
- VSS以外のリソース
検証では、以下実施していきます。
- VSS 設定
- 環境コードは以下 GitHub にあげてますので、よかったら覗いてみてください
スキャンレシピ作成
OCI コンソール左上のハンバーガーマークをクリックし、Identity & Security → Scan Recipe をクリックします。

各項目を入力し、Save をクリックします。
ポイントだけ説明すると、
Type は、Compute or Container image から選択が可能で、今回はコンピュートインスタンスを対象とするので Compute としています。
Type = Compute とした場合のスキャンレシピは、Public IP port scanning or Agent based scanning のどちらか一方を有効化しなければスキャンが実行されません。
Public IP port scanning は、コンピュートインスタンスが持つパブリックIPアドレスに対してポートスキャンを実施するかどうかの設定です。軽量 or 標準 から選択が可能でスキャン対象のポートが異なります。
この場合、ネットワーク・マッパーによりパブリックIPアドレスに対するポートスキャンを実施するため、Oracle Cloud Agent も IAMポリシーによる権限付与も不要です。
ただし、Agent based scanning と違い定期スキャン設定がないため、不定期での実施となります。
Agent based scanning は、Oracle Cloud Agent を利用して、ポートスキャン 及び 脆弱性チェック を実施するかどうかの設定です。本設定を利用する場合は以下3つの前提条件が必要となります。
- コンピュートインスタンス内に Oracle Cloud Agent がインストールされており、Vulnerability Scanning Plugin が稼働していること
- Oracle Services Network への疎通性があること
- VSS に対してIAMポリシーによる必要な権限が付与されていること
CIS benchmark scanning を有効にした場合、こちら に記載した通り、サポートされているOSであれば、CISに関しても追加でチェックされます。無効の場合は、Windows は NVD、Linux は NVD 及び OVAL を脆弱性ソースとしてチェックされます。
File Scan は今回無効としていますが、有効化し、フォルダパスを指定することで log4j 及び spring4shell の脆弱性チェックが可能となります。
Schedule は Agent based scanning の実行間隔を指定します。
Public IP port scanning には紐づかないので注意。
- 以上のことをまとめると、パブリックIPを持たないホストを対象とする場合は、
Agent based scanningのみで十分です - パブリックIPを持つホストを対象とする場合は、
Public IP port scanningも有効化すると良いでしょう
ターゲット作成
スキャンレシピを作成しただけではスキャンは実施されないので、ターゲットを作成していきます。
Targets → Create target をクリックします。

各項目を入力し、Create target をクリックします。

- 今回は指定したコンパートメント及びサブコンパートメント内の全コンピュートインスタンスを対象としていますが、特定のコンピュートインスタンスのみとすることも可能です
レポート確認
ターゲットを新規作成して約 15 分後には初回レポートが作成されるので確認していきましょう。
- こちら に記載した前提条件を満たしているのになかなかレポート結果が出力されない場合は、Oracle Cloud Agent を再起動してみてください
各インスタンス名のレポートが作成されています。詳細は割愛しますが、レポート内では発見された脆弱性等が確認できます。

オープンポートに関しても、各インスタンス名のレポートが作成されています。

-
Agent based scanningでスキャンしたポートは、OS内で Listen しているポートとなります -
Network Security Groupとは一致しませんので注意
[root@oracle-instance ~]# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN
tcp 0 0 0.0.0.0:111 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:44321 0.0.0.0:* LISTEN
tcp 0 0 127.0.0.1:4330 0.0.0.0:* LISTEN
tcp 0 0 10.0.2.30:22 10.0.1.227:18358 ESTABLISHED
tcp6 0 0 :::22 :::* LISTEN
tcp6 0 0 :::111 :::* LISTEN
tcp6 0 0 ::1:4330 :::* LISTEN
tcp6 0 0 ::1:44321 :::* LISTEN
udp 0 0 127.0.0.1:323 0.0.0.0:*
udp 0 0 10.0.2.30:68 169.254.169.254:67 ESTABLISHED
udp 0 0 0.0.0.0:111 0.0.0.0:*
udp6 0 0 ::1:323 :::*
udp6 0 0 :::111 :::*
raw6 0 0 :::58 :::* 7
Cloud Guard 確認
事前に有効化したCloud Guardからも確認できるか見てみます。
ちゃんとアラートとして挙がっているのが確認できます。

おわりに
本記事では、OCI Vulnerability Scanning Service についてまとめました。
OSによって脆弱性ソースが限られていることが惜しいですが、無償ですし、導入も容易ですので積極的に導入していきましょう。
🌟この記事が誰かの役に立てば幸いです!
また、ご質問やフィードバックもお待ちしています。
参考資料
リファレンス
- 脆弱性スキャン - Oracle Cloud Infrastructureドキュメント
- 脆弱性スキャンの保護 - Oracle Cloud Infrastructureドキュメント
- ホストを保護するためのOracle Cloud Infrastructureスキャンの有効化








