CASEY CHIN; GETTY IMAGES

センサーやアラームに囲まれた宝物を泥棒が盗みたいとき、ときに電力の遮断という強行手段によって高価なセキュリティシステムへの電気の流れを断つ。ハッカーも似たような手法を使えることが、このほど明らかになった。電力の供給に干渉することで、インテルのチップに組み込まれたセキュリティ機構を破り、最も細心の注意を要する“秘密”を暴露するというハッキング手法だ。

ふたつの国際研究チームが発見したのは、ハッカーがインテルのチップの電圧を操作することで、「ソフトウェア・ガード・エクステンションズ（SGX）」と呼ばれるセキュリティ機構によって記録された情報を漏洩させる新たな手法である。デヴァイスのメモリーには、外部から侵入できないように設計された「エンクレーヴ」と呼ばれる隔離された領域があり、そこを狙ったものだ。

インテルは、この手法を研究チームが発見してから6カ月にわたって公表しないよう要請していた。そして問題が確認できたことから、この手法による攻撃を防ぐチップのファームウェアのアップデートを、12月10日（米国時間）に発表した。なお、この問題を発見した研究チームは、ひとつは英国のバーミンガム大学、ウィーンのグラーツ工科大学、ベルギーのルーヴェン・カトリック大学のチーム。もうひとつは、ドイツのダルムシュタット工科大学とカリフォルニア大学のチームである。

電圧低下によってチップにエラーを起こす

チームのひとつが「Plundervolt」と名づけたこの手法は、標的となるコンピューターに悪意のあるソフトウェアを仕掛けることで、インテルのチップに流れる電圧を一時的に下げる。チップの電圧を一時的に下げる手法は「アンダーヴォルティング」として知られており、一般のユーザーが用いれば、最大のパフォーマンスを必要としないときに消費電力を減らすことができる（同じように、高負荷のタスクをこなすためにプロセッサーを「オーヴァークロック」させることもできる）。

ところが、一時的にプロセッサーの電圧を25〜30パーセントほど低下させ、電圧が変化するタイミングに正確に合わせることによって、攻撃者は機密データを用いた処理の最中にチップにエラーを起こさせることができる。このエラーは、SGXによってつくられたエンクレーヴに記録された暗号鍵や生体データなどの機密データを晒してしまう危険性がある。

「メモリーへの記録にはチップの処理能力が必要になります」と、バーミンガム大学のコンピューター科学者であるフラヴィオ・ガルシアは言う。「このためCPUの電圧を下げることによって、一瞬にして処理の不具合を引き起こせるのです」。彼は同僚とともに、Plundervoltに関する研究をIEEEのシンポジウムで報告する予定だ。

研究者らは、電圧の変化を用いることで、「フォールト・インジェクション」または「ビット反転（ビットフリップ）」と呼ばれる現象を引き起こせることを発見した。これはSGXのエンクレーヴに記録された「1」を「0」に変えてしまうような手法である。研究者らは、この発見を悪用できることも示した。

「暗号解読処理をしているときにビットを反転させることができれば、ここからが興味深いところなのですが、秘密鍵を復号できるのです」と、ガルシアは言う。研究者らによると、暗号鍵のたった1つのビットを変えることで、多くの場合その効力を著しく弱めることができるという。こうして攻撃者は、暗号化されたデータを解読することも、暗号鍵そのものを手に入れることもできるようになる。共通鍵暗号方式「AES」による暗号化キーへの影響は、以下の動画で見ることができる。

また研究者らは、ビット反転を用いることでプロセッサーがデータを安全なSGXのエンクレーヴではなく、メモリーの保護されていない領域に書き込ませることが可能であることも示している。

セキュリティの“深刻な例外”

研究者らは、攻撃は正確に言えば簡単には実行できないことを認めている。攻撃を成功させるには、攻撃者は何らかの方法で標的となるコンピューターにマルウェアを仕掛けておく必要がある。それには管理者などのアカウントか、ルート権限が必要になる。しかしインテルは、SGXについて、この種のマルウェアに対しても機密データの破損や盗難を防げると謳ってきた。

研究者らは、こうしたインテルの“保証”について深刻な例外を示したのだと指摘する。「インテルはエンクレーヴについて、システム上のルート権限をもつユーザーからでさえ、演算データを保護できると説明しています」とバーミンガム大学の研究者キット・マードックは言う。「しかしわたしたちは、安全であるはずのエンクレーヴの内部においても、ビット反転を実行できるのです」

バーミンガム大学、グラーツ工科大学、ルーヴェン・カトリック大学の研究チームによる研究は、北京の清華大学とメリーランド大学の研究者のグループの発見に続くものだ。清華大学とメリーランド大学の研究者らが「VoltJockey」と呼ぶその技術は、Plundervoltとほぼ同様の手法で電圧を変化させ、プロセッサーのセキュリティを弱体化させる。ただし、インテルではなくARMのチップに重点を置いている。この手法はコンピュータ科学分野の国際学会であるACM（Association for Computing Machinery）のカンファレンスで、今月初旬に発表されている。

オーヴァークロックへの影響は不明

インテルのSGXを破ったのは、Plundervoltが最初というわけではない。極めて深刻なCPU脆弱性「Spectre」や「Foreshadow」などを用いた以前の攻撃は、どちらもインテルのチップの「投機的実行」と呼ばれる機能を利用したものである。ところがパッチの公開前は、場合によってはインテルのSGXによるエンクレーヴを突破することができた。

しかもグラーツ工科大学の研究者らは今年のはじめ、SGXのエンクレーヴの内部に自作のマルウェアを仕掛けることが可能であることも実証した。「リターン指向プログラミング（ROP：return-oriented programming）」と呼ばれる技術を用いることで、アンチウイルスソフトに発見されないようにしたのだ。

Plundervoltの研究者たちは昨年6月、今回の発見に関してインテルと接触した。そして、ダルムシュタット工科大学とカリフォルニア大学の研究者によるチームもまた、同じころにアンダーヴォルティングによる手法をインテルに報告している。インテルによると、VoltJockeyの研究チームはARMのチップに重点を置いた発表であったにもかかわらず、この問題について2カ月後にインテルに警告したという。

これらを受けてインテルは、チップのファームウェアのアップデートを12月10日（米国時間）に公表した。このアップデートは、標準設定でプロセッサーの電圧設定をロックすることで、アンダーヴォルトによる攻撃をブロックするものだ。

「インテルはシステムヴェンダーと協力して、電圧を標準設定に固定することで問題に対処するマイクロコードのアップデートを開発しました」と、インテルは公式ブログに投稿している。「この手法によって実際に起きた問題については、いまのところ把握していません。しかしいつものように、できるだけ早くセキュリティアップデートをインストールすることをお勧めします」

インテルは、意図的にCPUをオーヴァークロックしているユーザーがパッチを利用することで受ける影響については説明していない。しかし電圧のロックは、この機構を悪用して機密情報を漏洩させようとする攻撃を防ぐうえで欠かせない、健全なトレードオフなのかもしれない。

※『WIRED』によるハッキングに関連する記事はこちら。