CWE一覧に戻る
CWE-1421

過渡実行時の共有マイクロアーキテクチャ構造における機密情報の露出

Exposure of Sensitive Information in Shared Microarchitectural Structures during Transient Execution
脆弱性 作成中
JA

プロセッサ・イベントにより、一時的な操作で、アーキテクチャ的に制限されたデータ(例えば、別のアドレスにある
アーキテクチャ的に制限されたデータ(例えば、別のアドレス空間)にアクセスすることができる。
例えば、CPUキャッシュなど)。
キャッシュなど)にアクセスすることができる。

多くの汎用プロセッサは、命令セット・アーキテクチャ(ISA)を備えている。
機能を備えている。これらの機能には
これらの機能には、メモリ・セグメンテーション、仮想メモリ、特権リング、信頼された実行環境、仮想マシンなどがある。
リング、信頼された実行環境、仮想マシンなどがある。
などがある。例えば、仮想メモリは各プロセスに独自の
アドレス空間を提供する。
プライベートデータにアクセスすることを防ぐ。これらの機能の多くは
ソフトウェア・コンポーネント間のセキュリティ境界を形成するために使用することができる。

コモディティ・プロセッサの多くも、マイクロアーキテクチャのリソースを共有しています。
また、多くのコモディティ・プロセッサーは、機密データである可能性のあるデータをキャッシュ(一時的に保存)するマイクロアーキテクチャ・リソースを共有しています。これらのリソースは
これらのリソースは、SMT スレッドや特権リングなど、プロセッサ・コンテキスト間で共有されることがあります。
これらのリソースは、SMT スレッドや特権リングなど、プロセッサ・コンテキスト間で共有されることがあります。

一時的な操作によって、共有マイクロアーキテクチャ・リソース内の ISA で保護されたデータへのアクセスが許可されると、それはユーザーの権利を侵害する可能性がある。
共有マイクロアーキテクチャ・リソース内の ISA で保護されたデータへのアクセスが一時的な操作によって許可される場合、これはバイパスされる ISA 機能に対するユーザーの期待に反する可能性があります。
を侵害する可能性があります。例えば
一過性の操作で、共有マイクロアーキテクチャ・リソース内の犠牲者のプライベート・データにアクセスできる場合
一過性のオペレーションが共有マイクロアーキテクチャ・リソース内の犠牲者のプライベート・データにアクセスできる場合、オペレーションのマイクロアーキテクチャ上の
の副作用がアクセスされたデータに対応する可能性があります。攻撃者が
攻撃者がこれらの一時的な操作をトリガーし、その副作用を観察することができる場合
攻撃者がこれらの一時的なオペレーションをトリガーし、その副作用を秘密チャネル[REF-1400]を通じて観察することができれば、攻撃者は被害者のプライベートデータを推測することができる。
被害者のプライベート・データを推測することができる。プライベート・データには、センシティブなプログラム・データ、OS/VMM データ
データ、OS/VMM データ、ページ・テーブル・データ(メモリ・アドレスなど)、システム・コンフィギュレーション・データ(デモ例を参照)などが考えられます。
システム・コンフィギュレーション・データ(実証例3を参照)、あるいは攻撃者が持っていないその他のデータも含まれる。
攻撃者がアクセスするために必要な権限を持っていないデータ。

EN

A processor event may allow transient operations to access
architecturally restricted data (for example, in another address
space) in a shared microarchitectural structure (for example, a CPU
cache), potentially exposing the data over a covert channel.

Many commodity processors have Instruction Set Architecture (ISA)
features that protect software components from one another. These
features can include memory segmentation, virtual memory, privilege
rings, trusted execution environments, and virtual machines, among
others. For example, virtual memory provides each process with its own
address space, which prevents processes from accessing each other's
private data. Many of these features can be used to form
hardware-enforced security boundaries between software components.

Many commodity processors also share microarchitectural resources that
cache (temporarily store) data, which may be confidential. These
resources may be shared across processor contexts, including across
SMT threads, privilege rings, or others.

When transient operations allow access to ISA-protected data in a
shared microarchitectural resource, this might violate users'
expectations of the ISA feature that is bypassed. For example, if
transient operations can access a victim's private data in a shared
microarchitectural resource, then the operations' microarchitectural
side effects may correspond to the accessed data. If an attacker can
trigger these transient operations and observe their side effects
through a covert channel [REF-1400], then the attacker may be able to infer the
victim's private data. Private data could include sensitive program
data, OS/VMM data, page table data (such as memory addresses), system
configuration data (see Demonstrative Example 3), or any other data
that the attacker does not have the required privileges to access.

Scope: Confidentiality / Impact: Read Memory
Hardware designers may choose to engineer the processor's
pipeline to prevent architecturally restricted data from being used by
operations that can execute transiently.
Hardware designers may choose not to share
microarchitectural resources that can contain sensitive data, such as
fill buffers and store buffers.
Hardware designers may choose to sanitize specific
microarchitectural state (for example, store buffers) when the
processor transitions to a different context, such as whenever a
system call is invoked. Alternatively, the hardware may expose
instruction(s) that allow software to sanitize microarchitectural
state according to the user or system administrator's threat
model. These mitigation approaches are similar to those that address
CWE-226; however, sanitizing microarchitectural state may not be the
optimal or best way to mitigate this weakness on every processor
design.
The hardware designer can attempt to prevent transient
execution from causing observable discrepancies in specific covert
channels.
Software architects may design software to enforce strong
isolation between different contexts. For example, kernel page table
isolation (KPTI) mitigates the Meltdown vulnerability [REF-1401] by
separating user-mode page tables from kernel-mode page tables, which
prevents user-mode processes from using Meltdown to transiently access
kernel memory [REF-1404].
If the weakness is exposed by a single instruction (or a
small set of instructions), then the compiler (or JIT, etc.) can be
configured to prevent the affected instruction(s) from being
generated, and instead generate an alternate sequence of instructions
that is not affected by the weakness.
Use software techniques (including the use of
serialization instructions) that are intended to reduce the number of
instructions that can be executed transiently after a processor event
or misprediction.
System software can mitigate this weakness by invoking
state-sanitizing operations when switching from one context to
another, according to the hardware vendor's recommendations.
Some systems may allow the user to disable (for example,
in the BIOS) sharing of the affected resource.
Some systems may allow the user to disable (for example,
in the BIOS) microarchitectural features that allow transient access
to architecturally restricted data.
The hardware vendor may provide a patch to sanitize the
affected shared microarchitectural state when the processor
transitions to a different context.
This kind of patch may not be feasible or
implementable for all processors or all weaknesses.
Processor designers, system software vendors, or other
agents may choose to restrict the ability of unprivileged software to
access to high-resolution timers that are commonly used to monitor
covert channels.
MITRE公式ページ — CWE-1421