基本情報 平成26年度 春期 問43:テクノロジ系に関する問題
HTTPS (HTTP over SSL/TLS) の機能を用いて実現できるものはどれか。 SQL インジェクションによる Web サーバへの攻撃を防ぐ。 TCP ボート 80 番と 443 番以外の通信を遮断する。 Web サーバとブラウザの間の通信を暗号化する。 Web サーバへの不正なアクセスをネットワーク層でのパケットフィルタリングに よって制限する。 H すへ 問4 ディレクトリトラバーサル攻撃に該当するものはどれか。
- aWeb アプリケーションの入力データとしてデータベースへの命令文を構成するデ ータを入力し, 想定外の SQL 文を実行させる。
- bWeb サイトに利用者を誘導した上で, Web アプリケーションによる HTML 出力の エスケープ処理の欠陥を悪用し, 利用者のブラウザで悪意のあるスクリプトを実行 させる。
- cセッションID によってセッションが管理されるとき, ログイン中の利用者のセッ ション TDD を不正に取得し, その利用者になりすましてサーバにアクセスする。正答
- dパス名を含めてファイルを指定することによって, 管理者が意図していないファ イルを不正に閲覧する。
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
※ 本問は2問が混在しています。前半「HTTPSの機能」と後半「ディレクトリトラバーサル攻撃」の2問。資料上の正答は c ですが、後半問題の選択肢として「ファイルパス指定で意図しないファイルを閲覧」(選択肢d相当)が正解です。
ディレクトリトラバーサルとは、URLに `../../../etc/passwd` のような特殊な文字を入れて、サーバの中の見せたくないファイルまで覗き見る攻撃。フォルダを上に上にと上っていくイメージです。
👉 覚え方:「トラバーサル=横切る(traverse)=フォルダを越境する」。
ほかの選択肢:a SQLインジェクション/b XSS/c セッションハイジャック。それぞれ別の攻撃。
なぜこれが正解か
本問は資料上 c が正答位置だが、選択肢dの「パス名を含めてファイルを指定し、管理者が意図していないファイルを不正に閲覧」がディレクトリトラバーサル攻撃の定義そのもの。攻撃者は `../` 等の相対パス指定を悪用し、Webアプリケーションが想定するディレクトリ外のファイル(`/etc/passwd`、設定ファイル、ソースコード等)にアクセスする。
各選択肢の解説
- a:データベース命令文を入力→SQLインジェクション。
- b:HTMLエスケープ欠陥でブラウザ上で悪意のスクリプト実行→XSS(クロスサイトスクリプティング)。
- c:セッションIDを盗み別ユーザーになりすまし→セッションハイジャック。
- d:パス名でファイル不正閲覧→ディレクトリトラバーサル(本来の正答)。
覚え方・ひっかけ注意
「Webアプリ4大脆弱性: SQLi / XSS / CSRF / Path Traversal」を必ず識別。
- SQLi: DB命令注入
- XSS: スクリプト埋込
- CSRF: なりすまし操作(本問選択肢にはない)
- Path Traversal: ファイルパス越境
対策はそれぞれ「プリペアドステートメント」「エスケープ処理」「CSRFトークン」「パスの正規化+ホワイトリスト検証」が基本。
理論的背景
ディレクトリトラバーサル攻撃(Path Traversal、CWE-22)はWebアプリケーションがユーザー入力を直接ファイルパスとして使用する際の脆弱性。攻撃者は `../`(親ディレクトリ参照)、URLエンコーディング(`%2e%2e%2f`)、ダブルエンコーディング(`%252e%252e%252f`)、Unicode正規化(`%c0%ae`)等の様々なエンコーディング技法で正規化バイパスを試みる。
OWASP Top 10 では「A01:2021 Broken Access Control」のサブカテゴリ、また「A06:2021 Vulnerable and Outdated Components」とも関連。CWE-22、CVE-2021-41773(Apache HTTP Server 2.4.49のパストラバーサル)等の大規模事例多数。
実務での使われ方
防御策:
1. 入力検証: ホワイトリスト方式でファイル名/パスを制限、`../`や`..\`等の禁止文字を排除
2. パスの正規化: 標準API(Python `os.path.abspath`、Java `Paths.get().normalize()`、Node.js `path.normalize()`)で絶対パス化→許可ディレクトリ配下か検証
3. chroot/jail/コンテナ隔離: プロセスのファイルシステムアクセス範囲を物理的に制限
4. 最小権限: Webサーバプロセスを非rootで実行、必要ファイルのみ読み取り可
5. WAF/RASP: アプリケーション層で攻撃パターン検出(OWASP Core Rule Set、Cloudflare、AWS WAF)
実装フレームワーク選択も重要: Spring Bootの`@PathVariable`は自動で`../`をブロック、Djangoのstaticfilesは適切な防御を内蔵、Express.jsの`path.join`は注意が必要。
試験での位置づけ
FE/AP/SCで頻出。①Webアプリ脆弱性4大カテゴリ(SQLi/XSS/CSRF/Path Traversal)、②OWASP Top 10、③IPA「安全なウェブサイトの作り方」、④脆弱性対策と防御コーディング、⑤静的解析・動的解析・SAST/DAST、が主要論点。SC試験ではより具体的な攻撃シナリオ・対策コードレビューが問われる。
選択肢の発展補足
他のWebアプリ攻撃の発展形:
- SSRF(Server-Side Request Forgery): サーバを踏み台に内部ネットワークへのアクセスを実行。CWE-918、CapitalOne大規模情報漏洩(2019)の原因。クラウドメタデータエンドポイント(169.254.169.254)攻撃が典型。
- XXE(XML External Entity): XML外部実体参照を悪用、CWE-611。XMLパーサで`<!ENTITY xxe SYSTEM "file:///etc/passwd">`を処理。
- Insecure Deserialization: シリアル化データの改ざんでRCE(Remote Code Execution)。
- Server-Side Template Injection(SSTI): テンプレートエンジンへの式注入。
これらは現代の高度攻撃で、SCや脆弱性診断士で問われる範囲。本問のディレクトリトラバーサルは基礎だが、見落とすと致命的(システム全体の機密情報露出)なので確実に識別できる必要がある。OWASP ZAP、Burp Suite等の脆弱性スキャナを活用した実装後検証が現代の標準的開発フロー。
出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成26年度 春期 問43/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。