論文の概要: Securing Mixed Rust with Hardware Capabilities
- arxiv url: http://arxiv.org/abs/2507.03344v1
- Date: Fri, 04 Jul 2025 07:12:43 GMT
- ステータス: 翻訳完了
- システム内更新日: 2025-07-08 15:46:34.69879
- Title: Securing Mixed Rust with Hardware Capabilities
- Title(参考訳): ハードウェア機能を備えた混合Rustのセキュア化
- Authors: Jason Zhijingcheng Yu, Fangqi Han, Kaustab Choudhury, Trevor E. Carlson, Prateek Saxena,
- Abstract要約: CapsLockは、マシンコードのレベルで動作し、混合コードの実行時にRustの原則違反を検出するセキュリティ執行機構である。
CapsLockは、最近の機能ベースのハードウェア抽象化に実装できるほどシンプルに保たれている。
- 参考スコア(独自算出の注目度): 12.52089113918087
- License: http://creativecommons.org/licenses/by-sa/4.0/
- Abstract: The Rust programming language enforces three basic Rust principles, namely ownership, borrowing, and AXM (Aliasing Xor Mutability) to prevent security bugs such as memory safety violations and data races. However, Rust projects often have mixed code, i.e., code that also uses unsafe Rust, FFI (Foreign Function Interfaces), and inline assembly for low-level control. The Rust compiler is unable to statically enforce Rust principles in mixed Rust code which can lead to many security vulnerabilities. In this paper, we propose CapsLock, a security enforcement mechanism that can run at the level of machine code and detect Rust principle violations at run-time in mixed code. CapsLock is kept simple enough to be implemented into recent capability-based hardware abstractions that provide low-cost spatial memory safety. CapsLock introduces a novel revoke-on-use abstraction for capability-based designs, wherein accessing a memory object via a capability implicitly invalidates certain other capabilities pointing to it, thereby also providing temporal memory safety automatically, without requiring software to explicitly specify such invalidation. Thus, CapsLock is the first mechanism capable of providing cross-language enforcement of Rust principles. We implemented a prototype of CapsLock on QEMU. Evaluation results show that CapsLock is highly compatible with existing Rust code (passing 99.7% of the built-in test cases of the 100 most popular crates) and flags Rust principle violations in real-world Rust projects that use FFI or inline assembly. We discovered 8 previously unknown bugs in such crates in our experiments.
- Abstract(参考訳): Rustプログラミング言語は、メモリ安全性違反やデータ競合などのセキュリティ上のバグを防止するために、オーナーシップ、借用、AXM(Aliasing Xor Mutability)という3つの基本的なRust原則を強制する。
しかしながら、Rustプロジェクトには、アンセーフなRust、FFI(Foreign Function Interfaces)、低レベルの制御のためのインラインアセンブリを使用するコードといった混合コードがあることが多い。
Rustコンパイラは、Rustの原則をRustの混合コードで静的に強制することはできないため、多くのセキュリティ脆弱性につながる可能性がある。
本稿では,マシンコードのレベルで動作し,混在コードの実行時にRustの原則違反を検出するセキュリティ執行機構であるCapsLockを提案する。
CapsLockは、コストの低い空間メモリの安全性を提供する、最近の機能ベースのハードウェア抽象化に実装できるほどシンプルに保たれている。
CapsLockは、機能ベースの設計のための新しいrevoke-on-use抽象化を導入し、機能によってメモリオブジェクトにアクセスすると、暗黙的にそれを指す他の機能を無効にする。
したがって、CapsLockはRustの原則を言語横断で適用できる最初のメカニズムである。
我々はQEMU上でCapsLockのプロトタイプを実装した。
評価結果によると、CapsLockは既存のRustコード(最も人気のある100のクレートの組み込みテストケースの99.7%をパス)と互換性が高く、FFIやインラインアセンブリを使用した現実のRustプロジェクトでRustの原則違反を警告している。
実験では、これらの木枠にこれまで知られていなかった8つのバグを発見しました。
関連論文リスト
- Decompiling Smart Contracts with a Large Language Model [51.49197239479266]
Etherscanの78,047,845のスマートコントラクトがデプロイされているにも関わらず(2025年5月26日現在)、わずか767,520 (1%)がオープンソースである。
この不透明さは、オンチェーンスマートコントラクトバイトコードの自動意味解析を必要とする。
バイトコードを可読でセマンティックに忠実なSolidityコードに変換する,先駆的な逆コンパイルパイプラインを導入する。
論文 参考訳(メタデータ) (2025-06-24T13:42:59Z) - Targeted Fuzzing for Unsafe Rust Code: Leveraging Selective Instrumentation [3.6968220664227633]
Rustは、ユーザビリティとセキュリティに焦点を当てた、有望なプログラミング言語である。
プログラマは、厳格なRustセキュリティポリシーに従わない、安全でないコードを書くことができる。
ファジィアが注目すべきプログラムのどの部分にフォーカスするかを決定するために、安全で安全なコードコンポーネントを自動的に検出する手法を提案する。
論文 参考訳(メタデータ) (2025-05-05T08:48:42Z) - CRUST-Bench: A Comprehensive Benchmark for C-to-safe-Rust Transpilation [63.23120252801889]
CRUST-Benchは100のCリポジトリのデータセットで、それぞれが安全なRustとテストケースで手書きのインターフェースとペアリングされている。
我々は、このタスクで最先端の大規模言語モデル(LLM)を評価し、安全で慣用的なRust生成が依然として難しい問題であることを確認した。
最高のパフォーマンスモデルであるOpenAI o1は、ワンショット設定で15タスクしか解決できない。
論文 参考訳(メタデータ) (2025-04-21T17:33:33Z) - ReF Decompile: Relabeling and Function Call Enhanced Decompile [50.86228893636785]
逆コンパイルの目標は、コンパイルされた低レベルコード(アセンブリコードなど)を高レベルプログラミング言語に変換することである。
このタスクは、脆弱性識別、マルウェア分析、レガシーソフトウェアマイグレーションなど、さまざまなリバースエンジニアリングアプリケーションをサポートする。
論文 参考訳(メタデータ) (2025-02-17T12:38:57Z) - Fast Summary-based Whole-program Analysis to Identify Unsafe Memory Accesses in Rust [23.0568924498396]
Rustは40年以上にわたって低レベルのソフトウェアに悩まされてきたメモリ安全性問題を解決する最も有望なシステムプログラミング言語の1つである。
アンセーフなRustコードと直接リンクされたアンセーフな外部ライブラリは、メモリ安全違反自体を導入するだけでなく、セーフなRustと同じモノリシックなアドレス空間で実行されるプログラム全体を侵害する可能性がある。
我々は、安全でないヒープの割り当てと、それらの安全でないヒープオブジェクトへのメモリアクセスの両方を識別するためのプログラム全体をプロトタイプ化した。
論文 参考訳(メタデータ) (2023-10-16T11:34:21Z) - Value Functions are Control Barrier Functions: Verification of Safe
Policies using Control Theory [46.85103495283037]
本稿では,制御理論から学習値関数への検証手法の適用方法を提案する。
我々は値関数と制御障壁関数の間の関係を確立する原定理を定式化する。
我々の研究は、RLベースの制御システムの汎用的でスケーラブルで検証可能な設計のための公式なフレームワークに向けた重要な一歩である。
論文 参考訳(メタデータ) (2023-06-06T21:41:31Z) - Unsafe's Betrayal: Abusing Unsafe Rust in Binary Reverse Engineering
toward Finding Memory-safety Bugs via Machine Learning [20.68333298047064]
Rustは、プログラミングにおけるメモリセーフなバグを避けるために、メモリセーフなメカニズムを提供する。
Rustのユーザビリティを高めるアンセーフコードは、メモリセーフなバグを見つけるための明確な場所を提供する。
これらの安全でないスポットは、マシンラーニングを介してRustバイナリコードで識別可能である、と私たちは主張しています。
論文 参考訳(メタデータ) (2022-10-31T19:32:18Z) - Safe Reinforcement Learning with Linear Function Approximation [48.75026009895308]
我々は、状態と行動の未知の線形コスト関数として安全を導入し、それは常に一定の閾値以下でなければならない。
次に,線形関数近似を用いたマルコフ決定過程(MDP)について,SLUCB-QVIおよびRSLUCB-QVIと呼ぶアルゴリズムを提案する。
SLUCB-QVI と RSLUCB-QVI は、Emphno safety violation で $tildemathcalOleft(kappasqrtd3H3Tright)$ regret, almost matching を達成した。
論文 参考訳(メタデータ) (2021-06-11T08:46:57Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。