*

AMD Ryzenの脆弱性の早すぎる発表はなぜ行われたのか?

 

Pocket

Ryzenロゴ

 日本時間の2018年3月14日にAMDのRyzenシリーズに深刻な脆弱性があると報道されました。しかし、AMDに修正する時間を与えずに脆弱性の内容が公開されるなど、過去の脆弱性とは異なる様相を見せています。

 そこで、脆弱性に関する疑問点を調べてみました。

スポンサーリンク

脆弱性の内容

 今回報告された脆弱性の概要動画はYoutubeに上がっています。脆弱性を報告したCTS Labsが作成したものです。

 脆弱性は以下の4つです。

  • MASTERKEY(マスターキー)
  • RYZENFALL(ライゼンフォール)
  • FALLOUT(フォールアウト)
  • CHIMERA(キメラ)

 この記事で取り上げたいのは脆弱性が発表されるまでの経緯なので、脆弱性そのもののについては簡単に説明します。

 CTS LabsがWhite Paperに脆弱性の内容をまとめているので、そちらの内容を表にまとめました。

名前 脆弱性の内容 前提条件
MASTERKEY Secure Processor上で任意のコードの実行 不正なBIOSに更新
RYZENFALL ・Secure OSの設計及び実装上の脆弱性
・Secure OS側のデータ盗聴
・任意コードの実行
・未認証BIOSへの更新が可能
ローカル管理者権限が必要
FALLOUT ・EPYCのブートローダーの設計上の脆弱性
・保護されたメモリ領域へのアクセス
・未認証BIOSへの更新が可能
ローカル管理者権限が必要
CHIMERA チップセットX370にバックドア
チップセット内で不正コードの実行
ローカル管理者権限が必要

 これらの脆弱性に対する対応策は、基本的にはPCを常に最新状態に更新しておく事です。それで完全に防げるとは限りませんが、ほぼそれだけで防げるでしょう。

 しかし、過去に報告されてきた脆弱性と比較して変だと思いませんか?前提条件としてローカル管理者権限が必要になる点です。

 過去の脆弱性は、管理者ではないユーザーにより盗聴、改ざんなどが出来てしまうものがほとんどです。管理者は万能なユーザーではありませんが、元々かなりの事が出来ます。同じPC内であれば、他のユーザーの情報を盗み見ることなどは簡単に出来てしまいます。

 ローカル管理者と言うことは、基本的に直接そのPCを操作できる人物なので、それは既にそのPCが乗っ取られていることが前提なのではないかと思えます。

 そもそも、White Paperの2ページ目に首をかしげてしまう以下の記述があります。

”In our opinion, the basic nature of some of these vulnerabilities amounts to complete disregard of fundamental security principles.”
”これらの脆弱性のいくつかの基本的な性質は、基本的なセキュリティ原則を完全に無視したものであると考えています。”

 「ちょっと何言ってるか分からない」状態なのですが、今回の件を調べれば調べるほど変な点が多いので、以降でその点について解説して行きます。

何が変なのか?

 今回の件で変だと思う点を挙げてみます。

  • CTS LabsはAMDに脆弱性を報告後、24時間未満で一般に公開している
  • White Paperに脆弱性の詳細な技術的レポートが書かれていない
  • 脆弱性の名前に悪意がある
  • CTS Labsは急ごしらえの会社の可能性が高い
  • 脆弱性の概要とインタビューの動画が一般公開時に既に存在している

 海外の記事や私が気付いたことなどを元に挙げてみました。以降で詳しく説明します。

早すぎる一般公開

 脆弱性の内容が一般に公開される場合、通常は最大90日間の猶予が与えられます。責任対象の企業や開発者が修正方法の検討や対策を講じるためです。

 しかし、今回は発見者のCTS LabsがAMDに報告後、24時間未満で一般公開してしまっています。

 これは、2018年初めに一般公開されてしまったMeltdown(Intel製CPUの脆弱性)の時とは大きく状況が異なります。この時はPython関連のブログ記事をきっかけとして報道されてしまったのですが、それでもMeltdownが発見されたのは2017年7月のことなので、90日どころか倍の180日間もの猶予があったのです。

 早すぎる公開は、AMDに調査も修正する時間も与えないためとしか考えられません。実際にAMDもかなり戸惑ったようで、当初出した声明には以下のような文章があります。

