ゼファーネットのロゴ

TRRespassの調査によると、ローハンマリングは健在です

日付:

この問題が実際にどれほど危険であるかはよくわかりませんが、かなり前から見たバグの中で最も熱狂的な名前です。

TRレスパス is それはどのように知られています (可能な場合は、これらのRをロールバックしてください!)–または普通の古い CVE-2020-10255 私たちの間のランドラバータイプに。

不法侵入 想定されていないときに他人の財産に出入りする犯罪の正式名称です。

そしてTRRはの略です ターゲット行の更新、から保護するためにメモリチップ(RAM)のメーカーが近年使用している一連のハードウェア保護を説明するために使用される高レベルの用語 ロウハンマリング.

So TRレスパス 侵入を防ぐはずの低レベルの保護が存在しているにもかかわらず、RAM内のデータをいじくるためのロウハンマー処理を伴う一連のサイバーセキュリティトリックです。

ロウハンマリング 劇的であるが適切に名前が付けられた問題であり、RAMストレージセル(通常はシリコンチップ内の極小の電気コンデンサのグリッドとして構築される)が非常に小さいため、最近では近隣や近隣の影響を受けます。

これは、手紙を封印した封筒に住所を書くのと少し似ています。住所の単語の幽霊のような印象が封筒の内側の紙に衝突しています。

少し注意して、封筒に手紙の一部の外観を変更して読みにくくする方法や、重要な部分を永久的に変更する方法(小数点が不明瞭になる)で封筒に書き込む方法を理解する場合があります。番号のリストなど)。

Rowhammeringとの違いは、しかし、あなたがする必要がないということです 書きます 封筒に入れて、手紙に衝突させます。 読書 何度も何度もそれで十分です。

次に、手荒な攻撃では、アクセスすることがまったく想定されていないRAMを変更することができます(そのため、多少不自然な方法で書き込みを行っています)。これは、書き込み保護だけでは攻撃を防ぐのに十分ではないことを意味します。

一度にXNUMX行

必要となる膨大な数の個別の制御接続を単純化するために、ほとんどのRAMチップから一度にXNUMXビットだけを読み取ることはできません。

代わりに、個々のビットを格納するセルは、一度にXNUMXつの完全な行のみを読み取ることができる一連の行に配置されます。

DRAMチップを表すメモリセルの4×4グリッド

たとえば、上記のセルC3を読み取るには、行選択チップに行ワイヤー3に沿って電力を供給するように指示します。これにより、コンデンサーA3、B3、C3およびD3が列ワイヤーA、B、CおよびDに放電され、決定する値。 (電荷のないビットは0として読み取られます。電荷を1として格納していたビット。)

したがって、そのうちのXNUMXつだけを知る必要がある場合でも、XNUMXビットの値を取得します。

ちなみに、行を読み取ると、その値が放電されて本質的にワイプされるため、読み取りの直後に、抽出されたデータを行に保存して行を更新し、再びアクセスできるようにします。

また、いずれのセルの電荷も時間の経過とともにリークするため、使用されるかどうかに関係なく、すべての行を定期的に更新する必要があります。

RAM回路は、デフォルトで64ミリ秒ごとにこれを自動的に実行します(16秒あたり約1,000回、つまりXNUMX分あたりXNUMX回弱)。

そのため、この種のメモリチップはDRAMと呼ばれ、ダイナミックRAMの略称です。これは、通常の外部支援なしではその値を維持できないためです。

(SRAM、つまりスタティックRAMは、電源に接続されている限りその値を保持します。フラッシュRAMは、電源がオフになっていても、その値を無期限に保持します。)

リフレッシュの活用

この64ミリ秒のリフレッシュサイクルの問題のXNUMXつは、RAMの行が充電を失うか、XNUMXサイクルの間に破損した場合、その破損に気付かないことです。

そして、それがロウハンマリングの出番です。

64msで、XNUMXつのメモリ行に沿って膨大な数のメモリ読み取りをトリガーできます。これにより、十分な電磁干渉が発生し、その両側の行に格納されている値の一部が反転する可能性があります。

一般的なルールは、ハンマーをたくさん回すと、セルがその電荷をより長くリークしているほど、ビットフリップイベントが発生する可能性が高くなります。

あなたは、いわゆるものをすることさえできます 両面ロウハンマリング、プログラム内のどのメモリアドレスがチップのどの物理領域に格納されているかを調べ、ターゲット行の両側で同時に多くの電気的活動を誘発することで攻撃できると仮定します。

ヘッドフォンで講義を聞いているかのように考えてください。攻撃者が左耳に大量のオーディオノイズを加えることができると、講師の発言が聞き取りにくくなり、いくつかの単語を誤解する可能性さえあります。 両方の耳に同時に干渉を加える可能性がある場合は、さらに聞こえにくくなり、誤解がさらに大きくなります。

リスクを減らす

近年、手打ちのリスクを低減し、現実世界のメモリ結合攻撃を引き抜くのを困難にするために、多くの方法が浮上しています。

