OpenBSDとは
OpenBSDは、セキュリティと正当性(correctness)を最重要視して開発された、BSDを基盤とするオープンソースの
Unix系オペレーティングシステムです。
1995年に
NetBSDからフォークする形で、テオ・デ・ラート氏によって開発が開始されました。OpenBSDは、高いセキュリティ意識と、自由な
ソフトウェアライセンスへのこだわりで知られています。
特徴
OpenBSDの主な目標は、「正しい思想」(correctness) と「先制的なセキュリティ」(proactive security) を実現することです。これは、脆弱性が発見されてから対処するのではなく、問題が発生しにくい設計や徹底的なコード監査によって、事前にあらゆる危険性を排除するという考え方に基づいています。また、オープンソースおよび
ドキュメンテーションを重視し、
ソフトウェアライセンスには妥協しない姿勢を貫いています。
OpenBSDの「正しい思想」には、GPLよりも制限の少ないBSD/ISCライセンスこそ真に自由であるという意見や、適切に設計されたOSは移植が容易であるべきだという理念が含まれています。移植性に関しては、
NetBSDから派生した経緯から元々高いレベルにありましたが、新しいプラットフォームへの移植を繰り返すたびにコードが洗練され、セキュリティの向上にも繋がってきました。
「先制的なセキュリティ」を徹底するため、OpenBSDでは標準インストール時にほとんどのサービスが起動しないように設定されています。これにより、「デフォルトインストールでのリモート
セキュリティホールが2つしか発見されていない」という実績を誇っています。発見された2つの
セキュリティホールは、
2002年のOpenSSHの桁あふれ問題と、
2007年の
IPv6スタックのバッファオーバーフローです。
また、OpenBSDでは設計や仕様が文書化され、コーディングと同時にマニュアル(man)が更新されています。これにより、管理者や開発者の無知・不注意に起因するセキュリティ問題を防止しています。ロゴおよびマスコットには、
フグのPuffyが採用されています。
成果
OpenBSDの成果として、他のOSでも標準的に使われているSSHの代表的な実装であるOpenSSHや、
C言語で文字列を安全に扱うためのstrlcpyとstrlcat、IPパケットをフィルタリングするPF(パケットフィルタ)、BSD系OSで
暗号化ハードウェアサポートを可能にするOpenBSD Cryptographic Framework(OCF)などが挙げられます。これらの成果は、他のBSD系OSにも取り込まれています。
また、CVS
リポジトリを外部に公開した最初のプロジェクトとしても知られており、その後、SubversionやGitが普及するまでの間、オープンソースプロジェクトの標準的な開発基盤となっていました。
歴史
OpenBSDは、1994年12月に
NetBSDの主要開発者であったテオ・デ・ラート氏が、
NetBSDプロジェクトから離脱したことがきっかけで誕生しました。その後、
1995年10月にOpenBSDプロジェクトが立ち上げられ、最初のリリースであるOpenBSD 1.2が1996年7月に公開されました。OpenBSDは、約半年ごとに新しいリリースを公開し、各リリースについて1年間のサポートと保守を提供しています。
2007年7月には、OpenBSD Foundationが設立され、個人や法人がOpenBSDをサポートするための窓口となっています。
OpenBSDの利用状況は開発者側でも正確に把握していませんが、2005年の調査ではBSD系OS利用者の32.8%がOpenBSDを利用しているという結果が出ています。また、DistroWatchのデータでは、OpenBSDの
ウェブサイトへの1日のヒット数は146回となっています。
2016年9月の6.0のリリースでは、EFI
ブートローダーが追加され、FFSからU-Bootヘッダなしに
カーネルを読み込めるようになりました。
「オープン」という姿勢
OpenBSDプロジェクトは、ソースコードを誰でもいつでも読めるようにすべきだと考え、ソースの
リポジトリを公開しました。これは、
ソフトウェア開発の世界では初の試みであり、OpenBSDという名称の由来にもなっています。
ハードウェアに関しても同様に、ハードウェア仕様の詳細を示す文書を公開すべきだと考えています。文書が公開されていない場合、開発者がドライバを書く際に間違いが起きやすく、開発を諦めてしまう可能性があるためです。また、ベンダーが提供するバイナリドライバは信用できず、問題が発生した場合に修正が困難であるため、許容できないとしています。
2005年には、アダプテックのAAC
RAIDコントローラ用の
デバイスドライバに関する議論が起こりました。テオ・デ・ラート氏は、アダプテックに必要な文書を開示してくれるよう4カ月に渡って交渉していましたが、開示されなかったため、OpenBSDコミュニティ全体にアダプテックへの意見表明を奨励しました。この件を契機に、バイナリ・ブロブと
秘密保持契約(NDA)の使用を許容するかどうかという議論が起こり、OpenBSDの開発者らは、ソースツリー内にプロプライエタリなバイナリドライバの存在を許さない立場であることを明確にしました。
ライセンス
OpenBSDプロジェクトでは、元々のバークレー版Unixの
著作権の精神を保ち、邪魔されることのないUnixソースのディストリビューションを実現することを目指しています。そのため、新規コードにはISCライセンスを適用することを基本とし、MITおよび
BSDライセンスも許容しています。GPLについては、制限が厳しすぎると見なしているため、採用していません。
OpenBSDでは、ライセンス問題を契機にOpenSSHやPFパケットフィルタなどの代替物を開発しています。また、GPLでライセンスされているツールについても、
BSDライセンスの代替物で置き換えることを進めています。
2007年には、GCCを置き換えるための作業を開始し、PCCを導入しました。
2001年には、ライセンス監査を実施し、100以上のファイルのコードについてライセンスが不明であるか、ライセンスに反した使い方をしていることが判明しました。その結果、一部のコードは削除され、多くは置き換えられました。ダニエル・バーンスタイン氏の作った
ソフトウェアも削除されました。
セキュリティとコード監査
OpenBSDは、セキュリティを最優先事項として開発されており、コード監査を徹底的に行っています。OpenBSDの開発者は、容易さや性能や機能を犠牲にしてでも、正しく適切でセキュアな方法を選択しようとします。そのため、OpenBSDの中のバグは発見されたとしても、
セキュリティホールとして利用しづらいものになっています。
OpenBSDには、arc4random、issetugid、strlcat、strlcpy、strtonumなどのAPIとツールチェーンの変更、静的境界チェック機構、メモリ保護技法、
暗号およびランダム化機能など、数多くのセキュリティ強化のための設計変更が加えられています。また、特権分離、特権放棄、chrootの使用などの手法を採用することで、設定ミスや脆弱性の危険を低減させています。
OpenBSDのコード監査は、単にバグを見つけるだけでなく、プロセス自体への問いかけとも言えるものであり、決して終わらないとされています。
Linuxカーネルの創始者であるリーナス・トーバルズは、OpenBSDの方針を批判し、「セキュリティだけに注力すべきでない」と述べていますが、OpenBSDの開発者は、「通常のバグ修正もOpenBSDプロジェクトで人々が常にやっていることだ」と反論しています。
利用
OpenBSDは、
暗号を組み込み、
ファイアウォールスイートPFを備えていることから、セキュリティ関連での利用に適しており、
ファイアウォール、
侵入検知システム、VPN
ゲートウェイなどで特に利用されています。また、
DoS攻撃やクラッキングへの耐性が必要なサーバでもよく使われており、spamdデーモンが含まれていることから、電子メールフィルタリング用途にも使用されることがあります。
OpenBSDに基づいたプロプライエタリシステムもいくつかの業者が製品化しています。
OpenBSDにはX Window Systemが含まれているため、デスクトップあるいはワークステーションとしても利用でき、様々な
デスクトップ環境やウィンドウマネージャを利用できます。また、
Linux、FreeBSD、SunOS、
HP-UXなどの他のOS向けにコンパイルされたバイナリを実行できる
互換レイヤーも利用可能です。
OpenBSDは性能やユーザビリティの面で批判されることもありますが、開発者はセキュリティと正しい設計を重視しており、それらが優先されると主張しています。OpenBSDの簡潔性、信頼性、セキュリティは高く評価されており、極めてセキュアなOSとして認知されています。
ディストリビューションとマーケティング
OpenBSDは、ソースコードやバイナリ版リリース、開発スナップショットを無料で入手できます。
CD-ROMパッケージ版は有料で、ステッカーやリリースのテーマ曲が付属しています。
プログラムのインストールと管理には、
Portsとパッケージシステムが使用されており、OS本体とは別に開発されています。
Portsは、製品版のパッケージを生成することを意図しており、リリースごとにOpenBSDチームがパッケージを作成し、ダウンロード用に提供しています。
OpenBSDは、リリースごとに覚えやすいテーマ曲やコミカルなアート作品を生み出してきたことでも有名です。また、マスコットのPuffyは、様々な姿で
Tシャツや
ポスターに登場し、人気を博しています。
対応プラットフォーム
OpenBSDは、様々なプラットフォームに対応していますが、開発が終了したプラットフォームもあります。
開発中のプラットフォーム
amd64
arm64
i386
landisk
loongson
macppc
octeon
sparc64
開発が終了したプラットフォーム
Amiga
ARC
armish
Aviion
cats
HP300
HPPA64
mac68k
mvme68k
mvme88k
Palm
Pegasos
pmax
sgi
socppc
Solbourne
SPARC
Sun-3
VAX
ザウルス