情報セキュリティスペシャリスト試験の過去問から、WEB検査の主な検査項目と内容をまとめました。
これは、WEBサービス(ホームページとか)を公開する前に必ず確認しなければいけない項目です。
検査項目 | 検査する脆弱性の内容 | 備考 |
---|---|---|
オブジェクトの直接参照 | 存在を明示していないコンテンツやアプリケーションなどのデータファイルが、ディレクトリやファイル名、バックアップなどを指定してアクセスされる脆弱性 | |
クロスサイトスクリプティング | HTML出力文字列のエスケープ処理が不適切な場合、攻撃者の設置した不正なリンクによってWebサイトを閲覧した利用者のブラウザ上でスクリプトが実行される脆弱性 | 略称:XSS |
クロスサイトリクエストフォージェリ | 利用者のブラウザによって、利用者の意図しないリクエストがWebサーバに送信され、ログイン中の利用者だけに許可されたWebサイトの機能が勝手に実行される脆弱性 | 略称:CSRF |
HTTPヘッダインジェクション | 外部から渡されたパラメタをレスポンスのHTTPヘッダに反映する場合、不正なヘッダを生成されたり、レスポンスボディに不正な文字列を挿入されたりする脆弱性 | |
SQLインジェクション・OSコマンドインジェクション | 入力フォームのパラメタなどへの不正な文字列挿入によって、SQL文やOSのコマンドが不正に実行される脆弱性 | |
不正メール送信 | パラメタ文字列をメールヘッダに反映して電子メールを送信する場合、スパムメール送信などに利用される脆弱性 | |
ディレクトリとラバーサル | パス(ディレクトリ)文字列の処理が不適切な場合、攻撃者の不正な入力によって、管理者がアクセスを想定していないファイルにアクセスされる脆弱性 | |
不適切なセッション管理 | Cookieなどを利用したセッション管理が不適切な場合、なりすましによる不適切なアクセスが発生する脆弱性 |
(出典:平成23年度特別試験 午後2/問2)
この中の「不適切なセッション管理」について、セッションハイジャックの方法に関連して問われたことがあります。
(出典:平成21年度春期試験 午後1/問3)
提示される状況
- セッション識別子はログイン日と会員番号の組み合わせで構成されている
- セッション識別子はCookieにセットされている
- 現状では容易になりすましができると指摘されている
質問
- 悪意をもつ者がどのように他人に成りすますことができるのか、50字以内で述べよ
解法
- セッションハイジャックの方法について述べる
- セッション識別子を偽装する方法について説明する
- セッション識別子は容易に推測できることに注意して解答する
解答例
攻撃者が推定したセッション識別子をCookieにセットすることでセッションを乗っ取る。(43文字)
備考
セッションハイジャックは下記で対処することができます。
- セッション識別子をランダムな文字列で生成する
- Cookieにセキュア属性を付与し、SSL通信以外ではCookieが送信されないよう設定する(暗号化と認証が行われる)
- 通信に使われるポート番号がランダムで変わるよう設定する
今回の問題文では「セッション識別子」と書かれていますが、他に「シーケンス番号」「セッションID」などと表現される場合もあります。