2019年8月5日のtwitterセキュリティクラスタ

SSRF脆弱性の悪用でデータを取られた話

Capital One情報漏洩に関する記事。
SSRF脆弱性の悪用によりEC2インスタンスからのみ接続可能なメタデータ(169.254.169.254)が不正にアクセスされ、IAMロールの認証情報が取得されたと推測できます。当初設定不備と報じられたのは独自構築のApache mod_securityのことらしい。
krebsonsecurity.com/2019/08/what-w…

本件の起訴状(assets.documentcloud.org/documents/6225…)によると、この方法で得られた認証情報を使ってS3のファイルリスト取得、syncによるファイル取得が行われたようです。 pic.twitter.com/u0Csjxtq0X

SSRFについては徳丸先生の記事がわかりやすいです。

SSRF(Server Side Request Forgery)徹底入門 | 徳丸浩の日記
blog.tokumaru.org/2018/12/introd…

Capital Oneからの1億人のデータ漏えい、WAFの設定ミスに起因するSSRFにより、EC2のメタデータを取得するものだったとのこと。
What We Can Learn from the Capital One Hack — Krebs on Security krebsonsecurity.com/2019/08/what-w…

「WAFの設定ミスに起因する」が、WAFが脆弱性を作り出したのか、単に防ぐためのルールが用意されていなかったのかよくわからない。

この記事を読む限り前者っぽい気もしないでもないけど。。

SSRF、(ここ数年は一部界隈で盛り上がっているとはいえ)これまであまり注目されていなかった、WAFでデフォルトで検出されないことが多い、クラウド全盛になってメタデータ取得のように攻撃側の利益が増えた等で脅威が増している。

AWS、GCP、AzureなどのクラウドのインスタンスやRoleの秘密なメタデータを取れるAPI、IPアドレスのまとめ。
必要なヘッダなどについて “blog.ssrf.in/post/example-o…gist.github.com/mrtc0/60ca6ba0… #aws #GCP

その他に気になったことはこのあたり。

なんか、パスワードリスト攻撃では説明がつかないインシデントまで「パスワードリスト攻撃でした」とリリースする例が出始めてないか?

そういえばidconから思ったけど
OAuth2/OIDCにおけるstateとnonceの用途は全く異なるので、どういう文脈で両者が混同されるか全く理解できていない。

nonceをstateとして使うのも、stateをnonceとして使うのもIdPがちゃんと実装していれば無理な話じゃないかと。
違うかな?

@nerocrux 一番よく聞くのはnonceあればstateいらねんじゃね思考でしょうか。雑にまとめると能書きなんてどうでもよく最終的に不正ログインをまもれりゃいいって思考だとそうなりがちです。

必要なのは使えるものを適切に使って各段階でリスクを削っていく意識かなと思います。

stateで防げるものはnonceでも防げる。nonceで防げるものの中にはstateで防げないものもある。

なるほど。IDトークンを利用したID連携においては確かにそうですね。
その文脈でnonceがあればstateはいらないってことか。
とはいえIDPとしてresponse_type=id_tokenだけの場合stateは無視みたいな実装にならない、ゼロ百なのでゼロを選択するやついないだろう…

IDトークンを利用しないということは、OpenID Connectではないと言うことであり、そこにnonceは未定義である。 twitter.com/nerocrux/statu…

@nov NativeAppとかのPublicClientでPKCEがなければAuthCodeが悪意アプリに取られてしまい被害者のID Token(nonceはその人の正しいもの)が悪意アプリに渡されてしまい、なりすましログインできてしまいますね。
なのでstateと違いpublic clientの場合nonceがあってもPKCEがないと危険です。

@nerocrux OK、まぁpublic clientになりすましログインなんて概念がどれほどあるかはまぁ置いておきましょう。confidential clientでは?

@nov Confidential Client に PKCE を使うんですか?一応PKCE対象外の認識ですが・・・

@nerocrux では質問を変えましょうか。
stateとnonceとPKCEが、それぞれ何と何をbindしているかを考察せよ。

@nov nonce: RPでのログインセッションをID Token(IDPでのログインセッション、と言ったら正しくないかも、まぁいいや)をbindする
state: RPでのログインセッションと認可セッション(認可リクエスト)をbindする
pkce: Access Token/ID Tokenと認可セッション(認可リクエスト)をbindする
な感じすかね

@nerocrux nonceはauthz reqとtoken res、stateはauthz reqとauthz res、PKCEはauthz reqとtoken reqをbindします。token reqとtoken resは元々bindされているので、nonceとPKCEはsession binding的には等価ですが、verifierがRPとIdPで異なるので、token req送るRPに悪意あるケースでは等価にはなりません。

@nerocrux stateはauthz reqとtoken resをbindしないので、CSRFは防げてもcode injectionは防げません。

『Webアプリケーションの脆弱性を利用したクレジット決済アプリケーションの改ざんが行われ、ご登録いただいたクレジットカード情報等が抜き取られた可能性がある』

2019年8月5日
「omochabakoWEBSTORE」への不正アクセス発生についてのご報告とお詫び(株式会社おもちゃ箱)
omochabako-webstore.jp/contents/infor… pic.twitter.com/kv5WM25BDw

特定期間のみ、セキュリティコード、某定番パッケージなのでいつもの手口でしょうね。
いつもの改ざんが行われていたのが『2019年1月31日~2019年3月8日』の期間で、念のため懸念期間としておもちゃ箱ウェブストアをリニューアルした2016年からで公表したようです。

あちゃー→ホットウォレットの秘密鍵が窃取され不正に使用されたこと、ウォレットサーバにバックドア型ウィルス(以下「本マルウェア」といいます。)が存在したことが判明 / “当社子会社における業務の一部再開に向けた対処・対策に関するお知らせ | 株式会社リミックスポ…” htn.to/3C2aEHzQAf

speakerdeck.com/filedescriptor…

A private talk I did few years ago, about how I turned a self-XSS to a site-wide CSRF on Twitter with MIME Sniffing, Cookie and OAuth tricks. I will present even more obscure Cookie tricks in this year @hacksintaiwan.

Published post with technical details of what happened in the recent #CapitalOneBreach based on the information available.

We are covering an #Automated #Defence scenario @BlackHatEvents training with @madhuakula & @makash for a similar attack.

blog.appsecco.com/an-ssrf-privil…

#BHUSA

デジタルワークプレースに必要な4つのセキュリティ対策–ガートナー japan.zdnet.com/article/351408…

サイランス製品にマルウェア検知回避の問題、アルゴリズム改良で対処 japan.zdnet.com/article/351408…

グーグル「Project Zero」が発見した脆弱性の約96%は期限内に修正される japan.zdnet.com/article/351408…

[ITmedia NEWS]この頃、セキュリティ界隈で:1億人超の個人情報流出、容疑者はAmazon元従業員 クラウドセキュリティに不安の声も bit.ly/2MCLTk3

[ITmedia NEWS]「E3 2019」参加記者2000人の連絡先リストが公式サイトでダウンロード可能状態に(削除済み) bit.ly/2MAuGrD

自宅セキュリティ研究所

自宅セキュリティ研究所 wrote 2714 posts

Tags

Post navigation


コメントを残す

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>