徳丸基礎試験 模擬試験 1(β版) 徳丸基礎試験 模擬試験 1(β版) へようこそ。 《徳丸基礎試験 模擬試験 1(β版) の注意点》 本試験はβ版となります。設問や回答などで気になることがあれば下記フォームよりご意見いただけますと幸いです。 https://forms.cloud.microsoft/r/EvrKVccJaY ===== 以下の各項目を入力後、「次へ」をクリックして模擬試験を開始してください。 ※あらかじめ利用規約をご確認ください(プライム・ストラテジーから採用やイベントの情報など届くことがあります)。 ※結果の詳細は入力いただいたメールアドレス宛てにのみお送りします。必ず確認可能なメールアドレスを入力してください。 お名前 メールアドレス(結果の詳細をお送りします) 利用規約に同意する。 1. クロスサイト・スクリプティング(XSS)脆弱性に関する記述のうち、最も適切なものを選べ。 クロスサイト・スクリプティング(XSS)脆弱性は、攻撃者がデータベースに直接アクセスしてデータを改ざんすることで発生する クロスサイト・スクリプティング(XSS)脆弱性は、Web アプリケーションが外部からの入力値を適切にエスケープせずに HTML に出力することで発生する クロスサイト・スクリプティング(XSS)脆弱性は、セッション ID が推測可能であることが主な原因である クロスサイト・スクリプティング(XSS)脆弱性は、リクエストの送信元と送信先が同一オリジンでない場合に発生する None 2. SQL インジェクション対策として最も効果的なものはどれか、1 つ選べ。 入力値からシングルクォーテーション(')を削除する エラーメッセージを表示しないようにする プレースホルダを使用した SQL 文の組み立て SQL に渡す前に入力値を HTML エスケープする None 3. Cookie に設定できる属性の説明として、誤っているものを 1 つ選べ。 HttpOnly 属性は、JavaScript から Cookie へのアクセスを禁止する Secure 属性は、HTTPS 通信の場合のみ Cookie を送信するよう指定する SameSite 属性は、クロスサイトリクエストでの Cookie 送信を制限する Path 属性は、Cookie が他のドメインでも利用可能になるよう設定する None 4. クロスサイト・リクエスト・フォージェリ(CSRF)の説明として最も適切なものを 1 つ選べ。 ユーザーが意図しない操作を Web サイトに行わせる攻撃で、対策としてはリファラチェックが有効である Web アプリケーションが外部からの入力値を適切にエスケープせずに HTML に出力することで発生する脆弱性である ユーザーが別の Web サイトにアクセスした際に、攻撃者のサイトからユーザーが認証済みのサイトに対して意図しないリクエストを送信させる攻撃である データベースに対して悪意のある SQL コマンドを注入する攻撃手法である None 5. ディレクトリトラバーサル脆弱性の対策として最も適切なものを 1 つ選べ。 入力されたパス名に含まれるスラッシュ(/)をすべて削除する 入力されたパス名からディレクトリ部分を取り除き、ファイル名のみを使用する 入力されたパス名を URL エンコードして使用する 入力されたパス名に対して HTML エスケープを行う None 6. クリックジャッキング攻撃に対する最も効果的な対策はどれか、1 つ選べ。 Content-Security-Policy ヘッダで script-src を設定する X-XSS-Protection ヘッダを設定する X-Frame-Options ヘッダを設定する CSRF トークンを使用する None 7. セッションハイジャック攻撃の手法として、誤っているものを 1 つ選べ。 クロスサイト・スクリプティング(XSS)脆弱性を利用して JavaScript で Cookie からセッション ID を盗み出す Referer ヘッダに含まれる URL からセッション ID を盗み出す パスワードハッシュの脆弱性を利用してデータベースからパスワードを解読する ネットワーク盗聴により平文で送信されるセッション ID を傍受する None 8. オープンリダイレクト脆弱性の対策として最も適切なものを 1 つ選べ。 リダイレクト先 URL を HTML エスケープする リダイレクト先 URL のドメイン名を許可リストと照合する リダイレクト時にユーザーに確認画面を表示する リダイレクト先 URL に対して SQL 文のエスケープ処理を行う None 9. OS コマンドインジェクション対策として最も適切なものを 1 つ選べ。 入力値からセミコロン(;)とアンパサンド(&)を削除する シェル呼び出し機能のある関数を使用せず、専用 API やライブラリを使用する システムコマンドを実行する前に入力値を HTML エスケープする 実行するコマンドを管理者権限で動作させない None 10. Web アプリケーションのパスワード保存方法として最も安全なものを 1 つ選べ。 暗号化アルゴリズムでパスワードを可逆的に暗号化する ソルトを加えたうえでストレッチングを行ったハッシュ値を保存する SHA-256 などの安全なハッシュ関数でハッシュ化したパスワードを保存する パスワードを平文で保存し、データベースのアクセス制限で保護する None 11. セッション ID の固定化攻撃に対する適切な対策はどれか、1 つ選べ。 ログイン成功後にセッション ID を再生成する セッション ID を URL に埋め込まないようにする セッション ID を生成する際に強度の高い乱数を使用する セッション ID に HttpOnly 属性を設定する None 12. HTTP ヘッダインジェクション脆弱性の説明として最も適切なものを 1 つ選べ。 外部からの入力値が適切にエスケープされずに HTTP レスポンスヘッダに出力されることで発生する脆弱性 外部からの入力値が適切にエスケープされずに HTML に出力されることで発生する脆弱性 外部からの入力値が SQL クエリに組み込まれることで発生する脆弱性 外部からの入力値がシステムコマンドに組み込まれることで発生する脆弱性 None 13. 同一オリジンポリシーに関する説明として正しいものを 1 つ選べ。 同一オリジンポリシーは、異なるオリジンのリソースへのアクセスをすべて禁止する仕組みである 同一オリジンポリシーは、Web ページが異なるオリジンのリソースを読み取ることを制限する仕組みである 同一オリジンポリシーは、サーバーがクライアントからのリクエストを制限する仕組みである 同一オリジンポリシーは、攻撃者が Web サイトのコンテンツを改ざんすることを防ぐ仕組みである None 14. CSRF トークンに関する説明として適切なものを 1 つ選べ。 Cookie に保存して、リクエスト時に自動的に送信されるようにする JavaScript のグローバル変数として保存し、Ajax 通信時に利用する HTML の hidden 要素としてフォームに含め、リクエスト時に送信する URL のクエリパラメータとして常に付加する None 15. メールヘッダインジェクション対策として最も適切なものを 1 つ選べ。 入力値から改行文字を除去する 入力値を HTML エスケープする 入力値を URL エンコードする 専用のメール送信 API やライブラリを使用する None 16. CORS の設定に関する説明として、正しいものを 1 つ選べ。 CORS はブラウザ側の設定で、特定のドメインからのリクエストのみを許可するための機能である CORS はサーバー側からクライアント側に対して、異なるオリジンからのアクセスを許可するための仕組みである CORS を有効にすると、同一オリジンポリシーが完全に無効になる CORS ヘッダはブラウザが自動的に設定するため、開発者が設定する必要はない None 17. Web サイトの安全性を高めるための HTTP レスポンスヘッダとして、誤っているものを 1 つ選べ。 X-XSS-Protection: 1; mode=block X-Frame-Options: DENY X-Content-Type-Options: nosniff X-Powered-By: PHP/7.4.3 None 18. ファイルアップロード機能に関するセキュリティ対策として、適切でないものを 1 つ選べ。 アップロードされたファイルの Content-Type を信頼し、それだけでファイルの種類を判断する アップロードされたファイルの拡張子を制限する許可リストを設定する アップロードされたファイルを実行可能なディレクトリとは別のディレクトリに保存する アップロードされたファイルの内容を検査して、実際のファイル形式を確認する None 19. アカウントロックに関する説明として、最も適切なものを 1 つ選べ。 アカウントロックは、パスワードを何度間違えても常に同じエラーメッセージを表示する仕組みである アカウントロックは、一定時間内にパスワードを一定回数間違えた場合にアカウントへのログインを一時的に禁止する仕組みである アカウントロックは、パスワードを一度でも間違えたらそのユーザーのアカウントを完全に削除する仕組みである アカウントロックは、ユーザーが使用する IP アドレスを固定する仕組みである None 20. XML の外部実体参照(XXE)攻撃に関する説明として、最も適切なものを 1 つ選べ。 XML ドキュメント内にスクリプトを埋め込み、Web ブラウザ上で実行させる攻撃 XML パーサーの外部実体解決機能を悪用して、サーバー内部のファイルにアクセスする攻撃 XML データを SQL クエリに埋め込み、データベースを不正に操作する攻撃 XML の形式を改変して、アプリケーションの処理を遅延させる DoS 攻撃 None 21. DOM Based XSS に関する説明として、最も適切なものを 1 つ選べ。 サーバー側で外部からの入力値が適切にエスケープされず、HTML に出力される場合に発生する サーバー側で外部からの入力値が SQL クエリに埋め込まれる場合に発生する JavaScript がクライアント側で動的に DOM を操作する際に、外部からの入力値が適切に処理されない場合に発生する JavaScript がクライアント側で HTTP リクエストを行う際に、URL 検証が不十分な場合に発生する None 22. Web アプリケーションのセッション管理に関する説明として、最も適切でないものを 1 つ選べ。 セッション ID は Cookie に保存するよりも URL パラメータで送信する方が安全である セッション ID はランダム性の高い値を使用するべきである セッションの有効期限を適切に設定することでセキュリティリスクを低減できる ログアウト機能を実装することでセキュリティリスクを低減できる None 23. Webアプリケーションにおける「脆弱性」の説明として、最も適切なものを1つ選べ。 ソフトウェアやシステムの不具合や設計上の欠陥で、攻撃者に悪用される可能性がある弱点 ソフトウェアの動作を意図的に妨害するために開発された悪意のあるプログラム ネットワーク上のデータを不正に傍受するための技術 ユーザーの個人情報を騙して取得しようとする詐欺行為 None 24. Web アプリケーションのログ出力に関する説明として、最も適切でないものを 1 つ選べ。 ログにパスワードやクレジットカード番号などの機密情報を平文で記録すべきである セキュリティ監査のために、認証の成功・失敗の両方をログに記録すべきである アクセスログには、アクセス日時やリモート IP アドレスを記録すべきである ログファイルは定期的にバックアップし、一定期間保管すべきである None 25. JSONP に関する説明として、最も適切なものを 1 つ選べ。 JSONP は同一オリジンポリシーの制限を回避するために使われる技術である JSONP は、JSON データを暗号化してセキュリティを向上させる技術である JSONP は、サーバー側で JSON データを圧縮して転送効率を上げる技術である JSONP は、Web ブラウザが JSON データを解析する際のパフォーマンスを向上させる技術である None 26. Web ストレージ(LocalStorage と SessionStorage)の利用に関する説明として、最も適切でないものを 1 つ選べ。 クレジットカード番号などの機密情報を保存するのに適している ブラウザ側で保存できるデータの容量が、Cookie よりも大きい 自動的にサーバーへ送信されることはない 同一オリジンポリシーによって保護されている None 27. ファイルインクルード攻撃に関する説明として、最も適切なものを 1 つ選べ。 ユーザーが入力したデータを適切な検証なしにファイルパスとして使用することで、意図していないファイルが読み込まれる脆弱性 ユーザーが入力したデータを適切なエスケープなしに HTML に出力することで、悪意のあるスクリプトが実行される脆弱性 ユーザーが入力したデータを適切な検証なしに SQL クエリに組み込むことで、データベースを不正に操作される脆弱性 ユーザーが入力したデータを適切なエスケープなしにシステムコマンドに渡すことで、不正なコマンドが実行される脆弱性 None 28. サードパーティ JavaScript ライブラリの利用におけるセキュリティリスクとして、最も適切なものを 1 つ選べ。 サードパーティライブラリが改ざんされたり、悪意のあるコードが挿入されたりすると、そのライブラリを使用するすべてのサイトが影響を受ける可能性がある サードパーティライブラリは一般的に動作が遅く、パフォーマンス上の問題を引き起こす サードパーティライブラリはブラウザの互換性の問題を引き起こす可能性が高い サードパーティライブラリを使用すると、Web サイトのデザインの一貫性が失われやすくなる None 29. 安全な Web アプリケーション開発に関する説明として、最も適切でないものを 1 つ選べ。 外部から提供される JavaScript ライブラリは信頼できるため、そのまま利用してもよい すべての入力値を受け付ける前に適切な検証を行うべきである エラーメッセージには詳細なシステム情報を含めないようにすべきである セキュリティテストは開発の早い段階から継続的に行うべきである None 30. Content-Security-Policy(CSP)ヘッダに関する説明として、最も適切なものを 1 つ選べ。 CSP ヘッダは、ブラウザのキャッシュ動作を制御するためのヘッダである CSP ヘッダは、Web ページがどのようなリソースをどこから読み込めるかを制限するためのヘッダである CSP ヘッダは、ブラウザの同一オリジンポリシーを無効化するためのヘッダである CSP ヘッダは、HTTPS への自動リダイレクトを実現するためのヘッダである None 31. 安全でないデシリアライゼーションに関する説明として、最も適切なものを 1 つ選べ。 ブラウザの JavaScript が CORS ポリシーを回避して、異なるオリジンのデータを読み取る脆弱性 データベースクエリを実行する際に、ユーザー入力が適切に検証されず SQL コマンドとして解釈される脆弱性 XML パーサが外部実体を処理する際に、ローカルファイルを読み取ってしまう脆弱性 シリアライズされたオブジェクトをデシリアライズする際に、信頼できないデータによって意図しないコードが実行される脆弱性 None 32. TLS(Transport Layer Security)に関する説明として、最も適切でないものを 1 つ選べ。 TLS は、Web サイトのコンテンツを改ざんから保護する TLS は、通信経路上での盗聴を防止する TLS は、サーバーの真正性を確認するための仕組みを提供する TLS は、Web アプリケーションの脆弱性(XSS や SQL インジェクションなど)を自動的に修正する None 33. 認証と認可の違いに関する説明として、最も適切なものを 1 つ選べ。 認証はユーザーの身元を確認するプロセスであり、認可はユーザーが特定のリソースにアクセスする権限を持っているかを確認するプロセスである 認証はセッション管理のプロセスであり、認可はパスワードの強度を検証するプロセスである 認証はユーザーのログイン状態を保持するプロセスであり、認可はユーザーのログアウト処理を行うプロセスである 認証はユーザーの権限を管理するプロセスであり、認可はユーザー ID とパスワードを検証するプロセスである None 34. 次のうち、Web サイトのセキュリティ対策として最も効果的でないものを 1 つ選べ。 データベースに保存するパスワードにソルトとストレッチングを適用する すべてのユーザー入力に対してサニタイズとバリデーションを行う エラーメッセージに詳細なシステム情報を表示して、開発者の調査を容易にする セッション ID を発行する際にランダム性の高い値を使用する None 35. Web アプリケーションにおけるキャッシュからの情報漏洩に関する説明として、最も適切なものを 1 つ選べ。 複数ユーザーが同じブラウザを使用する場合に、ブラウザキャッシュを通じて個人情報が漏洩する可能性がある サーバーサイドのキャッシュからのみ情報漏洩が発生し、ブラウザキャッシュからの漏洩は発生しない キャッシュからの情報漏洩は、常に CSRF 対策を実装することで防止できる セッション ID が URL に含まれている場合のみ、キャッシュからの情報漏洩が発生する None 36. Web アプリケーションで使用する乱数生成に関する説明として、最も適切なものを 1 つ選べ。 時刻に基づいた乱数生成(例:rand() * time())は、予測不可能性が高いため、セキュリティ用途に適している セキュリティが重要な用途では、暗号論的擬似乱数生成器(CSPRNG)を使用するべきである セッション ID の生成には単純な乱数生成関数で十分であり、難読化すれば安全である 乱数生成の初期値(シード)が同じでも、異なる環境では異なる乱数列が生成されるため安全である None 37. Web アプリケーションのセキュリティテストに関する説明として、最も適切なものを1つ選べ。 セキュリティテストは開発の最終段階でのみ実施すべきであり、それまでのテストは不要である 組織のセキュリティを確保するためには、自動化ツールだけで十分であり手動テストは不要である 効果的なセキュリティテスト戦略には、SAST、DAST、手動テストなど複数のアプローチを組み合わせることが重要である セキュリティテストはセキュリティ専門家のみが実施すべきであり、開発者が関与する必要はない None 38. セッション管理に関する説明として、最も適切でないものを 1 つ選べ。 セッション ID を URL パラメータで渡すのは、セキュリティ上のリスクがある セッションタイムアウトは、一定時間操作がない場合にセッションを無効化する機能である 同一ユーザーの同時セッションを複数許可することは、常にセキュリティリスクとなるため禁止すべきである ユーザーが明示的にログアウトした場合は、サーバー側でセッションを無効化する必要がある None 39. Web アプリケーションで実装する二要素認証(2FA)に関する説明として、最も適切でないものを 1 つ選べ。 二要素認証では、「知っているもの」と「持っているもの」の 2 つの要素を組み合わせることで、セキュリティを強化する SMS を使用した二要素認証は、SIM スワッピング攻撃に対して脆弱性があるため、可能であれば TOTP(Time-based One-Time Password)のような代替手段を検討すべきである 二要素認証を実装すると、パスワードの強度要件を緩和してもセキュリティ上の問題はない 二要素認証を実装する際には、ユーザーがデバイスを紛失した場合のリカバリー手段も考慮する必要がある None 40. Web アプリケーションにおけるセキュアな暗号化技術の実装に関する説明として、最も適切でないものを 1 つ選べ。 暗号化アルゴリズムは自作せず、広く検証された標準ライブラリやフレームワークを使用するべきである 各ユーザーに固有の暗号鍵を生成するため、ユーザーのパスワードをそのまま暗号鍵として使用することが推奨される 暗号学的に安全な乱数生成器を使用して、初期化ベクトル(IV)やソルトなどのランダム値を生成するべきである 機密データを保存する場合、暗号化と同時にデータの完全性を確保するための認証付き暗号化(AEAD)の使用を検討するべきである None Time's up