論文の概要: "Against the Void": An Interview and Survey Study on How Rust Developers Use Unsafe Code
- arxiv url: http://arxiv.org/abs/2404.02230v2
- Date: Wed, 17 Apr 2024 18:15:58 GMT
- ステータス: 処理完了
- システム内更新日: 2024-04-19 20:20:09.182502
- Title: "Against the Void": An Interview and Survey Study on How Rust Developers Use Unsafe Code
- Title(参考訳): Against the Void": Rust開発者が安全でないコードを使う方法に関するインタビューと調査
- Authors: Ian McCormack, Tomas Dougan, Sam Estep, Hanan Hibshi, Jonathan Aldrich, Joshua Sunshine,
- Abstract要約: Rustは、エイリアスと変更性を制限することで安全性を保証する。
サイクリックエイリアスやマルチオペレーティングといった重要なデザインパターンは、これらの制限を回避しなければならない。
- 参考スコア(独自算出の注目度): 2.2463451968497425
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: The Rust programming language is an increasingly popular choice for systems programming, since it can statically guarantee memory safety without automatic garbage collection. Rust provides its safety guarantees by restricting aliasing and mutability, but many key design patterns, such as cyclic aliasing and multi-language interoperation, must bypass these restrictions. Rust's $\texttt{unsafe}$ keyword enables features that developers can use to implement these patterns, and the Rust ecosystem includes useful tools for validating whether $\texttt{unsafe}$ code is used correctly. However, it is unclear if these tools are adequate for all use cases. To understand developers' needs, we conducted a mixed-methods study consisting of semi-structured interviews followed by a survey. We interviewed 19 Rust developers and surveyed 160 developers$\unicode{x2013}$all of whom engaged with $\texttt{unsafe}$ code. We found that 77% of survey respondents and a majority of interview participants were motivated to use $\texttt{unsafe}$ code because they were unaware of a safe alternative. Developers typically followed best-practices such as minimizing and localizing their use of $\texttt{unsafe}$ code, but only 23% were always certain that their encapsulations were sound. Limited tooling support for inline assembly and foreign function calls prevented developers from validating $\texttt{unsafe}$ code, and differences between Rust and other languages made foreign functions difficult to encapsulate. Verification tools were underused, and developers rarely audited their dependencies. Our results indicate a pressing need for production-ready tools that can validate the most frequently used $\texttt{unsafe}$ features.
- Abstract(参考訳): Rustプログラミング言語は、自動ガベージコレクションなしで静的にメモリ安全性を保証できるため、システムプログラミングにおいて人気が高まっている。
Rustはエイリアスと変更性を制限することで安全性を保証するが、サイクリックエイリアスや多言語相互運用といった多くの重要なデザインパターンは、これらの制限を回避しなければならない。
Rustの$\texttt{unsafe}$キーワードは、開発者がこれらのパターンを実装するために使用できる機能を可能にし、Rustエコシステムには、$\texttt{unsafe}$コードが正しく使用されるかどうかを検証する便利なツールが含まれている。
しかし、これらのツールがすべてのユースケースに適切かどうかは不明である。
開発者のニーズを理解するため,半構造化インタビューと調査を行った。
我々は19人のRust開発者に対してインタビューを行い、160人の開発者を調査した。
調査回答者の77%とインタビュー参加者の大多数が、安全な代替案を知らなかったために、$\texttt{unsafe}$コードを使うことを動機付けていることがわかった。
開発者は通常、$\texttt{unsafe}$コードの使用を最小化し、ローカライズするといったベストプラクティスに従うが、カプセル化が健全であることを常に確信しているのはわずか23%だった。
インラインアセンブリと外部関数呼び出しの限定的なツーリングサポートにより、開発者は$\texttt{unsafe}$コードを検証することができなくなり、Rustと他の言語の違いにより、外部関数のカプセル化が困難になった。
検証ツールが不足していたため、開発者は依存関係を監査することはめったになかった。
我々の結果は、最も頻繁に使用される$\texttt{unsafe}$機能を検証することができる実運用対応ツールの必要性が迫っていることを示している。
関連論文リスト
- LongSafetyBench: Long-Context LLMs Struggle with Safety Issues [83.75506157823517]
長文言語モデルは安全上の懸念を示すことができる。
ほとんどの主流の長文モデルからの安全な応答の割合は50%以下である。
LongSafetyBenchは、長期コンテキスト言語モデルの安全性機能を評価するための貴重なベンチマークとして機能する。
論文 参考訳(メタデータ) (2024-11-11T11:57:37Z) - WildTeaming at Scale: From In-the-Wild Jailbreaks to (Adversarially) Safer Language Models [66.34505141027624]
我々は、WildTeamingを紹介した。これは自動LLM安全リチームフレームワークで、Wild-Chatbotインタラクションをマイニングし、新しいジェイルブレイク戦術の5.7Kのユニークなクラスタを発見する。
WildTeamingは、未確認のフロンティアLSMの脆弱性を明らかにし、最大4.6倍の多様性と敵の攻撃に成功した。
論文 参考訳(メタデータ) (2024-06-26T17:31:22Z) - Characterizing Unsafe Code Encapsulation In Real-world Rust Systems [2.285834282327349]
内部アンセーフは、システムソフトウェア開発においてRustコミュニティによって提唱される重要な設計パラダイムである。
Rustコンパイラは、安全でないコードを含む安全な関数の健全性を検証することができない。
安全でないコードの本質的な使用法とカプセル化をモデル化するための,新しいアンセーフティアイソレーショングラフを提案する。
論文 参考訳(メタデータ) (2024-06-12T06:59:51Z) - A Study of Undefined Behavior Across Foreign Function Boundaries in Rust Libraries [2.359557447960552]
Rustは、他の言語との相互運用に頻繁に使用される。
Miriは、これらのモデルに対してアプリケーションを検証できる唯一の動的解析ツールである。
Miriは外部機能をサポートしておらず、Rustエコシステムの中心に重要な正当性ギャップがあることを示唆している。
論文 参考訳(メタデータ) (2024-04-17T18:12:05Z) - On Prompt-Driven Safeguarding for Large Language Models [172.13943777203377]
表現空間では、入力クエリは通常、安全プロンプトによって「より高い拒絶」方向に移動される。
これらの知見に触発されて,安全性向上,すなわちDROの最適化手法を提案する。
安全性プロンプトを継続的かつトレーニング可能な埋め込みとして扱うことで、DROは、その有害性に応じて、クエリの表現を拒否方向に沿ってあるいは反対に移動させることを学ぶ。
論文 参考訳(メタデータ) (2024-01-31T17:28:24Z) - Static Deadlock Detection for Rust Programs [6.596623081054982]
Rustはスレッドとメモリの安全性を確保するために独自のオーナシップメカニズムに依存している。
Rustの新しい言語機能は、脆弱性検出に新たな課題をもたらす。
本稿では,Rustプログラムに適した静的デッドロック検出手法を提案する。
論文 参考訳(メタデータ) (2024-01-02T09:09:48Z) - All Languages Matter: On the Multilingual Safety of Large Language Models [96.47607891042523]
我々は、大規模言語モデル(LLM)のための最初の多言語安全ベンチマークを構築した。
XSafetyは、複数の言語ファミリーにまたがる10言語にわたる14種類の一般的な安全問題をカバーしている。
本稿では,ChatGPTの多言語安全性向上のための簡易かつ効果的なプロンプト手法を提案する。
論文 参考訳(メタデータ) (2023-10-02T05:23:34Z) - 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) - Online Safety Property Collection and Refinement for Safe Deep
Reinforcement Learning in Mapless Navigation [79.89605349842569]
オンラインプロパティのコレクション・リファインメント(CROP)フレームワークをトレーニング時にプロパティを設計するために導入する。
CROPは、安全でない相互作用を識別し、安全特性を形成するためにコストシグナルを使用する。
本手法をいくつかのロボットマップレスナビゲーションタスクで評価し,CROPで計算した違反量によって,従来のSafe DRL手法よりも高いリターンと低いリターンが得られることを示す。
論文 参考訳(メタデータ) (2023-02-13T21:19:36Z) - CodeLMSec Benchmark: Systematically Evaluating and Finding Security
Vulnerabilities in Black-Box Code Language Models [58.27254444280376]
自動コード生成のための大規模言語モデル(LLM)は、いくつかのプログラミングタスクにおいてブレークスルーを達成した。
これらのモデルのトレーニングデータは、通常、インターネット(例えばオープンソースのリポジトリから)から収集され、障害やセキュリティ上の脆弱性を含む可能性がある。
この不衛生なトレーニングデータは、言語モデルにこれらの脆弱性を学習させ、コード生成手順中にそれを伝播させる可能性がある。
論文 参考訳(メタデータ) (2023-02-08T11:54:07Z) - Breaking Type Safety in Go: An Empirical Study on the Usage of the
unsafe Package [3.548075273599941]
我々は,2,438のGoプロジェクトにおいて,安全でないパッケージの使用に関する大規模な研究を行った。
我々の調査によると、安全でないプロジェクトはGoプロジェクトの24%で使われており、主にオペレーティングシステムやCコードとの通信によって動機付けられています。
クラッシュするエラーや非決定的な振る舞いから、デプロイを制限するまで、安全でないプロジェクトによって直面する現実的な問題を報告します。
論文 参考訳(メタデータ) (2020-06-17T16:38:40Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。