MENU

IBM ZおよびLinuxONEでコンフィデンシャル・コンピューティングを実現 ~Data at Rest、Data in Transit、Data in Useというデータの状態に応じたセキュリティ対策の全貌

Text=松浦 康太、北川 さやか、芝﨑 丈男(日本アイ・ビー・エム システムズ・エンジニアリング)


ビジネスでのコンピュータ利用は拡大の一途にある。あらゆるデータはコンピュータシステムに蓄えられ、それらのデータをもとにビジネスを有効に展開するDXの重要性は広く知られるようになった。さらに最近では、生成AI技術も目覚ましい進歩を遂げている。

これらには各企業が保有するデータが欠かせない。デジタルデータの利活用と、それに伴うセキュリティ対策の重要性は高まっている。

メインフレームは従来から基幹システムとして使用されており、可用性だけでなくセキュリティに対しても進歩を遂げてきた。IBMのメインフレームであるIBM ZおよびLinux専用機であるLinuxONEでは、その高可用性はもちろん、高いセキュリティ性能も特徴の1つとなっている。

図表1にあるとおり、IBMはメインフレームのセキュリティ機能へ継続的に開発・投資してきた。2019年には、コンフィデンシャル・コンピューティングと呼ばれる、新たなセキュリティ技術もそこに加わった。

図表1 IBMメインフレームのセキュリティ機能の歴史

本稿では、IBM ZのLinux環境(以下、zLinux)でのセキュリティについて、Data at Rest、Data in Transit、Data in Useという3つのデータの状態や、ゼロトラスト、3Tierモデルといった考え方から全体的に検討し、さらにそれぞれのセキュリティがzLinuxでどのように実現されているのかを見ていく。

そして最後に、これまで手薄だったData in Useのデータを保護する新機能、コンフィデンシャル・コンピューティングがzLinux環境でどのように実現されるのかを解説する。

3-Tierモデルから見る
Data at Rest、Data in Transit、Data in Use 

まず初めに、Data at Rest、Data in Transit、Data in Useはそれぞれどのような状態を指し、どのようなセキュリティ上の脅威に対応しているのだろうか。代表的なシステム構成の1つである3-Tier Modelを例にとって見ていきたい(図表2)。

図表2 3-Tier Modelの例

3層アーキテクチャとも呼ばれる3-Tier Modelはシステムを、ユーザーインターフェースを担う「プレゼンテーション層」、データの処理を行う「アプリケーション層」、データの保存と管理を行う「データ層」の3層に分ける考え方だ。

たとえばユーザーからインターネット経由でアクセスがあった場合、まずDMZがアクセスを受け付け、Webサーバーに転送する。eWBサーバーは処理要求をアプリケーションサーバーへ送り、さらにアプリケーションサーバーはデータベースへ、データベースはストレージ装置へ、と順に処理が行われていく。

この3-Tier Model上では、図表2にあるようにデバイス間の通信の際に盗聴や不正アクセスを受ける可能性や、ストレージからのデータの盗難、OSやアプリケーションの脆弱性を突いた攻撃、さらには管理者による不正操作など、さまざまなセキュリティリスクが考えらえる。

まずData at Restは、ストレージ装置や、ファイル、データベースなどの、保存されている状態のデータが該当する。この状態のデータに対しては、ブロックデバイスもしくはファイルシステムレベルでの暗号化、個々のファイルに対するアクセス権管理、データベースレベルでの暗号化、アクセス権管理などでセキュリティ対策を行うことが可能だ。

Data in Transitは、パブリックかプライベートかを問わず、ネットワーク上を流れているデータが該当する。こちらに対しては、VPNやSSL/TLS、sshと言った暗号化通信やVLANの利用と言った通信範囲の制限で安全性の確保が図られている。

最後のData in Useは実行中のアプリケーションが使用している、メモリ上のデータがこれに当たる。IBM ZのPR/SMはこの状態のデータに対しても考慮されており、他のLPARからメモリを参照されることはないが、クラウドの利用が一般的になってきた現在では、それだけでは不十分となってきた。

オンプレミスでのシステムでは信頼できる運用者を任命することで、このリスクを避けることができた。しかし昨今では、状況が一変している。

