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

Let's Encrypt、ほかのユーザーのメールアドレスを記載したメールをユーザーに送信 20

ストーリー by hylom
うっかり 部門より
headless 曰く、

Let's Encryptが11日、ほかのユーザーの電子メールアドレスを記載した電子メールをユーザーに送信していたことを発表、謝罪した(Let's Encryptの報告Register)。

この電子メールは、電子メールアドレスを登録しているすべてのアクティブサブスクライバーに対し、サブスクライバー契約書の内容変更を知らせる内容で、自動送信システムにより送信された。しかし、プログラムのバグにより、前に送信した送信先が次々と本文に付加されていったのだという。問題に気付いたLet's Encryptは全体のおよそ1.9%にあたる7,618通を送信したところでシステムを停止させたが、0~7,618件(件数は原文ママ)の電子メールアドレスが記載された電子メールが送信されてしまったとのこと。

Let's Encryptでは原因を調査し、再発防止に努めるとしており、調査結果を後日発表するとのこと。また、該当する電子メールを受信したユーザーに対しては、リストを公開しないように求めている。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • Let's Encrypt のメール配信業務は The Rocket Science Group, LLC [rocketsciencegroup.com] の Mandrill [mandrillapp.com] に一部業務委託されているようですが、今回のミスがどっちの責任で生じたのかは報告書に書かれていなかったのでよくわかりませんでした。

    最終報告書 [letsencrypt.org] によると、今後は加入者の電子メールアドレスへのアクセスを持っているソフトウェアは、直接証明書の発行や管理を行わない場合であっても、コアCAソフトウェアとみなして厳重なテストを行うそうですから、このような事態は再発しないだろうと思います。

    In the future, any software which has access to subscriber email addresses will be considered core CA software, even if it doesn't directly have to do with the issuance or management of certificates.

    それでもメールアドレスの漏えいが不安な場合には コマンドラインオプションに --register-unsafely-without-email を付ける [letsencrypt.jp] ことで、Let's Encrypt 認証局にメールアドレスを提供せずに証明書を取得できるようです。ただし、非推奨なオプションなようです。

    コマンド解説 - Let's Encrypt 総合ポータル [letsencrypt.jp] より引用:

    --register-unsafely-without-email

    このフラグを指定した場合、証明書管理のためのアカウントを作成する際に、電子メールアドレスを登録しません。

    暗号鍵の紛失やアカウントの盗用が発生した際にアカウントへアクセスする手段が完全に失われることになるため、このフラグを指定しないことを強く推奨します。

    電子メールアドレスを登録しない場合、SSL/TLS サーバ証明書の有効期限が近付いた場合や証明書が失効した場合の通知を受け取ることもできなくなります。また、利用規約が変更された場合には、ウェブサイトで告知してから14日間が経過した時点で、新しい利用規約が有効となります。

    (デフォルト: False)

  • by Anonymous Coward on 2016年06月17日 16時40分 (#3031364)

    > 0~7,618件(件数は原文ママ)

    Let's Encryptの続報ページでは0〜7,617件に訂正されてますね。
    https://community.letsencrypt.org/t/email-address-disclosures-june-11-... [letsencrypt.org]

    • by Anonymous Coward

      いつも誤字を指摘されているストーリーだけど、よくこんな細かいところに気づいた。

  • by Anonymous Coward on 2016年06月17日 8時55分 (#3031041)

    1回動かしたらわかるだろうが

    • by Anonymous Coward

      1回めの動作では分からないでしょ。

      以前に使用したアドレスまで本文に追加してしまうってバグだから、最低2回は動かさないと。
      で、本文に無関係な送付先のアドレスが追加されていることをチェックしなきゃいけなかった。だから気づかなくて当然。
      何十回か動作すれば本文が異常に大きくなっているからそこで気づいたかもしれないが、自分だったら自信ないなあ。
      そもそも送信先が正しく変更されることしかチェックしないだろうし、何十回も動作確認したりはしない。

      このバグは本文に宛先のアドレスを転記する処理で、転記元のバッファを動作毎にクリアすべきなのにしてなかったとか、そのレベルだと思われます。なので動作確認のテストで発見することは期待できないでしょう。
      決まった本文を送るだけなら本文に影響するような処理は作らない(から今回の問題は起きない)し、宛先に応じて本文を加工するならそのロジックを検証するテストが個別に必要。今回はそれができてなかったという事ではないでしょうか。

      • by Anonymous Coward

        1回テストするにも、ツールの性質上複数アドレスは用意してテストするでしょ

        事象も誤解して長々書いてるけど、この人色んな意味で大丈夫?

        • by Anonymous Coward

          個人的には、「1回動かしたらわかるだろうが」の一言で斬って捨てるやつの方が不安だなあ

        • by Anonymous Coward

          ユニットテストで一括送信部分のテストが抜けていたのなら、1つのアドレスにしか送らないということもありうる。そして今回はそうだったと。
          こういうセキュリティに関わる部分はテストすることを明確にすべきですね。全体のカバレッジを見るのではなくて。

          • by Anonymous Coward

            ユニットテストはプログラムの作りに依存するので、
            一括送信時の動作という観点でのテストは(ユニットテストでは)実施出来ない可能性もあります。

            その場合でも複数アドレスの入力受け取り、分割して返すメソッドなど別の個所でNGになるはずですが、
            処理をきっちり分割出来ていなかったりとユニットテストに向かないコーディングをしてれば、
            いくらでもすり抜ける可能性はありますね。
            その場合、ユニットテスト自体の意味がほとんどなくなりますが、
            元々ユニットテストはある程度のプログラミングスキルが無いとまともなテストは出来ないものです。
            (どちらかと言えば、テストとは言うもののプログラミングの一部)

            その場合でもちゃんとテストしてれば、
            他のテストフェーズで今回のケースは検出出来たはず。

  • by Anonymous Coward on 2016年06月17日 8時58分 (#3031044)

    T ポイント 500 円分でしょ?

  • by Anonymous Coward on 2016年06月17日 10時24分 (#3031115)

    うちにはまだ誤送信もお詫びメールも来てないな

    誤送信届いてなくても
    流出被害者の可能性があるのに
    被害対象か否か確認方法ないのはつらいな

    # そして確認サイトとして第三者がウマウマ

    • by Anonymous Coward

      「前に送信した送信先が次々と本文に付加されていった」
      ので、誤送信が届いていないなら流出もないです。
      あなたには被害がないので、彼らはあなたに詫びる必要もないのです。

      と私は読み進めたが、どうなったら親コメの思考になるのかご教授いただきたい次第

      • by Anonymous Coward

        最初の送信者でない確証をどうやって得るんだろう

        • by Anonymous Coward

          最初の投稿者でなくても納得のいく説明ができれば誰でもいいです。

          • by Anonymous Coward

            「2016/06/11(UTC)に送信を始めた」「1.9%処理したところで停止した」と言っているのだから、ここ一週間でLet's Encryptからメールを受け取っていないのであれば最初の1人(もちろんそれ以降も)にはなってないんじゃないかな。

  • by Anonymous Coward on 2016年06月17日 11時09分 (#3031152)

    せめて平文じゃなくて暗号化して送っていたならば。

    • by Anonymous Coward

      Let's Encryptさんが、S/MIMEの署名も無料でやってくれるようになったら最高や〜

  • by Anonymous Coward on 2016年06月17日 11時16分 (#3031157)

    安全、セキュアを最大にして唯一のプロダクトとする会社が
    一番してはいけないミスをしたケース。
    この直球感、そして脱力感すごい。
    史上希にみる速度で信用がdrop table。

    単体テストすらしてないのかと。

typodupeerror

「科学者は100%安全だと保証できないものは動かしてはならない」、科学者「えっ」、プログラマ「えっ」

読み込み中...