質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

Q&A

解決済

3回答

2018閲覧

CSRFで罠サイトからの正式なトークン付きでのリクエスト送信

nama-chan

総合スコア31

セキュリティー

このタグは、コンピューターシステムの安全性やデータの機密性に関連したトピックの為に使われます。

0グッド

2クリップ

投稿2019/01/30 02:04

質問

CSRFについて質問です。

前提

1 ユーザが攻撃サイトへログイン済みのあと罠サイトへ誘導
2 その罠サイトでは攻撃サイトの重要な操作ができる画面が表示(iframe?)。ただしこの罠サイトのifameの表示箇所はカモフラージュで無害な普通のリンクなどの表示。だが、そのリンクを踏むと攻撃サイトの入力フォーム(正式なトークンつき)になっている

前提2がそもそも成立するかはよくわかっていませんが。。この状況の時に正式な攻撃サイトなのでそこから正式なトークン付きでのリクエスト送信可能で、Webアプリケーションでcsrf対策としてトークンを生成しても効果ないのではないかと思ったんですが違うのでしょうか??

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

名前忘れましたが不可視のiframeを重ねてユーザーに外部サイトに対して
意図しない操作をさせるっていう攻撃方法に当てはまると思います

単純にフォームの表示さえすればトークンが発行されるようなら
この攻撃に対して脆弱ってことになるかと思います

対策は、外部サイトからはiframeでページを読み込めないようにする、だったかと思います
iframe内からのフォームの送信のリファラはiframe内のページになるので
iframeでの表示を許容した時点で判定が困難です

投稿2019/01/30 03:09

KazuhiroHatano

総合スコア7802

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nama-chan

2019/01/30 04:05

>単純にフォームの表示さえすればトークンが発行されるようなら > この攻撃に対して脆弱ってことになるかと思います やはりそういうことですね! > 外部サイトからはiframeでページを読み込めないようにする これでこの脆弱性に対応できそうですね!!ありがとうございます!!
退会済みユーザー

退会済みユーザー

2019/01/30 04:06

微妙に CSRF と違いますね。 maisumakun さんが触れてますが、それ クリックジャッキング です。
KazuhiroHatano

2019/01/30 04:18

名前コメで書かれてましたね 思い出せなくてモヤモヤしてました ありがとうございます
guest

0

だが、そのリンクを踏むと攻撃サイトの入力フォーム(正式なトークンつき)になっている

このトークンの入手方法としてはどのようなものを考えていますでしょうか(当然ながら、攻撃者の側でログインしても被害者とはトークンが一致しないので攻撃は成立しません)。

当然ながら、「Man in the Browser」や「ターゲットのサイト上でのXSS」などの問題があればトークンを盗むことは可能ですが、トークンなしで成立するCSRFと比べれば、ぐっとハードルは上がります。

「不要なサービスを完全に止めてしまう」といった例を除いた、ほぼ全てのセキュリティ対策は、ある特定の攻撃への対策にしかならないのです。

投稿2019/01/30 02:28

maisumakun

総合スコア145121

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nama-chan

2019/01/30 02:53 編集

トークンについてですが、 攻撃サイトの入力フォーム画面リクエスト時にサーバが生成して付与されるものを想定しています 罠サイト閲覧→罠サイトのiframeがサーバにリクエスト→iframeにはサーバから生成された正式なトークンつきのレスポンス→表示(しかしカモフラージュ) なので被害者がこの罠サイトからフォーム入力クリックすると、正式なトークンも付与されているので、トークンの認証が通ってしまうのかなぁ、と思いました。
maisumakun

2019/01/30 03:01

普通の方法ではiframe内のクロスドメインなコンテンツを、外側のJavaScriptからは操作できません。 なお、「iframeを透明にして、別なものを押したように見せかけてクリック操作を行わせる」という方法は存在して、「クリックジャッキング」と名前もついています。 どちらにしても、X-Frame-Optionsの利用で、第三者のサイトにiframe表示されること自体を防ぐことが可能です。
nama-chan

2019/01/30 04:02

今回は外側のJavaScriptから操作はしない想定になります。今回の状況で単純に表示されたifram内のリンクを押すという想定です。 おそらくトークンも正式なので脆弱になる、が、X-Frame-Optionsなどでiframeの参照をできなくするなどすればよいということだと理解しました。ありがとうございます。
guest

0

それほど難しい構成ではないのでやってみればよいかと。

一般論として、セキュリティは弱い箇所に引きずられるので、網羅的な設計が必須となります。

投稿2019/01/30 02:11

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nama-chan

2019/01/30 04:06

いろいろ試してみようと思います!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問