BSD界隈四方山話

第111回BSDカーネル脆弱性調査

*BSDカーネル脆弱性調査

DEF CON 25 Hacking ConferenceでIlja van Sprundel氏が発表したAre all BSDs created equally? A survey of BSD kernel vulnerabilies. [PDF]の内容を受けて、OpenBSD 6.0および6.1向けのカーネルパッチを公開したことが発表されました。OpenBSD journalに掲載された記事Large Batch of Kernel Errata Patches Released|OpenBSD journalによれば、すぐに適用したほうがよいだろうと指摘されています。

図1 Are all BSDs created equally? A survey of BSD kernel vulnerabilies, by Ilja van Sprundel氏
図1 Are all BSDs created equally A survey of BSD kernel vulnerabilies, by Ilja van Sprundel氏

公開されたパッチはそれぞれ次のページからダウンロードできます。2017年8月3日付けの修正パッチがそれに相当します。i386版とamd64版に関してはsyspatchユーティリティ経由でバイナリアップデートが可能です。アップデートを適用したらシステムの再起動が必要です。

Ilja van Sprundel氏はプレゼンテーション資料の中で調査内容まとめるつつ、カーネルコードのどの部分にどういった問題があったのかを簡単に指摘しています。一通り問題となるコードを紹介したあとで、FreeBSD/OpenBSD/NetBSDのカーネルを調査して115個ほどの問題を発見したとし(FreeBSD 30個ほど、OpenBSD 25個、NetBSD 60個ほど⁠⁠、次のような結論をまとめています。

  • FreeBSD/OpenBSD/NetBSDのすべてにバグを発見した
  • OpenBSDがもっとも堅牢。数年に渡って攻撃を受けることになる部分の削減に取り組んでいる(カーネルモジュールなし、互換コードなし(Linux互換コードもすでに削除されている⁠⁠、Bluetookスタックなし、少ないシステムコール(FreeBSDより200以上もシステムコールが少ない、古いアーキテクチャのサポートを削除⁠⁠、など)
  • NetBSDがもっとも脆弱。古いコードや互換コードが大量にあり、セキュリティコードクオリティに関して一貫性があまり見られない
  • FreeBSDはOpenBSDとNetBSDの中間のような感じ
  • OpenBSDでさえ、カーネルのバグを探すことは簡単
  • コードの質がそれを開発した人物や年齢などに依存してさまざまなレベルで混在している(OpenBSDがもっとも一貫したクオリティを実現している)
  • 開発者同士でもっと情報共有が必要ではないかとみられる

Ilja van Sprundel氏の発表した内容はFreeBSD/OpenBSD/NetBSDの3つのカーネルを調査したという点で興味深い内容です。発表された内容はすぐに外部からの攻撃に結びつくものには見えませんが、プロジェクトから発表があった場合には迅速に対応することが望まれます。

ここ数年、セキュリティ研究者がカーネルの脆弱性を発見して発表するといったことが見られるようになっています。発表される内容がセキュリティ脆弱性としてアップデートの対象となるかはものによって異なります。基本的にはプロジェクトからセキュリティアドバイザリが発行されたら対処していきましょう。

勉強会

第65回 8月24日(木)19:00~FreeBSD勉強会

内容は検討中(会場:ヴァル研究所 セミナールーム)です。登録はこちらから。

第66回 10月下旬(25~27日のいずれか)19:00~FreeBSD勉強会

内容は検討中(会場:ドワンゴ セミナールーム)です。

FreeBSD勉強会 発表者募集

FreeBSD勉強会では発表者を募集しています。FreeBSDに関して発表を行いたい場合、@daichigotoまでメッセージをお願いします。30分~1時間ほどの発表資料を作成していただき発表をお願いできればと思います。

おすすめ記事

記事・ニュース一覧