認証制御や認可制御の欠落とは
認証制御の欠落とは、第三者が知りうる情報での認証、本来認証が必要なページから飛ぶべきページに認証無しで直接URL指定で移動することを許してしまう脆弱性である。
認可制御の欠落とは、権限の付与・管理が甘いことにより、ログインしているユーザが権限外のページにアクセスできてしまう脆弱性である。
脆弱性の原理
認証制御の欠落
ログイン情報を用いたユーザの識別を、認証が必要なページで行っていない、行っていても不十分であることが原因。
その場合、認証無しで直接URL指定することで、認証無しで認証が必要なページにジャンプできてしまう。
そもそも認証に必要な情報が第三者が知りうる情報のみである場合、攻撃者による不正なログインを許してしまう。
認可制御の欠落
アクセス権限の確認が不十分なことが原因で、アクセスに権限が必要なページでへと本来権限のないユーザがURL指定でジャンプできてしまう。
脆弱性が悪用された際の影響
共通して、本来非公開である情報に対して、攻撃者が閲覧、改ざん、消去してしまう危険性がある。
検査方法
認証制御の欠落
ログイン画面を確認し、秘密情報無しでログインできるかどうかを確認。
ログインできる場合は脆弱性がある。
ログインに失敗したときのエラーメッセージから、情報が得られるかどうかを確認。
ID、パスワードの存在、一致不一致について情報が得られる場合は脆弱性がある。
認証せずにURL指定で路銀語にアクセス可能なページにジャンプできる場合、脆弱性がある。
認可制御の欠落
ログイン後に、本来権限がないはずのページをURL指定でジャンプした際にページを閲覧できる場合、脆弱性がある。
対策方法
認証制御の欠落
ログイン時にはパスワードのような本人しか知り得ない情報を用いてログインさせるようにする。
また、ログイン後にアクセスできるページでは、アクセスの際にログイン情報を確認するようにする。
ログイン時に発生させるエラーメッセージの中に、IDやパスワードの情報を含ませない。
認可制御の欠落
アクセスに特別な権限が必要なページでは、ログイン情報に加えて権限の確認も行う必要がある。