論文の概要: Yuga: Automatically Detecting Lifetime Annotation Bugs in the Rust Language
- arxiv url: http://arxiv.org/abs/2310.08507v2
- Date: Wed, 30 Oct 2024 07:14:02 GMT
- ステータス: 翻訳完了
- システム内更新日: 2024-10-31 14:24:26.668124
- Title: Yuga: Automatically Detecting Lifetime Annotation Bugs in the Rust Language
- Title(参考訳): Yuga: Rust言語のライフタイムアノテーションバグを自動的に検出する
- Authors: Vikram Nitin, Anne Mulhern, Sanjay Arora, Baishakhi Ray,
- Abstract要約: Rustプロジェクトでは、セキュリティ上の脆弱性が報告されている。
これらの脆弱性は、部分的には関数シグネチャの誤った終身アノテーションから生じます。
既存のツールはこれらのバグを検出するのに失敗する。
我々は,新たな静的解析ツールであるYugaを考案し,潜在的なライフタイムアノテーションのバグを検出する。
- 参考スコア(独自算出の注目度): 15.164423552903571
- License:
- Abstract: The Rust programming language is becoming increasingly popular among systems programmers due to its efficient performance and robust memory safety guarantees. Rust employs an ownership model to ensure this guarantee by allowing each value to be owned by only one identifier at a time. Additionally, it introduces the concept of borrowing and lifetimes to enable other variables to borrow the values under certain conditions temporarily. Despite its benefits, security vulnerabilities have been reported in Rust projects, often attributed to the use of "unsafe" Rust code. These vulnerabilities, in part, arise from incorrect lifetime annotations on function signatures. However, existing tools fail to detect these bugs, primarily because such bugs are rare, challenging to detect through dynamic analysis, and require explicit memory models. To overcome these limitations, first, we characterize incorrect lifetime annotations as a source of memory safety bugs and leverage this understanding to devise a novel static analysis tool, Yuga, to detect potential lifetime annotation bugs. Yuga uses a multi-phase analysis approach, starting with a quick pattern-matching algorithm to identify potential buggy components and then conducting a flow and field-sensitive alias analysis to confirm the bugs. We also curate new datasets of lifetime annotation bugs. Yuga successfully detects bugs with good precision on these datasets, and we make the code and datasets publicly available for review.
- Abstract(参考訳): Rustプログラミング言語は、効率的なパフォーマンスと堅牢なメモリ安全性を保証するため、システムプログラマの間で人気が高まっている。
Rustでは、この保証を保証するために、各値を一度に1つの識別子だけで所有できるようにすることで、オーナシップモデルを採用している。
さらに、ある条件下で他の変数が一時的に値を借りられるように、借用と寿命の概念も導入されている。
そのメリットにもかかわらず、セキュリティ上の脆弱性はRustプロジェクトで報告されている。
これらの脆弱性は、部分的には関数シグネチャの誤った終身アノテーションから生じます。
しかし、既存のツールはこれらのバグを検出できない。主な理由は、そのようなバグはまれであり、動的解析を通じて検出することは困難であり、明示的なメモリモデルを必要とするためである。
これらの制限を克服するために、まず、誤生アノテーションをメモリセーフティバグの源として特徴付け、この理解を活用して、新しい静的解析ツールであるYugaを考案し、潜在的な終生アノテーションバグを検出する。
Yugaは、高速なパターンマッチングアルゴリズムから、潜在的なバグのあるコンポーネントを特定し、フローとフィールドに敏感なエイリアス分析を実行してバグを確認する、多相分析アプローチを採用している。
また、ライフタイムアノテーションのバグの新しいデータセットをキュレートします。
Yugaはこれらのデータセットの精度よくバグを検出し、コードとデータセットを公開してレビューします。
関連論文リスト
- A Study of Undefined Behavior Across Foreign Function Boundaries in Rust Libraries [2.359557447960552]
Rustは、他の言語との相互運用に頻繁に使用される。
Miriは、これらのモデルに対してアプリケーションを検証できる唯一の動的解析ツールである。
Miriは外部機能をサポートしておらず、Rustエコシステムの中心に重要な正当性ギャップがあることを示唆している。
論文 参考訳(メタデータ) (2024-04-17T18:12:05Z) - Static Deadlock Detection for Rust Programs [6.596623081054982]
Rustはスレッドとメモリの安全性を確保するために独自のオーナシップメカニズムに依存している。
Rustの新しい言語機能は、脆弱性検出に新たな課題をもたらす。
本稿では,Rustプログラムに適した静的デッドロック検出手法を提案する。
論文 参考訳(メタデータ) (2024-01-02T09:09:48Z) - 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) - ReCode: Robustness Evaluation of Code Generation Models [90.10436771217243]
コード生成モデルのための総合的ロバストネス評価ベンチマークであるReCodeを提案する。
ドクストリング、関数と変数名、コード構文、コードフォーマットのコードに特化して、30以上の変換をカスタマイズします。
ヒトのアノテータでは、摂動プロンプトの90%以上が本来のプロンプトの意味を変えていないことが確認された。
論文 参考訳(メタデータ) (2022-12-20T14:11:31Z) - Annotation Error Detection: Analyzing the Past and Present for a More
Coherent Future [63.99570204416711]
我々は、潜在的なアノテーションの誤りを検知するための18の手法を再実装し、9つの英語データセット上で評価する。
アノテーションエラー検出タスクの新しい形式化を含む一様評価設定を定義する。
私たちはデータセットと実装を,使いやすく,オープンソースのソフトウェアパッケージとしてリリースしています。
論文 参考訳(メタデータ) (2022-06-05T22:31:45Z) - Learning to Reduce False Positives in Analytic Bug Detectors [12.733531603080674]
偽陽性のバグ警告を識別するためのトランスフォーマーに基づく学習手法を提案する。
我々は,静的解析の精度を17.5%向上させることができることを示した。
論文 参考訳(メタデータ) (2022-03-08T04:26:26Z) - Early Detection of Security-Relevant Bug Reports using Machine Learning:
How Far Are We? [6.438136820117887]
典型的なメンテナンスシナリオでは、セキュリティ関連バグレポートは、修正パッチを作成する際に開発チームによって優先される。
オープンなセキュリティ関連バグレポートは、攻撃者がゼロデイ攻撃を実行するために活用できる機密情報の重大な漏洩になる可能性がある。
近年,機械学習に基づくセキュリティ関連バグレポートの検出手法が,有望な性能で報告されている。
論文 参考訳(メタデータ) (2021-12-19T11:30:29Z) - Assessing Validity of Static Analysis Warnings using Ensemble Learning [4.05739885420409]
静的分析(SA)ツールは、コードの潜在的な弱点を特定し、事前に修正するために使われ、コードが開発中である。
これらのルールベースの静的解析ツールは一般的に、実際のものとともに多くの誤った警告を報告します。
機械学習(ML)ベースの学習プロセスを提案し、ソースコード、履歴コミットデータ、および分類器アンサンブルを使用してTrue警告を優先します。
論文 参考訳(メタデータ) (2021-04-21T19:39:20Z) - Robust and Transferable Anomaly Detection in Log Data using Pre-Trained
Language Models [59.04636530383049]
クラウドのような大規模コンピュータシステムにおける異常や障害は、多くのユーザに影響を与える。
システム情報の主要なトラブルシューティングソースとして,ログデータの異常検出のためのフレームワークを提案する。
論文 参考訳(メタデータ) (2021-02-23T09:17:05Z) - D2A: A Dataset Built for AI-Based Vulnerability Detection Methods Using
Differential Analysis [55.15995704119158]
静的解析ツールによって報告されたラベル問題に対する差分解析に基づくアプローチであるD2Aを提案する。
D2Aを使用して大きなラベル付きデータセットを生成し、脆弱性識別のためのモデルをトレーニングします。
論文 参考訳(メタデータ) (2021-02-16T07:46:53Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。