ITmedia NEWS > セキュリティ >
セキュリティ・ホットトピックス

非公開の予定が見えちゃってるね! Webアプリの「認可制御」に潜む“あるある”ワナ“典型的やられサイト”で学ぶセキュリティのワナ(2/3 ページ)

» 2023年11月09日 10時00分 公開
[谷井将人ITmedia]

荒井 はい。今回のアプリでは「管理者」「一般ユーザー」「非ユーザー」がいます。管理者は、全ユーザーの登録情報や登録された全てのToDoイベントの閲覧と編集などができます。一般ユーザーは自分の登録情報や自分で登録したToDoの閲覧と編集ができますが、他人のToDoは全体公開されたものしか閲覧できません。非ユーザーは一般公開されたToDoの閲覧や会員登録しかできません。

上野 そうだね。他にもアカウント登録や管理者の追加などについても細かく定めてあったよね。

photo 一般ユーザーから見たToDoの一覧 全体公開されたToDoの閲覧までできる

上野 そして、基本的な部分はできているようだね。じゃあ細かいところを見ていこうか。ToDo一覧から一つサンプルのToDoを開いてみる。そしてURLの部分を見てみると、末尾に「item=1」と書いてあるよね。

荒井 ありますね。

上野 これを、例えば「item=2」に書き換えてみる。すると2個目のToDoが表示された。ここまではひとまず問題ない。では、ここを「item=3」にしてみるとどうなる?

荒井 3個目のToDoが表示されます。誤動作はないですよね?

上野 誤動作はない。でもこの3個目のToDo、全体公開じゃないよね? 今は一般ユーザーとして操作しているから、本来は「item=3」にしてもこのToDoが見えちゃいけないんだ。

荒井 なるほど……。一般ユーザーには他ユーザーの非公開ToDoを閲覧する権限がないはずなのに、表示されてるってことは権限を正しく制限できてないってことですね。

上野 そうだね。これけっこう“あるある”なんだよね。今回もToDoの一覧ページではちゃんと非公開ToDoが表示されないように実装できてる。例えばここに非公開ToDoが見えちゃっていれば、さすがに誰でも気付くんだけど、URLからたどるのってアプリのUIを触ってもできないから考慮が漏れやすいっていう……。

荒井 なんてワナだ。

上野 で、これは法的な注意なんだけど、今の「item=n」の記述をいじって非公開の情報を閲覧するのは不正アクセス禁止法違反になるから基本的にはやっちゃだめだよ。パスワードなどで保護されたコンテンツを許可なく不正な手段で閲覧してるわけだからね。

荒井 でも悪意がなくて、偶然うつっちゃったって場合もありますよね?

上野 これ悪意の有無は関係ないんだよね。不正アクセス禁止法違反の成立要件には悪意の有無が含まれないから。Webアプリ側に脆弱性があろうとなかろうとダメ。脆弱性があるならサイバー攻撃していいなんてことにはならないしね。

荒井 悪意は要件になってないんだ……。

上野 じゃあ次の確認に移ろう。今度は管理者目線。このアプリに管理者としてログインすると、メニューの中に「会員一覧」が表示されるようになる。管理者にだけ与えられた権限だね。ここでは会員情報の閲覧や変更ができると。で、このページのURLをコピーするでしょ?

 で、いったんログアウトして今度は一般ユーザーとしてログイン。さっきコピーしたURLを張り付けると……。

荒井 あーー表示されちゃった。認可の制御ミスですね。

上野 うん。これも一般ユーザーからは見えちゃいけない。「このページは存在しません」とか表示させるようにするのがいいかな。「現在の権限では閲覧できません」とかだとそのURLが存在していること自体はばれちゃうからね。

荒井 なるほど。情報は極力与えない。理解しました。

上野 じゃあ、他の指摘部分もまとめておくから、直してみようか。

荒井 分かりました!

──しばらくして……

上野 これがこうなって……。うん、これで大丈夫だね。

荒井 ありがとうございました!

Copyright © ITmedia, Inc. All Rights Reserved.