BSD界隈四方山話

第33回FreeBSDセキュリティと脆弱性とアップデート

セキュリティアドバイザリとエラッタノーティス

FreeBSDプロジェクトはサポート対象のFreeBSDに対してFreeBSD Security AdvisoriesFreeBSD Errata Noticesという2つのサポートサービスを提供しています。前者はセキュリティ脆弱性に対する情報提供とアップデートを提供するもの、後者は不具合に関する情報提供とアップデートを提供するものです。

FreeBSD 10以降はFreeBSD Updateによるバイナリアップデートサービスが提供されるようになりましたので、基本的にはFreeBSD Updateで最新版にアップデートすることで、セキュリティアドバイザリやエラッタノーティスの修正を反映することができるようになっています。

セキュリティアドバイザリとエラッタノーティスの発行数遷移

セキュリティアドバイザリは1996年から、エラッタノーティスは2004年から発行されています。セキュリティアドバイザリは2000年に年間80個を超える数が発行されました。以降の2年間は年間64個、49個と高い水準がつづきますが、以降は低水準が続きます。2003年から2013年までの10年間、特に2007年から2013年までの7年間は低水準でした。

しかし、2014年になると再びセキュリティアドバイザリの発行件数が増加します。2015年も同様の傾向が続きました。2015年12月14日現在、2014年よりも若干少ないくらいの数のセキュリティアドバイザリが発行されています。

 年別FreeBSD Security Advisory数
図 年別FreeBSD Security Advisory数
 年別FreeBSD Security Advisory数
FreeBSD Security Advisory数
199616
19978
19987
19996
200081
200164
200249
200322
200417
200521
200626
200710
200813
200917
201010
201110
20128
201314
201431
2015(12月14日現在)26

エラッタノーティスも2004年から2013年までの9年間は低い水準のまま行きますが、2014年に入ってから発行数が増加。2015年は12月14日の時点ですでに2014年を超える数が発行されています。

 年別FreeBSD Errata Notice数
図 年別FreeBSD Errata Notice数
 年別FreeBSD Errata Notice数
FreeBSD Errata Notice数
20041
20054
20062
20075
20082
20095
20102
20110
20122
20135
201413
2015(12月14日現在)20

セキュリティアドバイザリやエラッタノーティスは個別に発行されるものですが、同じ日付で数のものが同時に発行される傾向があります。発行された日付で見た場合、2015年は12月14日までの間に20回を超えるアップデートタイミングがあったことになります。管理するサーバの台数や条件によって変わってきますが、年間に20回ほどのアップデートを実施するのはあまり簡単ではない手間と言えます。

2016年以降にセキュリティアドバイザリとエラッタノーティスの発行件数がどうなっていくのかはわかりませんが、発行件数が減る積極的な理由は特に見当たらないように思います。セキュリティに対するエンジニアの技量の向上やテストやデバッグ体制の整備向上などを考えると、むしろ脆弱性や問題の発見が進みしばらくは発行件数が増えるものと考えてシステム構築を設計しておいた方が、なにかと安全ではないかと思います。

アップデート方法アレコレ

セキュリティアドバイザリやエラッタノーティスが発行された場合、何も考えずにFreeBSD Updateを実行してシステムを再起動できる環境であれば、これが最も簡単な方法と言えるでしょう。業務クリティカルではない環境であるとか、多少サービスが止まっても問題のないサービスを運用しているサーバなどは、この方法でアップデートを適用できます。

逆に、運用がはじまったら1回もアップデートができない環境というのもあります。業務クリティカルな部分で動作するシステムで、システムを停止することなどが許されない場合です。この場合、そもそもシステムにアクセスできるユーザが制限されていたり、インターネットには接続していない、または専用回線を使って特定の拠点からのみしかアクセスできないようになっているなど、脆弱性をそのままにしておいても運用が成り立つ条件が整っていることが多いように思います。

あとは程度の差はあれ、自由にシステムを再起動するわけにはいかないが、アップデートを適用しないわけにもいかない、というケースです。月1回のアップデートスケジュールで回したり、四半期に1回のアップデート、半年に1回のアップデートなど状況はさまざまのように思います。業務形態に応じて任意のタイミングでアップデートを実施しなければならないというケースもあると思います。

ある程度脆弱性を抱えたシステムを考える

セキュリティアップデートやエラッタノーティスのアップデートを適用する必要があるものの、発行後に迅速にアップデート作業は実施できない、という場合には、構築運用するシステムをあらかじめ脆弱性を想定したものにしておくのが、1つの方法です。

FreeBSD 10以降はハイパーバイザbhyveが使えますし、Jailで隔離もできます。運用するサービスをさまざまなリソースからできるだけ隔離した環境で運用し、仮にサービスを提供しているソフトウェアやカーネルに脆弱性があり、攻撃を受けるような状況になって制御権を乗っ取られるような状況に陥ったとしても、最小限の影響で済むようにはじめからシステムを構築しておくというものです。

セキュリティアドバイザリとエラッタノーティスはFreeBSDのユーザランドとカーネルを対象としていますので、パッケージやPorts Collectionからインストールしたソフトウェアでサービスを提供している場合にはプロジェクトやベンダからそれぞれ個別にセキュリティ情報を収集してアップデートをする必要がありますので、運用で生じるアップデート作業の必要性は想像以上に大きなものになります。すべてに対して迅速にアップデートを適用するというのは実際のところ難しいものがありますので、攻撃を受けたとしてもそれほど被害を受けない状態を作っておくというのは、とても効果的な方法です。

FreeBSD勉強会 告知

第47回 12月22日(火)19:00~ ライトニングトーク×FreeBSD忘年会’15!

今やっていることがある、実はこんな感じで運用している、困っていることがあるので助け求むなど、FreeBSDに関することを5分から10分程度にまとめて、その時発表したい方が発表する「ライトニングトーク×FreeBSD忘年会'15!」を開催します。

後藤からは発表の冒頭、5分〜10分くらいでbhyveを使った仮想環境構築のデモンストレーションを行います。CentOSかOpenBSDあたりをon bhyveで使う方法をご紹介します。ひとりあたりの発表時間は、全体の発表人数を見つつ当割でいきます。時間に余裕があれば現場で飛び込みライトニングトークも大歓迎です。参加申請はこちらから。

第48回 1月28日(木)19:00~ The Design and Implementation of the FreeBSD Operating System (2nd Edition) 読書会 第12回目 P.129 4.7 Signals~

The Design and Implementation of the FreeBSD Operating System (2nd Edition)の読書会です。読書会12回目の今回はハードカバーでP.129からです。D&I本がどういった本なのか読んでみたいという方、お気軽にご参加ください。参加申請はこちらから。

おすすめ記事

記事・ニュース一覧