2002 年版の日本の OpenBSD 情報です。
注: 確実にお返事するかどうか約束することはできませんが、 お返事が必要な場合は直接メールください。
またずいぶん間が空いてしまいました。現在は 3.4-beta です。 前回からの 3 カ月の間、GNU gzip や grep, diff が BSD lisence のものに置き換えられたり、 i386 で a.out バイナリが実行できるようになったり、 Kerberos IV が削除されたりしています。このあたりの経緯については、 セキュリティ問題ともからんでいますので、 時間がとれるようになったら少し詳しくまとめようかと考えています。
話は変わりますが、www.jp.openbsd.org と cvsup.jp.openbsd.org がハードウェア障害のため、現在停止中です。www.jp は代替機への切り替えをおこないましたが、cvsup.jp は deraadt@ に DNS の切り替えをお願いしている関係で、 少し時間がかかる見込みです。ご不便をおかけします。
佐藤は来月カリフォルニア州でおこなわれる BSDCon 2003 に参加する予定です。 残念ながら OpenBSD 関連の発表はほとんどないのですが、 今年も日本から発表される方がいるようで楽しみにしています (ちなみに日本からの参加だと、もろもろ合わせて 1800USD くらいかかります。 個人で参加するには、ちょっとつらい金額ですね)。
2003 年 5 月 1 日付けで、OpenBSD 3.3 がリリースされました。 近日中にリリースアナウンスの翻訳を載せる予定です。
また 6 日になって、tech@openbsd.org に OpenBSD/i386 の W^X 機能の実装を変更したというアナウンスがありました。 それにともなってバイナリフォーマットが変更されたため、 OpenBSD/i386 は「3.2 とそれ以前」「3.3」「3.3 以降」が、 それぞれ互換性がないという状況になっています。 6 日中に新しいスナップショットがリリースされるとのことです。
source-changes@ をご覧の方はお気づきかと思いますが、 3 月ごろから、sprintf(), strcpy(), strcat() あたりのセキュリティ的に問題のある文字列操作関数の置き換えが大々的に行なわれています。 GNU 由来のものなど、外部から取り込んだもの以外の部分の audit はほぼ終わったとのことです。
-current では OpenSSH が 3.6.1 になりました。現在は 05/01 に公開予定の OpenBSD 3.3 に向けた検証作業が続いています。
さて、3.3 の大きなトピックとしては、OpenBSD/i386 の ELF 化と W^X の導入があります。 W^X とは、簡単に説明すると「書き込み可能ページと実行可能ページを分離して、 同時に設定しないようにする」というセキュリティ対策技術のひとつです。 自己書き換えコードが最適化の一手法として広く用いられていた昔と違い、 現在はプログラムコードを実行中に書き換えるというテクニックは、 一部 (シグナルトランポリンコードなど) を除いて使われなくなっています。 i386 の W^X については Theo が OpenBSD における実装とその問題点について詳しく説明したメールを misc@ に投稿していますので、一読の価値があると思います。ProPolice と W^X の組み合わせは、バッファオーバフローを原因とするセキュリティ上の弱点への対策として、 非常に強力です。
この W^X の導入のため、OpenBSD/i386 は ELF フォーマットへの全面移行が行なわれました。この影響で、 3.3 はソースからのアップグレードが非常に難しくなっています。 ご注意を。
このあたりの話題はZDNN Japan の記事にもなっています。最後に「飲み代はチームが払った」とあります。 Theo は最近、OpenBSD プロジェクトは開発者にきちんと報酬を支払っていることを話題することが多くなったような気がします :-)
それに少し関連する話ですが、 04/18 に「DARPA の支援が取り消しになった」と misc@ に報告がありました。 背景は、次のようなものです。
ペンシルバニア大学 (UPENN) では、POSSE (Portable Open Source Security Elements) というプロジェクトが進められています。これは OpenBSD, OpenSSH, OpenSSL などのオープンソースソフトウェアを使って、暗号ハードウェア対応、 IPsec、ポリシベースのセキュリティ対応、TrustedBSD プロジェクトの成果の統合など、 セキュリティに関する要素技術を移植性の高い形で実装しようという試みです。
UPENN はこのプロジェクトに関して DARPA の支援 (正確には SPAWAR (US Air Force, Space and Naval Warfare Systems Command) が直接の交渉相手だそうです) を受けて、 OpenBSD プロジェクトに資金を提供していました。 今年の 5 月 8 日にはじまる hackathon (1-2 週間、開発者が集まってビールを飲んだり、hack しまくるという OpenBSD の恒例行事。スローガンは "Shut up and hack!") は、 この UPENN の支援を受けて開催されることが決まっていました。 ホテルの準備が行なわれ、60 の開発者が、 この支援をあてにして航空券を購入していました。 しかし、DARPA の支援がなくなったことで、UPENN はホテル代金などの支援の約束を反故にしてしまったのです (大学側も、おそらくそれ以外に選択肢はなかったのだと思います)。
Theo はその原因として、 彼が最近カナダの新聞に寄稿した反戦記事が反感を買ったのではないか、 と言っていますが、理由は明らかにされていないそうです。 また、彼は「支援はなくなったけど、hackathon はちゃんと開催する」 と宣言しています。
PF は、ライセンス監査によって削除された IPFilter の代替物として導入された BSD license を持つパケットフィルタ実装です。 これは積極的に開発が続けられていて、IPFilter にないさまざまな機能の追加も行なわれています。
2003 年 3 月 1 日、コペンハーゲンで LinuxForum というカンファレンスが行なわれました。"Linux" と銘打っていますが、 Linux と *BSD を対象にしたものです。スポンサーには、 Oracle と hp がついていて、丸一日 2 トラック並列というスタイルのイベントです。
今回、PF の設計者である Daniel Hartmeier (dhartmei@) 氏が、 このカンファレンスで "Design and Performance of the OpenBSD Stateful Packet Filter (pf)" という講演を行ないました。 講演資料がこちらから閲覧できます。 定量的な性能解析が詳細に述べられているなど興味深い内容なので、 PF を利用されている方は一読されることをおすすめします。
ちなみに、氏の資料では OpenBSD 3.3 が 2003/03/01 あたりに出ると書かれています。 -current を追っかけている人は、すでにバージョン番号が 3.3 になっていると思いますが、 まだ公式にアナウンスはされてません。
2003.04.18 追記: メールで指摘をいただいたのですが、 「03/01 あたり」というのは佐藤の誤解でした。報告どうもありがとうございます。 資料にあった May 1st を、Mar 1st と読み間違えていたようです。
ライセンス監査のサマリが misc@ に投稿されています。 今まで 150 を超えるソースが修正され、現在は 8 個の作業が進行中とのこと。
GPL と BSD license の比較など、よく議論されていますが、 実のところ、現在の各 *BSD プロジェクトのソースツリーにはライセンスのよくわからないものや、 BSD license より強い制限が加わっているものが結構含まれています。 OpenBSD のライセンス監査は paranoia 的だという評価もあるものの、 FreeBSD や NetBSD でも、 こういった監査を行なう価値はあるのではないかと個人的には思います。
*BSD のライセンスについての議論の場でも、 こういった部分を問題視した意見を見かけることが少ない気がします。
今回は、直接 OpenBSD とは関係ないのですが、 最近 misc@ で話題になった MicroBSD の顛末についてまとめてみます。
MicroBSD とは、Scott Kamp という人が 2000 年 11 月時点の OpenBSD (OpenBSD 3.0) のソースツリーから fork する形で 2001 年初めに立ち上げた *BSD プロジェクトのひとつです。 FreeBSD/NetBSD/OpenBSD のソースツリーをベースにして 特定用途に特化した新しい配布物を作成しているプロジェクトには、 PicoBSD (FreeBSD), ClosedBSD (FreeBSD), EmBSD (OpenBSD) などがあり、 それと似たようなものと考えるとわかりやすいでしょう。 fork といっても、基本的には OpenBSD そのものです。
MicroBSD の思想は、モジュール化されたベースシステムと、 セキュリティ機能の充実です。MicroBSD 0.6 は、Perl や IPsec, PPP, DHCP, sendmail, Apache といった OpenBSD がベースシステムに統合したソフトウェアを インストールの段階で取捨選択できるように、モジュールが分離してあります。
また、セキュリティ機能としては、POSIX ACL や NIC 単位、ファイル単位の ACL を独自に備えており、IBM 江藤氏による stack-protection 機能をはじめてベースシステム上に取り込んだ *BSD でもあります。
‥‥と、こう書くと順調そうに見えるのですが、misc@ に投稿されたTheo のメールが波乱を巻き起こします。 MicroBSD のソースコードは OpenBSD のツリーから fork したものですが、 著作権表示が不当に書き換えられているというのです。
すぐに Kamp が反論していますが、現在対処中という非常に不明瞭な回答でした。 「MicroBSD のプロジェクトにいる全員の意志じゃないんじゃないの?」という 意見も出ましたが、Theo はそれに対して、「ずっと前からそうだった」と メールで反論しています。
それ以降 Kamp から具体的な反論はなく、まもなく MicroBSD のウェブページや FTP サイトが閉鎖されます。 もともとの著作権表示改竄疑惑に対しては「われわれの過失である (This was an unfortunate oversight on our part)」と認めているものの、 それがどのような経緯で発生したのか、なぜすぐに対処しなかったのか (Theo の最初のメールで指摘されたものは 2002/12/21 付けの変更) という点は、まったく明らかにされませんでした。
2003/02/21 になって、Kamp から「The MicroBSD Project has Shut Down」 というアナウンスが流れます。「MicroBSD は OpenBSD の著作権表示を改竄する意志はなかったが、その問題の存在を公式に認める。 これ以上開発を続けるのは *BSD コミュニティにとって有益ではないと判断したので、 すべてのソースコードを破棄した上で、プロジェクトは解散する」という内容。 これまた問題に対する具体的な対処や説明がなく、 穿った見方をすれば、問題を隠蔽しようとしているととられてもおかしくないでしょう。 ちなみに、MicroBSD の公式メーリングリストには、 この話題は一切現れていません。
MicroBSD 自体、マイナーな存在ですから、 いきなり現れて消えたような印象があるかと思います。 いろいろと技術的に面白い点があったので個人的には残念な気持ちもありますが、 まあ自業自得でしょう。
2003/01/20 日づけで BIND 9.2.2rc が -current に import されましたが、propolice のバグのせいで sparc64 で build できかったため、しばらくの間は BIND4 のままでした。 2003/02/03 に propolice の最新パッチが入ったことで、 sparc64 での問題は解決しています。
Theo が misc@ で「propolice 機能はバグを見つけるのに便利〜」と言ってます。 ずいぶんと気に入ってるもよう :)
なかなか更新頻度があげられないので、 スタイルを変更して短めにまとめることに。
2002/12 の初旬、GCC に propolice が追加されました。 これはバッファオーバフロー検出用のプロテクションコードを追加するものなのですが、 これでコンパイルされたバイナリは古いシステムで動かなくなります。 アップグレード時にはご注意を。
ちなみに 3.2 以降では i386, sparc, sparc64, alpha, powerpc の各 port が non-executable stack を、sparc, sparc64, alpha の各 port が non-executable heap と non-executable bss を採用しています。
OpenBSD/sparc64 で、2002/10 あたりから traceroute6 が壊れていたようです。 sizeof(int)==sizeof(long) なアーキテクチャでは問題が現れないため、 発見が遅れたのではないかと思います。 2003/01/21 の src/usr.sbin/traceroute6.c 1.34 で直りました。ちなみに NetBSD にも同じコードが入っているのですが、 同時に修正されています。FreeBSD は影響ありません。
2ch で Citrus locale を使うためのパッチが公開されているという報告をいただきました (とりあげるのが遅くなってごめんなさい > 匿名希望さん)。 ベースは NetBSD-current ですね。すばらしい。
似たようなものを手元で作っていたので、 ありがたく参考にさせていただいたりしました :-)。 いくつかのアーキテクチャで環境をつくって試験中です。
LAST MODIFIED: 2005/01/01 16:14:53 UTC