米Google(グーグル)は2022年5月、企業向けセキュリティー関連の新しい施策を2つ発表した。1つは「コンフィデンシャルコンピューティング」に関する米AMDとの連携強化。もう1つはオープンソースソフトウエア(OSS)のセキュリティー強化版をグーグルが開発してクラウド顧客に提供するというものだ。
コンフィデンシャルコンピューティングとは、プロセッサーが搭載するセキュリティー機能を使って仮想マシン(VM)のメモリーのデータを暗号化する技術だ。これまでも主要なパブリッククラウドにおいては、VMのストレージに保存したデータや、VMとストレージ間などで転送されるデータについては暗号化されていたが、メモリー上のデータは暗号化されていなかった。
それに対してコンフィデンシャルコンピューティングでは、データがメモリー上にあってプロセッサーが処理している間もデータが暗号化される。そのためハイパーバイザーなどVMの下で動いているソフトウエアにセキュリティー脆弱性があっても、ユーザーのデータは読み出せない。同様にパブリッククラウドの運営側であってもデータは読み出せない。
AMDのファームウエア、ソースコードもチェック
グーグルは2020年7月からGoogle Cloudで、AMDのサーバー向けプロセッサーEPYCが搭載するセキュリティー機能「AMD SEV(Secure Encrypted Virtualization)」を用いて、コンフィデンシャルコンピューティングが利用できるVMを提供している。
今回、グーグルとAMDが2022年5月10日に発表したのは、AMDがプロセッサーに実装してきたセキュリティー機能を、グーグルのセキュリティーチームである「Project Zero」とGoogle Cloudのセキュリティーチームがレビューして、その安全性を検証するとの取り組みだ。
Project ZeroのチームはAMDのセキュリティー機能であるSEVなどの仕様に加えて、セキュリティー機能を実現するためにAMDが開発したファームウエアのソースコードなどもチェックして安全性を検証した。プロセッサーメーカーが開発したファームウエアのソースコードを外部の企業が検証するのは珍しい。Project Zeroのチームは同日、AMDのセキュリティー機能を検証したホワイトペーパーも公表している。
グーグルが19個の問題を発見、AMDはすぐに修正
Project Zeroのチームが検証したのは、第3世代EPYCプロセッサー(開発コード名は「Milan」)のセキュリティー機能だ。第3世代EPYCプロセッサーには、新しいセキュリティー機能であるSEV-SNP(Secure Nested Paging)が追加されている。SEV-SNPは、サーバーハードウエアの物理現象(電源電流など)を観察してデータの在りかを推定する「サイドチャネル攻撃」を防御できる機能だ。実際にサイドチャネル攻撃を防御できるかどうか、物理的なテストなども加えてセキュリティーを検証した。
Project Zeroのチームが検証した結果、AMDのファームウエアなどに19点の問題を見つけたという。これらの問題の中には、ファームウエアのセキュリティー脆弱性が含まれており、悪用されるとメモリー上のデータが破壊される恐れがあった。既にAMDはグーグルから指摘された問題点を修正済みだ。