世界を動かす技術を、日本語で。

ハブ・アイ・ビーン・ポーンド 2.0

概要

  • Have I Been Pwned (HIBP) の新ウェブサイトが正式公開されたことを発表
  • サイト全体の機能刷新、新機能追加、UI/UX大幅改善を実施
  • 検索機能やダッシュボード、ドメイン検索など主要機能を強化
  • APIやパフォーマンスも最適化し、トラッキング等は排除
  • HIBPブランドの公式マーチストアも新設

Have I Been Pwned 新サイト公開:主なアップデートと特徴

サイト刷新の経緯と概要

  • 2023年2月 にリポジトリ初コミット、 2024年3月 にリブランドをソフトローンチ、今回正式公開を迎えること
  • サイト全体を 全面的に再構築、ほぼ全ページの機能を見直し、多数の新機能を追加すること
  • マーチストア も新設し、HIBPブランドグッズ販売を開始すること
  • サイトの雰囲気を 遊び心あるデザイン に刷新、恐怖心を煽らず、事実ベースで分かりやすく情報提供すること
  • 主要機能や新要素について順に解説すること

検索機能の進化

  • HIBPの シグネチャ機能 であるフロントページの検索ボックスを大幅に強化すること
    • 一部ユーザーに 祝福の紙吹雪アニメ を表示、利用体験を明るくする工夫
    • ネガティブ結果は控えめな演出にとどめること
  • 検索結果の タイムライン表示 を導入、各インシデントの要約と詳細ページへの導線を追加すること
  • ユーザー名・電話番号検索 はウェブサイトから廃止(APIではサポート継続)
    • 理由:解析・通知の難しさ、データフォーマットの複雑さ、ほとんどの漏洩がメールアドレス主体であること
    • 検索ボックスで混乱やサポート負荷が発生していたため、整理・簡素化を優先すること

漏洩インシデント詳細ページの新設

  • 漏洩ごとの専用ページ を新設し、検索結果が煩雑にならないよう設計すること
  • 各インシデントに対し、 より具体的な対応アドバイス を掲載
    • 例:2FAやパスキー対応サービスには専用セクション追加予定
    • NCSC(英国国家サイバーセキュリティセンター)など、 地域別ガイダンス も掲載予定
  • 今後も ユーザーや専門機関からの提案 を受け付けて改善すること

ダッシュボード統合

  • これまで分散していた各種機能(センシティブ漏洩確認、APIキー購入、ドメイン検索、購読管理、stealer logs表示等)を 一元化ダッシュボード に統合すること
  • 「Sign In」認証 でメールアドレス所有確認後に利用可能
  • 将来的に パスキー対応 も追加予定
  • ダッシュボードは今後の新機能追加の基盤とし、たとえば家族のメールアドレス通知管理等も検討中

ドメイン検索機能の強化

  • 検証済みドメインのリスト表示 を刷新し、見やすく整理すること
  • メールアドレスや最新漏洩のみのフィルタリング 機能を追加(リクエスト多数)
  • 検索結果は APIからJSON取得し、SPA(シングルページアプリ)として高速表示
  • ドメイン所有者認証フロー も全面改修し、より簡便なUIを実現
  • 非メール認証方式についても今後改善予定

APIとドキュメント

  • API自体に変更はなし、後方互換性を維持すること
  • OpenAPIベースの 新ドキュメント(Scalar) も準備中だが、現時点では旧ドキュメントをサイトデザインに合わせて提供
  • 今後、Scalarへの完全移行を予定すること

マーチストア開設

  • HIBP公式マーチストア (merch.haveibeenpwned.com)を新設、Teespringを利用し原価で販売
    • コミュニティ向けの ファンアイテム提供 を目的とし、利益は一切得ていないこと
  • ステッカーは従来通りSticker Muleの1アイテムストアを利用し、オープンソースアートワークも自由利用可能

技術スタックとパフォーマンス改善

  • バックエンドは引き続き Microsoft Azure を利用(App Service, Functions, SQL Azure Hyperscale, queues, blobs, tables等)
  • コードは C# (.NET 9.0, ASP.NET MVC on .NET Core)、フロントエンドは Bootstrap最新世代、SASS、TypeScript
  • Cloudflare によるWAF・キャッシュ・Turnstile(reCAPTCHAから完全移行)を活用
  • インターフェース設計は Ingiber (Iceland)が担当し、期待以上のUIを実現
  • パフォーマンス測定 でページサイズ28%、リクエスト数31%削減を達成
  • トラッキングや広告系のコードは一切排除 し、ユーザープライバシーを最優先
    • アクセス統計はCloudflare経由のもののみを利用、1Passwordの製品紹介も純粋なテキスト+画像のみ

