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

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

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

問1 IoT製品の開発に関する次の記述を読んで、設問に答えよ。

 J社は、家電の製造・販売を手掛ける従業員1,000名の会社である。J社では、自社の売れ筋製品であるロボット掃除機の新製品(以下、製品Rという)を開発し、販売することにした。製品Rの仕様を図1に示す。

 WebアプリRを含むファームウェアの開発は、開発部のFさんとG主任が担当することになった。

[各機能のセキュリティ対策の検討]
 まず、Fさんは、ファームウェアアップデート機能のセキュリティ対策を検討した。ファームウェアアップデート機能が偽のファームウェアをダウンロードしてしまうケースを考えた。そのケースには、DNSキャッシュサーバが権威DNSサーバにWサーバの名前解決要求を行ったときに、攻撃者が偽装したDNS応答を送信するという手法を使って攻撃を行うケースがある。この攻撃手法は(a)と呼ばれる。
 この攻撃は、DNSキャッシュサーバが通信プロトコルに(b)を使って名前解決要求を送信し、かつ、攻撃者が送信したDNS応答が、当該DNSキャッシュサーバに到達できることに加えて、①幾つかの条件を満たした場合に成功する。攻撃が成功すると、DNSキャッシュサーバが攻撃者による応答を正当なDNS応答として処理してしまい、偽の情報が保存される。当該DNSキャッシュサーバを製品Rが利用して、この攻撃の影響を受けると、攻撃者のサーバから偽のファームウェアをダウンロードしてしまう。しかし、Fさんは、②製品Rは、Wサーバとの間の通信においてHTTPSを適切に実装しているので、この攻撃の影響は受けないと考えた。Fさんは、ファームウェアアップデート機能のセキュリティ対策がこれで十分か、G主任に相談した。次は、この時のG主任とFさんとの会話である。

G主任:攻撃者のサーバから偽のファームウェアをダウンロードさせる攻撃は回避できます。しかし、偽のファームウェアをダウンロードしてしまう場合として、ほかにも、攻撃者がWサーバに侵入するなどの方法でファームウェアを直接置き換える場合もあります。対策として、ファームウェアに(c)を導入しましょう。まず、製品Rでは(c)証明書がJ社のものであることを検証します。その上で、検証された(c)証明書を使って、ダウンロードしたファームウェアの真正性を検証しましょう。

Fさん:分かりました。

 続いて、Fさんは、WebアプリRの実装について開発部の他の部員にレビューを依頼した。その結果、脆弱性Aと脆弱性Bの二つの脆弱性が指摘された。

a:DNSキャッシュポイズニング

そのケースには、DNSキャッシュサーバが権威DNSサーバにWサーバの名前解決要求を行ったときに、攻撃者が偽装したDNS応答を送信するという手法を使って攻撃を行うケースがある。この攻撃手法は(a)と呼ばれる。
 知識問題ですね。
 DNSキャッシュサーバに偽のDNS応答を送信してキャッシュさせ、偽サイトに誘導する攻撃のことをDNSキャッシュポイズニング攻撃といいます。

b:UDP

この攻撃は、DNSキャッシュサーバが通信プロトコルに(b)を使って名前解決要求を送信し、かつ、攻撃者が送信したDNS応答が、当該DNSキャッシュサーバに到達できることに加えて、①幾つかの条件を満たした場合に成功する。
 DNSキャッシュポイズニング攻撃が成立する条件の一つに、名前解決の通信プロトコルにUDPを使っていることがあります。
 UDPのため、DNSの名前解決要求を送信した相手以外のDNS応答を受け入れてしまうことになります。
 TCPの場合は通信の最初の段階で3ウェイハンドシェイクにより成立した通信先と通信を行うため、途中から偽装した通信を受け入れることはありません。

下線①について、攻撃者が送信したDNS応答が攻撃として成功するために満たすべき条件のうちの一つを、30字以内で答えよ。:権威DNSサーバからの応答よりも早く到着する。

この攻撃は、DNSキャッシュサーバが通信プロトコルに(b:UDP)を使って名前解決要求を送信し、かつ、攻撃者が送信したDNS応答が、当該DNSキャッシュサーバに到達できることに加えて、①幾つかの条件を満たした場合に成功する。
 DNSキャッシュサーバが名前解決の通信をやり取りするのは、権威DNSサーバとです。
 通常であればDNSキャッシュサーバの名前解決要求に対し、権威DNSサーバがDNS応答を返信し、その通信は1秒もかからないでしょう。
 攻撃者が偽のDNS応答をキャッシュサーバに送信して受信させるためには、権威DNSサーバからの応答よりも早くDNS応答を到着させる必要があります。
 現実的には不可能と思われますが、実際には攻撃者がDNSキャッシュサーバ宛てに名前解決要求を行い、その応答に偽のDNS応答を送信するなどの手法を用いています。

下線②について、どのような実装か。40字以内で答えよ。:サーバ証明書を検証し、通信相手がWサーバであることを確認する実装

しかし、Fさんは、②製品Rは、Wサーバとの間の通信においてHTTPSを適切に実装しているので、この攻撃の影響は受けないと考えた。
 HTTPS(HTTP over TLS)の実装とのことで、HTTPに比較して機能強化されているポイントを挙げるといいでしょう。
 HTTPSでは、暗号化、通信相手の認証、改ざん検知などが実現できます。
 今回のDNSキャッシュポイズニング攻撃では、DNSキャッシュサーバが偽のDNS応答を採用し、攻撃者のサーバに誘導されてしまいます。
 ここで有効なのが、通信相手の認証です。
 通信相手の認証では、サーバが正規のサーバであるかどうかを、サーバ証明書を検証することで確認します。

c:コードサイニング

対策として、ファームウェアに(c)を導入しましょう。まず、製品Rでは(c)証明書がJ社のものであることを検証します。その上で、検証された(c)証明書を使って、ダウンロードしたファームウェアの真正性を検証しましょう。
 ファームウェアなどソフトウェア(コード)の真正性を検証するために利用するものに、コードサイニング証明書があります。
 J社で秘密鍵と公開鍵を作成、公開鍵をCA(認証局)に送信し、CAの秘密鍵で暗号化してデジタル署名を付与したコードサイニング証明書を発行してもらいます。
 J社では、ファームウェアのハッシュ値を秘密鍵で暗号化しデジタル署名を作成します。
 利用者はダウンロードしたファームウェアに対し、コードサイニング証明書のデジタル署名をCAの公開鍵で復号し、証明書がJ社のものであることを確認します。
 また、ファームウェアのデジタル署名をJ社の公開鍵で復号し、ファームウェアが正しいものであるかを確認します。