パスワードを忘れた? アカウント作成
10827040 story
バグ

Heartbleed開発者曰く、OpenSSLのバグは意図的なものではない 83

ストーリー by headless
不運 部門より
諜報機関の関与も疑われているOpenSSLの「Heartbleed」バグだが、原因を作った開発者は意図的なバグの挿入を否定し、開発時のミスだと説明している(Deutsche Telekomの記事The Sydney Morning Heraldの記事PC Proの記事The Globe and Mailの記事本家/.)。

この開発者は当時ドイツ・ミュンスター大学の大学院生で、現在はDeutsche Telekomに勤務している。大学ではOpenSSLを使用した研究を行っており、研究の一環としてバグフィックスや新機能などでOpenSSLプロジェクトに貢献していた。しかし、彼がコードを書いたTLS/DTLSのHeartbeat拡張では、特定の変数に格納されたデータが正しいかどうかをチェックしていなかったという。そのため、不正な値を入力することで、メモリー上のデータを意図した長さ以上に読み取ることが可能になっていた。このミスは不運にもコードレビューで発見されることはなく開発バージョンに追加され、その後公式にリリースされてしまったとのことだ。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • っ ハンロンの剃刀 (スコア:5, すばらしい洞察)

    by Anonymous Coward on 2014年04月13日 16時16分 (#2581187)

    ハンロンの剃刀 [wikipedia.org]で十分っしょ。

    無能で十分説明されることに悪意を見出すな

    C言語でこの手のミスはありがちだから、陰謀論よりも単にあぁやっちまったのか…という印象が。なぜレビューでバグが見つからなかったのか?うるせえPMみたいなこと言うんじゃねえ!

    # この中でバグを埋め込んだことがないものだけが彼に石を投げよ!

    • Re:っ ハンロンの剃刀 (スコア:5, おもしろおかしい)

      by Anonymous Coward on 2014年04月13日 16時25分 (#2581197)
      > # この中でバグを埋め込んだことがないものだけが彼に石を投げよ!

      主よ、使う専門のユーザーである私は投げてよいのですね。

      # 石を投げるのがそもそもダメです。
      親コメント
      • by Anonymous Coward

        使う専門のユーザーは幸いである。汚染とか感染とか気にする必要がない。

        • by Anonymous Coward

          意味が分からない。説明希望。

          • by shibuya (17159) on 2014年04月13日 21時50分 (#2581373) 日記

            オフトピで野暮な解説になってしまいますが
            マタイ福音書の「…はさいわいである」
            というのは最下層のみじめな生活をしている人向けなわけです。
            そんな人をさいわいであると祝福することば。
            そういう趣旨であれば、使う専門のユーザーは
            (涙と嗚咽のためこれ以上書き進められません。ごめん)

            親コメント
    • Re:っ ハンロンの剃刀 (スコア:5, すばらしい洞察)

      by Anonymous Coward on 2014年04月13日 16時28分 (#2581200)

      レビューで見つからなかった以上はプロジェクトの失敗であって個人の失敗ではないよねぇ。
      なんか実装者の今の勤め先まで晒して追いつめるようなことしなくても…
      作っちまった自覚が本人にあればそれだけで反省するには十分なんだから。

      親コメント
      • by headless (41064) on 2014年04月14日 0時57分 (#2581411)
        バグは意図的に挿入されたものではなく、レビューでも発見されずにリリースされたというのは開発者本人が説明したからわかったことで、Spiegel Onlineの記事 [spiegel.de]によれば当初Twitterなどでは名指しで犯人扱いされていたようです。その後、自社に彼が勤務していることを知ったDeutsche Telekomが彼の釈明を記事にしたものとみられます。
        親コメント
      • by Anonymous Coward

        だよねぇ。
        そこで静的解析ツール導入してチェックを必須にするとか、レビュー項目のダブルチェックしますとかそういう方向に行かなきゃ。

        海外も八つ当たりの人柱を求めるんですねぇ(小並感)

    • by Xatz (31320) on 2014年04月14日 14時53分 (#2581750) 日記

      結局のところ「人がやっている以上たとえ巨大なコミュニティであってもチェック漏れは起きる」という例を示しただけなんですよね。

      --
      openDoe-Ming Ver.0.72.9beta
      親コメント
      • by headless (41064) on 2014年04月14日 23時11分 (#2582102)
        OpenSSLは広く使われているにも関わらず、プロジェクトでアクティブに活動している人はごくわずかで、同様の問題が発生しないようにチェックを強化するには不十分だと、この開発者が述べています。コミュニティは意外と小さいのかもしれませんね。
        親コメント
        • 小さなコミュニティなんでしょうねえ。

          これこれの環境でcompileしたらかくかくしかじかのerrorが出ました
          みたいなメールを10年以上前にopenssl-usersに投稿したことが1ぺんありましたが
          次直す(意訳)という返信がその日のうちにありました。

          patch作成するだけの能がなくてもそれくらいはできるわけだけど
          日本人の(と思われる)投稿は当時も今もめったにみない。
          openssl-devとopenssl-cvsは見ていないけど。

          親コメント
    • Re: (スコア:0, フレームのもと)

      by Anonymous Coward

      無能で十分説明されることに悪意を見出すな

      どこぞの国の超一流研究所で最近起こった事件のことですね(笑)

    • by Anonymous Coward

      とはいえ、日頃お世話になってるものを作ってくれた人を
      平然と無能と呼べるような人間にもなりたくないしなぁ。

    • by Anonymous Coward

      ダジャレの応酬で酷いことになっているかと思いきや、そんなことはなかった。

  • by lcc (46023) on 2014年04月13日 17時18分 (#2581236) 日記

    その疑いの目は、ソースコードに向けるべきだろう?

  • by Anonymous Coward on 2014年04月13日 16時32分 (#2581204)

    そういえばこんな翻訳記事を見つけた。
    "BLUISH CODER: 安全なプログラミング言語を使って heartbleed を防ぐには"
    https://github.com/jats-ug/translate/blob/master/Web/bluishcoder.co.nz... [github.com]

  • by Anonymous Coward on 2014年04月13日 17時59分 (#2581261)

    http://cpplover.blogspot.jp/2014/04/theo-de-raadtietf.html [blogspot.jp]

    ざっくりいうと…

    もともとTLSでハートビートは不要で、TCPハートビートを使うか、アプリケーションでハートビートを送れ

    使ってない機能だから穴があいていても気づかない

    TLSワーキンググループが無能だから要らない機能策定をしている

  • by masahikoi (1183) on 2014年04月13日 17時56分 (#2581254)

    記事のタイトルが「Heartbleed開発者……」となってるんだけど、これだと記事内容とは逆に意図的にバグを埋め込んだように見えるような気が。

  • 割りと根本的に、オプソのあり方に石を投げ入れる問題と思うんだけど…。

    完璧なものなど滅多にあり得ないとはいえ、「長年実績のあったソフトウェアに途中から致命的なバグが入り、かつそれがレビューで発見されませんでした。」
    って言われて、はいそうですかで終わらせるなら、オプソのほとんどが危険で使えない事になっちゃいますよ。

    • ソースをクローズドにしてるとレビューで見つかるの?

      # 危険が100%無いモノなんて存在しないよ

      親コメント
      • 完全オフトピで恐縮ですが。。。
        http://www.openssl.org/source/repos.html [openssl.org]

        The OpenSSL package is developed in a Git-based repository. It is available via Git mechanisms at git.openssl.org and as snapshot tarballs through FTP on ftp.openssl.org for those people who either want to always stay at the bleeding edge or even want to participate in the development of OpenSSL. But use such repository snapshots only when you like to see OpenSSL dump core and you can help yourself in case of problems, of course.

        クローズドではない状態が15年くらい保たれているはずです(CVSメインがいつからGITメインに移行したのかは忘れた)。

        親コメント
      • by Anonymous Coward

        そんなこと書いてないのでは?何か難しく考えすぎじゃないの?
        恐らくは目が多いことで誤りがクローズドより発見されやすいのだ(故により安全)という
        主張がなされることに対する疑問でしょう
        メジャーなソフトでかつ何年も放置されていたのだから、
        たまにはあるさ例外的なことだとは片づけにくいのではという指摘だと思うよ

    • by Anonymous Coward

      OSSが安全と思うやつが悪い
      ソースを確認できる、ただそれだけのこと

      • by Anonymous Coward

        >>ソースを確認できる、ただそれだけのこと
        ??
        それ以上なにを求めることができる?

        • by Anonymous Coward

          なら危険で使えない人は使えない、使える人は使えるというだけのこと

    • by Anonymous Coward

      http://it.srad.jp/comments.pl?sid=628761&cid=2581261 [srad.jp]
      こっちを読む限り、OpenSourceの問題というより、IETFの問題という主張がある模様。
      I

      • by Anonymous Coward

        使ってない機能だからレビューが適当でバグ入りでもコミットされちゃうし、目が向きませんって事ですか?
        それじゃ不味いでしょう。

    • by Anonymous Coward
      オープンorクローズドソース以前の問題でテスト時に発見できなかったんでしょうかね。
      オープンソースではコードレビューくらいでテスト仕様書など作らないもの?
  • by Anonymous Coward on 2014年04月13日 21時48分 (#2581371)

    セキリティへの影響が大きいソフトはCで書くな、生のポインタ使うな、
    C++のコンテナで包め、オーバーフローは自動的検知させて例外を飛ばせ、
    いつもそう思う。

    • by Anonymous Coward

      理想はごもっともですが、C++はおろかいまだに言語仕様完全準拠のCを使えない環境もあるわけで。

    • by Anonymous Coward

      いろんな意味で、重い理想だね。

  • by Anonymous Coward on 2014年04月13日 22時24分 (#2581388)

    国内でもHeartbleedを狙うパケットの増加を観測 [atmarkit.co.jp]

    「JPドメインでは1195サイトのうち534サイト (45%) に脆弱性あり」「4月9日以降、実証コードと一致するパケットが多数観測された」ということで、管理者が試している分があるにしろ、攻撃も始まっていると考えるべきですよね・・・実際に情報を盗めることを確認、みたいな記事も見かけましたし。

    まあいずれにせよ、NSAには既に全部抜かれた後みたい [bloomberg.co.jp]ですけど。

  • by Anonymous Coward on 2014年04月14日 5時48分 (#2581453)

    以前Debianのメンテナだったかが、ランダム性のもとになっている情報をエラーが出るからと削ってしまって、SSHの鍵を大量破棄しなきゃならない事件があったよね。暗号化はスピードも必要だし、中の人たちにとっても難解で、それでいて影響も大きい。コードの質を保つのが難しいんじゃないかな。

  • by Anonymous Coward on 2014年04月13日 16時06分 (#2581180)

    意図的にスルーしたのではないか?あるいはユーザーが意図的に(ry

    • by Anonymous Coward

      入った理由がどうであれ、NSAが意図的に利用していたことはすでに判明している

  • by Anonymous Coward on 2014年04月13日 17時06分 (#2581228)

    この手法が何という言葉だったか忘れたけどそれのプログラミング版ですね。

    Aを行うプログラムのコードを書きつつ中に機能Bも行うコードをバグとして入れる。
    機能Bは他人がコードを読んでも気づかれないか気づかれたとしてもバグと言える。
    そういうプログラミングの大会もあったと思います。

    日本でも「秘書がやった私は知らなかった」という形でよく使われてるか

    • by Anonymous Coward on 2014年04月13日 20時54分 (#2581347)

      > そういうプログラミングの大会もあったと思います。
      Underhanded C code contest ですかね。
      http://underhanded.xcott.com/ [xcott.com]

      不定期にしか開催されていないのですが、過去入賞者のエントリはどれも簡潔で、さも悪意がないかのように見える悪意に満ちたバグに富んでいます。これを見ていると逆に今回のバグは見つけやすい方だなぁと思えるので、私は陰謀論に与したくないですねぇ。

      親コメント
      • by Anonymous Coward

        これです。ありがとうございます。
        バグの形である機能を盛り込むノウハウなんかがあると対策は難しいでしょうかね。

    • by Anonymous Coward

      > 日本でも「秘書がやった私は知らなかった」という形でよく使われてるか

      本当に「よく」使われてる?
      もし数を数えてみたんなら、もういっぺん数えなおしてみなよ。

      • by Anonymous Coward on 2014年04月13日 22時04分 (#2581381)

        >Aを行うプログラムのコードを書きつつ中に機能Bも行うコードをバグとして入れる。
        >機能Bは他人がコードを読んでも気づかれないか気づかれたとしてもバグと言える。

        「なんかの手法のプログラミング版という主張」を書きつつ、「秘書がやる私は知らなかったという
        ことが多いという印象操作」をバグとして入れる。

        「秘書がやる私は知らなかったということが多いという印象操作」を読んでも
        印象操作と気づかれないか気づかれたとしてもバグと言える。

        ...よく気づいたな。

        親コメント
        • by Anonymous Coward

          「秘書がやる私は知らなかったということが多いという印象操作」を読んでも
          印象操作と気づかれないか気づかれたとしてもバグと言える。

          ...よく気づいたな。

          ちょっと違います。
          私はそういう印象操作を狙ったわけではなくてその手法が色々な形で使われているという例を挙げたかっただけです。
          私が言いたかったことはそこにはなくそのようにコードを書くこともできるという事です。
          Underhanded C code contest を見て頂ければわかっていただけるはずです。

          と私が書けばこの手法は完成です。

typodupeerror

アレゲはアレゲ以上のなにものでもなさげ -- アレゲ研究家

読み込み中...