パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

OpenBSD 3.2 リリース」記事へのコメント

  • スタックと BSS (非初期化データ部) のコード実行ができなくなった、というのが面白いです。バッファオーバーフローに基づいた攻撃がほとんど無効化されます。

    ヒープをターゲットにした攻撃の可能性は残りますから注意は必要ですが、オーバーフローを起こしそうなコ

    --
    • by Anonymous Coward on 2002年11月03日 17時33分 (#194508)
      > スタックと BSS (非初期化データ部) のコード実行ができなくなった、
      > というのが面白いです。バッファオーバーフローに基づいた攻撃が
      > ほとんど無効化されます。

      これって大昔からあちこちで提案されているけど、signal trampolineとかの
      メカニズムでスタックのコード実行が必要となるために、いつもお流れと
      なっています。
      今回、OpenBSDがスタック上でのコード実行を不可能としたいきさつが
      気になりますね。

      http://search.luky.org/linux-kernel.2001/msg16453.html
      http://docs.freebsd.org/cgi/getmsg.cgi?fetch=26428+0+archive/1998/freebsd-security/19980719.freebsd-security
      親コメント
      • by Anonymous Coward on 2002年11月04日 23時52分 (#195087)
        純粋に技術的な decision の話でしょうな。

        シグナルトランポリンを libc などに置くというアイディアには、
        スタックオーバーフロー対策に有効という利点もあるけど、
        欠点も同様にあって(たとえば libc にトランポリンを置くとして、
        libc のロードに失敗したときにどうしようもない、など)、
        結局どっちを取るかと考えた場合に、あまり取るに足らない欠点
        (トランポリンが使えないような切迫した状態では、どーせ
        そのプログラム自身でまともなシグナルハンドリングなんて
        できっこない)よりも、大きな利点のほうを取ったということでしょう。

        また、別の理由としては gcc が stack execution を
        必要としていたというのがあったのですが、これも結局は解決。

        NetBSD 方面での議論なら、
        tech-kern の 4/16 ,4/20,4/21あたり [netbsd.org]と
        tech-userlevel の 7/4あたり [netbsd.org]を参照。
        で、7/10 あたりに thorpej が実際のコードを突っ込んでます。
        親コメント

弘法筆を選ばず、アレゲはキーボードを選ぶ -- アレゲ研究家

処理中...