令和4年度春期 情報処理安全確保支援士試験(午後Ⅰ 問2)解説
テーマ: IoT機器(NAS・ルータ)の脆弱性、セキュリティインシデント対応、DNS/UPnP、OSコマンドインジェクション、パストラバーサル、WebShell
目次・設問ジャンプ
設問1 〔NAS-A及びルータ-Aの調査〕について
1. (1) 空欄 a・b について
問題文からの引用
「ルータ-A のグローバル IP アドレスが変更された場合、Z社の DNSサーバの設定でホスト名 nas-aに割り当てているIPアドレスを変更するために、[ a ]レコードを更新する。そのレコードの[ b ]は、300秒に設定されていた。」
着眼点・注目ポイント
DNSにおいてホスト名とIPアドレス(IPv4)を関連付けるリソースレコードの種別(a)と、DNSキャッシュの有効期間を表す設定項目(b)を解答群から選択します。
-
正解:
a: ア (A)b: エ (TTL)
選択肢の解説
-
ア (A):
aの正解。 ホスト名(FQDN)をIPv4アドレスに変換する(正引き)ためのリソースレコードです。 - イ (MX): 不適切。メールサーバー(Mail Exchange)を指定するレコードです。
- ウ (TLS): 不適切。暗号化通信プロトコル(Transport Layer Security)であり、DNSレコードの種類ではありません(関連するものとしてTLSAレコード等が存在します)。
-
エ (TTL):
bの正解。 Time To Live の略で、DNSキャッシュサーバーが該当レコード情報を保持・利用できる有効時間(秒)を指定します。DDNS(ダイナミックDNS)ではIP変更に迅速に対応するため、TTLを短い値(例: 300秒)に設定します。 - オ (TTY): 不適切。Linux等の端末デバイス(Teletypewriter)を表す用語です。
- カ (TXT): 不適切。任意のテキスト情報を定義するレコードで、SPF設定やドメイン所有権の検証等に用いられます。
2. (2) 下線①「WAN側は、本機能を有効にできない仕様になっている」について
問題文からの引用
「UPnP 機能 LAN側:有効 [...] LAN 側の機器から受け付けたリクエストの内容で、ポートフォワーディングの設定とファイアウォール機能の設定を行う。① WAN側は、本機能を有効にできない仕様になっている。」
着眼点・注目ポイント
UPnP(Universal Plug and Play)は認証なしでネットワーク設定の変更リクエストを受け付ける仕様です。もしこれがWAN(インターネット)側から受け付け可能(有効)だった場合、外部の悪意ある攻撃者によって何が操作されてしまうかを考察します。
- 正解: 外部からLAN側への通信の許可設定が変更される
- 解説: UPnPは認証手続きなしでポートフォワーディングやファイアウォールの設定を変更できるプロトコルです。仮にWAN側でUPnP機能が有効化されていた場合、インターネット上の攻撃者が外部からルータに対してポート開放やファイアウォールの通過許可ルールを追加・変更するリクエストを送信可能になります。その結果、内部ネットワーク(LAN側)の機器へ不正にアクセスされる危険性が生じます。
3. (3) 下線②「NAS-A 自体がランサムウェアに感染した」と判断した理由について
問題文からの引用
「・デザインデータのファイルが暗号化され、ファイル名の拡張子が変更されていた。
・A社では身に覚えのない、英語で書かれた脅迫文のテキストファイルが、NAS-Aに保存されていた。
・ファイル共有機能でも Web 操作機能でもアクセスできない/root ディレクトリ配下のファイルも暗号化されていた。
K氏は、今回の障害がランサムウェアに起因するものであり、さらに、② A社の PC がランサムウェアに感染したのではなく、NAS-A 自体がランサムウェアに感染したことによって NAS-A のファイルが暗号化された可能性が高いと判断した。」
着眼点・注目ポイント
PCの感染(ファイル共有経由の暗号化)とNAS本体の感染の違いを見極めます。表1のNAS-A設定(ファイル共有機能SMB、Web操作機能)でアクセスできる範囲と、実際に被害にあったディレクトリ領域を比較します。
- 正解: PCからのファイル操作ではアクセスできない領域のファイルが暗号化されたから
-
解説: A社のPCが感染してネットワークドライブ(SMB共有)経由でファイルが暗号化された場合、暗号化されるのは一般ユーザー権限(SMBやWeb操作機能)でアクセス可能なディレクトリ範囲にとどまります。しかし、今回は「ファイル共有機能でも Web 操作機能でもアクセスできない
/rootディレクトリ配下のファイル」まで暗号化されていました。この領域はNAS-A内部のroot(管理者)権限でなければ操作できないため、PC経由の攻撃ではなく、NAS-A自体のOSコマンド実行脆弱性等を突かれてNAS本体でランサムウェアが直接実行されたと判断できます。
設問2 〔脆弱性の調査〕について
1. (1) 空欄 c について
問題文からの引用
「認証なしアクセスの処理に脆弱性があり、除外リストに指定されていないディレクトリ配下のファイルにも認証なしでアクセスできてしまう。例えば、http://192.168.0.1/images/..%2fstatus.cgiのURLにアクセスすると、http://192.168.0.1/status.cgiに認証なしでアクセスできてしまう。これは、URLに..%2fを使用した[ c ]と呼ばれる攻撃手法である。」
着眼点・注目ポイント
ディレクトリトラバーサルの相対パス記法である../(%2fは/のURLエンコード)を用いて、意図されていない階層上のディレクトリ・ファイルにアクセスを試みる攻撃手法の名称を答えます。
- 正解: パストラバーサル(または ディレクトリトラバーサル)
-
解説: 相対パスのディレクトリ遡り記号(
../やそのURLエンコード表現%2e%2e%2f)を利用して、本来アクセス許可されていない親ディレクトリや別階層のファイルを取得・実行する攻撃手法です。「パストラバーサル」または「ディレクトリトラバーサル」と呼ばれます。
2. (2) 空欄 d について
問題文からの引用
「製品Xには、Web 管理機能の一つとして、IPアドレスを指定してpingを実行する機能がある。この IP アドレスの処理に脆弱性があり、任意のOS コマンドを実行できてしまう。次は、その脆弱性を悪用した例であり、ping 127.0.0.1; whoamiというコマンドが実行される。[...] これは、[ d ]と呼ばれる攻撃手法である。」
着眼点・注目ポイント
シェルで特別な意味を持つメタ文字(セミコロン;等)を使って、本来のコマンドの後に別のOSコマンドを連結し、不法に実行させる攻撃手法の名称を答えます。
- 正解: OSコマンドインジェクション
- 解説: Webアプリケーションに入力したパラメータを十分に検証・サニタイズ(エスケープ)しないままOSシェルコマンドに渡すことで、外部から意図しない任意のOSコマンドを実行させる攻撃手法を「OSコマンドインジェクション」と呼びます。
3. (3) 空欄 e・f・g について
問題文からの引用
「パッチ Mでは、脆弱性1の対策として、認証なしアクセスの処理の流れにパス名の正規化の処理を加え、さらに、図3に示す順序にした。パス名の正規化とは、相対パスで記述されたパス名を、相対パス記法を含まない形式に変換することである。」[ e ] → [ f ] → [ g ]
着眼点・注目ポイント
パストラバーサル攻撃を防ぐために、「URLデコード」「パス名の正規化」「除外リストとの比較」をどの順番で実行すべきかを論理的に組み立てます。
-
正解:
e: ア (URLデコード)f: ウ (パス名の正規化)g: イ (除外リストとの比較)
処理順序の解説
-
e: ア (URLデコード)
入力されたリクエスト文字列に%2fなどのエンコード表現が含まれている場合、まず最初にデコードを行って元の文字列(../等)に戻す必要があります(エンコードされたまま判定処理を行うとフィルタをすり抜けてしまいます)。 -
f: ウ (パス名の正規化)
デコードされた文字列に含まれる..などの相対パス表記を展開・処理して、絶対パス(例:/status.cgi)へ正規化(標準化)します。 -
g: イ (除外リストとの比較)
完全に正規化された最終的なアクセス先パスに対して、初めて「/imagesや/cssなどの認証除外リストに含まれているか」を比較・判定します。この順番にすることで、..%2fを使った迂回手法を確実に遮断できます。
設問3 〔アクセスログの調査〕について
1. (1) 下線③「POST メソッドを使用して実行された OS コマンドの内容は分からなかった」理由について
問題文からの引用
「表3からは、GET メソッドを使用して実行された OS コマンドの内容は分かったが、③ POST メソッドを使用して実行された OS コマンドの内容は分からなかった。」
着眼点・注目ポイント
HTTPのGETメソッドとPOSTメソッドでデータ(パラメータ)が送信される場所の違いと、一般的なWebサーバーアクセスログの記録対象に着目します。
- 正解: POST メソッドで送信したボディがアクセスログに残っていなかったから
-
解説:
GETメソッドのリクエストパラメータはURL(クエリ文字列:?cmd=whoamiなど)として送信されるため、アクセスログのURIラインに記録されます。
これに対して、POSTメソッドのパラメータはHTTPリクエストの「メッセージボディ」に含まれて送信されます。標準的なWebサーバーのアクセスログにはリクエストライン(メソッド、URI、プロトコル)とレスポンスステータス等は記録されますが、メッセージボディの内容まではログに出力されないため、実行されたOSコマンドの具体的な内容が判別できませんでした。
2. (2) 下線④「製品 Xで tar コマンドのオプションが悪用されるのを防ぐ対策」について
問題文からの引用
「製品Xでは、sudo コマンドの設定ファイルが図4のようになっている。
www ALL NOPASSWD:/bin/tar
[...] このtar コマンドには、任意の OS コマンドを実行できるオプションがある。
当該オプションを悪用する例を図5に示す。
sudo tar -cf/dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=whoami
K氏は、“攻撃者が[...] 書込み不可のディレクトリを書込み可能に変更して WebShell を配置した後、WebShell を使用してランサムウェアを実行した”と推測した。そこで、④ 製品 Xで tar コマンドのオプションが悪用されるのを防ぐ対策を検討することにした。」
着眼点・注目ポイント
/etc/sudoers(sudoの設定ファイル)の設定方法に着目します。現在は/bin/tarコマンドが引数制限なしで全許可(NOPASSWD)されているため、危険なオプション(--checkpoint-action等)が実行できてしまいます。これを抑止・制限する具体策を述べます。
-
正解: sudo コマンドの設定ファイルで、tar コマンドのオプションを受け付けないように設定する。
(別解: sudo コマンドの設定ファイルで、ファームウェアアップデートに必要な引数・オプションのみを指定して許可する。) -
解説:
sudoの設定(/etc/sudoers)では、特定のコマンドパスだけでなく、許可する引数(オプション)を厳密に指定することが可能です。
現状のwww ALL NOPASSWD:/bin/tarでは任意の引数が実行可能であるため、危険なオプションが指定されてしまっています。ファームウェアアップデート時に使用する特定のコマンドラインパターン(例: 解凍専用の特定の引数)のみを指定して許可するか、ワイルドカードやシェルスクリプト化などを利用して不要なオプションを受け付けないように最小権限の原則に則って修正する必要があります。
設問4 〔DDNS-Zの調査〕について
1. 空欄 h について
問題文からの引用
「インターネットの検索エンジンで検索されないようにするために、各 Web ページの<head>セクションに<meta name="robots" content=" [ h ] ">を記載することを検討した。」
着眼点・注目ポイント
HTMLの<meta name="robots">タグにおいて、検索エンジンのクローラー(ロボット)に対してページのインデックス作成(検索結果への掲載)を拒否するHTMLメタタグの指定値を回答します。
- 正解: noindex (または none)
解説
-
noindex: 検索エンジンのクローラーに対して、対象のWebページを検索結果にインデックス(登録)しないよう指示する標準的な値です。 -
none:noindex, nofollowと同義であり、インデックス拒否およびページ内のリンク追跡拒否を同時に指定するショートハンドです。英字10字以内の指定を満たすため、IPAの解答例ではnoindexまたはnoneのどちらも正解とされています。