脆弱性情報 (CVE : Common Vulnerabilities and Exposures) の対応状況を確認する手順をまとめておこうと思う.
CVE データベース
CVE 情報は全て以下にまとまっている.
全ての CVE にはユニークな ID が振られていて,例えば,環境変数 HTTP_PROXY
を悪用して外部サイトと通信できてしまう可能性がある "httpoxy" なら CVE-2016-5385
だし,ImageMagick で任意のスクリプトが実行されてしまう可能性がある "ImageTragick" なら CVE-2016-3714
となる."Shellshock" もそうだけど,どの脆弱性もカッコイイ別名(厨ニ)が付いてて,エンジニア同士の会話だとバズワード的に認識できて良いと思う.
対応状況を確認する
今回は CentOS を前提にする.例えば CVE-2016-3714
の対応状況を確認するためには Red Hat の Security ページを見る.そうすると ImageMagick-6.7.2.7-4 で対応されていることがわかる.
実際に ImageMagick-6.7.2.7-4 にアップデートして,rpm の --changelog
オプションで変更履歴を確認すると,ちゃんと CVE-2016-3714
の対応が含まれていることがわかる.
$ yum list installed ImageMagick (中略) インストール済みパッケージ ImageMagick.x86_64 6.7.2.7-4.el6_7 @updates $ rpm -q --changelog ImageMagick | head -n 2 * 木 5月 05 2016 Jan Horak <jhorak@redhat.com> - 6.7.2.7-4 - Add fix for CVE-2016-3714, CVE-2016-3715, CVE-2016-3716 and CVE-2016-3717
ちなみに yum-changelog というパッケージを使うと yum changelog コマンドで同様の変更履歴を確認することができる.
$ yum install yum-changelog $ sudo yum changelog 1 ImageMagick (中略) ==================== Installed Packages ==================== ImageMagick-6.7.2.7-4.el6_7.x86_64 installed * Thu May 5 21:00:00 2016 Jan Horak <jhorak@redhat.com> - 6.7.2.7-4 - Add fix for CVE-2016-3714, CVE-2016-3715, CVE-2016-3716 and CVE-2016-3717 (中略)
Amazon Linux
Amazon Linux を使っている場合は Amazon Linux AMI Security Center を見ると対応状況がわかる.
あと最近 GA になった Amazon Inspector を使うと,エージェントが CVE を検知してくれる.
Vuls: VULnerability Scanner
脆弱性スキャンツールとして Vuls(バルス)がある.バルス!
試しに CVE-2016-3714
の対応前のバージョンを導入した Vagrant 環境に Vuls を実行したら,ちゃんと検出してくれた.
$ yum list installed ImageMagick (中略) インストール済みパッケージ ImageMagick.x86_64 6.7.2.7-2.el6 @base
$ vuls scan --cve-dictionary-dbpath=/xxx/cve.sqlite3 INFO[0000] Start scanning (中略) CVE-2016-3714 ------------- Score 10.0 (High) Vector (AV:N/AC:L/Au:N/C:C/I:C/A:C) Summary The (1) EPHEMERAL, (2) HTTPS, (3) MVG, (4) MSL, (5) TEXT, (6) SHOW, (7) WIN, and (8) PLT coders in ImageMagick before 6.9.3-10 and 7.x before 7.0.1-1 allow remote attackers to execute arbitrary code via shell metacharacters in a crafted image, aka "ImageTragick." NVD https://web.nvd.nist.gov/view/vuln/detail?vulnId=CVE-2016-3714 MITRE https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2016-3714 CVE Details http://www.cvedetails.com/cve/CVE-2016-3714 CVSS Claculator https://nvd.nist.gov/cvss/v2-calculator?name=CVE-2016-3714&vector=(AV:N/AC:L/Au:N/C:C/I:C/A:C) RHEL-CVE https://access.redhat.com/security/cve/CVE-2016-3714 Package/CPE ImageMagick-6.7.2.7-2.el6 -> ImageMagick-6.7.2.7-5.el6_8 ImageMagick-devel-6.7.2.7-2.el6 -> ImageMagick-devel-6.7.2.7-5.el6_8 (中略)
まとめ
脆弱性情報をサッと見て状況判断ができるのは重要なスキルだなと感じた.最近 CVE を調べる機会があって,自分で調査結果を書いていたんだけど,インフラ関連のメンターをお願いしている先輩に話を聞いて,より理解を深めることができた.日々 CVE は出るだろうし,Amazon Inspector や Vuls などを活用して自動で検知できると一番良いんだけど,ゼロデイ攻撃などもあるし,CVE に対する情報のアンテナは常に立てておかないとなーという感じ.