情報処理安全確保支援士 2022年 春期 午後1 問02
セキュリティインシデント対応に関する次の記述を読んで、設問1~4に答えよ。
Z社は、Network Attached Storage(NAS)製品、ルータ製品などのネットワーク機器を開発、保守している従業員200名の会社であり、国内の中小企業の顧客を中心に事業を展開している。NAS製品である製品Xは、ファイル共有の用途で利用され、ルータ製品である製品Yは、インターネット接続の用途で利用されている。製品X及び製品Yは、LinuxをベースとしたOSを搭載している。
Z社では、インターネットドメイン名z-sha.co.jpを取得している。製品Xの利用者は、インターネットからWebインタフェース経由で自身の製品Xにアクセスするに際して、Z社が提供しているダイナミックDNSサービス(以下、DDNS-Zという)を利用することができる。
〔障害の発生〕
ある日、製品Xと製品Yを利用しているA社から、Z社の保守サポート窓口に障害の報告が入った。製品X(以下、A社に設置された製品XをNAS-Aという)上のファイルにおいて、ファイル名は表示されるがファイルを開くことができないとのことであった。
障害報告によると、A社は、オフィス環境のデザイン及び施工を行う従業員30名の会社であり、デザインデータのファイルをNAS-Aに保存して社内で共有している。在宅勤務者の増加に伴い、7日前に、NAS-A及び製品Y(以下、A社に設置された製品Yをルータ-Aという)の設定を変更して、A社の従業員の自宅からNAS-A上のファイルにアクセスできるようにしていた。
〔NAS-A及びルータ-Aの調査〕
Z社の保守サポート課のK氏は、A社の障害調査を担当することになった。NAS-Aは、DDNS-Zを使用して、https://nas-a.z-sha.co.jp/のURLでアクセスできるようになっていた。ルータ-AのグローバルIPアドレスが変更された場合、Z社のDNSサーバの設定でホスト名nas-aに割り当てているIPアドレスを変更するために、aレコードを更新する。そのレコードのbは、300秒に設定されていた。
A社のネットワーク構成を図1に、NAS-Aの設定内容を表1に、ルータ-Aの設定内容を表2に示す。


K氏がNAS-Aを調査した結果、次のことが分かった。
・デザインデータのファイルが暗号化され、ファイル名の拡張子が変更されていた。
・A社では身に覚えのない、英語で書かれた脅迫文のテキストファイルが、NAS-Aに保存されていた。
・ファイル共有機能でもWeb操作機能でもアクセスできない/rootディレクトリ配下のファイルも暗号化されていた。
K氏は、今回の障害がランサムウェアに起因するものであり、さらに、②A社のPCがランサムウェアに感染したのではなく、NAS-A自体がランサムウェアに感染したことによってNAS-Aのファイルが暗号化された可能性が高いと判断した。そこで、脆弱性、アクセスログ、DDNS-Zの三つの観点から更に調査を進めることにした。
〔脆弱性の調査〕
NAS-Aにおける脆弱性修正プログラムの適用状況を確認したところ、数週間前にリリースされた製品Xの脆弱性修正プログラム(以下、パッチMという)が未適用であった。パッチMは、Web管理機能に関する二つの脆弱性(以下、脆弱性1と脆弱性2という)について対策したものである。脆弱性1及び脆弱性2の概要を図2に示す。
パッチMでは、脆弱性1の対策として、認証なしアクセスの処理の流れにパス名の正規化の処理を加え、さらに、図3に示す順序にした。パス名の正規化とは、相対パスで記述されたパス名を、相対パス記法を含まない形式に変換することである。
〔アクセスログの調査〕
NAS-Aのアクセスログを調査したところ、外部からHTTPSリクエストを使用してOSコマンドを実行する攻撃ツール(以下、WebShellという)がNAS-Aに配置されており、OSコマンドが実行されたことが分かった。NAS-AのアクセスログからWebShellに関連するものを抽出した結果を表3に示す。

表3からは、GETメソッドを使用して実行されたOSコマンドの内容は分かったが、③POSTメソッドを使用して実行されたOSコマンドの内容は分からなかった。
WebShellが配置されたディレクトリは、書込み不可であるが、rootアカウントを用いれば書込み可能に変更できる。製品Xでは、sudoコマンドの設定ファイルが図4のようになっている。

