10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

ALBeast について

Last updated at Posted at 2024-08-23

なるほど、↑の記事が詳しいが、ALBに関連づけられた IdP で認証をした後に、Idp を変更し、
トークンがリフレッシュされると変更先の IdP を issuer としてALBトークンを生成してしまうようである。

記事を読むまでは、JWTでよくある署名の検証をしていない場合にのみ攻撃を受けるのかなと思っていたがそうではないらしい。
issuer の項目は任意のものを挿入されてしまうようだが、 signer は偽造することができないようで、
signer にはALBトークンを生成した ALB の arn が入るようだ。
なので、想定された ALB のトークンであるかを検証するようにドキュメントが修正されたようだ。↓

img
(冒頭の記事より)

また、これは ALB をバイパスして直接アプリにリクエストが飛ばせてしまう場合に影響を受けるようだ。
AWS になれている人にとっては当たり前かもしれないが、アプリが public subnet に存在する場合、
Security Group で 特定のALB からのみリクエストを受け付ける設定をしていないと、ALBを経由せずにアプリへアクセスできてしまう。
ALBがバイパスできてしまうと、任意のトークンを渡されてしまい、なりすまされてしまう可能性があるよということだろう。

なので、記事にもあるが、

  1. JWT(x-amzn-oidc-data)の署名の検証に加えてsignerフィールドの検証を行う
  2. アプリはALBからのみ通信を受け付けるようにする

ということに気をつけていれば良さそう。

気をつけるべき構成は以下のような条件1,2を両方満たす構成である場合だ

スクリーンショット 2024-08-25 3.24.05.png

てっきり、認証後に払い出される ALB のCookieが、他のALBでも使えてしまうとかそういう系のバグだと思っていたがそうではないようだ。思ったより深刻ではない気がする。

ALBに関連づけられた IdP で認証をした後に、Idp を変更し、トークンがリフレッシュされると変更先の IdP を issuer としてALBトークンを生成してしまう

ただ、この挙動は良くないよねとは思う。

10
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
10
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?