プロセッサのイベントや予測により、不正な操作(または不正なデータを含む正しい操作)が一時的に実行され、秘密チャネルを介してデータが漏洩する可能性がある。
演算が実行されてもプロセッサのアーキテクチャ状態にコミットされない場合、これは一般に「トランジェント」と呼ばれる。
これは一般にトランジェント実行と呼ばれる。
と呼ばれる。この動作は、プロセッサがある結果(分岐先など)を誤って予測した場合や、プロセッサイベント(分岐先など)が発生した場合に発生することがあります。
この動作は、(分岐先などの)結果をプロセッサが誤って予測した場合や、(例外やマイクロコード・アシストなどの)プロセッサ・イベントが発生した場合に発生します。
例外やマイクロコード・アシストなど)が、若い演算がすでに実行された後に処理された場合などです。
オペレーションが実行された後に処理されます。一時的に実行されるオペレーション
で観測可能な不一致(CWE-203)を示すことがあります。
[REF-1400]のようなデータ・キャッシュにおいて、観測可能な不一致(CWE-203)を示すことがある。この種の観測可能な不一致は
この種の観測可能な不一致は、タイミング解析や電力解析の技術を用いて検出・解析することができる。
技術を使って検出・分析することができます。
攻撃者は、過渡的に実行されたオペレーションに関する情報を推測することができる。例えば、攻撃者は
例えば、攻撃者は、これらの操作によってアクセスまたは使用された機密データを推測することができる。
操作によってアクセスまたは使用された機密データを推測できる可能性がある。
一時的な実行の弱点は、次の2つの方法のいずれかを使って悪用される可能性がある。
の2つの方法がある。第一の方法は、攻撃者がコード・シーケンスを生成し、それが実行されたときに秘密のチャネルを通じてデータを公開する方法である。
を生成する。
攻撃者はまた、一時的な実行を引き起こすことができなければならない。
をトリガーできなければならない)。一過性の実行の弱点の中には、攻撃者がアクセス可能な
攻撃者のプロセッサ・コンテキスト内でアクセス可能なデータのみを公開することができます。例えば
例えば、ソフトウェア・サンドボックス内でコードを実行する攻撃者は、一過性実行の弱点を利用して
一過性の実行弱点を使って、同じアドレス空間内のデータを公開することができる。
アドレス空間内のデータを暴露することができる。他の一時的な
他の一時的な実行の弱点は、アーキテクチャ的にアクセスできないデータを公開することができる。
つまり、ページテーブルや特権リングのようなハードウェアで強制された境界によって保護されたデータです。
つまり、ページテーブルや特権リングのようなハードウェアで強制された境界によって保護されているデータです。これらの弱点は
CWE-1421 の対象です。
つ目の悪用方法では、攻撃者はまず、被害者プログラム内のコードシーケンスを特定します。
攻撃者はまず、被害者プログラムのコードシーケンスを特定します。
攻撃者はまず、被害者プログラムのコードシーケンスを特定します。
プロセッサ・コンテキスト内でアーキテクチャ的にアクセス可能なデータを公開できるコード・シーケンスを特定する。例えば、攻撃者は被害者プログラムを検索する。
例えば、攻撃者は被害者プログラムを検索して、バウンズチェック・バイパス・シーケンスに似たコード・シーケンスを探します。
シーケンスに似たコードシーケンスを探すことができる(実証例 1 を参照)。もし攻撃者が
もし攻撃者が条件分岐の予測ミスを誘発し
もし攻撃者が条件分岐の予測ミスを引き起こし、境界外配列アクセスのインデックスに影響を与えることができれば、攻撃者は境界外データの値を推測できるかもしれない。
を推測することができる。
の値を推測することができる。
A processor event or prediction may allow incorrect operations (or correct operations with incorrect data) to execute transiently, potentially exposing data over a covert channel.
When operations execute but do not commit to the processor's
architectural state, this is commonly referred to as transient
execution. This behavior can occur when the processor mis-predicts an
outcome (such as a branch target), or when a processor event (such as
an exception or microcode assist, etc.) is handled after younger
operations have already executed. Operations that execute transiently
may exhibit observable discrepancies (CWE-203) in covert channels
[REF-1400] such as data caches. Observable discrepancies of this kind
can be detected and analyzed using timing or power analysis
techniques, which may allow an attacker to infer information about the
operations that executed transiently. For example, the attacker may be
able to infer confidential data that was accessed or used by those
operations.
Transient execution weaknesses may be exploited using one of two
methods. In the first method, the attacker generates a code sequence
that exposes data through a covert channel when it is executed
transiently (the attacker must also be able to trigger transient
execution). Some transient execution weaknesses can only expose data
that is accessible within the attacker's processor context. For
example, an attacker executing code in a software sandbox may be able
to use a transient execution weakness to expose data within the same
address space, but outside of the attacker's sandbox. Other transient
execution weaknesses can expose data that is architecturally
inaccessible, that is, data protected by hardware-enforced boundaries
such as page tables or privilege rings. These weaknesses are the
subject of CWE-1421.
In the second exploitation method, the attacker first identifies a
code sequence in a victim program that, when executed transiently, can
expose data that is architecturally accessible within the victim's
processor context. For instance, the attacker may search the victim
program for code sequences that resemble a bounds-check bypass
sequence (see Demonstrative Example 1). If the attacker can trigger a
mis-prediction of the conditional branch and influence the index of
the out-of-bounds array access, then the attacker may be able to infer
the value of out-of-bounds data by monitoring observable discrepancies
in a covert channel.