tarコマンドは、標準のOSコマンドであり、複数のファイルを一つのアーカイブファイルにまとめたり、アーカイブファイルを展開したりできる。製品Xでは、ファームウェアのアップデート時、wwwアカウントの権限でsudoコマンドを使用してtarコマンドを実行することで、rootアカウントの権限でアーカイブファイルを展開している。このtarコマンドには、任意のOSコマンドを実行できるオプションがある。ただし、ファームウェアのアップデート時にこのオプションは使用していない。当該オプションを悪用する例を図5に示す。

K氏は、“攻撃者が、Web管理機能の脆弱性とtarコマンドのオプションを悪用し、書込み不可のディレクトリを書込み可能に変更してWebShellを配置した後、WebShellを使用してランサムウェアを実行した”と推測した。そこで、④製品Xでtarコマンドのオプションが悪用されるのを防ぐ対策を検討することにした。
〔DDNS-Zの調査〕
DDNS-Zを使用して製品XにアクセスするためのURLは、インターネットの検索エンジンで特定のキーワードを検索すると容易に見つけることができてしまい、攻撃対象になりやすいことが分かった。インターネットの検索エンジンで検索されないようにするために、各Webページの<head>セクションに<meta name="robots" content="h">を記載することを検討した。
これまでの検討を踏まえ、A社及びZ社は必要な対策に着手した。
設問1:〔NAS-A及びルータ-Aの調査〕について、(1)〜(3)に答えよ。
問題文を見る(1)本文中のa、bに入れる適切な字句を、解答群の中から選び、記号で答えよ。
解答群
ア:A
イ:MX
ウ:TLS
エ:TTL
オ:TTY
カ:TXT
模範解答
a:ア
b:エ
解説
解答の論理構成
- 【問題文】には
「ホスト名nas-aに割り当てているIPアドレスを変更するために、aレコードを更新する。」
とあります。IPアドレスとホスト名の対応を書き換えるのはDNSの “Aレコード” であるため、a には “ア:A” が入ります。 - 続けて
「そのレコードの**b**は、300秒に設定されていた。」
とあります。DNSレコードにおける “300秒” のような数値はキャッシュ有効期間を示す “TTL(Time To Live)” 値です。したがって b は “エ:TTL” になります。
誤りやすいポイント
- 「IPアドレスを書き換える=MXレコード?」と混同しやすいですが、MXはメール交換用のレコードでありホスト名とIPアドレスの紐付けには使いません。
- TTLの概念を「DNSサーバ自身の生存時間」と誤解してTTYやTLSを選択してしまうケースがあります。TTLはキャッシュの寿命です。
- ダイナミックDNSという用語からTXTレコード(Let’s EncryptなどのDNSでの所有確認に利用)を連想し誤選択することがあります。
FAQ
Q: TTLを短く設定すると何が起こりますか?
A: キャッシュが早く期限切れになるため、IPアドレス変更時の反映が速くなりますが、DNSへの問合せ回数が増えるので負荷が高くなります。
A: キャッシュが早く期限切れになるため、IPアドレス変更時の反映が速くなりますが、DNSへの問合せ回数が増えるので負荷が高くなります。
Q: AレコードとAAAAレコードの違いは?
A: AレコードはIPv4アドレス(32bit)、AAAAレコードはIPv6アドレス(128bit)をホスト名に割り当てる点が異なります。
A: AレコードはIPv4アドレス(32bit)、AAAAレコードはIPv6アドレス(128bit)をホスト名に割り当てる点が異なります。
Q: DDNSで自動更新するのはどのフィールドですか?
A: 通常はA(またはAAAA)レコードの “RDATA(アドレス部分)” とTTLをAPI経由で書き換える仕組みです。
A: 通常はA(またはAAAA)レコードの “RDATA(アドレス部分)” とTTLをAPI経由で書き換える仕組みです。
関連キーワード: DNSレコード、TTL, Aレコード、キャッシュ、ダイナミックDNS
設問1:〔NAS-A及びルータ-Aの調査〕について、(1)〜(3)に答えよ。
問題文を見る(2)表2中の下線①について、WAN側でUPnP機能を有効にできる仕様とした場合、ルータ-Aが操作されることによって、どのようなセキュリティ上の問題が発生するか。発生する問題を、30字以内で述べよ。
模範解答
外部からLAN側への通信の許可設定が変更される。
解説
解答の論理構成
- 【問題文】表2には「UPnP機能 LAN側:有効」とあり、さらに下線①として「WAN側は、本機能を有効にできない仕様になっている」と記載されています。
- UPnPは「認証なしでリクエストを受け付ける仕様のプロトコル」であり、LAN側の機器が「ポートフォワーディングの設定とファイアウォール機能の設定を行う」と説明されています。
- したがって、WAN側でもUPnPが有効になれば、インターネット上の攻撃者が認証なしでルータ-AにUPnPリクエストを送信し、任意の「ポートフォワーディング」や「ファイアウォール機能」の変更を行えます。
- その結果、「インバウンド通信:全て拒否¹)」という本来のファイアウォール設定を形骸化させ、外部からLAN側機器へのアクセスを許可してしまう危険が生じます。
- よって、ルータ-Aの設定が外部から書き換えられ、LAN側への不正通信を許可してしまうことが問題となります。
誤りやすいポイント
- 「UPnP=便利機能」とだけ捉え、認証なしで設定変更が可能というリスクを見落とす。
- 「ポート開放」だけに意識が向き、ファイアウォール規則自体も変更され得る点を失念する。
- WAN側UPnPの危険性を「設定漏えい」や「DoS」などと誤解し、通信経路の開放という本質を外す。
FAQ
Q: LAN側だけUPnPを許可していれば安全なのですか?
A: LAN内のマルウェアが悪用するリスクは残りますが、インターネット経由で直接ルータ設定を改変される危険は抑えられます。
A: LAN内のマルウェアが悪用するリスクは残りますが、インターネット経由で直接ルータ設定を改変される危険は抑えられます。
Q: UPnPを無効にするとリモートアクセスは全くできなくなりますか?
A: 手動でポートフォワーディングを設定すれば利用可能です。自動化と安全性のトレードオフを理解して運用してください。
A: 手動でポートフォワーディングを設定すれば利用可能です。自動化と安全性のトレードオフを理解して運用してください。
Q: ルータ側でUPnPを有効にしたまま安全性を高める方法はありますか?
A: 検証済み機器のみをLANに接続し、使用ポートを限定し、ログ監視を強化することでリスクを低減できますが根本的な防止策ではありません。
A: 検証済み機器のみをLANに接続し、使用ポートを限定し、ログ監視を強化することでリスクを低減できますが根本的な防止策ではありません。
関連キーワード: UPnP, ポートフォワーディング、ファイアウォール、インバウンド通信、認証なし設定変更
設問1:〔NAS-A及びルータ-Aの調査〕について、(1)〜(3)に答えよ。
問題文を見る(3)本文中の下線②のように判断した理由を、40字以内で述べよ。
模範解答
PCからのファイル操作ではアクセスできない領域のファイルが暗号化されたから
解説
解答の導き方
設問は下線②の判断理由を問うています。結論に至る論理を段階的に示します。
-
まず事実の確認です。本文には「ファイル共有機能でもWeb操作機能でもアクセスできない/rootディレクトリ配下のファイルも暗号化されていた。」とあります。
これは、通常のSMBや一般利用者権限のWeb操作によるファイル操作では/root配下に到達できず、そうした操作でその領域を暗号化することはできないことを意味します。 -
次に攻撃の痕跡です。本文には「外部からHTTPSリクエストを使用してOSコマンドを実行する攻撃ツール(以下、WebShellという)がNAS-Aに配置されており、OSコマンドが実行されたことが分かった。」ともあります。
NAS上でOSコマンドが実行されていれば、root権限での操作やファイル属性変更を行い、/root配下のファイルを暗号化することが技術的に可能です。 -
以上を合わせると、PCの通常のファイル共有/Web操作では届かない領域が暗号化されており、しかもNAS上でOSコマンドが実行された痕跡があるため、NAS自身がランサムウェアにより暗号化された可能性が高いと判断できます。要点は、PCからの通常のファイル操作ではアクセスできない領域のファイルが暗号化されていたことです。
誤りやすいポイント
- 共有ファイルが暗号化されている=すぐにPC感染を結論付ける点。/rootの暗号化有無を必ず確認してください。
- 「/rootが暗号化されているからNAS単独感染と断定」すること。脆弱性やWebShellを経由して外部(PC等)からNAS上でroot権限を奪われる可能性はあり、完全に排除できません。
- アクセスログの見落とし(表3でGETに実行内容が残る一方、POSTの内容は分からない点)を軽視しないこと。
- 「一般利用者権限」と「root権限」を混同し、到達可能領域の誤認をしないこと。
FAQ
Q: PCが/root配下のファイルを暗号化する「可能性は本当にない」のですか?
A: 通常のSMBや一般利用者権限のWeb操作では/root配下に到達できないため、その手段だけで暗号化するのは不可能に近いです。しかし、本文にあるような脆弱性やWebShell等でNAS上でOSコマンドや権限昇格が行われれば、PC経由であってもNAS上でroot権限を得て/root配下を暗号化する事例は技術的にあり得ます。
A: 通常のSMBや一般利用者権限のWeb操作では/root配下に到達できないため、その手段だけで暗号化するのは不可能に近いです。しかし、本文にあるような脆弱性やWebShell等でNAS上でOSコマンドや権限昇格が行われれば、PC経由であってもNAS上でroot権限を得て/root配下を暗号化する事例は技術的にあり得ます。
Q: なぜWebShellの存在がNAS自体の感染を示す証拠になるのですか?
A: 本文に「WebShellが配置されており、OSコマンドが実行されたことが分かった」とあり、OSコマンド実行の痕跡と/root配下の暗号化が同時に確認されれば、暗号化処理がNAS上で実行されたことを強く示唆します。加えて、図2で示される任意コマンド実行の脆弱性のような攻撃経路が存在すると、外部から直接NASを制御される可能性があります。
A: 本文に「WebShellが配置されており、OSコマンドが実行されたことが分かった」とあり、OSコマンド実行の痕跡と/root配下の暗号化が同時に確認されれば、暗号化処理がNAS上で実行されたことを強く示唆します。加えて、図2で示される任意コマンド実行の脆弱性のような攻撃経路が存在すると、外部から直接NASを制御される可能性があります。
Q: アクセスログでPOSTの実行コマンドが見えない場合、どう評価すべきですか?
A: 表3のようにGETでのコマンド実行が確認できると同時に、POSTでも200応答があるならばNAS上でのコマンド実行の可能性は高いです。POST内容がログに残らない場合は、他のログ(システムログ、sudoログ、ファイルタイムスタンプ)やファイル所有者・パーミッションの変更履歴をあわせて調べて判断します。
A: 表3のようにGETでのコマンド実行が確認できると同時に、POSTでも200応答があるならばNAS上でのコマンド実行の可能性は高いです。POST内容がログに残らない場合は、他のログ(システムログ、sudoログ、ファイルタイムスタンプ)やファイル所有者・パーミッションの変更履歴をあわせて調べて判断します。
関連キーワード: ランサムウェア、root権限、権限昇格、WebShell、パス・トラバーサル
設問2:〔脆弱性の調査〕について、(1)〜(3)に答えよ。
問題文を見る(1)図2中のcに入れる適切な字句を、15字以内で答えよ。
模範解答
c:パストラバーサル
解説
解答の論理構成
- 図2の説明には「URLに “..%2f” を使用した攻撃手法であり、c と呼ばれる。」とあります。
- “..%2f” はURL‐エンコードされた “../” であり、上位ディレクトリへ移動して本来アクセスできない場所を参照する典型的な不正要求です。
- 「../」を使ってディレクトリを横断する攻撃は一般に「パストラバーサル」(Directory Traversal)と呼ばれます。
- よって c には「パストラバーサル」が入ります。
誤りやすいポイント
- 「ディレクトリトラバーサル」など英語直訳風に書いてしまうと日本語表記が設問とずれる恐れがあります。
- SQLインジェクションやOSコマンドインジェクションと取り違えるケースがありますが、問題文の “..%2f” という相対パス記法が決め手です。
- URLエンコード (%2f) に目を取られて「URLデコード攻撃」と誤記する例もあります。
FAQ
Q: “..%2f” 以外でもパストラバーサルは成立しますか?
A: はい。URLエンコードせず「../」のまま送る、あるいは「..%252f」など二重エンコードを使うケースもあります。
A: はい。URLエンコードせず「../」のまま送る、あるいは「..%252f」など二重エンコードを使うケースもあります。
Q: パストラバーサルとOSコマンドインジェクションの違いは?
A: パストラバーサルは想定外のファイルやディレクトリを参照させる攻撃で、直接OSコマンドを実行するわけではありません。OSコマンドインジェクションはシステムコマンドを実行させる点で目的と手段が異なります。
A: パストラバーサルは想定外のファイルやディレクトリを参照させる攻撃で、直接OSコマンドを実行するわけではありません。OSコマンドインジェクションはシステムコマンドを実行させる点で目的と手段が異なります。
Q: パストラバーサル対策の基本は?
A: 入力値を正規化(図3の「パス名の正規化」)したうえで許可リスト方式で検証し、不正な “../” 系列を遮断することが基本です。
A: 入力値を正規化(図3の「パス名の正規化」)したうえで許可リスト方式で検証し、不正な “../” 系列を遮断することが基本です。
関連キーワード: パストラバーサル、URLエンコード、ディレクトリ横断
設問2:〔脆弱性の調査〕について、(1)〜(3)に答えよ。
問題文を見る(2)図2中のdに入れる適切な字句を、15字以内で答えよ。
模範解答
d:OSコマンドインジェクション
解説
解答の論理構成
- 【問題文】では、脆弱性2について「任意のOSコマンドを実行できてしまう」と記載されています。
- さらに図2の説明文に「これは、dと呼ばれる攻撃手法である。脆弱性1と脆弱性2を組み合わせると、認証なしで任意のOSコマンドの実行が可能になる。」とあり、攻撃手法の名称を尋ねています。
- 任意のOSコマンドを攻撃入力に混入させて実行させる典型的な手法は「OSコマンドインジェクション」です。
- よって d には「OSコマンドインジェクション」が入ります。
誤りやすいポイント
- SQLやLDAPなど他のインジェクション系攻撃と混同してしまう。OSコマンドの実行が書かれている点を見落とすと誤答しやすいです。
- 脆弱性1と脆弱性2の組合せに気を取られ、ディレクトリトラバーサル(パストラバーサル)と早合点してしまうケースがあります。
- 図2のPOST例「ping 127.0.0.1;whoami」を読まずに解答を決めてしまい、キーワードを特定できないことがあります。
FAQ
Q: 脆弱性1だけでも攻撃できますか?
A: 【問題文】に「除外リストに指定されていないディレクトリ配下のファイルにも認証なしでアクセスできてしまう」とあるように、パストラバーサルでファイル取得は可能ですが、OSコマンド実行まではできません。脆弱性2が加わって初めて任意コマンド実行=OSコマンドインジェクションになります。
A: 【問題文】に「除外リストに指定されていないディレクトリ配下のファイルにも認証なしでアクセスできてしまう」とあるように、パストラバーサルでファイル取得は可能ですが、OSコマンド実行まではできません。脆弱性2が加わって初めて任意コマンド実行=OSコマンドインジェクションになります。
Q: ディレクトリトラバーサルは今回の解答になり得ないのでしょうか?
A: 図2は確かに「..%2f」を利用するパストラバーサルを示していますが、設問は「これは、dと呼ばれる攻撃手法」と述べた後に「任意のOSコマンドの実行が可能」と続いているため、最終的に焦点が当たっているのはOSコマンド実行の部分です。
A: 図2は確かに「..%2f」を利用するパストラバーサルを示していますが、設問は「これは、dと呼ばれる攻撃手法」と述べた後に「任意のOSコマンドの実行が可能」と続いているため、最終的に焦点が当たっているのはOSコマンド実行の部分です。
Q: インジェクション系攻撃全般への対策は共通ですか?
A: 入口での入力値検証が基本ですが、OSコマンドの場合は呼び出し先を決め打ちにする、シェルを経由しないAPIを使う、外部コマンド呼び出しを極力削除するといった追加策も重要です。
A: 入口での入力値検証が基本ですが、OSコマンドの場合は呼び出し先を決め打ちにする、シェルを経由しないAPIを使う、外部コマンド呼び出しを極力削除するといった追加策も重要です。
関連キーワード: OSコマンドインジェクション、パストラバーサル、入力値検証、認証回避、脆弱性評価
設問2:〔脆弱性の調査〕について、(1)〜(3)に答えよ。
問題文を見る解答群
ア:URLデコード
イ:除外リストとの比較
ウ:パス名の正規化
模範解答
e:ア
f:ウ
g:イ
解説
解答の論理構成
-
原因となった脆弱性
問題文は「脆弱性1」において「URLに『..%2f』を使用したcと呼ばれる攻撃手法」で除外リストを迂回できると示しています。..%2fはURLエンコードされた ../ であり、まず「URLデコード」を行わないとパス名の実体が見えません。 -
パッチMで追加された処理
「パッチMでは、脆弱性1の対策として、認証なしアクセスの処理の流れにパス名の正規化の処理を加え、さらに、図3に示す順序にした」とあります。
つまり従来の「URLデコード → 除外リストとの比較」という2段階に「パス名の正規化」を挟み、3段階化したことが読み取れます。 -
処理の正しい並び順
a) URL文字列をデコードして本来のパスを得る
b) ../ などの相対記法を取り除く「パス名の正規化」を実施
c) 正規化済みパスを「除外リストとの比較」でチェック
以上より、e は「ア:URLデコード」、g は「イ:除外リストとの比較」が妥当です。 -
模範解答との一致
提示された「模範解答」でe: ア、g: イ と示されており、論理的にも整合します。
誤りやすいポイント
- 正規化の位置を誤り「URLデコード→除外リスト→正規化」と考えてしまう。先に比較すると ../ を含む異常パスを見逃す原因になります。
- 「パス名の正規化」を単なる大文字・小文字変換と混同し、不要と判断してしまう。
- URLエンコードとパーセントエンコードの呼び名の違いで迷い、選択肢を取り違える。
FAQ
Q: なぜ「パス名の正規化」を除外リストより前に置く必要があるのですか?
A: ../ を含む相対パスを正規化しないまま比較すると、リスト外ディレクトリへ移動するパスを検知できないためです。先に正規化して絶対パスに変換すれば、確実にリスト照合が行えます。
A: ../ を含む相対パスを正規化しないまま比較すると、リスト外ディレクトリへ移動するパスを検知できないためです。先に正規化して絶対パスに変換すれば、確実にリスト照合が行えます。
Q: URLデコードを最後に行っても脆弱なのですか?
A: はい。攻撃者は ..%2fのようにエンコードして迂回を図るため、最初にデコードしないと本来の ../ を含むパスが見えません。
A: はい。攻撃者は ..%2fのようにエンコードして迂回を図るため、最初にデコードしないと本来の ../ を含むパスが見えません。
Q: 除外リスト方式以外の対策例はありますか?
A: 認証前は静的ファイルのみを別ディレクトリで配信し、CGIや設定ファイルにはWebサーバ設定で物理的にアクセスできないよう制限する方法があります。
A: 認証前は静的ファイルのみを別ディレクトリで配信し、CGIや設定ファイルにはWebサーバ設定で物理的にアクセスできないよう制限する方法があります。
関連キーワード: URLデコード、パス名の正規化、ディレクトリトラバーサル、除外リスト、入力バリデーション
設問3:〔アクセスログの調査〕について、(1)、(2)に答えよ。
問題文を見る(1)本文中の下線③について、実行されたOSコマンドの内容が分からなかった理由を、35字以内で述べよ。
模範解答
POSTメソッドで送信したボディがアクセスログに残っていなかったから
解説
解答の論理構成
- 【問題文】は、まず表3の結果について
「表3からは、GETメソッドを使用して実行されたOSコマンドの内容は分かったが、③POSTメソッドを使用して実行されたOSコマンドの内容は分からなかった」
と明示しています。 - ここから「GETはリクエスト行のURL部にパラメータが入り、そのままログへ出力される」一方で、「POSTはメッセージボディにパラメータが格納される」ため、多くのWebサーバは標準設定ではボディをアクセスログに記録しません。
- したがって、POSTで送られた「cmd=~」などの実際のOSコマンドはログに残らず、閲覧できなかったことが “分からなかった” 理由になります。
- よって解答は「POSTメソッドで送信したボディがアクセスログに残っていなかったから」となります。
誤りやすいポイント
- 「WebShellが暗号化したので内容が読めない」と勘違いし、ログと暗号化を混同する。
- 「ステータスコードが200なので問題ない」と判断し、ログ出力対象を意識しない。
- GETとPOSTのパラメータ送信箇所(URLかボディか)を覚えていても、サーバ側の “ログに残る部分” まで連想できない。
FAQ
Q: GETでもボディにデータを載せられますか?
A: HTTP仕様上は可能ですが、実装やミドルウェアが対応していない場合が多く、実務ではURLクエリを使うのが一般的です。
A: HTTP仕様上は可能ですが、実装やミドルウェアが対応していない場合が多く、実務ではURLクエリを使うのが一般的です。
Q: POSTボディをログに残す設定はできますか?
A: 可能です。Apacheならmod_dumpio、nginxなら $request_body変数などで記録できますが、個人情報保護・性能劣化に留意が必要です。
A: 可能です。Apacheならmod_dumpio、nginxなら $request_body変数などで記録できますが、個人情報保護・性能劣化に留意が必要です。
Q: アクセスログ以外にコマンド内容を追跡する方法は?
A: OSの監査ログ、アプリケーションログ、プロキシログに加え、パケットキャプチャやEDR製品で通信内容を取得する方法があります。
A: OSの監査ログ、アプリケーションログ、プロキシログに加え、パケットキャプチャやEDR製品で通信内容を取得する方法があります。
関連キーワード: HTTPメソッド、アクセスログ、POSTボディ、WebShell, OSコマンドインジェクション
設問3:〔アクセスログの調査〕について、(1)、(2)に答えよ。
問題文を見る(2)本文中の下線④について、対策を、50字以内で具体的に述べよ。
模範解答
sudoコマンドの設定ファイルで、tarコマンドのオプションを受け付けないように設定する。
解説
解答の論理構成
- 問題文は、攻撃者が「“tarコマンドのオプションを悪用”」してroot権限を取得し、書込み不可ディレクトリを変更してWebShellを配置したと説明しています。
- 引用:「K氏は、“攻撃者が、Web管理機能の脆弱性とtarコマンドのオプションを悪用し…WebShellを配置した後、WebShellを使用してランサムウェアを実行した”と推測した。」
- その原因は、図4に示されるsudoers設定により、一般権限のwwwアカウントでもtarを無制限にrootで実行できる点です。
- 引用:「製品Xでは、sudoコマンドの設定ファイルが図4のようになっている。」
- 図4の内容:「www ALL=NOPASSWD:/bin/tar」
- さらに、tarには「任意のOSコマンドを実行できるオプション」が存在し、ファームウェア更新では本来不要と明示されています。
- 引用:「このtarコマンドには、任意のOSコマンドを実行できるオプションがある。ただし、ファームウェアのアップデート時にこのオプションは使用していない。」
- よって、root化を防ぐには、sudoで実行を許可するtarに「安全なサブコマンド・オプションだけ」を許可し、危険なオプションを拒否する必要があります。
- したがって、「sudoコマンドの設定ファイルで、tarコマンドのオプションを受け付けないように設定する」という解答になります。これはsudoersのコマンド指定(/bin/tar --safe-optsなどの形)で実現でき、ファームウェア更新の必要最小限に限定できるため適切です。
誤りやすいポイント
- 「tarをsudoから完全に外す」とするとファームウェア更新機能まで停止してしまう。必要最小限のオプション許可という視点を忘れがちです。
- WebShell削除やUPnP無効化だけでは「tarでの権限昇格」を根本的に塞げない点を見落とすことがあります。
- tarバイナリを削除/リネームなどOS依存の対症療法を書くと、運用品質を損なうため減点対象になりやすいです。
FAQ
Q: sudoersでは具体的にどう書けば良いですか?
A: 例として「www ALL=(root) NOPASSWD:/bin/tar --extract --file=*」のように、安全なサブコマンドと必須オプションだけを列挙して限定します。ワイルドカードで危険オプションを許さないことが重要です。
A: 例として「www ALL=(root) NOPASSWD:/bin/tar --extract --file=*」のように、安全なサブコマンドと必須オプションだけを列挙して限定します。ワイルドカードで危険オプションを許さないことが重要です。
Q: tar自体を最新バージョンにアップしても良いのでは?
A: バージョン更新だけでは「--checkpoint-action」などの設計仕様は残ります。sudoersでの制限と組み合わせて多層防御にすることが望ましいです。
A: バージョン更新だけでは「--checkpoint-action」などの設計仕様は残ります。sudoersでの制限と組み合わせて多層防御にすることが望ましいです。
Q: wwwアカウントをroot相当にしない方策は?
A: sudoersで限定実行するほか、wwwを専用グループに入れてアクセス権を最小化し、不要なsetuidバイナリを削除するといったハードニングが有効です。
A: sudoersで限定実行するほか、wwwを専用グループに入れてアクセス権を最小化し、不要なsetuidバイナリを削除するといったハードニングが有効です。
関連キーワード: sudoers, 権限昇格、コマンドインジェクション、ランサムウェア、アクセス制御
設問4:
問題文を見る本文中のhに入れる適切な字句を、英字10字以内で答えよ。
模範解答
h:・noindex
・none
解説
解答の論理構成
-
問題文の確認
- 「インターネットの検索エンジンで検索されないようにするために、各Webページの<head>セクションに<meta name="robots" content="h">を記載することを検討した。」とあります。
- ここで h には検索エンジンに対して「ページをインデックスしないでほしい」という指示を与える値を入れる必要があります。
-
検索エンジンが理解する代表的なディレクティブ
- noindex … 検索結果に表示しないよう指示する。
- none … noindex, nofollowと同義で、やはり検索結果に表示されません。
- nofollowやnoarchiveはインデックスの制御とは異なる目的なので本問の意図に合いません。
-
結論
- インデックスさせない代表語として「noindex」あるいは同義語の「none」が該当し、模範解答でも「h:・noindex ・none」と示されています。
誤りやすいポイント
- 「nofollowでもクロールされなくなる」と誤解するケース。nofollowはリンクの評価を渡さない指示であり、ページ自体のインデックス抑止にはなりません。
- robots.txtとmeta robotsを混同し、ディレクティブ名を誤記するケース。robots.txtはサーバ側ファイル、meta robotsはページ内タグです。
- noindexとno-indexのようにハイフンを挿入してしまう記述ミス。
FAQ
Q: noneとnoindexのどちらがより推奨されますか?
A: 主要検索エンジンはどちらも正式にサポートしています。分かりやすさを重視するならnoindexが一般的です。
A: 主要検索エンジンはどちらも正式にサポートしています。分かりやすさを重視するならnoindexが一般的です。
Q: <meta name="robots"> ではなく <meta name="googlebot"> を使っても良いですか?
A: 特定の検索エンジンだけを対象にする場合は可能ですが、本問は汎用的な対策なのでrobotsが適切です。
A: 特定の検索エンジンだけを対象にする場合は可能ですが、本問は汎用的な対策なのでrobotsが適切です。
Q: <meta> タグを設定すれば確実に検索結果から削除されますか?
A: 通常は反映されますが、すでにキャッシュされている場合は再クロール後に反映されるため、多少時間がかかることがあります。
A: 通常は反映されますが、すでにキャッシュされている場合は再クロール後に反映されるため、多少時間がかかることがあります。
関連キーワード: metaタグ、noindex, クローラ、robots指令、SEO







