令和4年度 春期 情報処理安全確保支援士試験 午後Ⅰ 問2 公開NASへの侵入・特権昇格によるランサムウェア被害の調査と対策
学習ガイド
在宅勤務用に外部公開したネットワークストレージが不正アクセスを受け、データが暗号化された事例を扱う問題です。機器自体の感染を見抜く根拠、Web管理機能の脆弱性とコマンドの特権昇格を組み合わせた侵入手口、ログ分析の限界と設定修正による再発防止策が問われます。被害状況から影響範囲と侵入経路を推測し、アクセスログや設定ファイルの記載を追いながら攻撃者の行動を時系列で復元して各設問に答えましょう。
この記事で押さえる論点
- 端末ではなく機器本体が感染したと判断するログや暗号化痕跡の根拠を説明できる
- Web機能の脆弱性と管理者権限コマンドのオプション悪用による侵害の流れを説明できる
- HTTPリクエストログの仕様から記録されない攻撃情報の原因を説明できる
- sudo設定による特権コマンド実行制限や検索除外タグによる露出防止策を述べられる
出題情報
- 出題
- 2022(R4)春 情報処理安全確保支援士 午後I 問2
- 配点
- 50点満点
- 模範解答
- 公表(設問ごとに掲載)
出題趣旨・採点講評(IPA 公表)
IoT機器の普及に伴い,利用者が専門知識なしに容易に機器を設置できるようになる中,開発者がセキュリティを考慮していなかったり,利用者が脆弱性修正プログラムを適用していなかったりするケースが増えている。 本問では,ルータやNASを題材として,IoT機器のインターネット接続に使われる技術,仕組みを理解するとともに,脆弱性を作り込んでしまうことの多いWeb機能についてセキュリティの観点から正しく実装する能力を問う。
問2では,IoT機器の製品を題材に,セキュリティインシデント対応と脆弱性対策について出題した。全体として正答率は平均的であった。
問題本文
問2 セキュリティインシデント対応に関する次の記述を読んで,設問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に示す。

図の説明テキスト
図1 A社のネットワーク構成(抜粋)
ネットワーク構成図。
インターネットとA社のネットワークが接続されている。
A社内にはルータ-Aがあり、インターネットと接続している。
ルータ-AのLAN側にはPCとNAS-Aが並列に接続されている。

図の説明テキスト
表1 NAS-Aの設定内容(抜粋)
| 設定項目 | 設定値 | 説明 |
|---|---|---|
| ファイル共有機能 | ・SMB:有効 ・NFS:無効 |
有効に設定したプロトコルで,ファイルを共有する。 |
| UPnP 1) 設定要求機能 | ・有効 ・製品 Y の WAN 側 TCP ポート:443 ・NAS-A の TCP ポート:443 |
左記の設定にすると,製品 Y の WAN 側ポート宛てのパケットを NAS-A のポートにフォワードする設定を製品 Y に要求する。 |
| Web 操作機能 | ・有効 | Web ブラウザから HTTPS で,一般利用者権限のアカウントで本機能にログイン後,ファイルの操作ができる。 |
| Web 管理機能 | ・有効 | Web ブラウザから HTTP で,管理者権限のアカウントで本機能にログイン後,NAS-A の設定変更などができる。 |
注 1) Universal Plug and Play の略称。認証なしでリクエストを受け付ける仕様のプロトコルである。

図の説明テキスト
表2 ルータ-Aの設定内容(抜粋)
| 設定項目 | 設定値 | 説明 |
|---|---|---|
| ファイアウォール機能 | ・インバウンド通信:全て拒否 1) ・アウトバウンド通信:全て許可 |
ステートフルパケットインスペクション型である。 |
| UPnP 機能 | ・LAN 側:有効 | LAN 側の機器から受け付けたリクエストの内容で,ポートフォワーディングの設定とファイアウォール機能の設定を行う。①WAN側は,本機能を有効にできない仕様になっている。 |
注記 ルータ-A がインターネットに接続するための ISP 回線では,グローバル IP アドレスが動的に割り当てられる。
注 1) UPnP 機能による設定が優先される。
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に示す。

図の説明テキスト
図2 脆弱性1及び脆弱性2の概要
脆弱性 1
製品 X では,除外リスト 1) に次のディレクトリが指定されている。
- /css
- /images
- /js
認証なしアクセスの処理に脆弱性があり,除外リストに指定されていないディレクトリ配下のファイルにも認証なしでアクセスできてしまう。例えば,http://192.168.0.1/images/..%2fstatus.cgi のURLにアクセスすると,http://192.168.0.1/status.cgi に認証なしでアクセスできてしまう。これは,URLに“..%2f”を使用した c と呼ばれる攻撃手法である。
脆弱性 2
製品 X には,Web 管理機能の一つとして,IP アドレスを指定して ping を実行する機能がある。この IP アドレスの処理に脆弱性があり,任意の OS コマンドを実行できてしまう。次は,その脆弱性を悪用した例であり,“ping 127.0.0.1;whoami”というコマンドが実行される。
POST /ping.cgi HTTP/1.0
Content-Length: 21
addr=127.0.0.1;whoami

