検索
連載

まこと先輩と星野君とCSRFの微妙な関係星野君のWebアプリほのぼの改造計画(4)(2/3 ページ)

PC用表示 関連情報
Share
Tweet
LINE
Hatena

星野君の検査には見落としがあります!

 ミーティングの開始時間を5分ほど過ぎたところで、ようやく高橋さんが姿を現した。

高橋さん 「じゃあ、早速始めますか。まずは……」

 高橋さんによる大まかな仕様の確認が終わって、星野君へとバトンタッチされた。星野君は用意してきた資料に基づき、発見した脆弱性についての説明を行った。今回発見した脆弱性の話は、以前行ったWebアプリケーション検査と似た話であったので、すんなり説明できた。開発会社の2人にもちゃんと理解してもらえたようで一安心だ。

 最後に、赤坂さんの説明に移った。赤坂さんには、事前に高橋さん経由で星野君の資料が渡っていたみたいで、星野君の説明内容を踏まえたうえでの話になるようだ。

赤坂さん 「それでは、いまの星野君の検査結果を補足しますね。このWebアプリケーションにはクロスサイトリクエストフォージェリが存在しています」

 赤坂さんは星野君が発見できなかった脆弱性について話を始めた。クロスサイトリクエストフォージェリ(Cross-Site Request Forgeries:CSRF)という脆弱性によって他人のパスワードの変更が可能だというのだ。

 星野君にとってクロスサイトリクエストフォージェリは、いわゆる「はまちちゃん」騒動【注】で一時期話題になったという記憶があるだけで、詳しいことは知らなかった。開発会社の2人もこの脆弱性については知らないらしく、赤坂さんはクロスサイトリクエストフォージェリがどういう脆弱性かというところから説明を始めた。

【「はまちちゃん」騒動】
2005年4月、ソーシャルネットワークサービス「mixi」において、ユーザーが外部のWebサイトに書き込まれたURLをクリックすることで、mixi内の日記に「ぼくはまちちゃん」と勝手に書き込まれる問題が発生した。このいたずらはクロスサイトリクエストフォージェリを利用したものだった。


クロスサイトリクエストフォージェリって何だ?

 クロスサイトリクエストフォージェリは、クロスサイトスクリプティングと名前が似ているため混同されがちだが、原因も対策も根本的に異なる脆弱性だ。

 クロスサイトスクリプティングやSQLインジェクションなどの脆弱性の場合、ユーザーからの不正な入力に対して、入力値が正しくチェックされてなかったり、サニタイジングがなされていなかったりといったWebアプリケーションの処理の不足を利用して攻撃が行われる。

 しかし、クロスサイトリクエストフォージェリの特徴は、「正規ユーザー」から送られてくる「不正な文字列を含んでいない」HTTPリクエストでも攻撃が成立してしまうという点にある。代表的な被害には、ユーザーが意図しない日記・掲示板への書き込み、オンラインショップでの買い物や、今回赤坂さんの発見したパスワードの変更のような登録情報の変更・削除などが挙げられる。

赤坂さん 「では、実際に今回のWebアプリケーションがどのようになっているかを説明しますね」

 赤坂さんは実際にどのように攻撃が成り立つのか説明を始めた。

赤坂さん 「このWebアプリケーションでは、Cookieを利用してセッション管理を行っています。そのため該当ページにアクセスすると、ブラウザから送信されるCookieの情報を使用してユーザーの特定を行います」

斉藤さん 「それって、普通どこのサイトでもやってるんじゃないの?」

 ここまで脆弱性の説明を黙って聞いていた開発会社の斉藤さんが、何やら不満そうな表情をしながら赤坂さんの説明に割って入った。

赤坂さん 「はい、これ自体は別に悪いことではないのですが、パスワード変更の際に送信されるパラメータに問題があるんです」

 パスワード変更画面の入力フォームから送信されるパラメータの該当部分のHTMLソースは以下のようになっている。

*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***

赤坂さん 「ここでは、新パスワード『newpass1』と、新パスワードの確認用『newpass2』の2つのパラメータしか送っていません。例えば、悪意を持った人がこの2つの値を送信させるわなのページを作ったとします。正規ユーザーがこのわなを踏んでしまうと、Webブラウザから送信されるCookieを使って正規ユーザーだと特定されたうえで、意図していないパスワード変更が行われてしまいます。新しいパスワードは悪意を持った人が指定したパスワードになるので、変更したパスワードを使って正規ユーザーになりすます、なんていう2次被害も考えられますね」

星野君 「へぇ〜……」

今回のWebアプリケーションがCSRF攻撃を受けた際の動作

 星野君は、初めてクロスサイトリクエストフォージェリがどういうものか知ったので思わず感嘆の声を漏らしてしまった。その瞬間、赤坂さんにいちべつされたような気がしてちょっとあせった。

CSRFの解説を聞き、思わず感嘆の声を漏らす星野君

Copyright © ITmedia, Inc. All Rights Reserved.

Security & Trust 記事ランキング

  1. 「Appleの暗号化アルゴリズム」を盗用し、2カ月以上検出されなかったステルス型マルウェアの正体とは
  2. 「SMSは認証に使わないで」 米CISA、モバイル通信を保護する8つのベストプラクティスを公開
  3. 2025年、LLMの脆弱性が明確になるなど、セキュリティとクラウドに関する8つの変化
  4. 2025年に押さえるべきセキュリティの重要論点をガートナーが発表 新しいリスク、脅威、環境の変化、法規制などの動きを把握する指標に使える
  5. “ゼロトラスト”とトラスト(信頼性)ゼロを分かつものとは――情報セキュリティ啓発アニメ「こうしす!」監督が中小企業目線で語る
  6. Google Cloud、2025年のサイバーセキュリティ予測を発表 AIがサイバー攻撃にもたらす影響とは?
  7. 経営層の約7割が「セキュリティ対策は十分」一方で6割以上がインシデントを経験、1位の要因は?
  8. 終わらせましょう。複雑過ぎるKubernetes/クラウドネイティブが生む心理的安全性の低下を――無料でクラウドセキュリティの勘所が分かる130ページの電子書籍
  9. よく聞く「複雑化するサイバー攻撃」は具体的にどう複雑なのか? 一例を医療系企業のランサム事例とともに解説
  10. ChatGPTやClaudeのAPIアクセスをかたってマルウェアを配布するPython用パッケージ確認 Kasperskyが注意喚起
ページトップに戻る