今回も情報処理安全確保支援士の試験勉強の内容をアウトプットをしていきます。
勉強に使ったのはこちら
章の終わりにあるCheck問題に私なりの答えで解答していきます。
今回は3.6章:HTTP及びWebアプリケーションの脆弱性と対策のCheck問題です。
【Q1】セッション管理に関する脆弱性にはどのようなものがあるか。
①パケットの盗聴によってセッション管理情報が盗まれる可能性がある。
②セッションIDが推測・改善され、他者に情報などが漏洩する可能性がある。
③詳細なセッション管理情報をWebサーバとクライアント間でやり取りしていることにより、他者に情報が漏洩する可能性がある。
④Refererログから他のWebサイト管理者にセッション管理情報が漏洩する可能性がある。
⑤hiddenフィールドの改ざんにより、不正な処理を実行されてしまう可能性がある。
⑥XSSの脆弱性により、Cookieにセットされたセッション管理情報が盗まれ、悪用される可能性がある。
⑦Cookieの属性設定の問題により、Cookieにセットされたセッション管理情報が盗まれ、悪用される可能性がある。
⑧Webサーバで「URL Rewriting機能」が有効になっていると、意図的なセッション管理情報をクエストリングにセットして使用することができる可能性がある。
⑨セッション管理のバグにより、本来は認証を必要とするWebページに認証プロセスを経ることなくアクセスされてしまう可能性がある。
【Q2】HTTPでは、なぜセッション管理の問題が発生するのか。
別ページへの遷移やログイン処理の実行が各リクエスト単発で完結するため、
【Q3】セキュリティを考慮したセッション管理とはどのようなものか。
①HTTPS(TLS)を用いて通信する。
②重要なセッション管理情報はWebサーバ側で管理し、クエストリング、Cookie、hiddenフィールドにはセッションIDしか含めないようにする。
③セッションIDには十分な長さを持った乱数やハッシュ値を用いる。
④重要な情報を渡す場合はGETメソッドではなくPOSTメソッドを使用するようにする。
⑤Cookieの有効期限は可能な限り短く、有効範囲は可能な限り狭く設定する。
⑥HTTPSでアクセスするページは必ずCookieを「secure属性あり」に設定する。
⑦HTTPでアクセスするページとHTTPSでアクセスするページをまたがってセッション管理を行う場合は、2つのCookieを発行し、一方を「secure属性なし」でHTTPのページで利用し、一方を「secure属性あり」でHTTPSのページで使用する。
⑧XSSの脆弱性を残さないよう、入力データに対するメタキャラクターのエスケープ処理を行う。
⑨Webサーバの「URL Rewiting機能」を無効にする。
⑩認証を必要とするページが直接アクセスされないようにすると共に、そのようなページが検索エンジンやキャッシュに登録されないように設定する。
⑪ログイン後に新たなセッションIDを発行する。
⑫WAFを使用してセッション管理の脆弱性を突いた攻撃を遮断する。
【Q4】CSRFによってどのような問題が発生するのか。
Cross-Site Request ForgeriesはWebアプリケーションのユーザ認証やセッション管理の不備を突いてサイト利用者にWebアプリケーションに対する不正な処理要求を行わせる手法。
CSRFの脆弱性があるサイトにログインしたユーザが、ログイン状態を保持したまま悪意のあるWebサイトへのリンクをクリックすることで、悪意のあるWebサイトから不正にCSRFの脆弱性があるサイトに侵入し、意図しないメッセージを送信したり商品の注文を行ったりするなどの問題が発生する。
【Q5】CSRFへの対策にはどのようなものがあるか。
ユーザの認証やセッション管理機能を強化し、不正なリクエストを受け付けないようにする必要がある。具体的には以下の対策がある。
①POSTメソッドを使用し、hiddenフィールドにランダムな値をセットする。
②確定処理の直前で再度パスワードを入力させる。
③Refererを用いてリンクの正当性を確認する。
④重要な操作を行った後で、その内容を登録されたアドレスにメール送信する。
【Q6】HTTPのプロトコルの仕様にはどのような脆弱性があるか。
①通信データが平文で流れる。
②ベーシック認証はBASE64でエンコードされるため、パケット盗聴により認証情報が盗まれる危険性が高い。
【Q7】Webサーバの実装や設定の不備による脆弱性にはどのようなものがあるか。
①ディレクトリに関する設定不備によりディレクトリトラバーサル攻撃を受けたり、ディレクトリ参照によって機密情報にアクセスされたりする。
②エラーメッセージの出力設定不備により、機密情報が漏洩する。
③HTTPのヘッダ情報からWebサーバプログラムの種類やバージョン情報が知られてしまう。
④Webサーバプログラムの種類、バージョンによってBOF攻撃を受ける。
⑤コマンドやメソッドの設定不備により、コンテンツの改ざんや管理情報の漏洩などに繋がる。
【Q8】Webサーバに対する不正アクセスを防ぐためにはどのような対策が有効か。
①Webサーバプログラムのバージョンを最新化しパッチを適用する。
②不要な機能やコマンドを無効化したり、制限したりする。
③ディレクトリのアクセス権を適切に設定する。
④すべてのディレクトリにデフォルトページを置く。
⑤クライアントに詳細なエラーメッセージを送らないようにする。
⑥HTTPヘッダにWebサーバプログラムの詳細情報を含めないように設定する。
⑦IPSを用いてOSやWebサーバプログラムの脆弱性を突いた攻撃を遮断する。
【Q9】Webアプリケーションの仕様や実装による脆弱性にはどのようなものがあるか。
①XSSによりクライアント環境で悪意のあるスクリプトが実行されてしまう。
②SQLインジェクションの脆弱性により、データベース上のデータが不正に取得・改ざんされたり、データベースが破壊されたりする。
③OSコマンドインジェクションの脆弱性により、Webサーバ上で任意のファイルを読み出し、変更・削除・パスワードの不正取得などが行われる。
④HTTPヘッダインジェクションにより、クライアントに不正なデータが送られる。
⑤メールヘッダインジェクションにより、不正なメールが送信される。
【Q10】Webアプリケーションによる情報漏洩としてどのようなケースが想定されるか。
フィッシング詐欺、メールアドレスやパスワードの不正取得に繋がるケースが考えられる。
私が使っているのは2022年版のテキストですが、2023年版も出ています。