図の説明テキスト
図2 脆弱性1及び脆弱性2の概要(続き)
これは,d と呼ばれる攻撃手法である。脆弱性1と脆弱性2を組み合わせると,認証なしで任意のOSコマンドの実行が可能になる。次は,その例である。
POST /images/..%2fping.cgi HTTP/1.0
Content-Length: 21
addr=127.0.0.1;whoami
注1) 除外リストに指定されたディレクトリ配下のファイルには、認証なしでアクセスできる。除外リストは、利用者が変更できない。
パッチMでは,脆弱性1の対策として,認証なしアクセスの処理の流れにパス名の正規化の処理を加え,さらに,図3に示す順序にした。パス名の正規化とは,相対パスで記述されたパス名を,相対パス記法を含まない形式に変換することである。

図の説明テキスト
図3 パッチM適用後の認証なしアクセスの処理の流れ
[ e ] → [ f ] → [ g ]
〔アクセスログの調査〕
NAS-Aのアクセスログを調査したところ,外部からHTTPSリクエストを使用してOSコマンドを実行する攻撃ツール(以下,WebShellという)がNAS-Aに配置されており,OSコマンドが実行されたことが分かった。NAS-AのアクセスログからWebShellに関連するものを抽出した結果を表3に示す。

図の説明テキスト
表3 WebShellに関連するNAS-Aのアクセスログ
| No. | 時刻 | リクエスト | ステータスコード | 応答バイト数 |
|---|---|---|---|---|
| 1 | 13:01 | GET /images/..%2fstatus.cgi HTTP/1.1 | 200 | 634 |
| 2 | 13:02 | POST /images/..%2fping.cgi HTTP/1.1 | 200 | 418 |
| ... | ... | ... | ... | ... |
| 18 | 13:05 | GET /images/shell.cgi?cmd=whoami HTTP/1.1 | 200 | 1418 |
| ... | ... | ... | ... | ... |
| 89 | 13:18 | POST /images/shell.cgi HTTP/1.1 | 200 | 2490 |
注記 一部の項目は省略している。
表3からは,GETメソッドを使用して実行されたOSコマンドの内容は分かったが,③POSTメソッドを使用して実行されたOSコマンドの内容は分からなかった。WebShellが配置されたディレクトリは,書込み不可であるが,rootアカウントを用いれば書込み可能に変更できる。製品Xでは,sudoコマンドの設定ファイルが図4のようになっている。

図の説明テキスト
図4 sudo コマンドの設定ファイル(抜粋)
www ALL=NOPASSWD: /bin/tar
tarコマンドは,標準のOSコマンドであり,複数のファイルを一つのアーカイブファイルにまとめたり,アーカイブファイルを展開したりできる。製品Xでは,ファームウェアのアップデート時,wwwアカウントの権限でsudoコマンドを使用してtarコマンドを実行することで,rootアカウントの権限でアーカイブファイルを展開している。このtarコマンドには,任意のOSコマンドを実行できるオプションがある。ただし,ファームウェアのアップデート時にこのオプションは使用していない。当該オプションを悪用する例を図5に示す。

