KNOWLEDGE - COLUMN ナレッジ - コラム

【エバンジェリスト・ボイス】CPU物語 - サーバルームのファンの音 諸行無常の響きあり

関連するソリューション

システム開発

マネージドサービス(運用・保守)

サイバーセキュリティ

ID-Cross/クラウドサービス

業務改革

フェロー 関原 弘樹     顔写真2_1187x1313

今年も残すところあと一か月、ラストスパートの時期となりました。体調に気を付けて最後まで駆け抜けたいものです。

ちょっと古いニュースになりますが、今年の中盤に「コンシューマ向け x86CPU の市場」におけるシェア(販売数ベース)で AMD Intel を逆転した※ということをつい最近知りびっくりしました。
主な理由としては Intel の最新世代 CPU が品薄であることと、一昨年リリースした AMD のコンシューマ向け CPU Ryzen C/P (コスト / パフォーマンス)がこれまで好調であったことによるものだそうです。

画像①_662x708
※外部サイト: AMD CPU でインテルを大逆転、シェア 6 割乗せ

Intelのサプライ戦略におけるミスもあるとはいえ、 10 年ほど前は Intel が独禁法の適用を受けないためだけに生かされている※とまで言われた AMD がこの 2019 年に王者 Intel を上回るとは天地がひっくりかえったようなインパクトがあります。

※外部サイト: インテル、 AMD と独禁法違反訴訟などで全面和解

さて今回はこの快挙にちなんで AMD の「サーバ向け CPU 」と「 CPU のセキュリティ機能」についてみていきましょう。

■現在のCPU
最初に内容をご理解いただきやすくするために最初に現在の CPU についてちょっとお話します。

現在のパソコンやサーバに利用されている CPU のアーキテクチャ(ここでは命令のセットとお考えください)は Intel 1985 年に発表した i386 という CPU の流れをくむ x86 というものになります。

皆さんが一般的に使っている Windows Linux が動作する PC (パソコンという意味ではなく IBM”PC”/AT 互換機のことで一般的に今販売している Windows パソコン / サーバ / タブレットと Linux サーバ等が該当します。また現在の Mac もこの系列の CPU を採用しています。

かつては様々なアーキテクチャの CPU がありましたが、この x86 は基本となる命令セットにその後のトレンドで必要とされる命令が追加され、現在「携帯電話・スマートフォンや組み込み 以外 の分野」では主流として利用されていいます。

なお、追加された命令として代表的なものとしては
①マルチメディアや 3D 処理のため効率よく大量のデータに対して同一命令で演算可能な SIMD Single Instruction, Multiple Data )である MMX, 3DNow!, SSE AVX の各シリーズの命令セット
32bitCPU である x86 64bitOS (現行の Windows サーバ OS はすべて 64bitOS です※)に対応するべく開発されたが AMD64 x64, EM64Tとも呼ばれる)の命令セット
TLS で多用される共通鍵暗号方式である AES Advanced Encryption Standard )の演算を加速する AES-NI (AES instruction set) という命令
等が存在します。

※誤解を恐れず非常に簡単に説明すると 32bitCPU/OS は最大で一度に 2 進数 32 ケタのデータが扱え、 64bitCPU/OS は最大 64 桁のデータを扱えます。そのため 64bitCPU/OS の方が扱えるメモリサイズやディスクサイズが大きくなり、大量のデータを利用するプログラム上では性能が高くなります。
※外部サイト: x86

※外部サイト: AMD64 x64


ちなみに x86 以外で現在シェアを持つ CPU アーキテクチャとして 1990 年創業で、 2016 年ソフトバンクが買収した ARM ホールディングス傘下の事業会社 ARM が設計・ライセンスしている「 ARM アーキテクチャ」が存在します。

ARMアーキテクチャは低消費電力が持ち味でスマートフォンやコンシューマゲーム機、組み込みの機器で広く使われています が、 ARM 自身は CPU を製造しないので CPU 製造するベンダはIntel, Freescale, Renesas Electronics等他社 となっています。

※昔では考えられませんでしたが、今はx86とバイナリ互換のARM版のWindowsも存在するようです。
※外部サイト: ARM 版 Windows 10

画像②_301x443
出典: wikipedia.org

AMD の歴史
ここで、今回のコラムの主役となる AMD の歴史を少し。

その昔 =x386 が発表される以前、 1970 年代の AMD Advanced Micro Devices, Inc. )は Intel のセカンドソース CPU CPU の安定供給のためライセンスを受けて複数ベンダで製造されるコピー製品)を提供するベンダの一つでした。
その後、 Intel との契約問題を経て独自に開発した「 Intel 互換 CPU 」のビジネスを展開しますが一定のニッチ市場にとどまります。