This company was previously unknown to AMD and we find it unusual for a security firm to publish its research to the press without providing a reasonable amount of time for the company to investigate and address its findings.

 この会社(CTS Labs)についてAMDは把握しておらず、セキュリティ企業がメーカーに調査と解決のための準備期間を与えず、報道機関に公開することは珍しいことです。

 90日ルールを破ったCTS Labsの言い分(公開書簡)は以下のようなものです。長いので箇条書きでまとめました。

  • 90日ルールは深刻な問題を抱えている。
  • 90日の間に顧客に警告したい場合、ベンダー任せになる。
  • 時間内に修正できない場合、顧客を危険にさらし、悪用される可能性がある。
  • 0日目に一般公開し、ベンダーに圧力をかけたほうが良い。
  • ただし、脆弱性が修正されない限り、詳細な技術情報を公開すべきではない。

 なお、「詳細な技術情報がなくても、悪意のある人物の手助けになるのでは?」と言う質問に対してCTS Labsは回答していません。

脆弱性は本当に存在?

 最初にWhite Paperに目を通した時、技術的な詳細が全く書かれてないことに驚きました。

 MeltdownとSpectreのWhite Paperを以前読んだのですが、再現環境や脆弱性を引き起こすソースコードの例などが書かれていました。しかし、今回のWhite Paperではそれが無いのです。

 脆弱性が本当は存在しないのではないかと疑ったのですが、セキュリティ専門家のDan Guido氏がその存在を肯定しています。

 Dan Guido氏はCTS Labsから技術詳細を含む報告書を受け取り、脆弱性が存在していることをツイートで明かしています。

 技術詳細を含む報告書はAMDだけでなくMicrosoftなども受け取っており、今のところ脆弱性を否定する声明は出ていないため、その存在自体は本物のようです。

 Dan Guido氏が詳細な報告書を読めた理由は、1週間前にCTS Labsから依頼があったためです。その際に「公開にはベンダー(AMD)と議論するのが一般的」、「脆弱性をCERT(コンピューターセキュリティ対応組織)に報告することを推奨する」と返答したそうですが、少なくとも前者は守られていません(CERTの方は不明)。

 また、White Paperでは基本的にどの脆弱性も有効な軽減策は示されていません。あっても「不正なBIOSのアップデートを防ぐ」、「既知の軽減策はない」、「(チップの)リコールの可能性がある」などの軽減策にならないようなものがほとんどです。

 そもそも、AMDや他のセキュリティ研究者と協力せずCTS Labs単独で調査をしているので、有効な軽減策が示せるはずがありません。むしろ、まともな軽減策を示す気がなかったように見えます。

脆弱性の名前に対する悪意

 脆弱性の名前を日本語に翻訳してみました。

脆弱性の名前 日本語訳
MASTERKEY マスターキー
RYZENFALL Ryzenの転落
FALLOUT 放射性降下物
CHIMERA 合成生物

 注目したいのは”FALLOUT”です。

 ”FALLOUT”という言葉は、核戦争後を舞台とするビデオゲームのFalloutシリーズで有名だと思います。

 ちなみに、”fall out”と空白が入ると「外に落ちる」、「仲違いする」などの意味になります。しかし、White Paperでは全て”FALLOUT”のつづりだったので、「放射性降下物」が正しい訳だと思われます。

 これは私の想像になりますが、Intel製CPUの脆弱性であるMeltdownと対比するために付けたのではないでしょうか。Meltdownの日本語訳は「原子炉の炉心融解」です。

 FALLOUTの脆弱性の内容は、ブートローダーの欠陥により保護されたメモリ領域へのアクセスなどが可能になるものです。「放射性降下物」の名前に適する内容ではないように思えます。”fall out”の方の意味でもピンときません。

 そもそも、今回の脆弱性の名前からネーミングセンスは一切感じられません。

 ”RYZENFALL”にしてもそうです。私が知る限り、脆弱性の名前に企業や製品の名前を冠するものはなかったはずです。

 なお、Meltdownの名前には「プログラムとOSの本来あるべき境界が消え、甚大な被害をもたらすから」と言う命名理由が存在します。

 さて、今回見つかった脆弱性にその様な命名理由が存在したのでしょうか。私にはさっぱり分かりません。