今後もユーザーやパートナーからのフィードバックを受け、さらなる機能拡充・改善を進めていく予定です。

Hackerたちの意見

あなたのメールが漏洩したデータ侵害のすべてを、ロゴや説明文付きで縦にスクロールできるタイムラインで見せてくれるんだ。なんとも恐ろしいけど、ちょっと面白いね。

ちょっと無力感を感じるな。できることはクレジットを凍結するくらいしかないし。

LinkedInみたいな大きなサイトが、未処理のパスワードを保存しているなんて信じられない。現代でこんなことがどうして起こるんだろう?

現代でこんなことがどうして起こるんだろう?おそらく、誰も手をつけられないような古いレガシーシステムとか、他の統合が原因なんだろうね。大企業ほど「ビジネスクリティカル」とされるものが硬直化するリスクが大きくなるから、たった1時間の小さな障害でも、今や6桁、7桁の「失われた」時間になるからね。

面接でLeetcodeの難しい問題を十分に聞かなかったんだろうね。

AIの話がたくさんあるけど、実は私たちは何十年もアウトソーシングの問題に悩まされてるってことはあまり聞かないよね。これがLinkedInでも失敗する原因だと思う。アウトソーシング会社や彼らがアウトソーシングしたプログラマーが作る製品を扱った経験からそう言ってるんだ。強力で有能な管理者が知的な期待や要件を設定してテストしない限り、表面上はビジネスやリーダーシップの人たちにとって同等の製品に見えるものが出てくるだけで、実際にはその下に問題があるってことに気づかないんだよね。

実は意図せずにやっちゃうことって簡単なんだよね。ミドルウェアの介入として、JSONオブジェクトのパスワードフィールドは他のフィールドと同じようなものだから。どこかにリクエストボディをログするようなログ記録/トラッキング/分析があるかもしれないし。マーケティングのトリックを使わなくても問題になることがあるし、彼らの規模では不正防止システムが必要なのは間違いないよ。塩を加えていないパスワードを「パスワードデータベース」に保存するのは珍しいけど、例えばAndroidアプリのAPIゲートウェイからのリクエストログを保存して、パスワード再設定フローのpasswordフィールドを機密情報としてマークし忘れるのは、そんなに珍しくないよ。

LinkedInは一時期、連絡先を見つけやすくする名目で、みんなにメールの認証情報を渡すように圧力をかけてたからね。だから、LinkedInはITセキュリティの要塞ってわけじゃないよ。

他に誰か新しいデザインが信頼できない感じがする人いる?多分、似たようなテンプレートに慣れすぎちゃったんだろうけど、特に問題はないはずなのに、なんか偽物を開いちゃったんじゃないかって思っちゃう。

うん、同意する。この新しいバージョンは、安っぽいテンプレートを使って安っぽいグラデーションを使ってるみたいで(グラデーションをどう説明すればいいかわからないけど)、すぐに信頼性が低く見えちゃう。

そうだね。もしかしたら俺がただの頑固なおじさんなだけかもしれないけど、ウェブサイトのリデザインってマーケティング的なもので(ウェブ開発者には楽しいかもしれないけど)、ユーザーにはあまりメリットがないと思う。NASA ADSは、何年も前から素晴らしい(ちょっと古臭いけど)サイトを持ってて、クリーンで速くて機能してたのに、写真やJavaScriptで派手にするのにたくさんの時間と労力を使った結果、結局同じことをしてるだけだよね。

彼は、過失によるすべての侵害に対して集団訴訟のために法律事務所と提携すべきだね(たぶんすべての侵害がそうだろうし)。銀行サービスと結びつけて、新しい和解金が支払われるたびに何百万もの人に直接入金できるようにすれば、民衆の英雄になれるよ。過失のある企業に本当に反省させるような判決を出す弁護士を集めて、痛手を与えるんだ。(小さな和解金で弁護士が報酬を得るだけで、ビジネスを責任を持って行うよりも安く済むのは好ましくない。)オプションとして、差し迫った訴訟のデータを投資会社に売るのもありだけど、理想的には投資家はこのデータを必要としないはずだよね。だって、侵害があれば株価が下がるってみんな知ってるはずだから。それが本来あるべき姿じゃない?

直接入金を何百万もの人に行うのは大変だよね。新しい和解金が支払われるたびに、自分の小さな和解金を良い目的に寄付できたらいいのに。クラスに登録する価値があるかもね。

