徳丸基礎試験 模擬試験 2(β版) 徳丸基礎試験 模擬試験 2(β版) へようこそ。 《徳丸基礎試験 模擬試験 2(β版) の注意点》 本試験はβ版となります。設問や回答などで気になることがあれば下記フォームよりご意見いただけますと幸いです。 https://forms.cloud.microsoft/r/EvrKVccJaY ===== 以下の各項目を入力後、「次へ」をクリックして模擬試験を開始してください。 ※あらかじめ利用規約をご確認ください(プライム・ストラテジーから採用やイベントの情報など届くことがあります)。 ※結果の詳細は入力いただいたメールアドレス宛てにのみお送りします。必ず確認可能なメールアドレスを入力してください。 お名前 メールアドレス(結果の詳細をお送りします) 利用規約に同意する。 1. クロスサイト・スクリプティング(XSS)攻撃の種類に関する説明として、最も適切なものを選べ。 反射型 XSS 攻撃は、悪意のあるスクリプトがデータベースに保存され、複数のユーザーに影響を与える DOM 型 XSS 攻撃は、サーバーサイドのコードがユーザー入力を処理する際に発生する 格納型 XSS 攻撃は、悪意のあるスクリプトが Web サイトのデータベースに保存され、そのデータを表示するときに実行される 反射型 XSS 攻撃は、Cookie の暗号化が不十分な場合にのみ発生する None 2. SQL インジェクション対策に関する説明として、最も適切なものを選べ。 シングルクォート (') を削除することで、SQL インジェクション攻撃を完全に防ぐことができる プリペアドステートメントを使用することで、SQL インジェクション攻撃を防ぐことができる ブラウザ側の JavaScript による入力検証のみで、すべての SQL インジェクション攻撃を防ぐことができる データベースのパスワードを複雑にすることで、SQL インジェクション攻撃を防ぐことができる None 3. クロスサイト・リクエスト・フォージェリ(CSRF)攻撃に関する説明として、最も適切なものを選べ。 ユーザーがログインしていない状態でのみ発生する攻撃である 攻撃者が被害者のブラウザに悪意のあるスクリプトを実行させる攻撃である 攻撃者のサイトを訪問した被害者のブラウザに、被害者の意図しない第三者サイトへのリクエストを送信させる攻撃である データベースサーバーのセキュリティ設定が不十分な場合に発生する攻撃である None 4. Web アプリケーションのセッション管理に関する説明として、最も適切なものを選べ。 セッション ID をクエリパラメータで送信することは、セッションハイジャックを防ぐ最良の方法である HttpOnly 属性を持つ Cookie は JavaScript からアクセスできないため、XSS 攻撃によるセッション ID の窃取を困難にできる Secure 属性を設定した Cookie は、暗号化されるためセッション ID の内容を第三者が解読できなくなる セッション ID の長さを短くすることで、ブルートフォース攻撃に対する耐性を高めることができる None 5. ディレクトリトラバーサル攻撃に対する防御策として、最も効果的なものを 1 つ選べ。 ユーザー入力を base64 エンコードしてからファイルパスとして使用する ファイルパスに使用できる文字を英数字のみに制限する 絶対パスでのアクセスのみを許可し、相対パスでのアクセスを禁止する 許可されたディレクトリやファイルのホワイトリストと照合してアクセスを制限する None 6. オープンリダイレクト脆弱性に関する説明として、最も適切なものを 1 つ選べ。 Web サーバーが返すレスポンスヘッダーに不正な Content-Type が含まれることで発生する Web アプリケーションが信頼できないユーザー入力に基づいてリダイレクトを行うことで発生する 認証サーバーとアプリケーションサーバー間の通信が暗号化されていない場合に発生する キャッシュサーバーが古いリダイレクト情報を保持している場合に発生する None 7. ブラウザの postMessage API に関する説明として、最も適切なものを 1 つ選べ。 クライアント側で異なるオリジン間の安全な通信を可能にするが、targetOrigin に "*" を指定すると、任意のオリジンにメッセージを送信してしまう脆弱性が生じる可能性がある サーバーが処理するユーザー入力を操作して、サーバーから内部ネットワークリソースへのリクエストを発生させる攻撃 データベースへのクエリに不正なコードを挿入して、データの改ざんや漏洩を引き起こす攻撃 ユーザーの認証情報を盗み出し、正規ユーザーになりすましてサービスにアクセスする攻撃 None 8. クリックジャッキング攻撃の防止策として、最も効果的なものを 1 つ選べ。 リクエストに CSRF トークンを含める ユーザー入力のサニタイズを徹底する X-Frame-Options ヘッダーを設定する Cookie に samesite=strict を設定する None 9. 1 文字以上 5 文字以下の大文字アルファベットにマッチする正規表現として、最も適切なものを1つ選べ。 [A-Z]{1,5} [A-Z]{0,5} [A-Z]+{5} [A-Z]{5} None 10. コンテンツセキュリティポリシー(CSP)に関する説明として、最も適切なものを 1 つ選べ。 CSP は主に SQL インジェクション攻撃を防ぐために設計されたセキュリティ機能である CSP は、ブラウザに読み込むことができるコンテンツのソースを制限することで XSS 攻撃などを緩和する CSP は、データベースへの接続を暗号化するために使用するプロトコルである CSP は、Web サイトが使用するすべてのパスワードを暗号化するための標準である None 11. CORS(クロスオリジンリソース共有)に関する説明として、最も適切なものを 1 つ選べ。 CORS は、異なるオリジン間でのリソース共有を制限するためのセキュリティ機構である CORS は、サーバーのファイルシステムへの不正アクセスを防ぐための技術である CORS は、データベースクエリを安全に実行するためのフレームワークである CORS は、HTTPS の代わりに使用できる軽量の暗号化プロトコルである None 12. Web アプリケーションでのセキュアな Cookie 設定に関する説明として、最も適切なものを 1 つ選べ。 HttpOnly 属性を設定することで、Cookie の内容を HTTPS 接続でのみ送信するようになる Secure 属性を設定することで、JavaScript から Cookie にアクセスできなくなる SameSite=Strict 属性を設定することで、同一サイトからのリクエストの場合のみ Cookie を送信するようになる Path 属性を「/」に設定することで、Cookie の情報漏洩を完全に防ぐことができる None 13. 暗号化に関する次の記述のうち、最も適切なものを 1 つ選べ。 共通鍵暗号方式は、秘密鍵と公開鍵のペアを使用する 現在も安全とされているハッシュアルゴリズムは MD5 である HTTPS 通信では、共通鍵暗号と公開鍵暗号の両方が使用される ブロックチェーン技術では暗号化が使用されていない None 14. 「クッキーモンスターバグ」に関する説明として、最も適切なものを1つ選べ。 ブラウザが HTTPS サイトと HTTP サイトの両方からのクッキーを同時に送信してしまう脆弱性 クッキーの値を暗号化せずに保存することで生じる情報漏洩の脆弱性 同一オリジンポリシーの制限を回避して、クッキーを盗み出す攻撃手法 HTTPS サイトで設定したクッキーが HTTP サイトに送信されてしまう脆弱性 None 15. Web アプリケーションでのパスワード保存に関する説明として、最も適切なものを 1 つ選べ。 パスワードをデータベースに平文で保存しておき、ログイン時に暗号化して比較する パスワードを SHA-1 でハッシュ化し、レインボーテーブル攻撃を防ぐ パスワードを可逆的な暗号化アルゴリズムで暗号化し、必要に応じて復号できるようにする パスワードにソルトを加えて bcrypt などの適切なアルゴリズムでハッシュ化し保存する None 16. 自動ログイン機能に関する説明として、最も適切なものを1つ選べ。 自動ログイン機能は、ユーザーの認証情報をブラウザのローカルストレージに保存することで最も安全に実装できる 自動ログイン機能では、ユーザー ID とパスワードをそのまま Cookie に保存するのが一般的である 自動ログイン機能は、一意のトークンを生成して Cookie に保存し、サーバー側でそのトークンを検証する方式が推奨される 自動ログイン機能は、ユーザビリティを高めるために HTTP Cookie の有効期限を無期限に設定すべきである None 17. DOM Based XSS に関する説明として、最も適切なものを 1 つ選べ。 DOM Based XSS とは、サーバーから送信される HTML にスクリプトが埋め込まれる脆弱性のことである DOM Based XSS とは、クライアント側の JavaScript が DOM を動的に操作する際に発生する脆弱性のことである DOM Based XSS とは、クッキーに保存された悪意のあるスクリプトが実行される脆弱性のことである DOM Based XSS とは、HTTP レスポンスヘッダーに含まれるスクリプトが実行される脆弱性のことである None 18. 安全でないデシリアライゼーション(Insecure Deserialization)に関する説明として、最も適切なものを 1 つ選べ。 デシリアライゼーション攻撃とは、シリアライズされたデータに悪意のあるコードを埋め込み、それがデシリアライズされる際に実行される攻撃である デシリアライゼーション攻撃とは、データベースのシリアルナンバーを改ざんして、不正アクセスを行う攻撃である デシリアライゼーション攻撃とは、ネットワーク上のシリアル通信を傍受して情報を盗み出す攻撃である デシリアライゼーション攻撃とは、シリアライズされたセッションデータを削除して、DoS 攻撃を引き起こす手法である None 19. Web アプリケーションにおけるサードパーティのライブラリ使用に関するセキュリティリスクとして、最も適切な説明を 1 つ選べ。 サードパーティライブラリは常に最新のブラウザに対応していないため、互換性の問題が発生する サードパーティライブラリを使用すると、そのライブラリの脆弱性がアプリケーションに取り込まれる可能性がある サードパーティライブラリは CDN からの読み込みが必須であり、常にネットワーク依存となる サードパーティライブラリはクライアント側での処理を増やすため、必ずパフォーマンスが低下する None 20. セッション固定化攻撃に関する説明として、最も適切なものを 1 つ選べ。 攻撃者が大量のリクエストを送信し、サーバーのセッションストレージを枯渇させる攻撃 攻撃者が既知のセッション ID をユーザーに強制的に使用させ、そのユーザーが認証した後に同じセッション ID でアクセスする攻撃 攻撃者がユーザーのブラウザに保存されているセッション Cookie を盗み出す攻撃 攻撃者がランダムなセッション ID を生成してサーバーに送信し、有効なセッション ID を見つけ出す攻撃 None 21. eval インジェクション攻撃に関する説明として、最も適切なものを 1 つ選べ。 eval インジェクションは、入力値を適切にエスケープすることで完全に防ぐことができる eval 関数は、ユーザー入力を直接処理する場合でも、最新の JavaScript エンジンでは自動的に安全な実行環境を提供する eval インジェクションを防ぐ最も効果的な方法は、可能な限り eval 関数の使用を避けることである eval 関数は、JSON データを解析する際の標準的かつ推奨される方法である None 22. XML 外部実体参照(XXE)脆弱性の対策として、最も効果的なものを 1 つ選べ。 XML データを受け取る前に HTTPS を使用して通信を暗号化する XML の代わりに JSON を使用する 受信した XML データを UTF-8 エンコーディングに変換する XML データに含まれる特殊文字を HTML エンティティにエスケープする None 23. 多要素認証(MFA)に関する説明として、最も適切なものを 1 つ選べ。 多要素認証とは、パスワードの長さと複雑さを増すことで認証の安全性を高める仕組みである 多要素認証とは、認証情報を複数のデータベースに分散して保存する方式である 多要素認証とは、異なるカテゴリに属する 2 つ以上の認証要素を組み合わせて本人確認を行う方式である 多要素認証とは、1 つの強力な認証方法を複数回繰り返して検証する仕組みである None 24. ファイルアップロード機能を悪用した DoS(サービス拒否)攻撃対策として、最も適切なものを1つ選べ。 アップロードされるファイルの拡張子を制限する ファイルサイズの上限とアップロード頻度の制限を設定する すべてのアップロードファイルに対してウイルススキャンを実施する ファイルのアップロード機能を管理者のみに制限する None 25. クロスオリジンリソース共有(CORS)に関する説明として、最も適切なものを 1 つ選べ。 CORS では、同一ポート番号であれば異なるドメイン間でのリソース共有が常に許可される CORS では、サブドメインが異なる場合(例:app.example.com と api.example.com)は常に同一オリジンとみなされる CORS では、Access-Control-Allow-Origin ヘッダーを使用して、特定のオリジンからのリクエストのみを許可できる CORSは、HTTPS プロトコルを使用している場合のみ有効となり、HTTP では機能しない None 26. jQuery を使用した Web アプリケーションにおけるクロスサイト・スクリプティング(XSS)脆弱性に関する説明として、最も適切なものを1つ選べ。 ユーザー入力を直接 jQuery のセレクタに組み込んでも、jQuery は自動的に XSS 対策を行うため安全である URL パラメータの値を取得して動的に jQuery セレクタを構築する場合、エスケープ処理が必要である jQuery の .html() メソッドは常に入力値をサニタイズするため、XSS 攻撃を防止できる jQuery を使用していれば、DOM Based XSS の脆弱性は発生しない None 27. リバースブルートフォルス攻撃に対する攻撃手法に関する説明として、最も適切なものを 1 つ選べ。 リバースブルートフォルス攻撃とは、ユーザー名を固定して複数のパスワードを試行する攻撃である リバースブルートフォルス攻撃は、サーバーからクライアントへの応答を改ざんして不正な情報を表示させる リバースブルートフォルス攻撃は、パスワードを固定して複数のユーザー名を試行する攻撃である リバースブルートフォルス攻撃は、サーバーに大量のリクエストを送信してサービスを妨害する攻撃である None 28. HTTPステータスコードに関する説明として、最も適切なものを1つ選べ。 401(Unauthorized)は、リソースへのアクセス権がないことを示す 403(Forbidden)は、認証情報が無効であることを示す 500(Internal Server Error)は、クライアント側のリクエストに問題があることを示す 302(Found)は、リクエストされたリソースが一時的に別の URL に移動したことを示す None 29. Web セキュリティヘッダーに関する説明として、最も適切なものを 1 つ選べ。 X-XSS-Protection ヘッダーは、最新のブラウザでは CSP に置き換えられているが、古いブラウザへの対応として設定する価値がある Access-Control-Allow-Origin ヘッダーに「*」(アスタリスク)を設定することは、もっとも安全な設定である X-Frame-Options ヘッダーは、SQL インジェクション攻撃を防ぐために設定される Strict-Transport-Security ヘッダーは、Cookie の送信範囲を制限するために使用される None 30. Web アプリケーションのセキュリティログと監査に関する説明として、最も適切なものを 1 つ選べ。 セキュリティログは、セキュリティインシデントが発生した場合のみ記録して保存すれば十分である セキュリティログには、プライバシーを保護するため、IP アドレスやユーザー ID などの個人識別情報は一切含めるべきではない セキュリティ監査のためには、認証の成功と失敗の両方をログに記録する必要がある セキュリティログは、サービス停止時の原因調査に役立つが、不正アクセスの検出には使用できない None 31. OWASP Top 10 に関する説明として、最も適切なものを 1 つ選べ。 OWASP Top 10 は、国際標準化機構(ISO)が策定している Web セキュリティの公式標準規格である OWASP Top 10 は、Web アプリケーションの最も重大な 10 種類のセキュリティリスクのリストであり、3-4 年ごとに更新される OWASP Top 10 は、Web アプリケーション開発者のスキルレベルを評価するための 10 段階の認定制度である OWASP Top 10 は、脆弱性スキャンツールの検出精度を比較するためのベンチマークである None 32. Web アプリケーションにおける認可(Authorization)の説明として、最も適切なものを 1 つ選べ。 ユーザーがシステムにアクセスする際に、ID とパスワードなどの認証情報を確認する仕組み ユーザーの権限を確認し、許可された操作やリソースへのアクセスのみを許可する仕組み ユーザーのセッション ID を生成して、状態を維持する仕組み ユーザーのパスワードをハッシュ化して保存する仕組み None 33. Web アプリケーションにおける認可(Authorization)の実装に関する説明として、最も適切なものを 1 つ選べ。 認可制御は、フロントエンドの UI レベルで実装すれば十分である 認可チェックは、アプリケーションの特定のページへの初回アクセス時のみ実行すれば良い API エンドポイントごとに適切な認可チェックを実装し、バックエンドで強制する必要がある 同じユーザーグループに属するユーザーは、全て同じ権限を持つべきである None 34. Web アプリケーションにおけるメールヘッダインジェクション対策として、最も適切なものを 1 つ選べ。 ユーザー入力をそのままメールヘッダに使用し、処理を簡略化する 改行文字を含むユーザー入力をそのまま許可し、多様な入力に対応する メール送信前にユーザー入力から改行文字を除去し、ヘッダインジェクションを防止する メールヘッダの作成はクライアント側の JavaScript で行い、サーバー側の負荷を軽減する None 35. 正規表現における修飾子「i」の役割として、正しいものを1つ選べ。 大文字と小文字を区別せずにマッチングを行う マルチラインモードを有効にし、^ と $ が各行の先頭と末尾にマッチするようにする グローバルマッチングを有効にし、すべての一致を検索する 正規表現パターン内の空白とコメントを無視する None 36. SQL インジェクション対策における静的プレースホルダー(プリペアドステートメント)に関する説明として、最も適切なものを 1 つ選べ。 静的プレースホルダーは、SQL クエリの実行速度を向上させるためのキャッシュ機構である 静的プレースホルダーは、SQL クエリとパラメータを分離して扱うことで、SQL インジェクション攻撃を防ぐ仕組みである 静的プレースホルダーは、データベースへの同時接続数を制限して DoS 攻撃を防ぐための仕組みである 静的プレースホルダーは、ユーザー入力を自動的に暗号化してデータベースに保存するための仕組みである None 37. Web ブラウザにおけるストレージのセキュリティに関する説明として、最も適切なものを 1 つ選べ。 localStorage 内のデータは有効期限が自動的に設定されるため、セキュリティリスクが低い sessionStorage のデータは、同一オリジンの他のタブからもアクセスできるため注意が必要である HTTPOnly フラグが設定された Cookie は、JavaScript からアクセスできないため、XSS 攻撃からの保護に役立つ ブラウザの開発者ツールを使えば、HTTPS で送信された Cookie の内容も平文で閲覧できるため、機密情報の保存には不適切である None 38. Web アプリケーションにおけるクロスサイト・スクリプティング(XSS)攻撃への対策として、最も適切なものを1つ選べ。 ユーザー入力をそのまま HTML に出力し、クライアント側で JavaScript フィルタリングを実装する 入力値のサニタイズとコンテキスト依存のエスケープ処理を実装する 攻撃を防ぐため、すべてのユーザー入力で JavaScript を無効化する パフォーマンス向上のため、innerHTML 属性を積極的に使用する None 39. 中間者攻撃に関する説明として、最も適切なものを1つ選べ。 SSL で保護された Web サイト(HTTPS)では中間者攻撃は完全に防止できる 中間者攻撃では、攻撃者は通信経路に介入して情報を傍受・改ざんできる 公共 Wi-Fi でも、最新のブラウザを使用していれば中間者攻撃のリスクはない ファイアウォールを導入すれば、中間者攻撃を完全に検出・防止できる None 40. ウェブアプリケーション開発の受注者側での検収作業における脆弱性テストに関する説明として、最も適切なものを 1 つ選べ。 受注者は、納品前の内部テストとして脆弱性検査を実施し、発見された問題を修正してから納品するべきである ウェブアプリケーションの脆弱性テストは発注者側の責任であり、受注者側で実施する必要はない 脆弱性検査ツールを使用すれば、全ての脆弱性が自動的に発見できるため、手動テストは不要である 脆弱性テストはシステム稼働後に行うことで、実環境での問題を正確に把握できる None Time's up