ネット上で商売するのが当たり前な時代。自社でWebサイトやWebアプリを抱える企業も相当な数になっている。そこでインシデントが発生すれば信用、ブランド、収益……失うものは計り知れない。
本連載では情報セキュリティの専門家・徳丸浩さんが制作した脆弱性診断実習用のWebアプリ「BadTodo」を題材に、ストーリー形式でWebアプリ制作に潜む“ワナ”について学んでいく。
登場人物は全て架空の存在だが、ワナは全て現実にあり得るもの。セリフは徳丸さんの監修の下制作した。
カクーノ株式会社:Webアプリ開発を手掛ける企業。本記事に登場する企業・団体及び人物は全て架空の存在である。
荒井考人(あらいこうと):入社したばかりの新人プログラマー。基本的なプログラミングスキルはあるが、情報セキュリティに関する知識は豊富とはいえず、荒いコードを書きがち。今は研修でWebアプリ「ToDoリスト」を作っている。
上野司(うえのつかさ):荒井考人の上司。指導役として荒井のコードにツッコミを入れてくれる。荒井が研修でWebアプリを構築するに当たり、データベース周辺など前提の部分はすでに組んでいる。
上野 前回、PHPファイルをアップロードできる危険性について説明したよね。
荒井 はい。「悪意のあるプログラムを使った遠隔操作などの攻撃を受ける可能性もある」ですよね!
上野 その通り。でも、実はPHPだけじゃないんだ。例えばこのxss.htmlというファイルでも、似たようなことが起きる。アップロードして、ファイルを別タブで開くと……。
荒井 ……cookieの内容が丸見えですね。
上野 HTMLファイルの<script>タグに、cookieを閲覧するJavaScriptを埋め込んでいるから、その通りに実行できてしまうわけだね。「クロスサイトスクリプティング」(XSS)といわれる手法だ。
JavaScriptを書けるわけだから、cookieを見るだけじゃなくて、もう少し複雑なこともできる。例えばうっかり開いてしまった人の情報を盗むこともできるし、このサイトの場合パスワードも変更できてしまう。
荒井 でも、パスワード変更は手続きが必要な作りにしましたよ?
上野 うん。だけど、この仕様だとできてしまう。なぜなら古いパスワードを聞かないから。
荒井 あ……
上野 古いパスワードの入力を求められるのはこういう理由もあるわけだ。まぁ、パスワードを変えると、それがユーザーにバレちゃうし、攻撃者はそんなことせずユーザーから情報を盗むだろう……という考え方もあるにはあるけどね。
上野 あと、制限については他にもいくつか考慮しておいたほうがいい箇所もある。
荒井 例えばどんな点でしょうか。
上野 容量とか。
荒井 あー。
上野 巨大なファイルを送り付ける嫌がらせもあり得るよね。もう一つ地味に困るのが、児童ポルノ画像をアップロードする行為とかだ。これは最終的には人間が見るしかない。
荒井 と、言いますと?
上野 もちろん、そういったデータがやりとりされていることは企業にとってリスクになる。対策としてはAIでチェックするツールとかもあるけど、抜け漏れや誤検知はゼロにできない。だから、網羅的に対応するなら、監視する人員を置いたり、事業者に頼んだりするのがいいね。
Copyright © ITmedia, Inc. All Rights Reserved.
Special
PR