論文の概要: Characterizing Unsafe Code Encapsulation In Real-world Rust Systems
- arxiv url: http://arxiv.org/abs/2406.07936v1
- Date: Wed, 12 Jun 2024 06:59:51 GMT
- ステータス: 処理完了
- システム内更新日: 2024-06-13 18:05:32.519565
- Title: Characterizing Unsafe Code Encapsulation In Real-world Rust Systems
- Title(参考訳): 現実世界のRustシステムでアンセーフなコードカプセル化を特徴付ける
- Authors: Zihao Rao, Yiran Yang, Hui Xu,
- Abstract要約: 内部アンセーフは、システムソフトウェア開発においてRustコミュニティによって提唱される重要な設計パラダイムである。
Rustコンパイラは、安全でないコードを含む安全な関数の健全性を検証することができない。
安全でないコードの本質的な使用法とカプセル化をモデル化するための,新しいアンセーフティアイソレーショングラフを提案する。
- 参考スコア(独自算出の注目度): 2.285834282327349
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Interior unsafe is an essential design paradigm advocated by the Rust community in system software development. However, there is little official guidance or few best practices regarding how to encapsulate unsafe code and achieve interior unsafe. The problem is critical because the Rust compiler is incapable of verifying the soundness of a safe function containing unsafe code. Falsely declaring an interior unsafe function as safe may undermine the fundamental memory-safety guarantee of Rust. To address this issue, this paper studies how interior unsafe is achieved in practice, aiming to identify best practices to guide Rust code design concerning unsafe code encapsulation. Specifically, we propose a novel unsafety isolation graph to model the essential usage and encapsulation of unsafe code. Based on the graph, we further propose four major isolation types and nine structural patterns to split a graph into several small self-contained subgraphs. These subgraphs can serve as useful audit units for examining the soundness of unsafe code encapsulation. We applied our approach to four real-world Rust projects. The experimental results demonstrate that our method is effective in characterizing their encapsulation code. Additionally, we identified two common issues in these projects that could complicate soundness verification or incur unsoundness issues.
- Abstract(参考訳): 内部アンセーフは、システムソフトウェア開発においてRustコミュニティによって提唱される重要な設計パラダイムである。
しかし、安全でないコードをカプセル化し、内部を安全でないものにする方法に関して、公式なガイダンスやベストプラクティスはほとんどない。
問題は、Rustコンパイラが安全でないコードを含む安全な関数の健全性を検証することができないためである。
内部の安全でない機能を安全に宣言することは、Rustの基本的なメモリ安全保証を損なう可能性がある。
この問題に対処するために,本稿では,非安全コードのカプセル化に関するRustコード設計をガイドするベストプラクティスの特定を目的とした,インテリアアンセーフの実現方法について検討する。
具体的には、安全でないコードの本質的な使用とカプセル化をモデル化するための、新しいアンセーフティアイソレーショングラフを提案する。
グラフに基づいて、グラフをいくつかの小さな自己完結部分グラフに分割する4つの主要な分離型と9つの構造パターンを提案する。
これらのサブグラフは、安全でないコードのカプセル化の健全性を調べるのに有用な監査ユニットとして機能する。
私たちは4つの現実のRustプロジェクトにアプローチを適用しました。
実験結果から,本手法はカプセル化コードの特徴付けに有効であることが示された。
さらに、これらのプロジェクトでは、音の検証を複雑にしたり、不協和性の問題を引き起こす可能性のある2つの一般的な問題を特定しました。
関連論文リスト
- What Makes and Breaks Safety Fine-tuning? A Mechanistic Study [64.9691741899956]
安全性の微調整は、大規模な言語モデル(LLM)を、安全なデプロイメントのための人間の好みに合わせるのに役立つ。
安全でない入力の健全な側面をキャプチャする合成データ生成フレームワークを設計する。
これを用いて,3つのよく知られた安全微調整手法について検討する。
論文 参考訳(メタデータ) (2024-07-14T16:12:57Z) - A Mixed-Methods Study on the Implications of Unsafe Rust for Interoperation, Encapsulation, and Tooling [2.2463451968497425]
Rust開発者は、マルチ言語アプリケーション内の健全性を保証するための検証ツールが必要である。
開発者は、外部関数呼び出しの理由、現在使用しているツールの制限、安全でないコードを使用する動機、そしてそれをカプセル化する理由について調査する。
論文 参考訳(メタデータ) (2024-04-02T18:36:21Z) - CodeAttack: Revealing Safety Generalization Challenges of Large Language Models via Code Completion [117.178835165855]
本稿では,自然言語入力をコード入力に変換するフレームワークであるCodeAttackを紹介する。
我々の研究は、コード入力に対するこれらのモデルの新たな、普遍的な安全性の脆弱性を明らかにした。
CodeAttackと自然言語の分布ギャップが大きくなると、安全性の一般化が弱くなる。
論文 参考訳(メタデータ) (2024-03-12T17:55:38Z) - Static Deadlock Detection for Rust Programs [6.596623081054982]
Rustはスレッドとメモリの安全性を確保するために独自のオーナシップメカニズムに依存している。
Rustの新しい言語機能は、脆弱性検出に新たな課題をもたらす。
本稿では,Rustプログラムに適した静的デッドロック検出手法を提案する。
論文 参考訳(メタデータ) (2024-01-02T09:09:48Z) - 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) - 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) - Safety Shielding under Delayed Observation [59.86192283565134]
シールドは安全な実行を保証するコンストラクション・バイ・コンストラクション・インストラクタである。
シールドは、将来の干渉が最小化される可能性が最も高い方法で、安全な修正行動を選択するべきである。
現実的な運転シミュレータにおけるシールドの最初の統合について述べる。
論文 参考訳(メタデータ) (2023-07-05T10:06: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) - SafeText: A Benchmark for Exploring Physical Safety in Language Models [62.810902375154136]
テキスト生成およびコモンセンス推論タスク用に設計された各種モデルのコモンセンス物理安全性について検討する。
最先端の大規模言語モデルは、安全でないテキストの生成に影響を受けやすく、安全でないアドバイスを拒否するのが困難であることがわかった。
論文 参考訳(メタデータ) (2022-10-18T17:59:31Z) - Sample-Efficient Safety Assurances using Conformal Prediction [57.92013073974406]
早期警戒システムは、安全でない状況が差し迫ったときに警告を提供することができる。
安全性を確実に向上させるためには、これらの警告システムは証明可能な偽陰性率を持つべきである。
本稿では,共形予測と呼ばれる統計的推論手法とロボット・環境力学シミュレータを組み合わせたフレームワークを提案する。
論文 参考訳(メタデータ) (2021-09-28T23:00:30Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。