ロウハンマー対策には次のようなものがあります。

  • DRAMリフレッシュレートを上げる。 ビットが再充電されない時間が長くなるほど、オンチップ干渉によりフリップする可能性が高くなります。 しかし、DRAMの行のセルを再充電するには、ビット値を冗長に読み出して、強制的にリフレッシュします。 したがって、チップ全体のリフレッシュに費やされる時間は、通常のソフトウェアがチップを使用できない期間であるため、リフレッシュレートを上げるとパフォーマンスが低下します。
  • 権限のないソフトウェアがキャッシュされたデータをフラッシュするのを防ぎます。 同じメモリ位置を何度も読み取る場合、プロセッサは、キャッシュと呼ばれる超高速メモリの内部領域で最近使用された値を記憶しているはずです。 同じメモリ値を繰り返し読み取っても実際にはチップ自体にアクセスされることはないので、これによりロウハンマーのリスクが自然に減少します。 したがって、許可されていないプログラムが clflush CPU命令は、キャッシュをバイパスしてDRAMチップに直接アクセスするのを防ぎます。
  • 一部のシステムタイマーの精度を下げます。 ブラウザ内部で実行されるロウハンマー攻撃が発明されたため、Webサイトから直接提供されるJavaScriptによって起動される可能性があります。 しかし、これらの攻撃には非常に正確な計時が必要だったため、ブラウザメーカーはJavaScriptタイミング関数にランダムな不正確さを意図的に追加して、これらのトリックを阻止しました。 タイマーは、ゲームやその他の一般的なブラウザーベースのアプリには十分正確でしたが、攻撃者の攻撃には十分正確ではありませんでした。
  • チップ自体のターゲット行リフレッシュ(TRR)システム。 TRRは単純なアイデアです。チップ全体のメモリ行のリフレッシュレートを上げるのではなく、ハードウェアは過度にアクセスされている行を特定し、近くの行を早期にリフレッシュして、影響を受ける可能性を減らします。意図的に工夫されたビットフリップ。

言い換えれば、TRRはその名前が示すとおりに機能します。DRAMメモリ行がロウハンマー攻撃のターゲットであると思われる場合は、自動的に介入して通常よりも早くリフレッシュします。

そうすれば、ロウハンマーがXNUMXつのロウに時々発生する場合に備えて、常にすべてのロウのDRAMリフレッシュレートを上げる必要はありません。

そのため、TRRespassペーパーの著者は、過去42年間に製造されたXNUMXの異なるDRAMチップにおけるTRR緩和の有効性を測定することを目指しました。

彼らは知りたいと思った:

  • さまざまなベンダーが実際にTRRを実装する方法。 (標準的な手法はありません。使用される手法のほとんどは、チップベンダーによって正式に文書化されていません。)
  • 攻撃者がさまざまなTRR実装をだましてバイパスする方法。
  • 多くのチップにTRRが搭載されている場合でも、最近のロウハンマリング攻撃はどれほど効果的か。

私たちはあなたに仕事を任せます レポートの詳細、もしそうしたいのなら、かなり重いことになるので注意してください。多くの専門用語があり、その一部はしばらく説明されておらず、内容とポイントの作成はかなり反復的です(おそらく側面) -XNUMXつの異なる組織からXNUMX人の著者がいることによる影響)。

それにもかかわらず、研究者たちは、ハードウェアベースのTRR保護の存在にもかかわらず、テストした13個のチップのうち42個で、許可されていない、おそらく悪用可能なメモリの変更を引き起こすことができることを発見しました。

幸いなことに、すべてのベンダーのチップに対して機能する一般的な形式の攻撃は見つかりませんでした。通常、脆弱なチップごとに、異なる速度で解放される異なるパターンのメモリアクセスが必要でした。

数日おきにサーバーまたはラップトップのメモリチップを変更することはできませんが、これは、攻撃が成功するためには、最初にネットワークにかなりの「ハードウェアの偵察と調査」を行って攻撃する必要があることを示唆しています...

…その場合、彼らはおそらくロウハンマリングを使用する必要はありません。なぜなら、彼らはすでにあなたのネットワークに危険な足場をすでに持っているからです。

また、実際に攻撃が見られた場合、システムのさまざまなハードウェア設定の変更(確かにパフォーマンスが低下する可能性がある)は、詐欺師を苛立たせる効果的な方法である可能性があることも示唆しています。

何をするか?

幸いにも、ロウハンマーリングは広く知られ、広く研究されていますが、実際の攻撃では実際的な問題になっているようには見えません。

したがって、メモリの製造元が問題を完全に解決するまで、既存のラップトップ、サーバー、携帯電話の使用を停止する必要はありません。

しかし、問題の少なくとも一部は、すでに取得しているハードウェアからますます多くのパフォーマンスを引き出すための競争にかかっています。より高速なプロセッサは、これまで以上にメモリ行をより速く打つことができ、より大容量のRAMモジュールはいつでもハンマーするより多くの行。

前回お話ししたように、私たちはロウハンマリングについて報告しました:

[いつでも]機能とパフォーマンスを追加する-それが[メモリと処理能力の増加]か、GPUの携帯電話チップへの構築か、またはファンシーなグラフィックプログラミングライブラリのブラウザーへの追加かに関係なく、同時にセキュリティを低下させるリスクがあります。

それが発生した場合は、ビットをバックオフして、意図的にパフォーマンスを低下させてセキュリティを許容レベルに戻すことができます。

時々、私たちがアドバイスをたったXNUMX語に減らすかもしれないなら、 トレッドミルから降りても大丈夫です.


の図 DRAMセル 下のウィキメディアから作り直されました CC BY-SA-3.0.

最新のNaked Securityポッドキャスト

今すぐ聞く

下のサウンドウェーブをクリックしてドラッグし、ポッドキャストの任意のポイントにスキップします。 あなたもすることができます Soundcloudで直接聞く.

出典:https://nakedsecurity.sophos.com/2020/03/11/trrepass-research-reveals-rowhammering-is-alive-and-well/

スポット画像

最新のインテリジェンス

スポット画像