0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI Vulnerability Scanning Service について整理する

0
Posted at

001samune.png

はじめに

本記事では Vulnerability Scanning Service についてまとめていきます。


概要

Vulnerability Scanning Service (VSS) とは

コンピュートインスタンス及びコンテナイメージの脆弱性をチェックしてくれるサービスです。 無償で利用可能です。

サポートされているOSで稼働しているコンピュートインスタンス、及びサポートされているOSで作成されたコンテナイメージがチェック対象となります。

VSS にてチェックされる内容は大きく以下2つです。

  • TCP/UDP オープンポート
  • OS内 / イメージ内の脆弱性
  • コンピュートインスタンス:オープンポート 及び 脆弱性のチェックがされる
  • コンテナイメージ:脆弱性のチェックのみされる

VSS の概念

VSS の全体像は以下の通りです。

image.png

ターゲットに紐づけたスキャンレシピを基に脆弱性チェック(コンピュートインスタンスの場合はオープンポートもチェック)を行い、レポートを作成します。
ターゲットは コンパートメント単位 で指定し、指定したコンパートメント内リソース及びサブコンパートメント内リソースがスキャン対象となります。ただし、特定のリソースだけを対象とすることも可能です。

レポート結果は、Cloud Guard を有効化している場合、Cloud Guard からも確認することが可能です。
連携は自動でされるため特に設定する必要はなく、Cloud Guard構成ディテクタ・レシピ が有効になっていれば確認することが可能です。
ただし、VSS のターゲットで指定したコンパートメントが、Cloud Guard のターゲットで指定したコンパートメントと同一もしくはサブコンパートメントである必要があります。

脆弱性スキャンソースについて

脆弱性スキャンに利用される脆弱性ソースはOSによって異なります。
image.png

セキュリティ要件にもよりますが、公式からは Windows に関しては VSS のみに依存しないことを推奨しています。

WindowsのスキャンにはVALデータが含まれていないため、Windowsインスタンスが最新かつセキュアであることを確認するためにOracle Cloud Infrastructure Vulnerability Scanning Serviceのみに依存することはお薦めしません。

  • PCIには準拠していないのでご注意

Oracle Cloud Infrastructure Vulnerability Scanning Serviceは、脆弱性とエクスポージャを迅速に修正するのに役立ちますが、このサービスはPayment Card Industry (PCI)準拠のスキャナではありません。PCIコンプライアンス要件を満たすために脆弱性スキャン・サービスを使用しないでください。


使用方法(デモ)

検証構成

検証構成図は以下の通りです。
なお、以下リソースは作成済みで進めていきます。

  • VSS以外のリソース

architecture.drawio.png

検証では、以下実施していきます。

  • VSS 設定
  • 環境コードは以下 GitHub にあげてますので、よかったら覗いてみてください

スキャンレシピ作成

OCI コンソール左上のハンバーガーマークをクリックし、Identity & SecurityScan Recipe をクリックします。
図1.png

Create scan recipe をクリックします。
図2.png

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

図3.png
図4.png

ポイントだけ説明すると、
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 の脆弱性チェックが可能となります。

image.png

ScheduleAgent based scanning の実行間隔を指定します。
Public IP port scanning には紐づかないので注意。

  • 以上のことをまとめると、パブリックIPを持たないホストを対象とする場合は、Agent based scanning のみで十分です
  • パブリックIPを持つホストを対象とする場合は、Public IP port scanning も有効化すると良いでしょう

ターゲット作成

スキャンレシピを作成しただけではスキャンは実施されないので、ターゲットを作成していきます。
TargetsCreate target をクリックします。
図5.png

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

  • 今回は指定したコンパートメント及びサブコンパートメント内の全コンピュートインスタンスを対象としていますが、特定のコンピュートインスタンスのみとすることも可能です

レポート確認

ターゲットを新規作成して約 15 分後には初回レポートが作成されるので確認していきましょう。

  • こちら に記載した前提条件を満たしているのになかなかレポート結果が出力されない場合は、Oracle Cloud Agent を再起動してみてください

各インスタンス名のレポートが作成されています。詳細は割愛しますが、レポート内では発見された脆弱性等が確認できます。
図7.png

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

  • Agent based scanning でスキャンしたポートは、OS内で Listen しているポートとなります
  • Network Security Group とは一致しませんので注意

image.png
image.png

[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からも確認できるか見てみます。
ちゃんとアラートとして挙がっているのが確認できます。
image.png


おわりに

本記事では、OCI Vulnerability Scanning Service についてまとめました。
OSによって脆弱性ソースが限られていることが惜しいですが、無償ですし、導入も容易ですので積極的に導入していきましょう。


🌟この記事が誰かの役に立てば幸いです!
また、ご質問やフィードバックもお待ちしています。


参考資料

リファレンス

ブログ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?