Auth0 IDプラットフォームに発見された認証バイパスの脆弱性。

f:id:nanashi0x:20180409093544p:plain

thehackernews.com

"ID-as-a-Service"プラットフォームの最大手であるAuth0に、重大な認証バイパス脆弱性が発見された。

悪意のある攻撃者は、この脆弱性を悪用すると、認証にAuth0を使用するポータルまたはアプリケーションにアクセスできる可能性がある。

Auth0とは

Auth0は、ソーシャルメディア認証をアプリケーションに統合する機能を含む”IDentity as a Service”である。

多くのプラットフォームで、トークンベースの認証ソリューションを提供している。

Auth0は、2000以上の企業を顧客として抱え、同サービス上では毎月4200万ログインが行われている。

発見された2つの脆弱性について

CVE-2018-6873

セキュリティ会社”Cinta Infinita”のセキュリティ研究者は、Auth0のLegacy Lock APIにバグ(CVE-2018-6873)を発見し、同社のブログで公開した。

このAPIは、JSON Webトークン(JWT)のオーディエンスパラメータの不適切な検証をする目的で存在する。

研究者は、Auth0認証で実行されているアプリケーションに対して、簡単なクロスサイトリクエストフォージェリCSRF / XSRF)攻撃用コードを使用し、この脆弱性を悪用したログイン認証の回避に成功した。

CVE-2018-6874

また、脆弱性はもう一つ存在する。

攻撃者は、Auth0のCSRF脆弱性CVE-2018-6874)を悪用すると、別のアカウントに対して生成された有効な署名付きJWTを再利用して、標的とする被害者のアカウントにアクセス出来る。

攻撃者が必要なのは、シンプルなソーシャルエンジニアリングの技を使用して取得できる、犠牲者のユーザーIDまたは電子メールアドレスのみである。

攻撃のデモンストレーションビデオ

セキュリティ企業は、認証トークンを偽造してAuth0の管理ダッシュボードにログインする際に、犠牲者のユーザーIDとバイパスパスワード認証を取得したことを示すPoC(proof-of-concept)ビデオをリリースした。

以下は、そのPoCビデオである。

www.youtube.com

 

研究者によれば、この攻撃は多くの組織に対して再現可能のようだ。

攻撃には、JSON Web Token(以下、JWT)を使用する。

簡単に説明すると、JWTとは幾つかの命令を含み、サーバーサイドで秘密鍵(又は証明書)と共にサインされたJSONオブジェクトである、

JWTのセキュリティが担保されているのは、サーバーサイド(つまり、管理者)が秘密鍵(又は証明書)を保持している事に依存しているのである。

セキュリティ会社は、2017年10月にAuth0セキュリティチームにこの脆弱性を報告。同社は非常に早く行動し、4時間以内に脆弱性の修正を行なったようだ。

ただし、Auth0の脆弱なSDKとサポートされているライブラリがクライアント側で実装されているため、この問題を一般に公開する前に、Auth0は各顧客に連絡してから、完全に脆弱性を解決するのに約6ヶ月を要した。

Cinta Infinitaによって発見された特別なケースの修正とは異なり、Auth0チームは、この問題は、顧客がライブラリ/ SDKのアップグレードを強制することなく解決する事が出来なかった。

影響を受けたライブラリを大幅に書き直し、新しいバージョンのSDK(auth0.js 9とLock 11)をリリースすることで、この脆弱性を緩和した。

Cinta Infinitaは、この脆弱性を一般に公開するまでに6ヶ月間待っていました.Auth0チームには、社内のすべてのSaaSアプライアンス(オンプレミス)をアップデートするのに十分な時間が与えられた。

技術的な詳細は、以下のCinta Infinitaのブログから確認できる。

Knocking Down the Big Door