本日、私たちはClairという新しいプロジェクトをオープンソースで公開しました。 Clair は、コンテナをレイヤーごとに検査し、既知のセキュリティ欠陥を検出する API 主導の分析エンジンです。 Clairを利用することで、コンテナの脆弱性を継続的に監視するサービスを簡単に構築することができます。 CoreOSは、世界のインフラのセキュリティを向上させるツールは、すべてのユーザーとベンダーが利用できるべきだと考え、このプロジェクトをオープンソースにしました。 それと同じ目的で、Clair プロジェクトへのフィードバックや貢献を歓迎します。
Clair は、Quay Security Scanning のベータ版の基盤です。これは、Quay で現在稼働中の新機能で、そこに格納されている数百万のコンテナのセキュリティ脆弱性を検査します。 Quay のユーザーは、本日ログインすると、リポジトリにある潜在的に脆弱なコンテナのリストを含む Security Scanning 情報をダッシュボードに表示することができます。 Quay Security Scanning beta announcement に、Quay ユーザー向けの詳細があります。
Why Create Clair: セキュリティ向上のため
ソフトウェアの世界では、脆弱性は常に存在します。 優れたセキュリティの実践とは、災難に備えること、つまり、安全でないパッケージを識別し、それらを迅速に更新する準備をすることです。 Clair は、コンテナー内に存在する可能性のある安全でないパッケージを特定するために設計されています。
システムがどのように脆弱であるかを理解することは、特に異種環境や動的なセットアップを扱う場合、手間のかかる作業となります。 目標は、あらゆる開発者がコンテナー インフラストラクチャに関するインテリジェンスを得ることができるようにすることです。 さらに、チームは、脆弱性が発生したときに、行動を起こして修正を適用する権限を与えられます。
How Clair Works
Clair は各コンテナ層をスキャンし、Common Vulnerabilities and Exposures データベース (CVE) および Red Hat、Ubuntu、および Debian の類似データベースに基づいて、脅威である可能性がある脆弱性の通知を提供します。 レイヤーは多くのコンテナー間で共有できるため、パッケージのインベントリーを構築し、それを既知の CVE と照合するためにイントロスペクションが不可欠です。
脆弱性の自動検出により、開発者および運用チーム全体の認識およびベスト セキュリティ慣行を高め、脆弱性へのパッチおよび対処の行動を促進することができます。 新しい脆弱性が発表されると、Clair は再スキャンすることなく、既存のどのレイヤーが脆弱であるかをすぐに把握し、通知を送信します。
たとえば、CVE-2014-0160、別名 “Heartbleed” は 18 ヶ月以上前から知られていましたが、Quay Scanning ではユーザーが Quay に保管している Docker イメージの 80% にとって依然として脅威であることがわかりました。 CoreOS Linux が OS 層で Heartbleed のパッチを適用する自動更新ツールを備えているように、私たちはこのツールがコンテナー層のセキュリティを向上させ、CoreOS をコンテナーを実行する最も安全な場所にする一助となることを期待しています。 たとえば、Heartbleed は、脆弱な OpenSSL パッケージがインストールされ、使用されている場合にのみ脅威として問題になります。 Clair はそのようなレベルの分析には適しておらず、チームは必要に応じてより詳細な分析を行う必要があります。 また、この講演のスライドもあります。
これは始まりに過ぎず、ますますの発展を期待しています。 Quay で試してみたり、コンテナ環境で有効にして、あなたの考えを聞かせてください。
Clair の開発チームは、11 月 16 ~ 17 日にバルセロナで開催される DockerCon EU に参加します。 Clair または Quay Security Scanning のデモを見るために、ぜひ Quay ブースに立ち寄ってください。