Skip to main content

開発者のためのコンテナ脆弱性管理

著者
Headshot of Aner Mazur

Aner Mazur

Container Vulnerability Management For Developers small

2018年6月28日

0 分で読めます

本日Snykは、開発者がDocker化されたアプリケーションのセキュリティを完全に管理できる、コンテナ脆弱性管理ソリューションをリリースしました。

アプリケーションのパッケージ化と実行にコンテナが標準的に使われるようになり、アプリケーション自体だけでなくコンテナ全体をオープンソースの脆弱性から保護する必要性が高まっています。オープンソースの脆弱性から開発者のアプリケーションを守ることに取り組むSnykは、開発者ファーストの独自のアプローチでDockerコンテナにも対応します。このソリューションは、SDLC全体でさまざまな開発・ランタイムプラットフォームとシームレスに連携し、詳細なアプリケーション分析、自動脆弱性修正、そして業界をリードする脆弱性データベースを提供します。

オープンソースの脆弱性を簡単にスキャン

コンテナイメージは開発者が作成・管理するため、SnykはシンプルなCLIを開発しました。これにより、開発者はローカルでイメージをテストできるほか、CI/CDプロセスにイメージ検証を組み込めます。これはSnykの通常のCLIの一部として、すべてのEnterpriseのお客様に提供されています。最新のCLIバージョンにアップグレードするだけで利用できます。

npm install -g snyk 
snyk auth

Snykは、DEB、APK、RPMパッケージマネージャーでインストールされたすべてのオペレーティングシステムライブラリをスキャンし、正確なバージョンを特定して、最新の脆弱性データベースと照合します。ローカルのDockerイメージをテストするには、dockerフラグを使い、イメージ名を指定します。

docker pull ubuntu:artful-20170601 
snyk test ubuntu:artful-20170601 --docker --org=my-team

検出されたすべてのオペレーティングシステムの脆弱性が表示されます。

✗ High severity vulnerability found on glibc/libc-bin@2.24-9ubuntu2
- desc: Privilege Escalation
- info: https://snyk.io/vuln/SNYK-LINUX-GLIBC-129450
- from: ubuntu@artful-20170601 > glibc/libc-bin@2.24-9ubuntu2
- fixed in: glibc/libc-bin@2.26-0ubuntu2.1

✗ Medium severity vulnerability found on libgcrypt20@1.7.6-1
- desc: CVE-2018-0495
- info: https://snyk.io/vuln/SNYK-LINUX-LIBGCRYPT20-104368
- from: ubuntu@artful-20170601 > util-linux/bsdutils@1:2.29-1ubuntu3 > systemd/libsystemd0@233-6ubuntu3 > libgcrypt20@1.7.6-1
- fixed in: libgcrypt20@1.7.8-2ubuntu1.1

✗ High severity vulnerability found on perl/perl-base@5.24.1-2ubuntu1
- desc: Buffer Overflow
- info: https://snyk.io/vuln/SNYK-LINUX-PERL-106304
- from: ubuntu@artful-20170601 > meta-common-packages@meta > perl/perl-base@5.24.1-2ubuntu1
- fixed in: perl/perl-base@5.26.0-8ubuntu1.1

SnykのUIで新たに公開された脆弱性をプロジェクト単位で追跡するには、monitor コマンドを使います。CI環境でsnyk testとsnyk monitorの両方を使えば、デプロイパイプラインにセキュリティを組み込めます。

脆弱性を修正する

Snykの大きな特長の一つは、開発者が脆弱性を見つけるだけでなく、実際に修正できるよう支援することです。脆弱性を修正できるアップグレード版がライブラリに存在する場合、ユーザーがアップグレードすべき最小バージョンを提案します。

上記のsnyk testの実行結果の最初の項目を見ると、libc-bin.で権限昇格の脆弱性が見つかったことがわかります。

Snykの脆弱性ページへのリンクをクリックすると、この脆弱性を悪用したローカルの攻撃者がsetuidプログラムで任意のコードを実行し、root権限を取得できることがわかります。さらに、この脆弱性には複数のエクスプロイトが存在し、MetasploitやExploit-DBなどで公開されています。そのため、最優先で修正すべき脆弱性です。

glibcパッケージに影響する深刻度の高い権限昇格の脆弱性に関するセキュリティアドバイザリ。概要とCVEの詳細を表示。

ライブラリの利用状況を把握する

Snykはコンテナをアプリケーションのパッケージ化方法の一つと捉え、これまでと同様に開発者ファーストのアプローチで対応しています。それは、優れた開発者体験を提供するCLIだけでなく、アプリケーションの視点にも表れています。脆弱なコンポーネントが見つかったと伝えるだけで、開発者に「このライブラリはどうやって入ったのか?」を調べてもらうのではなく、脆弱なライブラリごとに依存関係の経路(CLIの結果に表示される「from」の行)を追跡します。これにより、アプリケーションの中で脆弱性がどのように使われているかを把握しやすくなります。これは悪用可能性の評価に重要であり、修正においてはさらに重要です。

今後、開発者が脆弱性を簡単に見つけて修正できるよう、コンテナセキュリティに関する機能をさらに追加していく予定です。開発者にとって使いやすく、修正を重視するSnykの姿勢は変わりません。どうぞご期待ください。

開発者ファーストのコンテナセキュリティ

Snykは、コンテナイメージとKubernetesワークロードの脆弱性を検出し、自動的に修正します。