BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 脆弱性スキャナTrivyがDockerおよびHarbour内の統合オプションとして利用可能に

脆弱性スキャナTrivyがDockerおよびHarbour内の統合オプションとして利用可能に

原文(投稿日:2020/04/26)へのリンク

Aqua Securityは、オープンソースの脆弱性スキャナであるTrivyが、多くのプラットフォームで統合オプションとして利用できるようになったことを発表した。Trivyは、オペレーティングシステム内の脆弱性と、多くの一般的なアプリケーションの依存関係をスキャンできる。

今回の発表により、TrivyがデフォルトのスキャナとしてHarborに含まれるようになった。Harbourはオープンソースのコンテナーイメージレジストリであり、CNCFとのインキュベーションプロジェクトである。Trivyは、DockerMirantis Docker Enterpriseにおけるデプロイメントのための統合スキャンオプションとしても利用できるようになった。

Trivyは、AlpineRHELCentOSDebianUbuntuSUSEAmazon Linuxなど、多くのLinuxオペレーティングシステムの脆弱性を検出できる。Aquaによると、Trivyは特にAlpine LinuxとRHEL/CentOSで高い精度で脆弱性を検出できる。Aqua SecurityのOSSエンジニアであるTeppei Fukuda氏は、多数の脆弱性スキャナによってAlpine Linuxで検出された脆弱性の分析のうち、Trivyにより最もうまくいったのもを共有した。

Comparison of vulnerabilities detected within Alpine Linux by a number of vulnerability scanners

いくつかの脆弱性スキャナによってAlpine Linux内で検出された脆弱性の比較 (クレジット: Trivy)

 

Trivyはまた、コンテナ内の次のファイルを自動的に検出し、それらを使用して、指定されたアプリケーションの依存関係内の脆弱性をスキャンする。

  • gemfile.lock
  • pipfile.lock
  • composer.lock
  • package-lock.json
  • yarn.lock
  • cargo.lock

Trivyの実行は、コマンドラインから実行することも、CIジョブに統合することもできる。コマンドラインから、trivy <image-name>のようにイメージ名を指定することでこれを実現できる。Trivyはイメージをスキャンし、検出された脆弱性を出力する。

Output of image scan showing detected vulnerabilities

検出された脆弱性を示すイメージスキャンの出力 (クレジット: Trivy)

 

TrivyをTravis CI、CircleCI、GitLab CIなどのCIツールに統合することが可能である。脆弱性が見つかった場合、ジョブ実行を失敗させるようにTrivyを設定できる。実行を失敗しないように、フラグ--exit-code 0を指定できる。たとえば、Travis CIと統合するには、travis.ymlファイルを次のように更新する必要がある。

$ cat .travis.yml
services:
  - docker

env:
  global:
    - COMMIT=${TRAVIS_COMMIT::8}

before_install:
  - docker build -t trivy-ci-test:${COMMIT} .
  - export VERSION=$(curl --silent "https://api.github.com/repos/aquasecurity/trivy/releases/latest" | grep '"tag_name":' | sed -E 's/.*"v([^"]+)".*/\1/')
  - wget https://github.com/aquasecurity/trivy/releases/download/v${VERSION}/trivy_${VERSION}_Linux-64bit.tar.gz
  - tar zxvf trivy_${VERSION}_Linux-64bit.tar.gz
script:
  - ./trivy --exit-code 0 --severity HIGH --no-progress trivy-ci-test:${COMMIT}
  - ./trivy --exit-code 1 --severity CRITICAL --no-progress trivy-ci-test:${COMMIT}
cache:
  directories:
    - $HOME/.cache/trivy

Kenna Securityの主任セキュリティエンジニアであるJerry Gamblin氏は、上位のDockerファイル内に「ファイルの20%以上に、ハイリスクと見なされる脆弱性が少なくとも1つ含まれている」こと、CVEの中央値は37であることがわかった。この情報の共有に役立つように、Gamblin氏はツールVulnerableContainers.orgを作成した。このツールは、最も人気のある上位Docker Hubコンテナーのトップ1000を取得し、Trivyを使用して脆弱性をスキャンする。

Trivyは、オープンソースクラウドネイティブプロジェクトのAquaポートフォリオの一部である。ここには、kube-benchkube-huntertraceeCloudSploitkubectl-who-canが含まれる。TrivyはApache 2ライセンスの基で使用でき、GitHubからダウンロードできる。

この記事に星をつける

おすすめ度
スタイル

BT