パスワード流出チェックサイト「Have I Been Pwned?」にMicrosoft Azureから突然高額の料金請求が、いったいなぜ?

GIGAZINE



セキュリティ研究家のトロイ・ハント氏が運営する「Have I Been Pwned?」は、さまざまなウェブサービスやデータベースに登録されたアカウントIDとパスワードが流出しているかどうかをチェックできるウェブサイトです。Have I Been Pwned?はAzure Blob Storageを利用しているとのことで、ある日突然Microsoftから高額の使用料を請求された件について、ハント氏がブログで解説しています。

Troy Hunt: How I Got Pwned by My Cloud Costs
https://www.troyhunt.com/how-i-got-pwned-by-my-cloud-costs/

Microsoft Azureからハント氏宛に送られてきた2021年12月分の請求書が以下。Azure Blob Storageの使用料は4557.13オーストラリアドル(約37万円)、10%税込で5012.85オーストラリアドル(約40万円)となっています。ハント氏の下にこの請求書が届いたのは2022年1月10日だったそうですが、タイミングの悪いことにハント氏以外の家族全員が新型コロナウイルスに感染してしまったことから、請求書を実際に確認したのは1月20日だったとのこと。使用料が予想以上に高額だったことに驚いたハント氏は、すぐにHave I Been Pwned?のコスト分析を行いました。


使用料の内訳はこんな感じ。最も高額なのはデータ通信費で、4457.78オーストラリアドル(約36万円)と全コストの9割を占めています。ハント氏によれば、通信費はアウトバウンドデータ1GBにつき0.014オーストラリアドル(約1.14円)かかるそうです。


ウェブサーバーであればトラフィックが増加して通信費が高騰することもありますが、Have I Been Pwned?が利用しているのはクラウドストレージなので、ハント氏はデータ通信量増加の原因を追及しました。その結果が以下のグラフで、12月20日頃にアウトバウンドが急激に増加しているのがわかります。


ハント氏は「アウトバウンドが急激に増加したタイミングは、イギリスの国家犯罪対策庁(NCA)がHave I Been Pwned?とデータを共有した時とちょうど重なる」と指摘。

5億8500万件以上のパスワードをイギリス国家犯罪対策庁が個人情報流出確認サイト「Have I Been Pwned?」と共有 – GIGAZINE


ピーク時となる12月20日11時から15時のデータ通信量を見たグラフが以下。アウトバウンドにほぼ15分周期でスパイクが見られ、17.3GBまで跳ね上がっているのがわかります。


データリクエストのログを見ると、CloudflareからAzure Blob Storageに「pwned-passwords-sha1-ordered-by-count-v8.7z」というZIPファイルのリクエストがあったことがわかりました。そこで、今度はCloudflareのダッシュボードからチェックしたものが以下。


「症状の直接的な原因は明らかでした。Cloudflareが本来キャッシュするべきものをキャッシュしていなかったのです」と、ハント氏。なぜそんなことが起こってしまったのかを探るため、ハント氏はAzure Blob Storageに置いているファイルの設定を見直しました。ハント氏は、Cloudflareに勤めている知り合いに連絡を取った後、「キャッシュ可能な最大ファイルサイズの設定」に問題があるのではないかと気づいたそうです。

すると、知り合いから「実際に確認してみたところ、CloudflareはZIPファイルをキャッシュしていませんでした。プランではキャッシュ可能な最大ファイルサイズは15GBに設定されていますが、あなたのZIPファイルは18GB近くあるようですね」と連絡があったそうです。

実際に、Azure Blob Storageへ2021年12月に追加した2つのファイルを見ると、どちらも15GBを超えていることが判明。そのうち「pwned-passwords-sha1-ordered-by-count-v8.7z」のファイルサイズは17.3GBで、まさにあのアウトバウンドのスパイクが示していたデータ量と同じでした。


そこで、ハント氏はCloudflareの設定を調整。さらにCloudflare側で15GBのファイル制限を引き上げたことで、問題は解決しました。

ハント氏が問題を解決したのは2022年1月22日。Have I Been Pwned?がNCAと共有したパスワード情報のZIPファイルをAzure Blob Storageへアップロードしてから1カ月以上経過しており、その間にも通信費は膨れあがっていたことになります。ハント氏によれば、通信費の総額は1万1448.3オーストラリアドル(約93万円)にのぼるとのこと。


Azureでは、1日のアウトバウンドが一定量を超えた場合やAzureの使用料が一定額を上回った場合にアラートメールを送信するような設定がありましたが、ハント氏はこれらを設定していなかったとのこと。ハント氏は「私はリスクがあることはわかっていましたが、実際に被害があるまでは必要な措置をとっていませんでした。しかし、もっとひどいことになっていたかもしれません。この数字が10倍になっていたかもしれないし、もっと早く気づくことができたかもしれません」とコメントしています。

この記事のタイトルとURLをコピーする

Source