論文の概要: Fast Summary-based Whole-program Analysis to Identify Unsafe Memory Accesses in Rust
- arxiv url: http://arxiv.org/abs/2310.10298v3
- Date: Sun, 26 May 2024 11:15:28 GMT
- ステータス: 処理完了
- システム内更新日: 2024-05-29 10:35:18.199741
- Title: Fast Summary-based Whole-program Analysis to Identify Unsafe Memory Accesses in Rust
- Title(参考訳): Rustの安全でないメモリアクセスを識別するための高速な概要ベース全プログラム解析
- Authors: Jie Zhou, Mingshen Sun, John Criswell,
- Abstract要約: Rustは40年以上にわたって低レベルのソフトウェアに悩まされてきたメモリ安全性問題を解決する最も有望なシステムプログラミング言語の1つである。
アンセーフなRustコードと直接リンクされたアンセーフな外部ライブラリは、メモリ安全違反自体を導入するだけでなく、セーフなRustと同じモノリシックなアドレス空間で実行されるプログラム全体を侵害する可能性がある。
我々は、安全でないヒープの割り当てと、それらの安全でないヒープオブジェクトへのメモリアクセスの両方を識別するためのプログラム全体をプロトタイプ化した。
- 参考スコア(独自算出の注目度): 23.0568924498396
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Rust is one of the most promising systems programming languages to fundamentally solve the memory safety issues that have plagued low-level software for over forty years. However, to accommodate the scenarios where Rust's type rules might be too restrictive for certain systems programming and where programmers opt for performance over security checks, Rust opens security escape hatches allowing writing unsafe source code or calling unsafe libraries. Consequently, unsafe Rust code and directly-linked unsafe foreign libraries may not only introduce memory safety violations themselves but also compromise the entire program as they run in the same monolithic address space as the safe Rust. This problem can be mitigated by isolating unsafe memory objects (those accessed by unsafe code) and sandboxing memory accesses to the unsafe memory. One category of prior work utilizes existing program analysis frameworks on LLVM IR to identify unsafe memory objects and accesses. However, they suffer the limitations of prolonged analysis time and low precision. In this paper, we tackled these two challenges using summary-based whole-program analysis on Rust's MIR. The summary-based analysis computes information on demand so as to save analysis time. Performing analysis on Rust's MIR exploits the rich high-level type information inherent to Rust, which is unavailable in LLVM IR. This manuscript is a preliminary study of ongoing research. We have prototyped a whole-program analysis for identifying both unsafe heap allocations and memory accesses to those unsafe heap objects. We reported the overhead and the efficacy of the analysis in this paper.
- Abstract(参考訳): Rustは40年以上にわたって低レベルのソフトウェアに悩まされてきたメモリ安全性の問題を根本的に解決する最も有望なシステムプログラミング言語の1つです。
しかし、Rustの型ルールが特定のシステムプログラミングに制限されすぎているシナリオと、プログラマがセキュリティチェックよりもパフォーマンスを選択するシナリオに対応するため、Rustは安全でないソースコードを書いたり、安全でないライブラリを呼び出したりするセキュリティ回避ハッチを開放する。
その結果、安全でないRustコードと直接リンクされていない外部ライブラリは、メモリ安全違反自体を導入するだけでなく、安全なRustと同じモノリシックなアドレス空間で実行されるプログラム全体を侵害する可能性がある。
この問題は、安全でないメモリオブジェクト(安全でないコードによってアクセスされる)を分離し、安全でないメモリへのアクセスをサンドボックス化することで緩和することができる。
以前の作業のひとつのカテゴリでは、LLVM IR上の既存のプログラム分析フレームワークを使用して、安全でないメモリオブジェクトとアクセスを識別している。
しかし、長い解析時間と低い精度の限界に悩まされている。
本稿では,RustのMIR上での要約に基づくプログラム全体の解析を用いて,これらの2つの課題に対処する。
要約に基づく分析は、分析時間を節約するために需要情報を算出する。
RustのMIRのパフォーマンス解析は、LLVM IRでは利用できないRust固有のリッチな高レベルな型情報を活用する。
この写本は、現在進行中の研究の予備研究である。
我々は、安全でないヒープの割り当てと、それらの安全でないヒープオブジェクトへのメモリアクセスの両方を識別するためのプログラム全体をプロトタイプ化した。
本稿では,解析のオーバーヘッドと有効性について報告する。
関連論文リスト
- KGym: A Platform and Dataset to Benchmark Large Language Models on Linux Kernel Crash Resolution [59.20933707301566]
大規模言語モデル(LLM)は、ますます現実的なソフトウェア工学(SE)タスクにおいて一貫して改善されている。
現実世界のソフトウェアスタックでは、Linuxカーネルのような基本的なシステムソフトウェアの開発にSEの取り組みが費やされています。
このような大規模システムレベルのソフトウェアを開発する際にMLモデルが有用かどうかを評価するため、kGymとkBenchを紹介する。
論文 参考訳(メタデータ) (2024-07-02T21:44:22Z) - Characterizing Unsafe Code Encapsulation In Real-world Rust Systems [2.285834282327349]
内部アンセーフは、システムソフトウェア開発においてRustコミュニティによって提唱される重要な設計パラダイムである。
Rustコンパイラは、安全でないコードを含む安全な関数の健全性を検証することができない。
安全でないコードの本質的な使用法とカプセル化をモデル化するための,新しいアンセーフティアイソレーショングラフを提案する。
論文 参考訳(メタデータ) (2024-06-12T06:59:51Z) - Bringing Rust to Safety-Critical Systems in Space [1.0742675209112622]
Rustは、バグ導入の可能性を劇的に削減し、より安全で安全なコードを生成することを目的としている。
この作業は、Rustで安全クリティカルな宇宙システムを開発するための一連のレコメンデーションを提供する。
論文 参考訳(メタデータ) (2024-05-28T12:48:47Z) - FoC: Figure out the Cryptographic Functions in Stripped Binaries with LLMs [54.27040631527217]
削除されたバイナリの暗号関数を抽出するFoCと呼ばれる新しいフレームワークを提案する。
FoC-BinLLMは、ROUGE-LスコアでChatGPTを14.61%上回った。
FoC-Simは52%高いRecall@1で過去のベストメソッドを上回っている。
論文 参考訳(メタデータ) (2024-03-27T09:45:33Z) - Static Deadlock Detection for Rust Programs [6.596623081054982]
Rustはスレッドとメモリの安全性を確保するために独自のオーナシップメカニズムに依存している。
Rustの新しい言語機能は、脆弱性検出に新たな課題をもたらす。
本稿では,Rustプログラムに適した静的デッドロック検出手法を提案する。
論文 参考訳(メタデータ) (2024-01-02T09:09:48Z) - Analysis of the Memorization and Generalization Capabilities of AI
Agents: Are Continual Learners Robust? [91.682459306359]
連続学習(CL)では、AIエージェントが動的環境下で非定常データストリームから学習する。
本稿では,過去の知識を維持しつつ,動的環境への堅牢な一般化を実現するための新しいCLフレームワークを提案する。
提案フレームワークの一般化と記憶性能を理論的に解析した。
論文 参考訳(メタデータ) (2023-09-18T21:00:01Z) - Is unsafe an Achilles' Heel? A Comprehensive Study of Safety
Requirements in Unsafe Rust Programming [4.981203415693332]
Rustは、効率性とメモリ安全性を重視した、新しく、強く型付けされたプログラミング言語である。
標準ライブラリの現在の安全でないAPIドキュメントには、一貫性や不十分さなど、さまざまなバリエーションがあった。
Rustのセキュリティを強化するために、ユーザに従うべき安全要件の体系的な記述をリストアップするために、安全でないAPIドキュメントを提案する。
論文 参考訳(メタデータ) (2023-08-09T08:16:10Z) - Safe Deep Reinforcement Learning by Verifying Task-Level Properties [84.64203221849648]
コスト関数は、安全深層強化学習(DRL)において一般的に用いられる。
このコストは通常、国家空間における政策決定のリスクの定量化が難しいため、指標関数として符号化される。
本稿では,ドメイン知識を用いて,そのような状態に近接するリスクを定量化するための代替手法について検討する。
論文 参考訳(メタデータ) (2023-02-20T15:24:06Z) - 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) - A first-order logic characterization of safety and co-safety languages [63.29821624186913]
有限の接頭辞が、ある単語が言語に属していないか、属していないかを確立するのに十分である安全で共同安全な言語は、モデル検査や反応合成のような問題の複雑さを下げる上で重要な役割を果たす。
本稿では,安全性とコセーフティ言語に関して,FO-TLOの断片であるSafetyFOと,その二重コセーフティについて述べる。
論文 参考訳(メタデータ) (2022-09-06T09:00:38Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。