BSD界隈四方山話

第128回 OpenBSD pledge(2)システムコール進捗報告

この記事を読むのに必要な時間:およそ 1 分

OpenBSD pledge(2) 進捗報告

OpenBSD Journalにpledge(2)システムコールに関する開発進捗情報が掲載されました。Theo de Raadt氏がtech@メーリングリストに投函したものを掲載したものです。

 pledge() work in progress - OpenBSD Journal

図 pledge() work in progress - OpenBSD Journal

報告の中でTheo de Raadt氏はpledge(2)システムコールに関して2つの変更作業に取り組んでいると説明しました。セマンティックとインテグレーションが複雑なので,作業が完成するにはもうしばらく時間がかかるとしています。取り組まれている変更は現在のpledge(2)システムコールが解決が難しいと考えられている部分で,これを解決するためにインターフェースとセマンティックを変更するとともに,新しい関数も導入するようです(pledgepath())⁠

pledge(2)システムコールはプロセスが利用できるシステムコールやリソースを制限する機能で,FreeBSDのcapsicumに似ています。システムコールやリソースを制限するという面ではcapsicumに似てはいますが,肝心のメカニズム部分が違っています。capsicumではfork(2)したプロセスに対して制限が引き継がれますが,pledge(2)ではfork(2)したプロセスに対してpledge(2)で設定した規制は引き継がれません。

このためpledge(2)はひたすら多くのコマンドに対してそれぞれにpledge(2)システムコールを適用していくことでセキュリティの強化を図っていましたが,この仕組みだといくつかの問題(特にパス)が解決できないことが課題になっていました。

OpenBSD 6.2ではpledge(2)システムコールの第2引数はパスになっているのですが,現在進められている変更ではここがexecpromiseに変わるそうです(仕組みと実装を注意深く調べる必要があって,なかなか実装は大変みたいです)⁠

パスに関してはpledgepath()を導入するインターフェースに変更する方法が考えられていると説明があります。ニュアンスとしてはchroot(2)的なもののようですが,chroot(2)と違って最上位は'/'のままなので,chroot(2)とまるで同じというものではないようですが,詳しい話は正式にリリースに取り組まれてから取りあげようと思います。

OpenBSDではシステムコールの開発に関してもこんな感じでかなりアグレッシブに進めるといったところがあります。システムコールの追加と変更にはかなり慎重になることが多いコミュニティが多いように思うのですが,OpenBSDはコミュニティが団結していることもあってか,こういった変更を迅速に行うことができるようです。

OpenBSD pledge(2)の取り組みはFreeBSD capsicumとは違っていますが,今回の変更内容を見る限りでは,なんだかんだで似たようなところへ向かっているような気がします。今後のカンファレンスなどでこのあたりに関して興味深い発表があれば随時取りあげていこうと思います。

FreeBSD勉強会

2018年2月8日(木)19:00~ 第68回カーネルソースコードを読んでみよう!(ヴァル研 セミナールーム)

なにげなく使っているオペレーティングシステムですが,その中身を読むことというのはあんまりないのではないでしょうか。そもそもどこから読めばよいかわからない,そんな方が多いんじゃないかと思います。今回のFreeBSD勉強会では,読みやすそうなところをみつくろって,とりあえずカーネルのソースコードを読んでみよう,というのをやってみようと思います。

本勉強会への参加者には抽選か勝ち抜きかでデーモンTシャツなどのグッズをお渡しします :)

参加登録はこちらから。

FreeBSD勉強会 発表者募集

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

コメント

  • XENODM with out XDMCP

    OpenBSD 6.1以降、セキュリティの関係からxdmが廃止され、
    xenodmが採用されています。

    最大の特徴はxdmcpの機能が完全に排除されているところ、
    これまで外部からリモートでXサーバに接続していた場合、
    注意が必要となります。

    なお、代替案としてはsshによるXのフォワーディング等が
    考えられますが、完全な解決策とはなりません。

    ソースコードの圧縮とセキュリティの向上が図られた等の
    賞賛の声が一部で見られます。

    この変更は、OpenBSDがルータ・サーバ等の組み込み機器に
    適しても、通常利用のXサーバとリモート接続には適さない
    というイメージを印象づけるものとなりました。

    その上で今回のpledge絡みの変更も大変気になる内容です。
    OpenBSDはここ数年、メーリングリストへの投稿を規制する
    傾向にあります。その為、円滑な議論や善意のパッチ投稿が
    滞っている様にも感じられます。

    OpenBSDからForkしたBitrigも決して活動が活発とは言えず、
    セキュリティと利便性の双方が両立しユーザーフレンドリな
    コミュニティが減少してきているようにも感じられます。

    OpenBSDの存在はセキュリティ上欠く事の出来ない存在ですが
    上記の様な状況から、OpenBSDの将来というものに不安感を
    覚えます。

    この点、OSS、特にBSD関連の衰退にも通じるものがあると
    感じられ、資金難、独自実装・分裂・衰退というOSSが辿る
    衰退への流れ、様相を呈してきている様にも感じられます。

    Commented : #1  OpenBSD (2017/12/16, 03:42)

コメントの記入