はじめに

アプリケーション開発において、脆弱性管理は開発から運用まで、あらゆるフェーズで求められます。
Cloud Native Application Protection Platform (CNAPP) ソリューションである Sysdig Secure (以下 Sysdig) は、環境やニーズに合わせて複数の脆弱性スキャン機能を提供しています。本記事では、Sysdig の3種類の脆弱性スキャン機能を紹介します。

Sysdig が提供する 3 つのスキャン方式

① パイプラインでのスキャン

GitHub Actions や AWS CodeBuild などの CI/CD パイプライン内で Sysdig CLI を実行し、イメージをスキャンします。
脆弱性を含んだイメージがデプロイされる前にブロックすることが可能です。

② レジストリスキャン

Amazon ECR などのコンテナレジストリに保管されているイメージをスキャンします。
開発者が意識することなく、ベースイメージの脆弱性や、プログラムが利用しているライブラリなどの脆弱性を可視化できます。

③ ランタイムスキャン

エージェントによるスキャン

ワークロード内のエージェントにより、実行中のアプリケーションのほか、稼働中の OS やコンテナの脆弱性もスキャンします。

この方式の最大のメリットは、実際に使用されている (In-use の) パッケージに絞った脆弱性の優先順位付けが可能な点です。これによって、開発者が意図せず含んでしまった未使用のライブラリや、実行されていない依存関係などの、ノイズとなる脆弱性情報を除き、実際に実行環境に影響を与える緊急性の高いリスクに集中して対応できます。

エージェントレススキャン


エージェントを導入せずに、クラウドの API を介してスナップショットやイメージのスキャンを実施する方式です。稼働中のリソースへの影響がなく、導入負荷が最小限に抑えられます。

IaaS のエージェントレススキャン

インスタンスのスナップショットを介して、外部からスキャンを実施します。EC2 などの仮想マシンを対象とします。

CaaS のエージェントレススキャン

ECS などのコンテナ環境を対象に、実行イメージをスキャンします。

FaaS のエージェントレススキャン

AWS Lambdaなどのサーバーレス環境のパッケージをスキャンします。エージェント型では対応が困難なサーバーレス環境の脆弱性も可視化できます。

スキャン方式の比較

方式 主な対象 特徴
パイプラインでのスキャン コンテナイメージ デプロイ前に脆弱性を検出し、早期に対応できる
レジストリスキャン 各種クラウドのコンテナレジストリ レジストリ全体の安全性を保つ
ランタイムスキャン(エージェントによるスキャン) ホスト、k8s ノード、ホスト上のコンテナ 実行中のリスクを正確に把握する (In-useパッケージに絞った優先順位付け)
ランタイムスキャン(エージェントレススキャン) EC2、ECS、Lambda 導入負荷を抑え、エージェントレスで広範囲をカバー

スキャン方式の選び方

これらの方式は組み合わせて実行することが可能です。一度スキャンして安全だったイメージも、後日脆弱性が検出される可能性があるため、開発フェーズでの早期スキャンと合わせて、継続的なスキャンも重要です。

段階的な導入アプローチとして、まずは導入が容易で稼働中の環境に影響を与えない エージェントレススキャンで現状の全体像を把握し、その上で、開発プロセスにスキャンを組み込む、なども考えられます。

エージェントの導入が可能な場合は、エージェントの利用を強くお勧めします。Sysdig の基盤技術である Falco の強力なランタイム脅威検知機能と統合して利用できるため、セキュリティをさらに強化できます。また、In-use 検出による正確な優先順位付けは、運用負荷の軽減にも直結します。

スキャン可能なクラウドおよびサービス

AWS が最も先行して全機能に対応していますが、 Google Cloud や Azure でも主要な機能の対応が進んでいます。

脆弱性スキャン機能がサポートする具体的なコンテナレジストリやクラウドサービスについては、Sysdigの公式ドキュメントをご確認ください。
https://docs.sysdig.com/en/sysdig-secure/vulnerability-management/

脆弱性検出対象

Sysdig は、主要な OS やプログラミング言語をカバーしています。

  • OS: Amazon Linux, Ubuntu, RHEL, Debian, Alpine Linux などの Linux 主要ディストリビューション、Windows Server など
  • プログラミング言語のライブラリ: Java (JAR/WAR/EAR), Python, Go, JavaScript (NPM), Ruby (Gems), Rust (Cargo), .NET (NuGet), PHP (Composer) など

詳細は下記をご参照ください。
https://docs.sysdig.com/en/sysdig-secure/vulnerability-feed/

SBOM 生成について

3つの方式共通で、パッケージやライブラリ情報をまとめた Software Bill of Materials (SBOM) が作成されます。これにより、単に脆弱性を検出するだけでなく、自社の環境にどのバージョンのどのようなパッケージ・ライブラリが存在するかを把握することも可能です。

おわりに

Sysdig を活用することで、開発から運用まで隙のない脆弱性管理が可能になります。

アイレットでは、Sysdig 運用サービス として、導入から運用保守までトータルに支援しています。セキュリティ基盤の構築や、運用面に不安がある方は、ぜひお気軽にご相談ください。