CTS Labsが怪しい

 CTS Labsはサイバーセキュリティの調査やコンサルタントを行うイスラエルの企業です。実はこの企業はペーパーカンパニーではないかと言う疑惑があります。

 このホームページが現在のデザインで作られたのは2018年1月17日以降のことです(WayBackMachineで確認)。少なくとも2017年には存在しなかったようです。

 CTS Labsは今回の脆弱性に関するインタビュー動画をYoutubeに上げています。それが上の動画です。

 ここでもある疑問点がソーシャルブックマークサイトであるredditで取り上げられています。それは、オフィスの映像がクロマキー合成で作られているている点です。

AMD Flawsのインタビュー動画内のオフィスと合成元画像の比較

AMD Flawsのインタビュー動画内のオフィスと合成元画像の比較

 オフィスの見栄えをよく見せたかったと言うことも出来ますが、オフィス自体が本当に存在するのか疑わしくなってしまいます。

 また、セキュリティを扱う企業なのにホームページはHTTPSではなくHTTPです。これは非常に細かい指摘ですが、セキュリティを軽視しているように見えてしまいます。そこまで頭が回らなかったのか、HTTPSにお金をかけたくなかったのか、どちらでしょうか。

なぜ動画が存在?

 脆弱性が公開された時点で概要動画とインタビュー動画が存在することがそもそも変です。少なくとも過去に動画を準備して一般公開した脆弱性はなかったはずです。

 なぜなら、脆弱性を発見する研究者の仕事は、一般向けに分かりやすく説明することが仕事ではないからです。彼らの仕事は発見した脆弱性の詳細をまとめ、影響範囲、対策方法などを考えることです。

 分かりやすく説明する仕事は主にITジャーナリストの仕事です。文章で説明するまでなら研究者も行うかもしれませんが、動画まで作ってしまうのは何らかの意図があるとしか思えません。

 先ほど紹介したインタビュー動画では、わざわざ防衛機関や病院、銀行などを例に上げ、今回の脆弱性の影響範囲と深刻さを語っています。

 YoutubeにアップロードされているCTS Labsの動画も今回の脆弱性に関する2件だけです。なぜCTS Labs自身を紹介する動画など他には存在しないのでしょうか。

早すぎる発表は功名心のため?

 当初、この脆弱性の公表はAMDの評価を下げる事が目的だろうと考えていました。確かにそれが一番可能性が高いです。しかし、私には功名心にはやった者達の暴走と言う気がしてきました。

 公開書簡の中で今回の脆弱性を見つけた経緯が書かれています。順番に並べると次の様になります。

  1. 1年前、ASMedia製チップの調査をしていた
  2. チップに製造用バックドアを発見
  3. AMDはチップセットをASMediaにアウトソーシングしてる事に気付く
  4. Ryzen PCを購入して調べてみよう
  5. ASMediaチップ経由でAMDチップセットがフルコントロール出来た
  6. もっとAMDについて調べてみよう
  7. Ryzenの脆弱性を次々発見

 まず、ASMedia製チップにバックドアを見つけた時に報告しておけと突っ込みたくなります。そうしておけば、被害を最小限に食い止められていたかもしれません。

 今回の脆弱性はRyzenを狙い撃ちにしたものにしか見えませんでしたが、この経緯を知ると初めから狙い撃ちにしていたのですから当然です。

 また、誰も知らない脆弱性を見つけたいと言う欲求にかられて突き進んでいるように思えます。

 調査完了後、自分たちの手柄を「どうだすごいだろう」と見せびらかすため、企業の体裁を整え、立派なオフィス画像を背景に動画も作り、華々しく公開しようと考えたのかもしれません。そのためには90日ルールは邪魔だったのです。脆弱性の名前に対する悪意以外はこれで説明が付きます。

 Intelの陰謀だとか、株価操作が目的だとか色々と騒がれていますが、意外とこの予想が当たっているのかもしれません。さて真実はどうなのでしょうか?