#脆弱性のこと
今日も続きをやっていきます。
#クロスサイト・リクエストフォージュリ(CSRF)
CSRFとは?・・・・WWWにおける攻撃手法の一つであり、具体的な例としては
掲示板で意図しないことを書かれたり、オンラインショッピングで勝手にものを買わされたりする。
webアプリケーションにCSRF脆弱性がある場合の影響例
①利用者のアカウントによる物品の購入(オンラインショッピング)
②利用者の退会処理
③利用者のアカウントによる掲示板への書き込み
④利用者のパスワードやメールアドレスの変更
➡影響はアプリケーションの重要な処理の悪用に限られる。個人情報などを盗むことはできない。
(もしパスワードが変更されると不正にログインされる可能性も)
CSRFとXSSの違い
CSRFとはリクエストに対するサーバー側の処理を悪用する
XSSとはリクエストに含まれるスクリプトはオウム返しに返され、それがブラウザ上で実行できることで攻撃される。
よって、 ①CSRFは設計段階から対策を盛り込む必要がある。
②開発者の認知度がXSSに比べて低く、対策が進んでいない。
脆弱性が生まれる原因
①form要素のaction属性にはどのドメインのURLでも指定できる。
②クッキーに保管されたセッションIDは、対象サイトに自動的に送信される。
対策 ①CSRFの対策の必要なページを区別する
②正規利用者の意図したリクエストを区別できるようにする。
③秘密情報(トークン)の埋め込み
④パスワードの再入力
⑤Refererのチェック
#セッション管理の不備
セッションハイジャックの原因と影響
①IDの推測
②IDの盗み出し
(クッキー生成の際の属性の不備、ネットワーク的にIDが盗聴される、XSSによるアプリの脆弱性、PHPやブラウザなどの脆弱性、IDをURLに保持している場合は、refererヘッダからリーク)
③IDの強制(セッションIDの固定化)
影響
①利用者の個人情報
②利用者の持つ権限での操作
③利用者のIDによるメール、ブログなどへの投稿
対策
①推測可能なID ➡ 自作のものを利用せず、開発ツールの提供するセッション管理機構を利用
②IDの盗み出し ➡ 盗まれないような設定、プログラミングをする
③IDの強制 ➡ ログイン時にせっしょんID を変更する。
#リダイレクト処理にまつわる脆弱性
オープンリダイレクタ脆弱性
影響 ➡ フィッシングサイトに誘導され、重要情報を入力させられる
デバイスドライバと称してマルウェアを配布される
対策 ①リダイレクト先を固定にする
②あらかじめ許可されたドメインにのみリダイレクトするように制限する
HTTPヘッダ・インジェクション
影響 なりすまし、偽ページの表示、キャッシュ汚染
対策 外部からのパラメータをHTTPレスポンスヘッダとして出力しない
リダイレクトやクッキー生成の専用ライブラリあるいはAPIを使用し、パラメータ中の改行コードをチェックする