悪意のあるAuthorization Serverが、他のAuthorization Serverの発行したAccess Tokenなどを奪おうとする攻撃「IdP Mix-Up Attack」について、最後に紹介します*5)。
*5) OAuth 2.0のAuthorization ServerはIdentity Providerと呼ばれることもあるが、ここではAuthorization Serverという用語を使って説明する。
攻撃を受ける前提条件は次の3つです。
攻撃の流れは次の通りです。
IdP Mix-Up Attackの対策は2つあります。
この対策はRFC 6749(The OAuth 2.0 Authorization Framework)には、定義されていません。2番目の手法については拡張仕様が提案されています。
IdP Mix-Up Attackが成立する前提条件はやや複雑です。しかし複数のAuthorization Serverとソーシャルログインで連携しているClientの開発者は、万が一いずれかのAuthorization Serverが悪意のある振る舞いをした場合、どのような影響があるかを想定しておく必要があるでしょう。
今回はOAuth 2.0に関連する代表的な5つの脆弱性と攻撃について紹介しました。攻撃1〜3は攻撃者がResource Ownerの立場で攻撃しますが、攻撃4はClient、攻撃5ではAuthorization Serverの立場を採っています。幾分イメージしにくいものもあったかもしれません。
このような脆弱性を見ると「OAuth 2.0は危ない」と感じるかもしれません。これに対して、有識者が拡張仕様の検討を含めて対策を周知しています。
例えばOAuth 2.0に関する脆弱性と対策についてまとめたドキュメントもRFC 6819としてまとまっています(OAuth 2.0 Threat Model and Security Considerations)。
今回紹介したCSRF対策やCovert Redirect(オープンリダイレクター)対策に関する記載もあります。OAuth 2.0の実装に関わる開発者の皆さまには参考になるでしょう。
ボリュームのある英語のドキュメントを読むのは大変だという声もあります。そこで、OpenIDファウンデーション・ジャパンのWebサイトにRFC 6819の日本語訳を用意しました(RFC 6819 - OAuth 2.0 Threat Model and Security Considerations 日本語訳)。
今回紹介した内容と併せて、OAuth 2.0の安全な実装の手助けになれば幸いです。
次回はOAuth 2.0をMicroservicesや分散システム向けに適用するための拡張機能を取り上げる予定です。
Ryo Ito(ritou)
http://d.hatena.ne.jp/ritou/
OpenID Foundation Japan Evangelist
OpenID Connectのコントリビュータとして仕様策定に関わっている。
業務ではアイデンティティ技術を用いたSNSサービスの機能強化、新規サービスのプラットフォーム開発に関わり、個人ブログではOpenID/OAuthについて情報発信を行っている。
Copyright © ITmedia, Inc. All Rights Reserved.