情報処理安全確保支援士過去問題 令和5年春期 午後Ⅰ 問2
⇄問題文と設問を画面2分割で開く⇱問題PDF出題趣旨
Webアプリケーションプログラムのライブラリの脆弱性に起因する不正アクセスが依然として多い。本問では,ライブラリの脆弱性に起因するセキュリティインシデントを題材として,不正アクセスの調査を行う上で必要となるログを分析する能力や攻撃の痕跡を調査する能力を問う。
設問1
- a: パッシブ
〔aについて〕本設問はFTPの転送モードに関する知識問題です。FTP(File Transfer Protocol)は、PCやサーバ間でファイルを転送する際に用いるアプリケーション層プロトコルです。FTPでは2本のTCPコネクションを使います。
1つ目はコントロールコネクションで、利用者認証やコマンドのやり取り・接続確立に使用します。コントロールコネクションは、FTPクライアントからFTPサーバの宛先21/TCPへ接続して確立します。
2つ目はデータコネクションで、実際に転送するデータの送受信に使用します。データコネクションの確立方法は2種類あり、アクティブモードとパッシブモードと呼ばれます。両者の違いは、クライアントとサーバのどちらが接続要求(コネクション開始)を行うかにあります。
1-233では、DBサーバ→製造管理サーバに宛先21/TCPでアクセスしており、これは前述のコントロールコネクションの確立に相当します(この時点でDBサーバがFTPクライアント、製造管理サーバがFTPサーバであることが分かる)。
1-234では、DBサーバ→製造管理サーバに宛先60453/TCPでアクセスしており、これはクライアントからサーバの動的ポートへ張るデータコネクションの形態に合致します。
したがって、本件データコネクションはパッシブモードであると判断できます。補足として、アクティブモードであればサーバ(製造管理)→ クライアント(DB)方向に送信元20/TCPの接続が現れるはずですが、当該時間帯の表1にその形跡はなく、クライアント(DB)→ サーバ(製造管理)の接続のみが記録されています(1-234)。この点からもパッシブモードであることが裏づけられます。
∴a=パッシブ
1つ目はコントロールコネクションで、利用者認証やコマンドのやり取り・接続確立に使用します。コントロールコネクションは、FTPクライアントからFTPサーバの宛先21/TCPへ接続して確立します。
2つ目はデータコネクションで、実際に転送するデータの送受信に使用します。データコネクションの確立方法は2種類あり、アクティブモードとパッシブモードと呼ばれます。両者の違いは、クライアントとサーバのどちらが接続要求(コネクション開始)を行うかにあります。
- アクティブモード
- FTPサーバ → FTPクライアント方向に確立する。サーバの送信元ポートは20/TCP(FTP-data)となる
- パッシブモード
- FTPクライアント → FTPサーバ方向に確立する。クライアントの送信元ポートは動的(毎回変化)で、サーバの宛先ポートもPASV応答で通知される動的ポートに接続する(21/TCPではない)
- DBサーバから製造管理サーバに対してFTP接続が行われ,DBサーバから製造管理サーバにFTPのaモードでのデータコネクションがあった
1-233では、DBサーバ→製造管理サーバに宛先21/TCPでアクセスしており、これは前述のコントロールコネクションの確立に相当します(この時点でDBサーバがFTPクライアント、製造管理サーバがFTPサーバであることが分かる)。
1-234では、DBサーバ→製造管理サーバに宛先60453/TCPでアクセスしており、これはクライアントからサーバの動的ポートへ張るデータコネクションの形態に合致します。
したがって、本件データコネクションはパッシブモードであると判断できます。補足として、アクティブモードであればサーバ(製造管理)→ クライアント(DB)方向に送信元20/TCPの接続が現れるはずですが、当該時間帯の表1にその形跡はなく、クライアント(DB)→ サーバ(製造管理)の接続のみが記録されています(1-234)。この点からもパッシブモードであることが裏づけられます。
∴a=パッシブ
設問2
- b: コミュニティ
- c: バインド
- 下線①: 2-3によって起動した3-3のポートへの通信が1-3で拒否されているから
- d: コネクト
- 下線②: 2-4によって開始された3-4の通信が1-4で許可されているから
- e: 1365
- 〔bについて〕
本問は、ネットワーク機器の監視や管理を行うSNMP(Simple Network Management Protocol)に関する知識問題となっています。
SNMPによる管理体系は、管理する側の「SNMPマネージャ」と、管理される側の「SNMP エージェント」から構成されます。SNMPマネージャがネットワーク機器に導入されたSNMPエージェントを通じて情報を収集し、機器の状態の監視や遠隔操作を行うことができます。やり取りされるメッセージには、GET(状態取得)、SET(設定変更)、TRAP/INFORM(エージェントからマネージャへの通知)などがあります。
SNMPには SNMPv1、SNMPv2、SNMPv2c、SNMPv3 の4つのバージョンがありますが、実運用上は v1・v2c・v3 が広く用いられます(規格上の"v2"は存在しますが、現在は"v2c"が事実上の標準として扱われるのが通例です)。
SNMPv1 と SNMPv2c では、アクセス制御にコミュニティ(community)と呼ばれる共有文字列(擬似パスワード)を用います。マネージャとエージェントが同じコミュニティ文字列を持つことで情報の参照や設定変更が可能になります。
したがって、空欄bには「コミュニティ」が入ります。コミュニティ名としては、問題文にもある "public"が読取用の既定値として設定されている機器が少なくありません
∴b=コミュニティ
【補足】
SNMPv3 ではコミュニティを用いず、ユーザベースの認証や暗号化(USM)によりセキュリティを確保します。 - 〔cについて〕
本設問は、不審なプロセスの動作について問うものです。
問題文の次の記述に着目します。- 攻撃者は,一度,srv のcモードで,C&Cサーバとの接続に失敗した後,srvのdモードで,C&Cサーバとの接続に成功した
設問では「表1~表3の項番を各表から一つずつ示す」ことが求められています。したがって、各表の記録から接続時のモードと成否を裏づける根拠を抽出する必要があります。
まず、srvの接続モードを特定します。問題文中の説明によれば、srvは、外部からの接続を待ち受ける「バインドモード」、外部に自ら接続する「コネクトモード」のいずれかでC&Cサーバに接続でき、モード指定はコマンドライン引数で行われます。この点を踏まえて表2を確認すると、srvに関連するコマンドラインに 「-mode」 の引数が見つかります。具体的には次の2行です。- 項番2-3 「04/21 15:01」にbindモードでの実行
- 項番2-4 「04/21 15:08」にconnectモードでの実行
さらに、最初の試行に関する PIDは1275であることが確認できます。表3でPID 1275を参照すると、項番3-3が該当し、任意の外部アドレス(ポートも任意)から、ローカルの8080/TCPに対する接続を LISTEN(待受) している状態であることが確認できます。これは「外部からの接続を待ち受ける」という バインドモードの振る舞いと整合します。
しかし、問題文にあるとおりバインドモードでの接続は失敗しています。表1を見ると、バインドモード開始時刻である「04/21 15:01」以降 に、外部から受付サーバのポート8080/TCPへのアクセスを示す記録として項番1-3がありますが、この通信は「拒否」と記録されています。以上より、バインドモードで待ち受けていたものの、ファイアウォール等により8080/TCPへの外部からの到達が拒否されたため、①の接続は失敗したと判断できます。
∴c=バインド
下線①=2-3によって起動した3-3のポートへの通信が1-3で拒否されているから - 〔dについて〕
同じく不審なプロセスの動作について問うものです。前問と同様の手順で確認します。
前述のとおり、2回目の接続は項番2-4に記録があり、「04/21 15:08」にコネクトモードで試行されています。このときのPIDは1293です。
表3でPID 1293に該当するのは項番3-4です。3-4を詳しく見ると、192.168.0.1:54543 から a0.b0.c0.d0:443 への通信がESTABLISHED(通信確立)状態であることが示されています。これは「外部に自ら接続する」コネクトモードの動作と合致します。そして表1では、コネクトモードを開始した「04/21 15:08」以降に 192.168.0.1:54543 から a0.b0.c0.d0:443 へのアクセスを示す項番1-4が確認できます。このアクセスが「許可」されたことがわかります。
∴d=コネクト
下線②=2-4によって開始された3-4の通信が1-4で許可されているから - 〔eについて〕
本設問は、ポートスキャンの実行タイミングについて問うものです。
本文には「攻撃者は,C&Cサーバとの接続に成功した後,ポートスキャンを実行した」と記載されています。前問に解答できた場合は、表2の項番2-4においてC&Cサーバとの接続に成功したことが確認できます。したがって、その接続成功以降に記録されている項番は2-5のみであり、この記録に対応するPIDは1365と判断できます。
前問が解けていない場合でも、表2のコマンドラインから一定の推測が可能です。本問はsrvの挙動が対象であるため、表2の項番2-3、2-4、2-5が該当候補と考えられます。さらに、2-3と2-4には「-mode bind」「-mode connect」のオプション指定があり、本文の「モードの指定はコマンドラインの引数で行われる」という記述から、これらはC&Cサーバへの接続試行であると解釈できます。以上より、消去法により2-5がポートスキャンの実行に該当し、そのPIDは1365と結論づけることができます。
∴e=1365
設問3
- TXTレコードには任意の文字列を設定できるから
- 稼働しているファイルと内容が異なる可能性があるから
- f: 受付サーバ
- 本設問は、DNSのレコードについて問うものです。
設問には「Aレコードではこのような攻撃ができないが、TXTレコードではできる」とあります。両者の違いを確認します。- Aレコード
- ドメイン名をIPアドレスに対応付けるためのレコード。記述形式は次のとおりで、定められた書式に従う△△△.com. IN A aaa.bbb.ccc.ddd
- TXTレコード
- ドメインに関する任意のテキスト情報を格納するためのレコード。様々な用途で使用されており、セキュリティ関連だとSPFレコードやDMARKレコードもこのフィールドに記載される
∴TXTレコードには任意の文字列を設定できるから
【補足】
cronは、UNIX系OSで使用される、定期的なタスクを自動実行するプログラムです。設定した日付や時刻の特定のプログラムを実行させるようスケジューリングできます。 - 本設問は、解析対象とすべきファイルについて問うものです。問題文には直接的なヒントがなく、手掛かりを得るのが難しい設問です。
下線④に「ダウンロードしたファイルは解析対象として適切ではない」とあります。なぜかと言うと、攻撃者は同一URLでも配布内容を随時変更できるからです。また、時刻やアクセス元、リクエスト内容により別のデータを返すことも一般的です。ダウンロードしたファイルは同名で外見が同じでも内部が異なる可能性があり、同一性が担保できません。したがって、実際に被害を生じさせた攻撃ファイルを解析対象とする必要があります。
∴稼働しているファイルを内容が異なる可能性があるから - 〔fについて〕
設問では、解析対象のファイルの入手先が問われています。(2)にあるように実際に被害を起こしたファイルを入手する必要があるため、調査対象のlogdファイルがどこに格納されているのかを考えます。
本文中に「Mさんが受付サーバをさらに調査したところ,logdという名称の不審なプロセスが稼働していた」とあるため、logdファイルは受付サーバ上に存在していることがわかります。したがって、空欄fには「受付サーバ」が入ります。
∴f=受付サーバ