情報処理安全確保支援士試験 過去問 2022年(令和4年) 春期 午後Ⅰ 問2
セキュリティインシデント対応
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に示す。
| 設定項目 | 設定値 | 説明 |
|---|---|---|
| ファイル共有機能 | ・SMB:有効 ・NFS:無効 |
有効に設定したプロトコルで,ファイルを共有する。 |
| UPnP1)設定要求機能 | ・有効 ・製品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の略称。認証なしでリクエストを受け付ける仕様のプロトコルである。
| 設定項目 | 設定値 | 説明 |
|---|---|---|
| ファイアウォール機能 | ・インバウンド通信:全て拒否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に示す。
脆弱性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
これは,d と呼ばれる攻撃手法である。脆弱性1と脆弱性2を組み合わせると,認証なしで任意の OS コマンドの実行が可能になる。次はその例である。
POST /images/../%2fping.cgi HTTP/1.0 Content-Length: 21 addr=127.0.0.1;whoami
注1) 除外リストに指定されたディレクトリ配下のファイルには,認証なしでアクセスできる。除外リストは,利用者が変更できない。
パッチMでは,脆弱性1の対策として,認証なしアクセスの処理の流れにパス名の正規化の処理を加え,さらに,図3に示す順序にした。パス名の正規化とは,相対パスで記述されたパス名を,相対パス記法を含まない形式に変換することである。
e → f → g
アクセスログの調査
NAS-Aのアクセスログを調査したところ,外部からHTTPSリクエストを使用してOSコマンドを実行する攻撃ツール(以下,WebShellという)がNAS-Aに配置されており,OSコマンドが実行されたことが分かった。NAS-Aのアクセスログから WebShellに関連するものを抽出した結果を表3に示す。
| 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のようになっている。
www ALL=NOPASSWD: /bin/tar
tarコマンドは,標準のOSコマンドであり,複数のファイルを一つのアーカイブファイルにまとめたり,アーカイブファイルを展開したりできる。製品Xでは,ファームウェアのアップデート時,wwwアカウントの権限でsudoコマンドを使用してtarコマンドを実行することで,rootアカウントの権限でアーカイブファイルを展開している。このtarコマンドには,任意のOSコマンドを実行できるオプションがある。ただし,ファームウェアのアップデート時にこのオプションは使用していない。当該オプションを悪用する例を図5に示す。
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社は必要な対策に着手した。