論文の概要: A Study of Undefined Behavior Across Foreign Function Boundaries in Rust Libraries
- arxiv url: http://arxiv.org/abs/2404.11671v3
- Date: Mon, 5 Aug 2024 17:28:13 GMT
- ステータス: 処理完了
- システム内更新日: 2024-08-06 22:54:48.449006
- 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コミュニティは、開発者がこれらのエラーを検出できるように、複数言語アプリケーション用の新しいプロダクション対応ツールに投資する必要がある。
関連論文リスト
- RustMC: Extending the GenMC stateless model checker to Rust [0.2799243500184682]
RustMCは、並行するRustプログラムの検証を可能にするステートレスモデルチェッカーである。
本ツールでは,GenMCの拡張に対処する上で重要な課題について述べる。
論文 参考訳(メタデータ) (2025-02-10T09:33:24Z) - A Preliminary Study of Fixed Flaky Tests in Rust Projects on GitHub [5.806051501952938]
GitHub上のRustプロジェクトでは、不安定なテストの研究が進行中です。
修正は根本原因、マニフェストの特徴、修正戦略に関する貴重な情報を提供することができるので、報告されただけでなく、修正される不安定なテストに重点を置いています。
論文 参考訳(メタデータ) (2025-02-04T22:55:54Z) - Commit0: Library Generation from Scratch [77.38414688148006]
Commit0は、AIエージェントにスクラッチからライブラリを書くよう促すベンチマークである。
エージェントには、ライブラリのAPIを概説する仕様文書と、インタラクティブなユニットテストスイートが提供されている。
Commit0はまた、モデルが生成したコードに対して静的解析と実行フィードバックを受け取る、インタラクティブな環境も提供する。
論文 参考訳(メタデータ) (2024-12-02T18:11:30Z) - 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) - DebugBench: Evaluating Debugging Capability of Large Language Models [80.73121177868357]
DebugBench - LLM(Large Language Models)のベンチマーク。
C++、Java、Pythonの4つの主要なバグカテゴリと18のマイナータイプをカバーする。
ゼロショットシナリオで2つの商用および4つのオープンソースモデルを評価する。
論文 参考訳(メタデータ) (2024-01-09T15:46:38Z) - 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) - CodeLMSec Benchmark: Systematically Evaluating and Finding Security
Vulnerabilities in Black-Box Code Language Models [58.27254444280376]
自動コード生成のための大規模言語モデル(LLM)は、いくつかのプログラミングタスクにおいてブレークスルーを達成した。
これらのモデルのトレーニングデータは、通常、インターネット(例えばオープンソースのリポジトリから)から収集され、障害やセキュリティ上の脆弱性を含む可能性がある。
この不衛生なトレーニングデータは、言語モデルにこれらの脆弱性を学習させ、コード生成手順中にそれを伝播させる可能性がある。
論文 参考訳(メタデータ) (2023-02-08T11:54:07Z) - 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。