【情報処理安全確保支援士試験 令和6年度 春期 午後 問1 No.3】

情報処理安全確保支援士試験 令和6年度 春期 午後 問1

【出典:情報処理安全確保支援士試験 令和6年度 春期 午後 問1(一部、加工あり)】

[セキュリティの強化]
 G社は、試用モニターへのサービスYの提供期間中に、インシデント対応に必要なログの取得方法を検討することになり、F社と協議した。
 F社によれば、ログ取得モジュールを実装するには時間が掛かるが、ログ取得モジュールを実装しなくても、サービスNを導入することによって、通信ログを取得できるという。

 サービスNにおけるWAFルールの記述形式を図5に示す。


 Rさんは、サービスNのSシステムへの導入を責任者に提案し、承認を得た。サービスNの導入完了後、サービスYの提供を開始した。

[新たな脆弱性への対応]
 数週間後、ライブラリHというオープンソースのライブラリに脆弱性Vという脆弱性があることが公表された。Rさんは、脆弱性Vについての関連情報を図6のように取りまとめた。


 Rさんは、脆弱性Vへの対応方針をZ氏に相談した。Z氏は、F社の回答を待ってからの対応では遅いので、システムに影響を与えない検証コードをSシステムに対して実行し、外部から脆弱性Vを悪用できるか検証するよう提案した。Rさんは、Z氏の協力の下、図7に示す手順で検証を実施した。


 検証の結果、外部から脆弱性Vを悪用できることが確認できた。この結果を踏まえて、Rさんは、脆弱性Vを悪用する攻撃に備え、E社からWAFルールが提供されるまでの間、現在判明している悪用パターンに対応可能な暫定的なWAFルールで攻撃を遮断することにした。
 Rさんが考えたWAFルールの案を表6に示す。


 Rさんは、例えば”jnDI”のように大文字・小文字を入れ替える手口によって、ルール1と2それぞれで、案のパターンを回避する方法があることに気付いた。④このような手口にも対応できるように案を変更した。その後、変更後の案の確認をZ氏に依頼した。
 Z氏は、⑤本番運用開始後の一定期間においては、WAFルールの動作には”検知”を設定して、サービスYが今までどおり利用できるかを確認することを助言した。Rさんは、Z氏の助言を踏まえて、WAFルールを設定した。
 後日、Sシステムでは、ライブラリHを利用しているとの回答がF社からあった。また、E社からサービスNにおけるWAFルールが提供された。その後、脆弱性Vを修正したバージョンがライブラリHの公式Webサイトで配布され、Sシステム内のライブラリHのバージョンを最新にすることで、脆弱性Vへの対応が完了した。

下線③について、テストサーバに実装する仕組みを、35字以内で具体的に答えよ。:テストサーバのindex.htmlへのアクセスを記録し、確認する仕組み

③図8で指定したコマンドが実行されたことを確認する仕組みをテストサーバに実装する。
 図8の注記に「・・デコード結果は、wget http://a2.b2.c2.d2/index.htmlである。これは、コマンドCに相当する。」とあり、wgetによりa2.b2.c2.d2(テストサーバ)からindex.htmlファイルを取得するというものです。
 なお、コマンドCについては、図6(7)に「攻撃対象サーバは、受信したLDAPレスポンスに記載されたURL-Jにアクセスし、Jファイルをダウンロードして、コマンドCを実行する。」とあります。

 テストサーバに実装する仕組みとしては、index.htmlファイルを取得することを検知すればいいので、具体的にindex.htmlへのアクセスを記録、確認する仕組みとすればいいでしょう。
 なお、IPAの採点講評では「正答率がやや低かった。脆弱性の存在を判断するための仕組みについて問うたが、図6に示す攻撃の流れに合っていない解答が散見された。脆弱性対策では、脆弱性を悪用する攻撃の流れの理解が重要であることから、正確に理解してほしい。」とあります。

e:Header、f:Header

 表6は、「脆弱性Vを悪用する攻撃に備え、E社からWAFルールが提供されるまでの間、現在判明している悪用パターンに対応可能な暫定的なWAFルール(で攻撃を遮断する)」です。

 遮断の対象となるパターン「¥Wjndi¥W」「¥Wldap¥W」については、図5に「¥W:任意の非英数字とマッチする。」とあるように、文字列「jndi」「ldap」が含まれる通信が対象となります。


 WAFルールで対象とする通信内容を探すと、図6に以下の記述があります。

  • (2)その後、LDAPリクエストWを含み、脆弱性Vを悪用するJNDI Lookup(Java Naming and Directory Interface Lookup)を行う攻撃コードを準備する。
  • (3)準備した攻撃コードをHTTPリクエストのx-api-versionヘッダの値として指定したHTTPリクエストを攻撃対象サーバに送信する。

 そして、具体的な攻撃コードは、図8から「${jndi:ldap:・・・」の部分であることが分かります。

 したがって、文字列「jndi」「ldap」を含む検証対象としては、図5の「Header:全てのヘッダの値を検証対象とする。」が該当するでしょう。

下線④の変更後の案について、表6中のルール1に記述すべきパターンを、図5の記述形式で答えよ。:¥W[jJ][nN][dD][iI]¥W/¥W(j|J)(n|N)(d|D)(i|I)¥W

Rさんは、例えば”jnDI”のように大文字・小文字を入れ替える手口によって、ルール1と2それぞれで、案のパターンを回避する方法があることに気付いた。④このような手口にも対応できるように案を変更した
 表6のルール1のパターン「¥Wjndi¥W」で、大文字・小文字を入れ替えても対象となるパターンを図5から探すと、「x|y:x又はyとマッチする。」「(x|y)z:xz又はyzとマッチする。」「[xyz]:x、y又はzのいずれかにマッチする。」があります。

 ここから、jndi、jnDIなどの4文字で大文字・小文字の組み合わせを考えると、「¥W[jJ][nN][dD][iI]¥W」、「¥W(j|J)(n|N)(d|D)(i|I)¥W」となるでしょう。

下線⑤について、WAFルールの動作に”遮断”ではなく”検知”を設定することによる利点と、”検知”に設定した際に被害を最小化するために実施すべき内容を、それぞれ25字以内で答えよ。:(利点)誤検知による遮断を防ぐことができる。(内容)アラートを受信したら攻撃かどうかを精査する。

Z氏は、⑤本番運用開始後の一定期間においては、WAFルールの動作には”検知”を設定して、サービスYが今までどおり利用できるかを確認することを助言した。
 WAFルールの適用で対象となる通信を正しく遮断することと同時に、正しい通信は今までどおり利用できなくなる状況を避ける必要があります。
 これは、誤検知による遮断を防ぐということです。
 WAFルールの動作を”遮断”ではなく、”検知”にする必要があるということは感覚的に理解できるでしょう。
 そして、被害を最小化するために実施すべき内容については、まずは検知した内容を攻撃かどうかを精査することです。
 精査した後に、攻撃であった場合には、当該通信を遮断する措置を図ればいいでしょう。
 なお、IPAの採点講評では「正答率が高かった。WAFの利点と課題は正確に理解していると思われる。セキュリティ施策は導入前にトレードオフを検討してほしい。」とあります。