図の説明テキスト
図5 tar コマンドのオプションを悪用する例
sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=whoami
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)に答えよ。
表2中の下線①について,WAN側でUPnP機能を有効にできる仕様とした場合,ルータ-Aが操作されることによって,どのようなセキュリティ上の問題が発生するか。発生する問題を,30字以内で述べよ。
模範解答
外部からLAN側への通信の許可設定が変更される。
採点基準
- 5点: 外部(インターネット側)からLAN側への通信を許可するような設定変更が行われてしまう旨を具体的に記述している。
- 3点: ファイアウォールやポートフォワーディングの設定が不正に変更される旨を記述しているが、外部からのLAN側への通信が許可されるという結果がやや不明確。
- 0点: 内容が不適切、または的外れな記述。
本文中の下線②のように判断した理由を,40字以内で述べよ。
模範解答
PCからのファイル操作ではアクセスできない領域のファイルが暗号化されたから
採点基準
- 5点: PCからのアクセス手段(ファイル共有やWeb操作機能)ではアクセスできない領域(/root配下など)が暗号化されていることを理由として明確に記述している。
- 3点: 「/rootディレクトリ配下のファイルが暗号化されていたから」など、事実のみを挙げており、PCからアクセスできないという比較の視点が不足している。
- 0点: 内容が不適切、または的外れな記述。
解説
正解の根拠
NAS-Aに保存されたファイルへのPCからのアクセス方法は、表1から「ファイル共有機能(SMB)」と「Web操作機能(HTTPS)」の2通りであることが分かります。これらを経由したアクセスでは、一般利用者権限などの制限により、システム領域である /root ディレクトリ配下へのアクセスはできません。
しかし、K氏の調査結果では「ファイル共有機能でもWeb操作機能でもアクセスできない/rootディレクトリ配下のファイルも暗号化されていた」と確認されています。これはPC経由でのアクセス(PCのランサムウェア感染)では発生し得ない事象であるため、NAS-A内部で直接ランサムウェアが実行され、ファイルが暗号化された可能性が高いと判断できます。
高得点のポイント
- PCから提供されている機能(ファイル共有機能、Web操作機能)ではアクセスできない領域のファイルが暗号化されているという事実を挙げていること
/rootディレクトリへのアクセス不可という点に言及して論理的に説明していること
設問2
〔脆弱性の調査〕について,(1)〜(3)に答えよ。
図2中の 空欄 c に入れる適切な字句を,15字以内で答えよ。
模範解答
パストラバーサル
採点基準
- 5点: 「パストラバーサル」または「ディレクトリトラバーサル」と正しく記述している。
- 0点: それ以外の解答、または誤った用語。
解説
正解の根拠
図2の脆弱性1に示されている通り、URLに ..%2f(URLエンコードされた ../)を含めることで、許可されていない上位ディレクトリへ遡り、意図しないファイル(status.cgiなど)にアクセスする攻撃手法です。このようにディレクトリの階層を横断して不正アクセスを試みる攻撃は パストラバーサル(またはディレクトリトラバーサル)と呼ばれます。
高得点のポイント
- 「パストラバーサル」という専門用語を正確に記述できていること
図2中の 空欄 d に入れる適切な字句を,15字以内で答えよ。
模範解答
OSコマンドインジェクション
採点基準
- 5点: 「OSコマンドインジェクション」と正しく記述している。
- 0点: それ以外の解答、または誤った用語。
解説
正解の根拠
図2の脆弱性2に示されている通り、Webアプリケーションの入力パラメータ(IPアドレスの指定箇所)にOSコマンドの区切り文字である ; とともに任意のOSコマンド(whoami など)を入力し、サーバ上でそのコマンドを不正に実行させる攻撃手法です。これを OSコマンドインジェクション と呼びます。
高得点のポイント
- 「OSコマンドインジェクション」という専門用語を正確に記述できていること
図3中の 空欄 e に入れる適切な字句を,解答群の中から選び,記号で答えよ。
模範解答
選択肢ア: URLデコード
解説
正解の根拠
図3の処理の流れについて、パッチMでは「認証なしでアクセスできるURLでは除外リストとの比較に漏れがないようにする」ための対策を行っています。
攻撃者はURLに ..%2f のようにパーセントエンコーディングを含めてアクセスしてきます。この文字列から ../ という本来の文字を解釈し、正規化処理を通すためには、まず最初にエンコードされた文字列を元の文字に戻す URLデコード を行う必要があります。したがって、[ e ] には「URLデコード」が入ります。
各選択肢の解説
- ア (URLデコード): 正解です。処理の第一歩としてエンコードを解除します。
- イ (除外リストとの比較): 正規化が済んだ絶対パスに対して行う最終的な判定であるため誤りです。
- ウ (パス名の正規化): URLデコード後に行う処理であるため、最初のステップとしては誤りです。
図3中の 空欄 f に入れる適切な字句を,解答群の中から選び,記号で答えよ。
模範解答
選択肢ウ: パス名の正規化
解説
正解の根拠
図3の処理の流れにおいて、[ e ] でURLデコードされたパス情報の中には、まだ ../ のような相対パス記法が含まれている可能性があります。これらを除外リストと正しく比較するためには、相対パス記法を含まない形式(絶対パス)に変換する必要があります。この処理が パス名の正規化 です。したがって、[ f ] には「パス名の正規化」が入ります。
各選択肢の解説
- ア (URLデコード): 前段の処理[ e ]であるため誤りです。
- イ (除外リストとの比較): パス名が正規化された後に実施する処理[ g ]であるため誤りです。
- ウ (パス名の正規化): 正解です。URLデコードの後に行います。
図3中の 空欄 g に入れる適切な字句を,解答群の中から選び,記号で答えよ。
模範解答
選択肢イ: 除外リストとの比較
解説
正解の根拠
図3の処理の流れにおいて、[ e ] のURLデコード、[ f ] のパス名の正規化を経て、相対パスを含まない最終的なパス名が得られます。この正規化されたパス名を用いて、初めて安全に 除外リストとの比較 を行うことができます。したがって、[ g ] には「除外リストとの比較」が入ります。
各選択肢の解説
- ア (URLデコード): 最初の処理[ e ]であるため誤りです。
- イ (除外リストとの比較): 正解です。最後にアクセス制御の判定を行います。
- ウ (パス名の正規化): 中間の処理[ f ]であるため誤りです。
設問2(3)は,正答率が平均的であった。本文に示した認証なしでアクセスできるURLでは除外リストとの比較に漏れがないように,URLデコードを行った上で,“../”などを含んだパス名を正規化してから,除外リストとの比較を行う必要があることを理解してほしい。
設問3
〔アクセスログの調査〕について,(1),(2)に答えよ。
本文中の下線③について,実行されたOSコマンドの内容が分からなかった理由を,35字以内で述べよ。
模範解答
POSTメソッドで送信したボディがアクセスログに残っていなかったから
採点基準
- 5点: POSTメソッドで送信したデータ(ボディ部)がアクセスログに記録されない仕様であることを適切に関連付けて記述している。
- 3点: 「POSTメソッドのパラメータがログに残らないから」など、現象には触れているがボディへの言及がなくやや説明が不足している。
- 0点: 内容が不適切、または的外れな記述。
解説
正解の根拠
表3「WebShellに関連するNAS-Aのアクセスログ」の項目を見ると、「時刻」「リクエスト」「ステータスコード」「応答バイト数」のみが記録されています。
GETメソッド(No.18)の場合は、実行するOSコマンドがURLのクエリパラメータとして ?cmd=whoami のように付与されるため、「リクエスト」欄にコマンド内容が残ります。
しかし、POSTメソッド(No.89)の場合、パラメータ等のデータはHTTPリクエストのボディ部(メッセージボディ)に含めて送信されます。NAS-Aのアクセスログにはこのボディ部の内容が記録されない仕様であるため、POSTメソッドで送信されたOSコマンドの内容はログからは分かりませんでした。
高得点のポイント
- POSTメソッドの場合、送信されるデータ(コマンドの内容)がリクエストのボディに含まれることを理解していること
- ボディ部分がアクセスログの記録対象外である(残らない)ことを明記していること
本文中の下線④について,対策を,50字以内で具体的に述べよ。
模範解答
sudoコマンドの設定ファイルで,tarコマンドのオプションを受け付けないように設定する。
採点基準
- 5点: sudoコマンドの設定ファイルにおいて、tarコマンドのオプションの使用を制限する(受け付けないように設定する)旨を具体的に記述している。
- 3点: 「tarコマンドのオプションを制限する」など対策の方向性は合っているが、sudoの設定ファイルでの制限という具体的な手段の記述が欠けている。
- 0点: 内容が不適切、または的外れな記述。
解説
正解の根拠
図4の sudo コマンドの設定ファイルには www ALL=NOPASSWD: /bin/tar と記述されており、www アカウントが root 権限で tar コマンドを引数の制限なしに実行できる状態となっています。
このため、図5にあるような任意のOSコマンドを実行できる危険なオプション(--checkpoint-action=exec= など)が悪用されてしまいました。
本文によると、ファームウェアのアップデート時にはこのオプションは使用していないため、対策としては sudo コマンドの設定ファイルを見直し、許可する tar コマンドのオプションをアップデート時に必要なものだけに制限する(不要なオプションを受け付けないようにする)ことが挙げられます。
高得点のポイント
- 対策を実施する対象として
sudoコマンドの設定ファイルに言及していること tarコマンドの「オプション(引数)」を制限する、あるいは不要なオプションを受け付けなくする旨を具体的に記述していること
設問3(2)は,正答率が平均的であった。ファームウェアのアップデート時にアーカイブファイルを展開するために使っているtarコマンドが,製品Xでは不要なオプションも使える設定であり,本設問は,そのようなオプションの悪用を防ぐ対策を問うているので,sudoの設定でオプションの使用を制限するなど,具体的に解答してほしい。
設問4
本文中の 空欄 h に入れる適切な字句を,英字10字以内で答えよ。
模範解答
noindex
none
採点基準
- 5点: 「noindex」または「none」と正しく記述している。
- 0点: それ以外の解答、または誤った用語。
解説
正解の根拠
インターネットの検索エンジン(クローラ)に対して、Webページを検索エンジンのデータベース(インデックス)に登録させないように指示するためには、HTMLの <head> セクション内に <meta name="robots" content="noindex"> と記述します。
また、noindex と nofollow を組み合わせた効果を持つ none も正解として扱われます。
高得点のポイント
- 検索エンジンのインデックス登録を拒否するためのディレクティブとして
noindex(またはnone)を正確に英字で記述していること
設問4は,正答率が低かった。インターネット上でIoT機器を検出する方法と,それを抑止する方法を知っておいてほしい。