これは逆効果になると思う。企業が公に違反を発表するのは今は難しいから、あなたの提案はさらに難しくしてしまうし、データ漏洩が公に知られないことが増えると思う。企業がミスをしたことを知ってパスワードを変える方が、知らないままでいるよりはいいよ。

お金をください。まだBlue Shieldから健康情報をGoogleに売ったお金が支払われるのを待ってるよ。

銀行サービスに結びつけて、何百万もの人に直接入金できるようにすれば、民衆のヒーローになれるよ。でも、そのデータが漏洩するまでどれくらいかかるんだろうね?

株式市場は本当に非論理的だよね。毎回、下がった時に買うチャンスみたいに見える。企業もこういう下がりの後に自社株買いしてるんじゃないかな。

「法律事務所と提携すべきだ」って?彼はマイクロソフトの社員だよ。

通常、違反が起こると企業の株価は一時的に下がって、その後回復することが多いよね。Coinbaseの事件の後の動きを見てみて。

それは、ユーザーにとっては微々たる金額を支払うために大規模なインフラ変更をすることになって、プラットフォームに大きなメンテナンス負担をかけるし(支払いシステムは地獄だし)、訴訟やブランドの好意から利益を得てる法律事務所に不釣り合いに利益をもたらすだけだと思う。俺にはクソみたいな取引に思える。

銀行サービスに連携させて、何百万もの人に直接入金できるようにすれば、新しい和解金が支払われるたびに民衆の英雄になれるよ。トロイはすでに民衆の英雄だから、あんまりモチベーションにならないよね。

もう少し目立たないようにしたい人には、このサービスでメールの検索結果を隠すことができるよ。https://haveibeenpwned.com/OptOut

情報ありがとう!検討してる人のために、メール認証後に表示される3つのオプトアウトオプションを紹介するね:1. 公開検索から私のメールアドレスを削除する。公開のHIBP検索機能を使っても、結果にあなたのメールアドレスは表示されないよ。通知サービスを通じて自分のアドレスを検索することはできるけど、結果を表示する前にそのメールの所有権を確認する必要があるからね。もしあなたのメールが他の誰か(例えば、雇用主)によって監視されているドメインの一部なら、そのドメインコントローラーはドメインレベルの検索で見ることができるよ。2. 公開検索から私のメールアドレスを削除して、表示される違反リストを削除する。あなたのメールアドレスはもはや検索できなくなる — 公開サービスでも、自分で確認してもダメ — だって、関連する違反がデータベースから削除されてるから。ただし、HIBPは将来の違反から除外するためにあなたのメールアドレスを保持してるよ。3. 私のメールアドレスを完全に削除する。あなたのメールアドレスを含む記録は完全に削除されるから、削除時点で検索結果には表示されなくなるよ — あなたにも、一般にも。ただし、将来のデータ違反でそのメールアドレスが再び表示されることがあれば、オプトアウトの記録も削除されてるから、再び公開検索可能になるよ。

オプトアウトリストがハッキングされたらどうなる?

普通の人たちが「Have I Been Pwned」を使ってるし、彼らを1Passwordに誘導するのが多分一番良いことだと思うよ(スポンサーシップだって知ってるけど、すごくいい提案だよね)。そのプロモバナーの言葉をもっと強くした方がいいと思う(つまり「強くおすすめします」とか)し、ページ上で目立つようにした方がいいね。多くのSNSアカウントが共有パスワードのせいでハッキングされて、影響を受けたユーザーがそのサイトに行くことが多いから、パスワードマネージャーに誘導して、良い衛生状態の理由を説明するのは素晴らしいよ。追伸:再立ち上げおめでとう![0] 過去約12ヶ月で20件以上のケースを手伝ったことがあるよ。

なんでビットワーデンじゃないの?

スポンサーシップだから文句は言わないけど、もし本当にパスワードマネージャーを使わせたいなら、無料プランがあるビットワーデンに誘導すべきだよね。それに、彼らの有料プランは年間10ドルで、1Passwordの36ドルに比べたらかなり安いし。

