Help us understand the problem. What is going on with this article?

CoreOS/Clairのスキャン処理追ってみる(CentOS編)その1

More than 3 years have passed since last update.

この記事は、Vuls Advent Calendar 2016の6日目の記事です。

こんにちは、サウナおじさんです。

5日目の記事\( ´・ω・)/°\(・ω・`)/バルス!!!ではイカサマを晒されて、あたしゃびっくりしたねぇ。タイトルからして、さてはネタ決まってねぇなこいつ、と思っていたけど、予感は的中するもんだねぇ。でも面白かったからまあいいや。

さて、Vulsアドベントカレンダーでは今後も何回か投稿する予定だけど、あたしのテーマは前からやろうとしていてなかなかできていなかった、他の脆弱性スキャナはどーやってスキャンしてんのさ?を追っていくよ。
今回は一発目としてcoreos/clairのCentOSのスキャン処理を追ってみるね。

Clairは静的スキャン、Vulsは動的スキャン

CoreOS/ClairはCoreOS社が開発している、コンテナイメージを対象とした静的な脆弱性スキャナ。静的な脆弱性スキャナなので稼働中のコンテナではなくイメージをスキャンするのが特徴。詳細はREADMEを参照してね。

なお、VulsもDockerコンテナの脆弱性スキャンは可能だが、clairと異なり動的なスキャナである。稼働中のDockerコンテナが対象であり、Docker HostにSSH接続し、docker execを使って脆弱性をスキャンする。詳細はVuls READMEを参照してね。

clairの一般的なユースケースは手動でのスキャンとContainer Registory統合の2パターン。詳細はREADME参照してね。

さて、今回はclairがどうやってCentOSの脆弱性をスキャンしているのか、どの脆弱性データソースを用いているのか、を追ってみるね。

脆弱性情報データソース

Clairは検知したCVE-IDをNVDやディストリビューションが提供するセキュリティ情報を用いてレポーティングしているよ。Vulsと似ているね。

RedHatのサイトにはCVRFとOVALという2種類のデータフォーマットで脆弱性情報が提供されているね。

あたしゃCVRFは初耳だよ。

ん?

mateyo.jpeg
ちょ待てよ

良く見たらReHat Customer Portal Security Dataに使えそうなデータたくさんあるやんかいさ

ClairのCentOSスキャンの内部処理おっていこうと思ったけど、あたしゃ気が変わっちゃったよ。また今度でいいや。
だってVulsの検知精度、レポーティング精度向上に使えそうなお宝データ見つけちゃったんだもの。あたしゃラッキーだねぇ。

CVE to date, CVE to severity, CVE to CVSS mapping

CVE-IDがキーで、以下の情報がある
- 公開日
- 深刻度
- CVSS V2 socre
- CVSS V2 vector
- CVSS V3 score
- CVSS V3 vector

この情報マジでぱねぇ

今まではNVD上にCVE-IDは採番されているけど情報がない、でもRedHatやUbuntuのサポートサイトなどには脆弱性情報がある、という脆弱性はVuls上では「?」として表示していたけど、この情報使えばNVDに情報ないものでもCVSS Scoreとか出せるじゃん。「?」に関してはVulsを使って脆弱性情報を精査していて気づいたことに詳しくかいてあるよ。

あと、CVSS v3はNVDのXML, JVNのXMLには情報がないので出せなかったんだけど、これ使えばいけるやん。

RHSA to CVE and CPE mapping

VulsはCPEを指定すれば、OSパッケージマネージャ管理外のソフトウェア、たとえばコンパイルしていれたものやプログラミング言語のライブラリ、ルータなどのN/W機器のOSなどの脆弱性も検知出来るんだけど詳細はREADME参照、現状だと、CPE-CVEの情報源として、NVDの脆弱性データベースのみを使っているんだよ。NVDの情報と合わせてこれも使えば、さらに精度高まるかも。

というわけで

Clairの内部追うぜとやる気満々でしたが、お宝見つけちゃってそれどころじゃなくなっちゃったよ。この情報使えば、現状「?」で表示されているものが少なくなると思うよ。近い将来実装するから楽しみにしていてね!じゃ、またね!

Vuls Advent Calendar 7日目はhogehogehugahugaさんです。よろしくお願いします。

future
ITを武器とした課題解決型のコンサルティングサービスを提供します
http://future-architect.github.io/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away