企業とホワイトハッカーを結ぶ 日本初のバグ報奨金プラットフォーム BugBounty.jp

サイバーセキュリティエンジニアブログ

bugbounty.jp

ホワイトハッカー入門

脆弱性を見つけよう アクセス制御の不備編

ホワイトハッカー入門 第8回目

May 29, 2017 08:00 by 角田 朱生

第8回目はアクセス制御の不備による脆弱性を取り上げます。

アクセス制御とは、特定のユーザーからのリソース(情報や機能)へのアクセスを許可または拒否することです。Webアプリケーションではリクエストに付与された識別情報(番号やロール名、トークンなど)をもとにアクセス制御を行います。その制御に不備があると、権限のない攻撃者から不正にアクセスされてしまいます。

アクセス制御の不備を見つけるには以下の手順でサイトの挙動を確認します。

  1. アクセス制御が行われているリソースがあるか
  2. 権限のある識別情報を取得できるか、または推測できるか
  3. 識別情報を付け替えて本来権限のないリソースにアクセスできるか

今回も引き続き、OWASPBWAの「WackoPicko」を対象に調査します。WackoPickoは架空の写真共有サービスです。アカウントを作成してログインすると、他のユーザーがアップロードした写真を閲覧できます。以下はユーザー「bob」の写真一覧ページです。

図1. ユーザー「bob」の写真一覧ページ

URLに付与されたパラメーター「userid」でユーザーを識別しているようです。ユーザー「bob」のIDは2です。このページに未ログイン状態でアクセスすると、ログインページにリダイレクトされました。

図2. 未ログイン状態でアクセスした際の挙動

アクセス制御が行われており、ログイン状態でなければアクセスできないようです。写真をアップロードしたユーザーを知るにはログインしなければなりません。

他の機能も見ていくと、トップページのリンクから写真一覧のサンプルページがありました。このページは未ログイン状態でもアクセスできます。

図3. 写真一覧のサンプルページ

サンプルページのURLにもパラメーター「userid」が付与されています。サンプルユーザーのIDは1です。このIDを操作することで特定のユーザーの写真一覧を表示できそうです。IDを2に付け替えてアクセスすると、ユーザー「bob」の写真一覧が表示されました。

図4. サンプルページに表示されたユーザー「bob」の写真一覧

ログイン状態でないと閲覧できないはずのユーザーの写真一覧を、未ログイン状態で閲覧できました。アクセス制御を回避して本来権限のない情報にアクセスできる状態です。さらに、IDは連番であると推測し345とインクリメントすることで、他のユーザーの写真一覧も閲覧できそうです。

WackoPickoでは誰でもアカウントを作成でき、ログインさえすれば他のユーザーがアップロードした全ての写真を閲覧できます。そのため、この脆弱性による被害の影響は少ないでしょう。しかし、許可がないと利用できないシステムや、写真の公開範囲を設定できるサービスだった場合、影響は大きかったでしょう。

今回はパラメーターの値によるアクセス制御を例に説明しました。しかし、URLやヘッダーの値によりアクセス制御が行なわれるケースもあります。そのようなケースでの調査方法はCasey Ellis氏のブログが参考になります。

アクセス制御の不備を見つけるには、サイト上の機能や権限の種類をしっかり把握することが大切です。

8回にわたり連載してきた「ホワイトハッカー入門」も今回で終わりです。ここまでに取り上げた脆弱性はほんの一部にすぎません。今後もOWASPBWAを使うなどして、見つけられる脆弱性の種類を増やしてください。また、セキュリティ診断に関する勉強会やコミュニティに参加することで、多くのノウハウを学べます。積極的に参加してください。

ホワイトハッカーになれるといいですね。健闘を祈ります。

この記事をシェアしませんか?

  • 0

この記事のライター

角田 朱生

角田 朱生

同じカテゴリーの記事