Intel側が「 CPU とマザーボードインターフェイスに関する物理仕様」を知財で確保し、他者にライセンスしない方針をとった 1990 年代後半以降には AMD も再び路線変更を強いられます。

Intel PentiumII 向けインターフェイス Slot1  他の CPU ベンダにはライセンスしなかった

画像③_1918x774
※外部サイト: © Raimond Spekking / CC BY-SA 4.0 (via Wikimedia Commons), CC 表示 - 継承 4.0, 

しかし、ここでついに AMD K7 シリーズという「基本となる命令セット」が x86 と互換となる独自開発の CPU を市場に送り込み、その C/P が受け入れられることで一時的とはいえコンシューマ市場で Intel と五分のシェアを確保することに成功しました。
ここで現在の AMD の戦略と現在の業界ポジションが確立したといったところでしょうか。

AMDはこれを含めて 2 回ほど Intel のアーキテクチャ移行のミスに乗じてその牙城を切り崩しかけましたが、今年の逆転劇までは万年ナンバー 2 に甘んじていました。

AMD の最新サーバ向け CPU
この年末の x86 サーバ市場に目を向けると AMD がサーバベンダと連携し、 この秋発表した自社の最新サーバ向けCPU(第2世代EPYC) を搭載したエントリー・ミッドレンジ向けサーバのプロモーションを積極的に行っています。

2 世代 EPYC イメージ
画像④_1260x709
出典: AMD

AMD64という拡張命令セットで 64bitCPU の世界を切り開いた AMD 10 年以上前にもサーバ向け CPU Opteron 」を展開していましたが最終的にシステム構成をスケール出来た Intel の開発力の前に敗北しました。
しかし AMD は今回、この第 2 世代 EPYC 搭載サーバの シングルソケット版(つまりハイエンドのセグメントは除くがそれでも64コア搭載)に戦略的な価格を設定 し、 Intel CPU を搭載した同ランクの( Xeon )サーバと比較し、 C/P の点でダブルスコアに近い圧倒的なメリットがあることを訴求しています。(こちらでは未検証です)


■性能向上へのアプローチ
ここではなぜ第 2 世代 EPYC C/P がよいのかということについて AMD の資料から見ていきます。

前提として Intel 創業者のひとりゴードン・ムーアが 1965 年に論文化した ムーアの法則(半導体の集積率は1.5年で2倍のペースで進む。集積率が上がると同じサイズでトランジスタを多く搭載できるため、コストが変わらず性能をあげられる) も今は昔。

ここ数年 CPU のプロセスルール(ハードウェアロジックのサイズ)の微細化はリーク電流の影響(小さいスペースにトランジスタを詰め込むと回路間で常時電流が漏れ出すので消費電力を制御できなくなり、それに伴う発熱をコントロールできなくなる) 10nm 前後(このサイズの基準は各ファブ = 工場により異なる)で足踏みしている現実があります。


AMDはここでライバル Intel が苦戦していることを逆手に取り、同社最新 CPU である 第 2 世代 EPYC では以下のようなハイブリッド構成が採用しました。

CPU コアのダイ※のみを高コストだが高性能で小面積に集積可能な最先端のプロセスルール( AMD の製造委託先 TSMC の基準による 7nm ※)で設計・製造
②メモリコントローラ +I/O コントローラや AMD Secure Processor(後述のセキュリティチップ 等の特定の機能は CPU コアから外出しにされた上、 1 世代前のコストが安いプロセスルール(おそらく GlobalFoundries ラインを転用した 14nm )で設計・製造
③「①」最大 8 個と「②」 1 個をまとめて一つの CPU としてパッケージングし販売
#メモリコントローラ(DRAMへのアクセス機能)が外付けだと接続に広帯域が必要ですが他コアにつながるメモリにアクセスした際の応答性能が向上します。

1 つのダイ(単一チップ)あたり 8 コア内蔵×最大 8 ダイ =1 ソケットあたり最大 64 コアを搭載可能
※外部サイト: AMD 次世代「 Zen 2 」「 Navi 」チップを TSMC で製造へ。 GlobalFoundries 7nm プロセス開発を無期延期



2 世代 EPYC アーキテクチャイメージ

画像⑤_1261x710
出典: AMD


AMDではこれらの手法により最新 CPU である第 2 世代 EPYC を高性能かつ安価で提供することが可能と主張していますが、見る限りロジック的には問題ないように思えます。あとはこれまでの AMD になかった実績でしょうか。

■これまでの CPU のセキュリティ機能
このセクションでは、まずこれまでの CPU + チップセット)が持っているセキュリティ機能についてピックアップしていきます。

