技術メモ

CentOSの脆弱性対策を考える

CentOS(に限らずLinux系全般)の脆弱性が発見されるパターンとして

・カーネル

・glibc

・lib***などの共有ライブラリ

・Apache、PHPなどのソフトウェア、ミドルウェア

に大別されると思います。

ソフト・ミドルなんかは、yumでupdateする場合、依存パッケージは除いて他のモジュールに影響を与えることはまずないと思います。

問題はカーネルやライブラリ。どこに影響が出るかわかったもんじゃない。

でも脆弱性が結構出る。

どう対応するか?

それぞれカーネルならカーネル、glibcならglibc単体で修正されているが、Linuxディストリビューションによって修正パッケージがリリースされるタイミングは異なる。

開発元からダウンロードして個別にmake(インストール)できるかもしれないが、影響があったときに大変。

そう考えると、そのディストリビューションからのリリースを待った方が無難。

やっぱりyumで

このパッケージ検索サイトを見れば、一撃で最新がわかる。

↓はglibcで検索した例

みると、Fedoraは恐ろしくリリースが早い。そういう個性のディストリビューション。

yum update-check で確認してもしリポジトリが古くても、ここのサイトを見て最新があれば

yum update [パッケージ名] ftp://*********

でいける。

rpmでなくてyumでアップデートすればhistoryで履歴管理でき、undoで簡単に戻せる。

そういうこともあって個別にwgetしてコンパイルするよりはなんぼかいい。

パッケージ管理システムでの脆弱性修正対応

つーか基本的な仕組みとして、公式サイトのバージョンがすべて同じバージョンでそのディストリビューションからリリースされるわけではない。

たとえば、OpenSSL1.0.1eの脆弱性がOpenSSL1.0.1fで修正された場合、CentOSのパッケージで

openssl-1.0.1e-56.el6

  ↓

openssl-1.0.1e-57.el6

というイメージになる。※あくまでイメージの話です

バージョン1.0.1eをベースに、CVE****の脆弱性に対する修正を加えたものが「57」でっせ。という感じ。

だから単にバージョンが1.0.1eだから1.0.1eの脆弱性があるよってわけでもない。

リリースノートを確認して、対象の脆弱性(CVE-****-****をキーに)が対応されてるかどうか確認するしかない。

先ほどのパッケージ検索サイトの該当のリリースをたどっていけばChangelogに載ってる。

さいごに

よってやり方は2種類。

なFedora的猛者は
ソース(***.tar.gz等)を公式サイトからダウンロード、コンパイル。

なCentOS的慎重派は修正されたパッケージがリリースされるのを待って、リリースされたらyum update。

大事なのは見た目のバージョンではなくて、そのパッケージのアップデートがCVE-****-****の修正がされているかどうかを確認すること。

あくまで俺の考えでした。

P.S.

このサイトを見れば、ディストリビューション別にパッケージがどのバージョンを採用しているか等がわかるのでとても参考になりますよ(^-^)