情報処理安全確保支援士 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ページのセクションに<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 ディレクトリ配下のファイルも暗号化されていた。」とあります。
- /root は NAS-A のローカル OS で root 権限を持つプロセスしか書換えできない領域です。
- 一方、A 社の PC からのアクセスは「ファイル共有機能」または「Web 操作機能」を経由します。これらはユーザ権限で公開された共有ディレクトリに限定され、/root には到達できません。
- にもかかわらず /root が暗号化されていた事実は、暗号化処理が NAS-A 内部で実行されたことを示唆します。
- したがって、下線②の判断「A 社のPC がランサムウェアに感染したのではなく、NAS-A 自体がランサムウェアに感染した」が導かれます。
誤りやすいポイント
- 「英語で書かれた脅迫文のテキストファイル」が NAS-A にあったことを主因と誤解する。脅迫文は PC からも書込めるため決定打ではありません。
- 「ファイル名が変更された」だけで PC ではなく NAS と決め付ける。これは共有フォルダ越しでも起こり得ます。
- /root ディレクトリの特殊性を忘れ、SMB や Web 操作で閲覧できると勘違いする。
FAQ
Q: 共有フォルダにしかアクセスできないはずの PC が /root を暗号化する可能性はありませんか?
A: ありません。共有フォルダは NAS OS でマウント済みの限定ディレクトリです。PC はネットワーク越しにしか触れられず、NAS のシステム領域 /root は共有対象外です。
A: ありません。共有フォルダは NAS OS でマウント済みの限定ディレクトリです。PC はネットワーク越しにしか触れられず、NAS のシステム領域 /root は共有対象外です。
Q: もし NAS-A が root 権限を奪われた場合、どのようにして暗号化が実行されるのですか?
A: 攻撃者は WebShell などを用い「任意の OS コマンド実行」を行い、root 権限でランサムウェアバイナリを配置・起動して全ファイルを暗号化します。
A: 攻撃者は WebShell などを用い「任意の OS コマンド実行」を行い、root 権限でランサムウェアバイナリを配置・起動して全ファイルを暗号化します。
Q: 脆弱性が残ったままだと、再インシデントは起こり得ますか?
A: はい。脆弱性1・2や sudo/tar の問題が残存すると同様の方法で再び WebShell を設置され、再暗号化や別の攻撃に繋がります。パッチ適用と設定見直しが必須です。
A: はい。脆弱性1・2や sudo/tar の問題が残存すると同様の方法で再び WebShell を設置され、再暗号化や別の攻撃に繋がります。パッチ適用と設定見直しが必須です。
関連キーワード: ランサムウェア、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)に答えよ。
(3)図3中のegに入れる適切な字句を、解答群の中から選び、記号で答えよ。
解答群
ア: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ページのセクションに<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: ではなく を使っても良いですか?
A: 特定の検索エンジンだけを対象にする場合は可能ですが、本問は汎用的な対策なので robots が適切です。
A: 特定の検索エンジンだけを対象にする場合は可能ですが、本問は汎用的な対策なので robots が適切です。
Q: タグを設定すれば確実に検索結果から削除されますか?
A: 通常は反映されますが、すでにキャッシュされている場合は再クロール後に反映されるため、多少時間がかかることがあります。
A: 通常は反映されますが、すでにキャッシュされている場合は再クロール後に反映されるため、多少時間がかかることがあります。
関連キーワード: metaタグ、noindex, クローラ、robots指令、SEO


