OpenBSD、Meltdown対策機能をマージ
OpenBSDにおいてMeltdown対策コードがマージされました。詳しい説明は「Meltdown: implement user/kernel page table separation」に掲載されています。実装された機能にはユーザ/カーネルページテーブルセパレーションという言葉が使われていますが、内容はKPTI (Kernel Page Table Isolation)の実装といえそうです。CPUごとのページレイアウトはDragonFlyBSDでの実装に着想を得たという説明も掲載されています。
主にIntelのプロセッサに存在しているセキュリティ脆弱性Meltdownに対するFreeBSD、OpenBSD、NetBSDの最初の対策がこれで一通り出そろったことになります。FreeBSDではKPTI(Kernel Page Table Isolation)、NetBSDではSVS(Separate Virtual Space)、OpenBSDではUser/Kernel Page Table Separationという言葉が使われています。実装の違いはありますが、どれも本質的にはKTPIを実装したものになっています。
Meltdownはカーネルで対処が可能なセキュリティ脆弱性であるため、現在の取り組みで基本的な対応は完了といったことになります。もうひとつのプロセッサセキュリティ脆弱性であるSpectreへの対策は、どういった条件でこの脆弱性が利用できるのか洗い出す必要があるため、対策にはまだ時間がかかります。ある程度Spectre悪用のパスが明らかになった段階で、個々にSpectreの悪用を禁止するコードを入れるといったのがカーネル側の主な対策方法になりそうです。
ただし、Spectre対策機能がすべてのオペレーティングシステムに取り込まれるかどうかはまだわかりません。マイクロコードによる対応や、マイクロコードで利用できる機能を利用するといった程度の対策しか提供しない、という考え方も理解できます。Spectreに関する動きが出てきたら随時報告します。
Meltdown/Spectre対策の最大の問題点は、悪用するには条件を整える必要があるためそれほど簡単には利用できないものの放っておくわけにもいかず、かといって対策機能を取り込むと処理速度が遅くなるという点にあります。なお、FreeBSDでは機能の有効無効をsysctl値で切り替えできるようになるため、対策機能を有効にせずにパフォーマンスを優先するという選択肢も選ぶことができます。
AsiaBSDCon 2018オンライン登録開始
2018年3月8日から11日にかけて開催されるAsiaBSDCon 2018の「オンライン登録」が開始されました。3月8日と3月9日はチュートリアルとミーティング、3月10日と3月11日は論文セッションです。詳しい日程は「会議日程」に掲載されています。2018年2月28日までは早期登録で割引がかかります。AsiaBSDCon 2018に参加ご予定の場合はこのチャンスをご活用ください。
*BSD関係のカンファレンスはカナダ、米国、欧州で開催されていますけども、日本で開催されるAsiaBSDConは日本からもっとも参加しやすい*BSDカンファレンスです。開発者から直接発表を聞くこともできます。ぜひ参加を検討してみてください。
FreeBSD勉強会
4月26日(木)19:00~ 第70回 - ヴァル研 セミナールーム
【sysctl(8)からカーネルの中身を追う】
*BSDに限らず、UNIX系OSではユーザランド側からsysctlコマンドを実行することで、カーネルが提供する機能のON/OFFやカーネルパラメータを設定することができます。今回のFreeBSD勉強会では、sysctlによるカーネルパラメータの設定を題材にしてカーネルソースコードの読み方を解説しようと思います。
また、ソースコードを読み解く際の当たりの付け方といった、カーネルに限らないコードリーディングのノウハウについても紹介できればと思いますので、カーネルソースコードをこれから読み始めてみようと思っている方はぜひご参加ください。
【AsiaBSDCon 2018復習】
AsiaBSDCon 2018で発表された内容を振り返ります。どんな発表内容だったかちょっと理解が追いつかなかった、といった場合の手助けとして利用できるように概要をお伝えできればと思います。
本勉強会への参加者には抽選か勝ち抜きかでデーモンTシャツなどのグッズをお渡しします :)
参加登録はこちらから。
FreeBSD勉強会 発表者募集
FreeBSD勉強会では発表者を募集しています。FreeBSDに関して発表を行いたい場合、@daichigotoまでメッセージをお願いします。30分~1時間ほどの発表資料を作成していただき発表をお願いできればと思います。