もっとも汎用的で重要なものは CPUのリング保護機能 ですね。
これは OS 上の権限と密接に関連するもので、簡単にいうと「カーネルモードのプロセス(デバイスドライバや OS が実行するプログラム)は Ring0 の高い権限で」「ユーザモードのプロセス(ユーザが実行するプログラム)は Ring3 の低い権限で」というように実行するプログラムにより、 CPU レベルでレジスタやメモリ等のリソースへのアクセス権を強制するものです。

このアクセス権の強制により、 OS 全体を制御されるプロセスが使うリソースが個々のユーザが実行させるプロセスから隠蔽※されることになり、セキュリティが担保されるという原理になります。

※例えば 2 つの仮想マシンを立てているサーバ上で仮想マシンから OS が利用するメモリ空間や他の仮想マシンのメモリ空間が覗けない等…

この仕組みはそれなりにオーバーヘッドもあり、実行するプロセスのパフォーマンスとトレードオフになるため、近年仮想化への対応やパフォーマンスへの改善のための仕組みが脆弱性の温床となっています。
画像⑥_1024x739

※外部サイト: 英語版ウィキペディアの Hertzsprung さん , CC 表示 - 継承 3.0, 

 また、典型的なアプリケーションの脆弱性である、 バッファオーバーフロー(BoF)を防ぐメモリ保護機能の「NXビット((No eXecute bit)」 という機能も存在します。※ Intel での呼び名は「 XD ビット (eXecute Disable)

これは値をチェックしないよう設計されたアプリケーションの入力バッファを溢れさせてメモリに格納された重要な値を書き換えるという BoF の攻撃手法に対し、書き換えられてはいけないメモリ空間に書き込み禁止フラグを立てて防御するという仕組みの拡張機能として AMD64 CPU と一部の x86 CPU に実装されています。
そのほかには CPU ではないですがマザーボード上のチップセットに付随する機能の一つとして実装されている TPM(Trusted Platform Module) が挙げておきます。

TPMはハードディスク暗号化に使用する鍵の管理等で活躍しますが、内部で公開鍵 / 秘密鍵のペアを生成したり、秘密鍵を外部に漏らさない形でデジタル署名を生成することができる、耐タンパ性(チップ自体からデータを盗み出したり、チップ自体を改ざんしようとした場合に検知・防御が可能な性質)を持ったチップです。データ改ざん検知のためのハッシュ値の計算を行う機能も持っています。

AMD CPU のセキュリティ機能
さて、ここからは AMD 製である各世代の EPYC が共通して搭載するセキュリティ機能についてです。 といってもまだまだフィールドでのレビューは少ないので机上のお話となってしまいます。

AMD Secure Processor
画像⑦_1280x686

出典: AMD

前のセクションでも少しふれましたが、上記 AMD サイトの資料を見るとこの EPYC のパッケージ内には 「AMD Secure Processor」 というセキュリティチップが搭載されていることが確認できます。

セキュリティチップの実態は Arm Cortex-A5というARMアーキテクチャのCPUで、独自にセキュアOSが動いている と記載があります。
Arm Cortex-Axといえばスマホの CPU そのもの、さらにその上で独自 OS が動いているとなるとこれはもう Android のスマホが CPU の中に入っているというイメージでしょうか!?

EPYCではこのセキュリティチップが暗号鍵の生成から廃棄までのライフサイクル管理や暗号アルゴリズムの演算機能を持ち重要なセキュリティ機能を担うことになっています。

EPYCではこのように独立した ARM コアが x86CPU コアにセキュリティ機能を提供しているため、 PC 上のすべてのソフトウエアから技術的に隔離されているようです。
これはもう HSM((Hardware Security Module言い換えると強力で独立したTPM)※を内蔵 しているようなもので他の CPU にはないセキュリティレベルが期待できます。

※外部サイト: HSM とは

また、 EPYC2 に関して発表されている具体的な利点としてウェブサイト上に以下の 3 点がピックアップされており、 1) は現在全盛のブートシーケンスに割り込むマルウェアに対抗する機能、2 ) 3) はこれまでに Intel AMD CPU で指摘されていた Spectre 等のサイドチャネル攻撃による脆弱性に対抗する機能となっています。

--
1) ソフトウェアが破損することなく確実に起動
近年はやりのマルウェアによる BIOS やブート領域等のブートプロセスの改ざんを検知し、悪意のある変更を加えて OS がブートすることを防ぐ Secure Processor によるセキュアブートの機能。

