[レポート]Kr00k:深刻な脆弱性が数十億以上のWi-Fiデバイスの暗号化に影響 – CODE BLUE 2020 #codeblue_jp
こんにちは、臼田です。
今回はCODE BLUE 2020で行われた以下のセッションのレポートです。
Kr00k:深刻な脆弱性が数十億以上のWi-Fiデバイスの暗号化に影響
われわれが特定したKr00k(CVE-2019-15126)とは、これまで知られていなかった脆弱性で、多数のWi-Fi対応デバイスに使用されるチップが抱えているものだ。具体的にはBroadcomとCypressのWi-Fiチップ(おそらく他のメーカーも該当する)で発見したもので、「オール・ゼロ暗号化キー(all-zero encryption key)」を使用したWPA2ネットワークでは暗号化パケットが脆弱であるというものだ。攻撃が成功すると、攻撃者は一部の無線ネットワークパケットが復号できるようになる。脆弱なチップはApple、Samsung、Google、Amazonほか多数のデバイスで使用されているため、影響を受けるデバイスの数は10億を超える可能性がある。 講演では、技術の詳説とデモンストレーションを予定しており、ターゲットデバイスのWi-Fi再関連付けをトリガーにして、オール・ゼロ暗号化キーを強制的に設定し、傍受したパケットを復号する方法を示す。 また、これらの脆弱性の潜在的な影響と、それらを悪用することの制限についても説明する。 この新たな研究は、われわれの以前の発見に続くものである。それは、人気のあるAmazon EchoやKindleデバイスの一部のバージョンが、「キー再インストール攻撃(Key Reinstallation Attacks:KRACK)」に対して脆弱であるというもので、2017年にMathy Vanhoef 氏が発見している。Kr00kとこれまでに知られている研究との関連性と相違点についても説明を行う予定である。 最後に、最近発見されたWi-Fi暗号化の脆弱性について説明する。これはQualcomm(CVE-2020-3702)を含む他のチップ製造メーカーに影響を与えるものである。 講演は持ち帰りの情報で締めくくる予定だ。デバイスにパッチが当てられてることを確認。技術に精通したユーザーの場合は、PoC(Proof of Concept:概念実証)スクリプトでデバイスをテストする。
Presented by : ロバート・リポフスキー - Robert Lipovsky
レポート
- みなさんの中でiPhoneやAndroidなどでWi-Fiを使っていますか?
- おそらくほぼすべての人が手を挙げるでしょう
- Wi-Fiの脆弱性によりその通信が見られてしまうようになったのです
- 殆どのIoTデバイスも同様のリスクがある
- これらの機器が企業への接続に使われる可能性がある
- Kr00kが使われる
- まずはWi-Fiセキュリティの基本から
- デバイスを最初に接続するときアソシエーション
- 切断はdisassociation
- これが気にするところ
- 自然に起きることもある
- Wi-Fiをオフにするなど
- 管理フレームが使われる
- 管理フレームは殆どの場合認証されていない
- 4-wayハンドシェイクで安全な接続を行う前に行われること
- パスワードの確認
- 一意の鍵が作られる
- PTK
- WPA2-CCMPでどのように暗号化が行われているか
- 簡略的に
- 平文がある
- 暗号化するためにAESを利用
- AESにはNonceと一時キーを利用
- keystreamで暗号化
- Kr00kとは
- デバイスとAPの通信
- 暗号化されている
- パケットをキャプチャしても中身は見れない
- Kr00kではこれを破る
- disassociationを攻撃者がデバイスに送る
- 切断の後、データの最後の破片がデバイスから出る
- それを傍受して複合できる
- デバイスの中身を見てみる
- Kr00kの元凶となったチップ
- 全てのモバイルデバイスやスマートウォッチなど、インテリジェント掃除機もWi-Fiチップがある
- 最近はfull macが使われる
- チップのmac層
- 通信の暗号化処理の部分
- 暗号化はセッション暗号化キーが使われる
- WEPエンジンが暗号化してTXEで送信
- 切断リクエストがくると上位におくる
- 暗号化キーを削除するコマンドがでる
- 0に置き換える
- これがall 0 暗号化キー
- 新しい4-wayまでそれが維持される
- しかしTX-FIFOのバッファに残っているデータがある
- ここがall 0 keyで暗号化して飛ばされる
- このall 0 で暗号化されたデータは簡単に見つけられる
- バッファは大きいのでたくさんのデータを漏洩できる
- 切断されたときのバッファの状態はタイミングによる
- 攻撃の方法
- Passive
- 切断は自然に起きるので頻繁に見られる
- ローミングなど
- 職場で起きる自然な切断があちこちで起きている
- それらをキャプチャできる
- 全ての脆弱なデバイスとAPを確認
- TLSで暗号化されていないデータを見ることができる
- 全ての脆弱なデバイスを特定
- Active
- デバイスを網羅したらActiveにデータを漏洩させる
- 何度も何度も
- 繰り返しできることがこの脆弱性の恐ろしいところ
- 漏洩するデータは想定するのは難しいが、繰り返しできるので欲しい物を手に入れられる
- Passive
- デモ
- Wiresharkでモニターモードでキャプチャ
- アクセスポイントにアクセスしないで取る
- ユーザー
- スマートフォンを使って職場のWi-Fiに接続
- スマートホームソリューションにブラウザからログイン
- スマートホームの状況を確認
- 攻撃者
- 被害者のmacアドレスを指定
- Wi-Fiパスワードを知る必要はない
- 少しずつパケットキャプチャできる
- スクリプトからdisassociationを送信しパケットを複合できた
AA AA 03
を見つけられた- HTTPパケットを見ていく
- session idがある
- これを使って攻撃者のブラウザからアクセス
- パスワードを知らなくてもスマートホームにアクセスできた
- 別のシナリオ
- 脆弱なアクセスポイント
- デバイスが良くてもアクセスポイントから取れる
- 攻撃の範囲が大きくなる
- 保護することは難しくなる
- 解決策はWPA2も安全ではないと想定してTLSやVPNなどを利用して暗号化すること
- CypressやBroadcomのデバイスで影響があることを確認した
- ほかにも影響はあるだろう
- 脆弱性発見の後どうなったか
- メーカーと協力して修正
- 通常よりも長い猶予期間を得て公開
- 殆どのメーカーが対応している
- ICASIが複数の機関とのやり取りを調整してくれた
- この発表の後ほかのチップメーカーも同じ用に調査された
- Qualcommでもアプローチは違ったが問題が見つかった
- CCMPもついているが暗号化されていない
- CVE-2020-3702となった
- QCA9531のチップが対象
- オープンソースのドライバーでも利用されている
- ASUS RT-AC52U
- Azure Sphere MT3620でもあった
- 全てのデバイスメーカーがパッチを適用したかは定かではない
- Qualcommと似ている
- ProtectフラグでWEPと判断されている
- フレームは暗号化されていない
- Qualcommでもアプローチは違ったが問題が見つかった
- まとめ
- デバイスチップが影響していた
- しかし幸いなことにハードを変える必要がなかった
- パッチ適用で対応したり軽減できた
- 通常のユーザーにはどのチップか判断することができない
- そして脆弱性がほかのチップメーカーにも影響を与えた
- つまり一般的な話だが最新にアップデートする必要がある
- すべてのユーザーのデバイスはアップデートが促されるが、Wi-Fiルーターは別
- これらは手動でアップデートすることになる
- リモートワークの環境で自宅のWi-Fiルーターでもリスクがある
- 企業の管理者はこれも気にする必要がある
感想
KRACKのときもかなり衝撃的な話でしたが、Kr00kもかなり恐ろしい脅威ですね。
特に自宅のAPやフリーWi-Fiなどもリスクにつながることは企業の管理者としては頭の痛い話かもしれません。
昔からdisassociationは不正なAPへの接続誘導などで利用されていて、管理フレームのセキュアな扱いについてはずっと議論されていて、要約WPA3でこれが守られようとしていますが、WPA2が普及している分これらの問題は引き続き気にしていく必要がありますね。