セッションハイジャック(2)
HTTPセッションハイジャック
Webアプリケーションで行われるセッションハイジャック。
HTTP通信は1つひとつのセッションが単発で終わるため連続性を管理できない。
そこでWebアプリケーションで各セッションを管理するためにセッションIDを生成し、
URLやcookie、hiddenフィールドにセットしてセッション管理する。
この仕組みの実装に以下のような脆弱性があると攻撃の対象になる。
- セッションIDが単純。
- セッション管理情報が丸見え。
- セッション管理情報が暗号化されていない。
- クロスサイトスクリプティングの脆弱性によってcookieにセットしたセッションIDが盗まれる。
攻撃者は、セッションIDを推測するか盗聴によってセッションIDを特定し
セッションをハイジャックする。
・予防・防止
- アプリケーションサーバに実装されている機能でセッション管理する。
- 自社開発する場合は、乱数・ハッシュなどで推測困難なセッションIDにする。
- 脆弱性検査をする。
- Webサーバの全面にリバースプロキシサーバやWAF(Webアプリケーションファイアウォール)を設置する。
認証サーバとクライアント間のセッションハイジャック
認証サーバになりすましてクライアントからのアクセス要求を受けてセッションハイジャックを成立させる。
クライアントがサーバの信頼性を確認すれば問題なし。
・予防・防止
SSL/TLSなどのサーバの正当性を確認でき、パケットの偽装が困難なプロトコルを使用する。