チェック・ポイントは、Safe-Linking安全技術を提示しました

チェックポイント (ITセキュリティソリューションのグローバルプロバイダー) 数日前にリリースされた紹介 安全機構の 「セーフリンク」、 その エクスプロイトの作成を困難にします これは、malloc呼び出しを行うときに、割り当てられたバッファーへのポインターの定義または変更を操作します。

新しい«セーフリンク»メカニズム 脆弱性を悪用する可能性を完全にブロックするわけではありませんが、 最小限のオーバーヘッドで 特定のカテゴリのエクスプロイトの作成が複雑になる悪用されたバッファオーバーフローに加えて、メモリ内のヒープの場所に関する情報を引き起こす別の脆弱性を見つける必要があります。

Safe-Linking実装パッチは、Glibc(ptmalloc)、uClibc-NG(dlmalloc)、gperftools(tcmalloc)、およびGoogle TCMalloc用に準備されました。また、Chromiumの保護を最新化する提案もあります(2012年以降、Chromiumはすでにソリューションと統合されています。同じ問題)MaskPtr保護技術ですが、Checkpointのソリューションはより良いパフォーマンスを示しています)。

提案されたパッチは、Glibc 3.32の1.0.33月のリリースですでに配信が承認されており、Safe-Linkingはデフォルトで有効になります。 uClibc-NGでは、セキュアリンクのサポートがバージョンXNUMXに含まれており、デフォルトで有効になっています。 gperftools(古いtcmalloc)では、変更は受け入れられますが、将来のリリースでオプションとして提供される予定です。

TCMalloc開発者は、変更を受け入れることを拒否しました。c強力なパフォーマンスの成功と、すべてが正しく機能していることを定期的に確認するための高度なテストを追加する必要があります。

によって実行されたテスト チェックポイントエンジニアは、セーフリンク方式では追加のメモリ消費が発生しないことを示しました ヒープ操作を実行するときのパフォーマンスは、平均で0.02%しか低下せず、最悪の場合は1.5%低下します。

セーフリンクを有効にすると、free()を呼び出すたびに2〜3個の追加のアセンブラ命令が実行され、malloc()を呼び出すときに3〜4個の命令が実行されます。 初期化の開始とランダムな値の生成は必要ありません。

安全リンクは安全性を高めるためだけでなく使用することができます さまざまなヒープ実装のまた、データ構造に整合性チェックを追加するためのino これは、バッファの隣にある個別にリンクされたポインタのリストを使用します。

方法 実装は非常に簡単で、マクロを追加するだけで済みます そして、それをコードの次のブロックへのポインターに適用します(たとえば、Glibcの場合、コード内で変更されるのは数行だけです)。

この方法の本質は、ASLRアドレスランダム化メカニズム(mmap_base)からのランダムデータを適用して、Fast-BinsやTCacheなどの個別にリンクされたリストを保護することです。 リスト内の次の項目にポインタ値を適用する前に、メモリページの端に沿ってマスク変換とアライメントチェックが実行されます。 ポインタは、演算「(L >> PAGE_SHIFT)XOR(P)」の結​​果に置き換えられます。ここで、Pはポインタの値であり、Lはこのポインタが格納されているメモリ内の場所です。

ASLR(アドレス空間配置のランダム化)システムで使用される場合、ヒープのベースアドレスを持つLビットの一部には、Pをエンコードするためのキーとして使用されるランダム値が含まれています(12ビットのシフト操作によって抽出されます) 4096バイトのページの場合)。

そのような操作 エクスプロイトでポインタをキャプチャするリスクを軽減し、 ポインタは元の形式で保存されておらず、置き換えるためには、ヒープの場所に関する情報を知っている必要があります。

この方法は、部分的なポインタの再定義を使用する攻撃から保護するのに効果的です。 (低バイトシフト)、 ポインタの完全な書き換え (攻撃者のコードにリダイレクトします)そして、整列されていない方向にリストの位置を変更します。

例として、mallocでのセーフリンクの使用は、バッファオーバーフローによって引き起こされ、制御を可能にするPhilips HueBridgeスマートバックライトの同じ研究者によって最近発見された脆弱性CVE-2020-6007の悪用をブロックすることが示されていますデバイス。

出典 https://research.checkpoint.com


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:MiguelÁngelGatón
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。