論文の概要: A Study of Undefined Behavior Across Foreign Function Boundaries in Rust Libraries
- arxiv url: http://arxiv.org/abs/2404.11671v4
- Date: Tue, 13 Aug 2024 18:07:19 GMT
- ステータス: 処理完了
- システム内更新日: 2024-08-15 17:46:37.930500
- Title: A Study of Undefined Behavior Across Foreign Function Boundaries in Rust Libraries
- Title(参考訳): ラストライブラリにおける外部関数境界の未定義挙動に関する研究
- Authors: Ian McCormack, Joshua Sunshine, Jonathan Aldrich,
- Abstract要約: Rustは、他の言語との相互運用に頻繁に使用される。
Miriは、これらのモデルに対してアプリケーションを検証できる唯一の動的解析ツールである。
Miriは外部機能をサポートしておらず、Rustエコシステムの中心に重要な正当性ギャップがあることを示唆している。
- 参考スコア(独自算出の注目度): 2.359557447960552
- License: http://creativecommons.org/licenses/by/4.0/
- Abstract: Developers rely on the Rust programming language's static safety guarantees to write secure and performant applications. However, Rust is frequently used to interoperate with other languages which allow design patterns that conflict with Rust's aliasing models. Miri is the only dynamic analysis tool capable of validating applications against these models, but it does not support foreign functions, indicating that there may be a critical correctness gap at the heart of the Rust ecosystem. We conducted a large-scale evaluation of Rust libraries that call foreign functions to determine whether Miri's dynamic analyses remain useful in this context. We used Miri and an LLVM interpreter to jointly execute applications that call foreign functions, where we found 48 instances of undefined or undesired behavior. These include three bugs from libraries that had over 10,000 daily downloads on average during our observation period and one from a library maintained by the Rust Project. Many of the errors we found involved incompatible aliasing patterns, but Rust's latest Tree Borrows aliasing model was significantly more permissive than the earlier Stacked Borrows model. The Rust community must invest in new, production-ready tooling for multi-language applications to ensure that developers can detect these errors.
- Abstract(参考訳): 開発者はセキュアでパフォーマンスの高いアプリケーションを記述するために、Rust言語の静的安全性保証を頼りにしている。
しかしながら、Rustは、Rustのエイリアスモデルと矛盾するデザインパターンを許容する、他の言語との相互運用に頻繁に使用される。
Miriはこれらのモデルに対してアプリケーションを検証できる唯一の動的解析ツールだが、外部機能をサポートしていない。
そこで我々は,この文脈でMiriの動的解析が有用かどうかを判断するために,外部関数を呼び出すRustライブラリの大規模評価を行った。
MiriとLLVMインタプリタを使って外部関数を呼び出すアプリケーションを共同で実行しました。
その中には、観測期間中に平均1万回以上ダウンロードされたライブラリからの3つのバグと、Rustプロジェクトによってメンテナンスされたライブラリからの1つが含まれている。
しかしRustの最新のTree Borrowsエイリアスモデルは、以前のStacked Borrowsモデルよりもはるかに寛容だった。
Rustコミュニティは、開発者がこれらのエラーを検出できるように、複数言語アプリケーション用の新しいプロダクション対応ツールに投資する必要がある。
関連論文リスト
- ChatZero:Zero-shot Cross-Lingual Dialogue Generation via Pseudo-Target Language [53.8622516025736]
そこで本研究では,言語間符号切替方式に基づく,エンドツーエンドのゼロショット対話生成モデルChatZeroを提案する。
多言語DailyDialogとDSTC7-AVSDデータセットの実験は、ChatZeroが元のパフォーマンスの90%以上を達成することを示した。
論文 参考訳(メタデータ) (2024-08-16T13:11:53Z) - VERT: Verified Equivalent Rust Transpilation with Large Language Models as Few-Shot Learners [6.824327908701066]
Rustはメモリ安全性と低レベルのコントロールを組み合わせたプログラミング言語で、Cライクなパフォーマンスを提供する。
既存の作業はルールベースと大規模言語モデル(LLM)という2つのカテゴリに分類される。
私たちは、正式な正確性を保証する形で、可読性のあるRustトランスパイルを生成するツールであるVERTを紹介します。
論文 参考訳(メタデータ) (2024-04-29T16:45:03Z) - A Mixed-Methods Study on the Implications of Unsafe Rust for Interoperation, Encapsulation, and Tooling [2.2463451968497425]
Rust開発者は、マルチ言語アプリケーション内の健全性を保証するための検証ツールが必要である。
開発者は、外部関数呼び出しの理由、現在使用しているツールの制限、安全でないコードを使用する動機、そしてそれをカプセル化する理由について調査する。
論文 参考訳(メタデータ) (2024-04-02T18:36:21Z) - Demystifying Compiler Unstable Feature Usage and Impacts in the Rust
Ecosystem [6.742722083947134]
Rustコンパイラは、コンパイラ機能、構文、標準ライブラリのサポートを拡張するために、Rust不安定機能(RUF)を導入した。
RUFは削除され、依存パッケージにコンパイルエラーが導入される。
我々の調査によると、Rustエコシステムは1000種類のRUFを使用しており、少なくともパッケージバージョンの44%はRUFの影響を受けている。
広範囲にわたるRUFの影響を軽減するため, RUFコンパイル障害回復ツールの設計と実装を行う。
論文 参考訳(メタデータ) (2023-10-26T06:43:25Z) - Yuga: Automatically Detecting Lifetime Annotation Bugs in the Rust Language [15.164423552903571]
Rustプロジェクトでは、セキュリティ上の脆弱性が報告されている。
これらの脆弱性は、部分的には関数シグネチャの誤った終身アノテーションから生じます。
既存のツールはこれらのバグを検出するのに失敗する。
我々は,新たな静的解析ツールであるYugaを考案し,潜在的なライフタイムアノテーションのバグを検出する。
論文 参考訳(メタデータ) (2023-10-12T17:05:03Z) - Fixing Rust Compilation Errors using LLMs [2.1781086368581932]
Rustプログラミング言語は、C/C++のような従来の安全でない代替言語よりも、低レベルのシステムプログラミング言語に実行可能な選択肢として、自らを確立している。
本稿では,Large Language Models(LLMs)の創発的機能を活用し,Rustコンパイルエラーの修正を自動的に提案するRustAssistantというツールを提案する。
RustAssistantは、人気のあるオープンソースRustリポジトリの実際のコンパイルエラーに対して、約74%の驚くべきピーク精度を達成することができる。
論文 参考訳(メタデータ) (2023-08-09T18:30:27Z) - A Static Evaluation of Code Completion by Large Language Models [65.18008807383816]
単純なプログラミング問題に対するモデル生成コードの機能的正当性を評価するために,実行ベースベンチマークが提案されている。
プログラムを実行せずにエラーを検出するlinterのような静的解析ツールは、コード生成モデルを評価するために十分に研究されていない。
抽象構文木を利用して,Pythonのコード補完における静的エラーを定量化する静的評価フレームワークを提案する。
論文 参考訳(メタデータ) (2023-06-05T19:23:34Z) - Augmented Language Models: a Survey [55.965967655575454]
この調査は、言語モデル(LM)が推論スキルとツールの使用能力で強化されているかのレビューを行う。
私たちはこれらをAugmented Language Models (ALMs)と呼ぶ。
トークンの目的の欠如により、ALMは標準的な自然言語タスクを実行しながら、推論、ツールの使用、さらには行動を学ぶことができる。
論文 参考訳(メタデータ) (2023-02-15T18:25:52Z) - BigIssue: A Realistic Bug Localization Benchmark [89.8240118116093]
BigIssueは、現実的なバグローカライゼーションのためのベンチマークである。
実際のJavaバグと合成Javaバグの多様性を備えた一般的なベンチマークを提供する。
われわれは,バグローカライゼーションの最先端技術として,APRの性能向上と,現代の開発サイクルへの適用性の向上を期待している。
論文 参考訳(メタデータ) (2022-07-21T20:17:53Z) - Adversarial GLUE: A Multi-Task Benchmark for Robustness Evaluation of
Language Models [86.02610674750345]
AdvGLUE(Adversarial GLUE)は、様々な種類の敵攻撃の下で、現代の大規模言語モデルの脆弱性を調査し評価するための新しいマルチタスクベンチマークである。
GLUEタスクに14の逆攻撃手法を適用してAdvGLUEを構築する。
テストしたすべての言語モデルとロバストなトレーニングメソッドは、AdvGLUEではパフォーマンスが悪く、スコアは明確な精度よりもはるかに遅れています。
論文 参考訳(メタデータ) (2021-11-04T12:59:55Z) - Zero-Shot Cross-lingual Semantic Parsing [56.95036511882921]
7つのテスト言語に対する並列データを持たないゼロショット問題として,言語間セマンティックパーシングについて検討した。
英文論理形式ペアデータのみを用いて解析知識を付加言語に転送するマルチタスクエンコーダデコーダモデルを提案する。
このシステムは、ゼロショット解析を潜時空間アライメント問題としてフレーム化し、事前訓練されたモデルを改善し、最小のクロスリンガル転送ペナルティで論理形式を生成することができる。
論文 参考訳(メタデータ) (2021-04-15T16:08:43Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。