ウェブ・セキュリティ基礎試験(徳丸試験)の勉強 ⑨クロスサイトリクエストフォージェリ
こんばんわ!
世間では徳丸試験といわれている、ウェブ・セキュリティ基礎試験に挑戦しようということで、いつものごとくアウトプットで記事にまとめていきます。
今回は第九回目のクロスサイトリクエストフォージェリについてまとめます。
クロスサイトリクエストフォージェリ
この攻撃は、ユーザーがログインしているWebサービスに対して、ユーザー自身が意図しない操作を強制的に実行させるものです。以下の影響が考えられます。
・利用者のアカウントによる物品の購入
・勝手に退会処理
・覚えのないSNSや問い合わせフォームへの投稿
・覚えのない情報の変更
CSRFの攻撃例
不正な書き込み
掲示板やアンケートフォームへの不正な書き込みがあります。これにはいたずら的な書き込み、不正サイトへの誘導、犯罪予告などが含まれます。
DoS攻撃
不正な書き込みを大量に行うことにより、サービスが利用できなくなる攻撃です。
GETリクエストの攻撃
例えば、銀行のウェブアプリケーションで使用されるGETリクエストとハイパーリンクの配信を悪用した攻撃があります。攻撃者がユーザーに無害なハイパーリンクを送信し、ユーザーがそのリンクをクリックすると、ログインしているアカウントから攻撃者に金を送る要求が誘発されます。
POSTリクエストの攻撃
同じ銀行のアプリケーションがPOSTリクエストのみを受け付けている場合、攻撃者はHTMLフォームを作成します。ユーザーがそのフォームを送信すると、保存されたCookieによって、サーバーが正当なリクエストとして認識します。その結果、サーバーがユーザーのアカウントやセッション状態を変更したり、要求されたデータを返したりなど、リクエストに応答してしまいます。
脆弱性が生まれる原因
form要素のaction属性にはどのドメインURLでも指定できる
罠などのサイトからデモ、攻撃対象サイトにリクエストを送信することができます。
クッキーに保管されたセッションIDは、対象サイトに自動的に送信される
罠経由のリクエストに対しても、セッションIDのクッキー値が送信されるので、認証された状態で攻撃リクエストが送信されます。
対策
CSRF対策の必要なページ区分
・要件定義工程で機能一覧を作成し、CSRF対策の必要な機能にマークする。
・基本設計工程で画面遷移図を作成し、CSRF対策の必要なページにマークする。
・開発工程でCSRF対策を作りこむ
正規利用者の意図したリクエストを確認できるように実装する
以下の3種が意図したリスエストか判断する方法として知られています。
・秘密情報(トークン)の埋め込み
・パスワード再入力
・Referのチェック
・「重要な処理」の実行後に、登録済みメールアドレスに通知メールを送信する
ここまでです。
読んでいただきありがとうございました。