情報処理安全確保支援士試験 令和4年度 春期 午後1 問2
【出典:情報処理安全確保支援士試験 令和4年度 春期 午後1 問2(一部、加工あり)】
[アクセスログの調査]
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コマンドのオプションが悪用されるのを防ぐ対策を検討することになった。
下線③について、実行されたOSコマンドの内容が分からなかった理由を、35字以内で述べよ。:POSTメソッドで送信したボディがアクセスログに残っていなかったから
「表3からは、GETメソッドを使用して実行されたOSコマンドの内容は分かったが、③POSTメソッドを使用して実行されたOSコマンドの内容は分からなかった。」
表3(WebShellに関連するNAS-Aのアクセスログ)からアクセスログで取得できる内容は、時刻、リクエスト、ステータスコード、応答バイト数です。
そして、リクエストは「GET /images/..%2fstatus.cgi HTTP/1.1」のように、HTTPメソッド(GET)、URL(/images/..%2fstatus.cgi)、HTTPバージョン(HTTP/1.1)の情報となっています。
「表3から、GETメソッドを使用して実行されたOSコマンドの内容は分かった」については、No.18の「GET /images/shell.cgi?cmd=whoami HTTP/1.1」から、NAS-Aに配置された攻撃ツールであるshell.cgiに引数cmd=whoamiを付加して、whoamiの実行結果を画面上に表示させるということでしょう。
一方、POSTメソッドは、No.89の「POST /images/shell.cgi HTTP/1.1」のように、shell.cgiで実行させた具体的な情報は残っていません。
これは、GETメソッドとPOSTメソッドの動作の違いから分かります。
GETメソッドでは上記のNo.18の場合、URLに引数を記載し「https://nas-a.z-sha.co.jp/images/shell.cgi?cmd=whoami」となりますが、POSTメソッドではURLに引数を記載せず、HTTPのメッセージボディに記載します。
したがって、表3のアクセスログで取得できる情報としてメッセージボディの情報は対象外になっていることから、POSTメソッドを使用して実行されたOSコマンドの内容は分からなかったということです。
下線④について、対策を、50字以内で具体的に述べよ。:sudoコマンドの設定ファイルで、tarコマンドのオプションを受け付けないように設定する。
「そこで、④製品Xでtarコマンドのオプションが悪用されるのを防ぐ対策を検討することになった。」
tarコマンドのオプションの悪用方法について、順に確認していきましょう。
まず、「製品Xでは、sudoコマンドの設定ファイルが図4のようになっている。」として「www ALL=NOPASSWD: /bin/tar」とあり、wwwアカウントはパスワード無しで/bin/tarコマンドをroot権限で実行できます。
そして、「当該オプションを悪用する例を図5に示す。」として「sudo tar -cf /dev/null /dev/null –checkpoint=1 –checkpoint-action=exec=whoami」とあり、tarコマンドのオプションでチェックポイントを設けてexecコマンドを呼び出し、whoamiをroot権限で実行させています。
このようにroot権限で実行できるtarコマンドのオプションで、任意のコマンドがroot権限で実行できてしまいます。
このtarコマンドのオプションが悪用されるのを防ぐ対策としては、単純にオプションを使用できなくすればいいでしょう。
問題文にも「このtarコマンドには、任意のOSコマンドを実行できるオプションがある。ただし、ファームウェアのアップデート時にこのオプションは使用していない。」とあります。
具体的には、sudoコマンドの設定ファイルで「www ALL=NOPASSWD !/bin/tar “”」などの記述が考えられます。