一般にコンピュータシステムのブートは下から上への多段です。下のレベルで悪意のある変更があった場合後続フェーズではそれを検知したり修正したりすることは非常に難しい(無理)です。
EPYCの以前のバージョンでは脆弱性も見つかっていますが、それらの対策が完了したのでしょう。

ブートシーケンスイメージ

画像⑧_351x138

セキュアブートについてはこちらの記事もどうぞ
【エバンジェリスト・ボイス】ランサムウェア「 WannaCry 」亜種と UEFI セキュアブート

2) 内部の脆弱性を削減
SME AMD Secure Memory Encryption
Secure Processorに AES 暗号化エンジンが内蔵されているため、アプリケーションとそのパフォーマンスに影響を与えることなく DRAM 上で取り扱うデータを暗号化可能。
省電力ステート時に DRAM から HDD 暗号鍵等を取り出し HDD の内容を窃取するコールドブート攻撃等に対抗。

DRAM にロードされたデータの暗号化( C-bit によりセレクタブル)

画像⑨_312x348

出典: AMD

3) 仮想インフラストラクチャーとクラウド・インフラストラクチャーの保護
SEV (AMD Secure Encrypted Virtualization) v2
CPU上のみで認識可能な 500 個以上の個別かつブートごとに変更となる AES128bit の暗号鍵を使用してホスト DRAM 上の VM 関連ファイルを暗号化。
万一何らかの原因で他 VM からのエスケープやハイパーバイザーの乗っ取りが発生しても個々の VM のデータにはアクセス不能。

SEV セキュリティモデル( VM がハイパーバイザーから分離される)

画像⑩_396x297

出典: AMD

VM 関連ファイルの暗号化イメージ(暗号鍵は個別)

画像⑪_231x304

出典: AMD

以前発表された資料からの情報ですが、 VM だけでなくコンテナベースのアプリケーションの隔離もスコープに入っているようです。

コンテナのサンドボックス化イメージ

画像⑫_391x303
出典: AMD
--
クラウドやコンテナ等の仮想化基盤として利用されることがデフォルトである今のサーバ向け CPU のセキュリティ機能はここまで進化していた のですね。
データの保管中、送信中のみならずこれまで難しく現在重要なイシューであるデータ利用中のセキュリティが向上することは今後大きなメリットとして歓迎されるのではないかと思います。

ただ、セキュリティ機能といえ、機能が多いということはそれだけ新しい攻撃対象や脆弱性が増え、リスクが高まるということを意味します。
サイドチャネル攻撃を起点とした CPU の脆弱性探しが全盛の昨今、このあたりがウィークポイントにならないか少しだけ気になるところではあります。

CPUの脆弱性については松岡エバンジェリストの以下の記事もご覧ください。

【エバンジェリスト・ボイス】忘れたころに振り返る CPU の脆弱性

【エバンジェリスト・ボイス】 2018 CPU 脆弱性まとめ

【エバンジェリスト・ボイス】 CPU 脆弱性ウォッチ

■まとめ
競争があってこそ進歩があるという意味では今後の Intel AMD のシェア争いは大歓迎です。
Intelからの視点でいうと新ファブへの投資や新技術を使ったメモリ戦略のニュースが流れている中でその全体戦略が必ずしも理解できているわけではありませんが、 AMD がこれまでのポジションから脱却しリーダとなれるのかどうか一つのチャンスであると考えらえます。

CPUの源平合戦が -娑羅双樹の花の色、盛者必衰の理をあらはす。奢れる人も久しからず、ただ春の夜の夢のごとし。- となるのかどうか来年以降注目ですね。


2019年の私のコラムはこれで最後となります。来年もどうぞよろしくお願いいたします。

Hiroki Sekihara, CRISC, CISSP, CCSP, CEH, PMP, CCIE #14607 Emeritus,
AWS Certified Solutions Architect – Professional,

当サイトの内容、テキスト、画像等の転載・転記・使用する場合は問い合わせよりご連絡下さい。

エバンジェリストによるコラムやセミナー情報、
IDグループからのお知らせなどをメルマガでお届けしています。

メルマガ登録ボタン

関原 弘樹

株式会社インフォメーション・ディベロプメント フェロー / CISSP

この執筆者の記事一覧

関連するソリューション

システム開発

マネージドサービス(運用・保守)

サイバーセキュリティ

ID-Cross/クラウドサービス

業務改革

関連するナレッジ・コラム

ITエンジニアの現地作業 ミスを減らす!作業本番のポイントとは

NTTのIP網移行と、通信の未来とは

ITエンジニアの現地作業 ミスを減らす!事前準備のポイントとは