残念ながら、新しいUIでは漏洩した電話番号を検索できなくなったんだ。古いUIではできたのに(例えば、Facebookの電話番号漏洩をチェックできた)。新しいのは入力フィールドを通過させないんだ。追記:発表にも書いてあったけど、> まず一つだけ - ウェブサイトからユーザー名と電話番号の検索サポートを削除しました。でも、ドイツでFacebookに対する訴訟が進行中の今、この機能を削除するのは本当に悪いタイミングだよね(https://www.vzbv.de/pressemitteilungen/facebook-datenleck-be...、ドイツ語のリンク)で、そこで検索を使って参加できるかどうかを知ることができたから。

APIはまだサポートしてるから、新しいソリューションを実装するのは可能だと思うよ。発表で説明されてた機能をやめる理由は、全体的な影響を考えるとかなり妥当だと思う。

多くの人と同じように、私は「メイン」のメールアドレスを持っていて、ほとんどのことには会社ごとのアドレスを使ってるんだ。ドメイン検索がサブスクリプションを必要とするようになったから、このサイトはずいぶん使いにくくなったよ。再び自分のドメインをサイトに追加したら、「合計2,243件の違反アドレス」と「スパムリストを除いた18件のアドレス」が表示されたけど、それが何なのか全くわからない。リンクをクリックしようとすると、「アップグレードが必要」って言われるし、ExcelやJSONのダウンロードは404エラーになる。残念だね、もし一つのメールアドレスしか持ってないなら情報を得るのはいいかもしれないけど、複数のアドレスを持つドメインを使ってると、全然役に立たないよ。

俺は結構な数の個人用のキャッチオールドメインを持ってて、そのうちの二つは君と同じようにウェブサイトごとのエイリアスに使ってるから、10年以上経った今、各アドレスを手動で入力するのは無理だし、覚えてもいないよ。それに、ドメイン検索の制限もウザいよね。でも、トロイとその家族も食べていかなきゃいけないから、特に企業向けに支払い部分が必要なのは理解できる。俺たちはその中間のグレーゾーンにいるって感じだね。もうちょっとニュアンスがあればいいのにと思うけど、HIBPはすべてのエッジケースに対応するわけにはいかないし、たくさんの開発者やカスタマーサービスを雇いたくないだろうし。結局、サブスクリプションに登録してドメインをチェックして、その後サブスクリプションをキャンセルしたよ。ちょっと面倒だったけど、まあ大丈夫だった。非定期の2日間アクセスがあれば良かったな…

私も似たような設定をしていて、1つのドメインでたくさんのアドレスを使ってる。でも、私が知る限りではサブスクリプションには入ってないし、ドメイン内でワイルドカード検索も問題なくできるし、どのメールが漏れたかも正確に見えるよ。どの漏洩に関与してるかはわからないけど、それはあまり重要じゃないかな。各メールは1つの製品/プロジェクト/会社用だから、どこで漏れたかはもうわかってるし。

このサービスにはいつもイライラしてた。自分のメールが侵害されてるって教えてくれるのはいいけど、実際には何が漏れたのか正確には見えないから、怖いだけのことが多い。特にパスワードについてはね。詳細を隠す理由は理解できるけど、悪い奴らは多分詳細が書かれたソースファイルを持ってるだろうし。俺がイライラするのは、自分のメールが何百もの漏洩を集めたランダムなペーストビンに載ってるのを知るのはいいけど、正確なサイト名や日付がわからないし、パスワードも見えないから、誰がデータを漏らしたのか、どのパスワードを変えればいいのかがわからないこと。最悪なのは、俺は必要ないサイトに対してすごくクソみたいな簡単なパスワードを使ってたから(例えば、無料のサブスクリプションが必要なメディアで一つの記事を読むためとか、無料のカンファレンスやオンラインウェビナーとか)、そういうサイトが漏洩の最適なターゲットになってるんだよね。個人情報を入れないように気をつければ、全然無害なのに。

実際に人間のリクエストはおそらく1桁のパーセンテージしかないと思うけど、その数字を減らす方法を考えないといけないね。でも、少なくともフォールバックの提案は改善されたみたい。記事に書いてあったフォールバックの提案は「もう一度ボックスをクリックしてみて」と「ページをリロードしてみて」だね。そろそろ、どこか別の場所に行くのを諦めて、ブロックされてる会社に手紙を送るべきかなって考え始めてる。HIBPは無料のウェブサービスだし、店舗は特定の個人にサービスを提供する義務はないけど、みんながCloudFlare TurnstileやGoogle Recaptchaをサービスの前に置くと、ほんの「1桁のパーセンテージ」の人たちが現代社会に参加できなくなっちゃう。似たようなマーカー(IPアドレスがボット範囲に誤分類される、変わった/古い/感染したブラウザなど)は、同じグループに対して常にトリガーされ続けるだろうね。

同意だね、どういうわけか私の(固定)IPアドレスがGoogleやCFをトリガーしてるみたい。家からスクレイパーを動かしてるわけじゃないけど、NoScriptを使ってるから、NoScriptを使ってる私はボットなのかな?多分ね。