従来のオンプレミスのシステムに加え、クラウド上のシステムが積極的に活用されるようになってきた。パブリッククラウドは、運用をクラウドプロバイダーに任せることでコストを減らせるのがメリットなので、システムの運用を信頼できる自社やそれに準ずる人材に任せることはできない。

もちろん、クラウドの運用会社は基本的に社会的信頼の厚い大企業だが、それでも自社の手を離れて運用が行われる以上、信用だけでは済まされない。一般的にはこのようなリスクは受容されることが多いだろう。しかし、特にミッションクリティカルな業務では、このリスクがクラウド利用の障壁になることも十分に考えられる。

こういった領域のデータを保護する技術として今注目を集めているのが、コンフィデンシャル・コンピューティング技術である。コンフィデンシャル・コンピューティングを利用することで、利用者側はクラウドベンターの信用を求める必要がなくなり、またクラウドプロバイダーもその責任から逃れられる。

Data at Rest、Data in Transit、Data in Useの3つの状態をまとめると、図表3のようになる。

図表3  Data at Rest、Data in Transit、Data in Use

Data in Useであるコンフィデンシャル・コンピューティングについては、後半で詳しく触れることにする。

ゼロトラスト 

近年のセキュリティに対する取り組みとして、「ゼロトラスト」という考え方がある。

ゼロトラストとは従来に見られたように、社内といった信頼できる「内部」や、それ以外の信頼できない「外部」といった境界線を考えず、すべて信頼できない(=ゼロトラスト)ものと考え、セキュリティ対策を行うことである。

企業システムでは、外部クラウドの併用が当たり前になっており、そんな中で「内部」や「外部」といった境界線を設けることはセキュリティ対策を十分に行えない要因になりかねない。

ゼロトラストでは、信頼は暗黙の裡に与えられるものではなく、継続的に評価されなければならないという前提に基づき、システム外からだけでなくシステム内からの情報漏洩や不正侵入された場合にも備える考え方である。

NIST(アメリカ国立標準技術研究所)から発行されている特別刊行物『800-207 ゼロトラストアーキテクチャ』では、ゼロトラストは以下のように定義されている。

① すべてのデータソースとコンピューティングサービスはリソースと見なす。

② ネットワークの場所に関係なく、すべての通信が保護される。

③ 個々の組織のリソースへのアクセスは、セッションごとに許可される。

④ リソースへのアクセスは、クライアントID、アプリケーション/サービス、および要求元のアセットの監視可能な状態を含む動的ポリシーによって決定され、他の動作および環境属性が含まれる場合がある。

⑤ 組織は、所有および関連するすべての資産の整合性とセキュリティ体制を監視および測定する。

⑥ すべてのリソース認証と承認は動的であり、アクセスが許可される前に厳密に適用する。

⑦ 組織は資産、ネットワークインフラストラクチャ、および通信の現在の状態について可能な限り多くの情報を収集し、それを使用してセキュリティ体制を改善する。

上記のような考え方に基づき、従来からの境界防御型セキュリティ(ファイアウォールなど)から下記のようなセキュリティモデルへの変更が推奨されている。

・都度そのアクセスの妥当性を検証する
・ファイアウォール内でも安全とは考えず、すべての通信を暗号化する(Data in Transit)
・保存データを暗号化する(Data at Rest)

ゼロトラストセキュリティに即したシステムを実現するにはさまざまな考慮点があるが、ハードウェアを利用することでより強靭なシステムを構築できる。高いセキュリティが求められる基幹システムで多く使用されているIBM Zでは、さまざまなセキュリティ機能が提供されており、利用できるフィーチャーには以下のようなものがある。3-Tier Modelに当てはめると、それぞれの機能は図表4のように利用できる

CPACF (Central Processor Assist for Cryptographic Function)
Crypto Express
TKE Workstation
Secure Execution (KVM)
HiperSocket

図表4 IBM zSystemsで利用できるセキュリティ向けフィーチャー

CPACFはIBM zSystemsのCPUに統合されている暗号化サポートハードウェアであり(図表5)、追加フィーチャーなしに利用可能である(フィーチャーのオーダーは必要)。

