「メモリの安全性は40年近く問題になっており、コロンビアのコンピュータ科学者Simha Sethumadhavanによると、多くの解決策が提案されてきました。 「メモリの安全性は、ソフトウェアエンジニアとエンドユーザーの間で公平に負担を分散できないため、引き続き問題になると考えています。」
Sethumadhavanグループは、ほとんどのセキュリティ問題がコンピュータのメモリ内で発生していることに気づきました。具体的には、ポインタや意図的に破損したポインタを使用してプログラムを乗っ取ることができます。
同大学によると、メモリ攻撃を軽減するための現在の技術は、大量のエネルギーを消費するという。 エネルギー、システムのパフォーマンスに影響を与え、ソフトウェアが破損する可能性があります。
チームは、システムのパフォーマンスに過度の影響を与えることなくメモリを保護することに着手しました。
彼らの最初のソリューションは「ZeRØ」(ポインター整合性攻撃の下でのオーバーヘッドゼロの復元力のある操作)と呼ばれています。
ZeROは、命令セットに追加された一連のメモリ命令と、システムのコードおよびデータポインタを保護するメタデータエンコーディングスキームを備えています。
大学によると、システムのアーキテクチャにマイナーで簡単に追加できる変更が必要であり、プロセッサの速度が低下することはほとんどなく、攻撃を受けた場合でもシステムのクラッシュを回避できるとのことです。
少し侵襲的な防御(コンピューターのパフォーマンスの8%のオーバーヘッド)のために、チームはメモリエラーを検出するためのシステムを提案します。
これも名前が付けられています: 'No-FAT、'低オーバーヘッドメモリ安全性チェックのアーキテクチャサポート 'として説明されています。
コロンビアによれば、No-FATはファジングテストをスピードアップし、「開発者がシステムを構築するときにファジングを追加するのは非常に簡単です」。
これは、ソフトウェアで必要になるまでメモリを格納するためにさまざまなサイズのバケットを使用するメモリアロケータをビニングするというソフトウェアのトレンドに基づいています。 研究者は、ビニングメモリ割り当てをソフトウェアで使用すると、パフォーマンスにほとんど影響を与えることなくメモリセキュリティを実現でき、既存のソフトウェアと互換性があることを発見しました。
これらのプロジェクトは両方とも、最近のコンピュータアーキテクチャに関する国際シンポジウム(ISCA)で発表されました。
「これらのXNUMXつの論文で、私たちは負担の適切なバランスを見つけたと信じています」とSethumadhavanは言いました。
ISCAペーパーのプレプリントが利用可能です:
ZeRØ:ポインター整合性攻撃下でのオーバーヘッドゼロの復元力のある操作
No-FAT:低オーバーヘッドメモリ安全性チェックのアーキテクチャサポート