Cコードを全面的に rewrite しなくても、キャパビリティハードウェア上で動作させられる
CHERIのハイブリッドABIを使えば、Cコードを段階的にキャパビリティハードウェアへ移植できる。コンパイル方法、どこが壊れるか、そして codebase 全体を rewrite せずに修正する方法を解説する。
あなたには、Rustに rewrite…
5 posts
CHERIのハイブリッドABIを使えば、Cコードを段階的にキャパビリティハードウェアへ移植できる。コンパイル方法、どこが壊れるか、そして codebase 全体を rewrite せずに修正する方法を解説する。
あなたには、Rustに rewrite…
1970年代から、ハードウェアレベルでのメモリ安全性は可能だった。なぜケイパビリティ・アーキテクチャがフラット・メモリ・モデルに敗れ続けたのか、そしてなぜCHERIがついに状況を変えているのか。
CVEの70%はメモリ安全性の欠陥である。バッファオーバーフロー、use-after-free、二重解放。不正なJPEGからroot権限への横展開を可能にする、そういった種類の脆弱性だ。…
単一のCライブラリを隔離するためにコンテナを使うのは大げさすぎる。WebAssemblyにコンパイルし、WASIサンドボックス内で実行すれば、メモリ安全性、ケイパビリティベースのファイルシステムアクセス、クラッシュ封じ込めをDockerなしで実現できる。
Cライブラリ内でのたった一つのヌルポインタ参照が、アプリケーション全体をクラッシュさせることがある。そのライブラリがユーザー入力を解析したり、画像を展開したり、ネットワークプロトコルを扱うのであれば、一つの異常なパケットがクラッシュを引き起こす危険性がある。コンテナはこの問題を解決するが、一つの依存関係のためにDock…
ARM Memory Tagging ExtensionとGWP-ASanにより、最新のモバイルデバイスで本番環境のメモリ安全性検出が可能になった。その仕組みとトレードオフについて解説する。
あなたのスマートフォンは、本番環境でメモリ破損を検出できる。CIで実行する完全なインストルメンテーションを使うわけでも、すべてのアロケーションに適用するわけでもない。しかし、あなたのポケットの中のハードウェアはここ数年、必要なプリミティブを搭載して出荷されており、増え続ける本番アプリが静かにそれを有効にしている。…
CHERIは、すべてのポインタを境界付きcapabilityに変換するハードウェア拡張である。CPUレベルでバッファオーバーフローを阻止する仕組み、コスト、および実機での試用方法を解説する。
バッファオーバーフローは二十年間にわたりCWE Top…