図表5 IBM z15でのCPACF

Crypto Expressは暗号化に対するCPUワークロードのオフロード機能を提供する。3つのモード(アクセラレータモード、コプロセッサモード、EP11《PKCS#11》モード)があり、オフロードするワークロードは定義されるモードで異なる。

IBM ZでのData in Transit、Data in Useの保護

3-TierモデルでのData in Transitを考えた時、以下のような機能の利用が考えられる。

openSSL and libcrypto
IPsec
GSKit
Java 8 / JCE(Java Cryptography Extension)

これらの機能はデファクトともいえるセキュリティソフトウェア実装であり、それを利用するIBM Z上のプログラムからは意識しないでIBM Zのハードウェア機能を利用できる(図表6)。

図表6 zLinuxで使える暗号化機能

ハードウェアの機能を利用することで、パフォーマンスの向上や安全な鍵管理を実現できる。このほかにも、HiperSocketsと言った筐体内通信の機能を使用することで、外部への情報漏洩や不正アクセスを防げる。

データの保存(Data at Rest)えの暗号化は、検討するレイヤーごとで実装方法が異なる。以下はその一例である。

・dm-crypt(LUKS2)を使用したディスク全体の暗号化
 ―アプリケーションから見ると透過的にデータが暗号化される
・ext4を利用したファイルシステムの暗号化
 ―ファイル、ディレクトリ、シンボリックリンクのレベルで暗号化が可能
・NFS v4を利用したファイルシステムの暗号化
 ―ファイルの送受信時の暗号化
・SMB v3.1を利用したファイルシステムの暗号化
 ―ファイルの送受信時の暗号化
・Db2でのデータベース暗号化

現在ではディスク全体の暗号化はスマートフォンでも実施されており、システム構築の前提となっている場合がある。zLinuxでdm-crypt(LUKS2)を使用した場合、その復号に必要なキーはハードウェアで管理され、より安全に利用できる(図表7)。

図表7 LUKS2でのキーの関係性

ディスク暗号化のデメリットとしては、暗号化・復号化に伴うCPUコストの増加とI/Oパフォーマンスの低下が考えらえるが、ハードウェアのアシストがあることでそれを最小限に抑えられる(図表8図表9)。

図表8 dm-cryptoのスループット
図表9 dm-crypto使用時のCPU使用率


セキュリティリスクとの兼ね合いとはなるが、デメリットは最小限に抑えられるので利用を推奨したい。

近年は量子コンピュータが実用化されつつあり、従来と比べて大幅な計算能力の向上が期待されている。コンピュータでの暗号化は有効な時間内での解読が行えないような方式を選ぶことで強化しているが、量子コンピュータの実用化により、従来の暗号化方式では短時間で解読される危険性が出てきた。

こうした背景もあり、NIST(米国立標準技術研究所)は量子コンピュータでも容易に解読できないような暗号化方式(=耐量子計算機暗号)を選定し、標準化しようとしている。

現時点で標準化はドラフトが公開されており、2024年に公式発表の予定である。また、米国連邦政府は2026年頃までに耐量子暗号へ移行するロードマップを公開している。

ドラフト案で採用されている暗号化方式にはCRYSTALS-KYBER、CRYSTALS-DILITHIUM(ダイリチウム)、および SPHINCS+がある。それぞれのアルゴリズムはオープンに公開されており、すでにソフトウェアのライブラリとして提供も始まっている。

IBM z16およびLinuxONE Emperor4+Crypto Express8sでは、ハードウェア実装としてCRYSTALS- KYBERおよび CRYSTALS- DILITHIUMが利用できる。弱い暗号化方式で暗号化されている機密データが流出してしまった場合、現時点では解読できなくとも、数年後には有効時間内に解読されてしまう可能性がある。より頑強な暗号化方式の早期採用は、将来に対する安全の確保にもつながる。

セキュリティは単一機能で実現できるものではなく、複数の仕組みでシステム全体に係わるデザインに影響してくるものなので、デザイン検討当初から対象に含めておくべきものである。

IBM ZにおけるData in Useの保護

ここからは、アプリケーションが実行中に使用しているデータ(Data in Use)を保護するコンフィデンシャル・コンピューティング技術について紹介する。

コンフィデンシャル・コンピューティングは、情報セキュリティで「秘密の」や「機密の」といった意味で使われることが多いが、信頼性の高いクラウド環境のための技術としても理解されている。

「信頼できるクラウド環境」とは、データ機密性とセキュリティが保証された環境を意味する。セキュリティリスクは、外部からの攻撃やデータ漏洩、内部からの不正操作や権限乗っ取りなど、多岐にわたる。

オンプレミス・システムでは、ネットワーク環境やインターネットの使用状況に応じて、外部リスクへの対策が必要となるが、内部リスクに関しては、システム管理者の適切な教育と管理によりセキュリティを確保できる。

しかしクラウド環境では、外部リスクへの対策に加え、クラウドプロバイダーがシステムを運用することに伴う内部リスクへの対策が特に重要となる。クラウド利用者は、クラウドプロバイダーとの契約を通じてデータの機密性を担保することになるが、クラウド環境を真に信頼するためには、契約に依存するのではなく、技術的な保証が必要となる。

では、クラウド利用者は何を根拠にクラウドを信用できるのか?

ここでコンフィデンシャル・コンピューティングの役割が重要となる。コンフィデンシャル・コンピューティングは、ハードウェア機能により隔離された安全な環境を作り出し、メモリ上のデータ(Data in Use)を直接保護する技術である。

この「隔離された安全な環境」は、信頼できる実行環境(Trusted Execution Environment、略してTEE)やSecure Enclave(安全な飛び地)と称される。

TEEは、CPUを通常のエリアと安全に隔離されたエリアに分割する。広く使われているTEEの例としては、TrustZoneがある。これはARMプロセッサで利用可能なセキュリティメカニズムで、スマートフォンやNintendo Switchなどで活用されている。

ただし、TEE自体は隔離された実行環境を提供するにすぎない。隔離された環境をどのように保護するかという実装は、CPUアーキテクチャによってさまざまな方法が提供されている(図表10)。

図表10 各社によるコンフィデンシャル・コンピューティング技術の比較

IBM Secure Execution for Linux(以下、Secure Execution)は、IBM z15およびLinuxONE IIIで導入されたz/アーキテクチャセキュリティ技術であり、主に仮想化環境のセキュリティを強化することを目的としている。

Secure Executionは、ホストシステムが仮想マシンの状態やメモリコンテンツにアクセスすることを防ぎ、ホストが危険にさらされても、ゲストオペレーティングシステムに対する攻撃の起点として使用されることを防止する。ディスク暗号化、ファイルシステム暗号化、安全なネットワークプロトコルの使用など、Data at RestやData in Transitを補完する形でセキュリティを提供する。

Secure Executionの特徴は、以下のとおりである。

❶ テクノロジー・アシュアランス

Secure Executionでは、ハードウェア、ファームウェア、ハードウェアベンダーに対する信頼の根源(root of trust)を最小化する。つまり、利用者が無条件に信頼する範囲を最小にする。

IBM Zのハードウェア・ファームウェアを信頼することは前提であるが、ハードウェアとファームウェアは、クラウドの管理状況やホストOSのセキュリティリスク、クラウド管理者の悪意の有無に関わらず、メモリで処理中のデータを保護する。テクニカル・アシュアランスが担保されていれば、クラウドベンダーを信頼し、クラウドを信頼するための根拠となる。ユーザー組織内での説明責任を果たすための技術的な仕組みである。

❷ セキュリティとポータビリティの両立

Secure Executionは、安全性とデータ移行の柔軟性を同時に提供する。ユーザーは自社のデータセンターで稼働しているIBM ZやLinuxONE上のアプリケーションを、リスクを最小限に抑えつつ、スムーズにクラウド環境へ移行できる。

Secure Executionのポータビリティ機能は、企業が既存のインフラとクラウドリソースを効率的に統合し、柔軟かつ安全にビジネスを展開するための強力なツールである。オンプレミスからクラウドへの移行は、しばしばセキュリティ上の懸念を引き起こすが、Secure Executionはこの懸念を解消し、クラウドへの移行をより安全かつ信頼性の高いものにする。これにより、企業はクラウドの柔軟性とスケーラビリティの利点を享受しながらも、データセキュリティの面での妥協を避けられる。


Secure Executionは、KVMベースの仮想マシン環境を安全に保つ技術であり、IBM Zハードウェアとファームウェアが生成する暗号キーを用いてハイパーバイザの介入を遮断しつつ、仮想マシンを保護する。具体的には、ホストシステムの公開鍵と顧客のIBM Z/LinuxONE固有の秘密鍵によりLinuxイメージを安全に暗号化し、不正アクセスから保護する。

このプロセスの中核をなすのがUltravisorで、これはIBM Zが提供するセキュアなファームウェア機能である。

Ultravisorを使用することで、Secure Executionが有効なKVMゲストの全メモリを保護し、これをセキュア・メモリとして機能させることが可能になる。これにより、暗号化鍵の管理や機密データの処理など、通常はKVMホストが担うべき役割をUltravisorが安全に代行する。

Attestation(構成証明)はUltravisorが提供する重要な機能の1つであり、KVMゲストがSecure Executionモードで正しく実行されていることを保証する。この証明により、システム運用者は実行環境が信頼に足る証拠を持つことになり、セキュリティの保障を一層強化できる(図表11)。

図表11 Attestationの仕組み



このように、Secure Executionはハードウェアとソフトウェアの組み合わせを通じて、セキュアな運用を保証する強固なシステム基盤を提供する。

ここまで解説したSecure Executionを活用したコンフィデンシャル・コンピューティング環境は、IBM Cloudを通じて、LinuxONEを用いたクラウドサービスで使用可能である。このクラウドサービスはHyper Protect Virtual Servers for VPCと呼ばれる(Hyper Protect xxxは、IBM ZおよびLinuxONEを基盤とするクラウドサービスの名称である)。

仮想サーバー・インスタンス (VSI)を作成する際に使用するOSイメージとして、IBMから提供されているIBM Hyper Protect Container Runtime(HPCR)には、Secure Executionヘッダーファイルが含まれており、ユーザーは必要なコンテナ情報を入力するだけで、IBM Secure Executionを有効にした仮想サーバーの起動が可能となる。

Hyper Protect Virtual Servers for VPCは、図表12のようにIBM Cloudのカタログを通じて簡単にアクセスし利用開始できる。

図表12 IBM CloudでのHyper Protect Virtual Services for VPC注文方法

以上本稿では、zLinux環境でのData at Rest、Data in Transit、Data in Useというデータの状態に応じたセキュリティ対策の全貌を描き出し、IBM ZおよびLinuxONEでは、これらのデータ状態ごとにどのような保護が可能であるかを示した。

また、現代のセキュリティ環境におけるゼロトラストの概念に焦点を当て、IBM ZおよびLinuxONEの各種セキュリティ機能とそのデータ保護について探求した。

さらに、Secure Executionを利用したコンフィデンシャル・コンピューティング技術が、IBM Cloud上でIBM ZやLinuxONEを用いてどのように展開されているかを解説した。

データに対する重要性が増し、クラウドと言った社外システムの利用も進む中でセキュリティ対策はますます重要になる。これからシステムセキュリティを見直す際、検討の一助になれば幸いである。

著者
松浦 康太氏

日本アイ・ビー・エムシステムズエンジニアリング株式会社
クラウド・インテグレーション 2
ITスペシャリスト

2022年の入社以来、 Linux on IBM Zを中心にオープン基盤に関連する技術支援を担当している。

著者
北川 さやか氏

日本アイ・ビー・エムシステムズエンジニアリング株式会社
クラウド・インテグレーション 2
ITスペシャリスト

2016年よりLinux on IBM Z、z/VMのデリバリー・技術サポートを担当。

shibazaki

著者
芝﨑 丈男氏

日本アイ・ビー・エムシステムズエンジニアリング株式会社
クラウド・インテグレーション 2
ITスペシャリスト

2011年よりLinux on IBM Z、z/VMのデリバリー・技術サポートを担当。最近はansilbeなど自動化についても技術提供を行っている。

[i Magazine・IS magazine]