https://www.ipa.go.jp/shiken/mondai-kaiotu/gmcbt80000009sgk-att/2022r04h_sc_pm1_qs.pdf
以下のおすすめ問題の解説となります。
良書。
問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の二つの脆弱性が指摘された。
(1)DNSキャッシュポイズニング攻撃
そのケースには、DNSキャッシュ サーバが権威DNSサーバにWサーバの名前解決要求を行ったときに、攻撃者が偽装したDNS応答を送信するという手法を使って攻撃を行うケースがある。この攻撃手法は(a)と呼ばれる。
DNSキャッシュ サーバが撃者が偽装したDNS応答を送信するという手法
とは、キャッシュサーバが汚染されていることから、DNSキャッシュポイズニング攻撃といいます。ポイズン=毒=ing系を付けたと覚えておきましょう。
(2)UDP
この攻撃は、DNSキャッシュサーバが通信プロトコルに(b)を使って名前解決要求を送信し、かつ、攻撃者が送信したDNS応答が、当該DNSキャッシュサーバに到達できることに加えて、①幾つかの条件を満たした場合に成功する。
キャッシュポイズニング攻撃がどの通信プロトコルを利用しているか把握していればわかるでしょう。知識問題です
UDPのランダム攻撃の注意喚起を読むとよいでしょう。
(3)権威DNS サーバからの応答よりも早く到着する。
当該DNSキャッシュサーバに到達できることに加えて、①幾つかの条件を満たした場合に成功する。攻撃が成功すると、DNSキャッシュサーバが攻撃者による応答を正当なDNS応答として処理してしまい、偽の情報が保存される。
この攻撃の大本をみていこう。
DNSキャッシュ サーバが権威DNSサーバにWサーバの名前解決要求を行ったときに、攻撃者が偽装したDNS応答を送信するという手法を使って攻撃を行うケースがある。
権威DNSサーバに対して、Wサーバの名前解決を行ってIPアドレスを得ることで正しい通信が可能となる。
攻撃種は権威サーバの応答より早くWサーバに偽の情報を出すことができれば攻撃が成功する。つまり権威DNS サーバからの応答よりも早く到着する。
(4)サーバ証明書を検証し、通信相手がWサーバであることを確認する実装
②製品Rは、Wサーバとの間の通信においてHTTPSを適切に実装している
HTTPSでは、暗号化、通信相手の認証、改ざん検知などが実現可能。
その中でも通信相手の認証を行うのが、サーバ証明書の検証である。
(5)コードサイニング証明書
ファームウェアに(c)を導入しましょう。まず、製品Rでは(c)証明書がJ社のものであることを検証します。その上で、検証された(c)証明書を使って、ダウンロードしたファームウェアの真正性を検証しましょう。
デジタル証明書を導入することが手段となるが、さらなる条件として、証明書がJ社のものであることを証明する流れになっている。
用語がわからないので調べると
コードサイニング証明書とは、ソフトウェアにデジタル署名を行う電子署名用の証明書のことです。
コードサイニング証明書というらしい