論文の概要: rCanary: Detecting Memory Leaks Across Semi-automated Memory Management Boundary in Rust
- arxiv url: http://arxiv.org/abs/2308.04787v2
- Date: Thu, 1 Aug 2024 09:02:04 GMT
- ステータス: 処理完了
- システム内更新日: 2024-08-02 18:59:12.671654
- Title: rCanary: Detecting Memory Leaks Across Semi-automated Memory Management Boundary in Rust
- Title(参考訳): rCanary: Rustの半自動メモリ管理境界を越えてメモリリークを検出する
- Authors: Mohan Cui, Hui Xu, Hongliang Tian, Yangfan Zhou,
- Abstract要約: Rustはコンパイル時の検証を通じてメモリ安全性を保証するシステムプログラミング言語である。
本稿では,半自動境界を越えたリークを検出する静的,非自動,完全自動モデルチェッカーであるrCanaryを提案する。
- 参考スコア(独自算出の注目度): 4.616001680122352
- License: http://arxiv.org/licenses/nonexclusive-distrib/1.0/
- Abstract: Rust is an effective system programming language that guarantees memory safety via compile-time verifications. It employs a novel ownership-based resource management model to facilitate automated deallocation. This model is anticipated to eliminate memory leaks. However, we observed that user intervention drives it into semi-automated memory management and makes it error-prone to cause leaks. In contrast to violating memory-safety guarantees restricted by the unsafe keyword, the boundary of leaking memory is implicit, and the compiler would not emit any warnings for developers. In this paper, we present rCanary, a static, non-intrusive, and fully automated model checker to detect leaks across the semiautomated boundary. We design an encoder to abstract data with heap allocation and formalize a refined leak-free memory model based on boolean satisfiability. It can generate SMT-Lib2 format constraints for Rust MIR and is implemented as a Cargo component. We evaluate rCanary by using flawed package benchmarks collected from the pull requests of open-source Rust projects. The results indicate that it is possible to recall all these defects with acceptable false positives. We further apply our tool to more than 1,200 real-world crates from crates.io and GitHub, identifying 19 crates having memory leaks. Our analyzer is also efficient, that costs 8.4 seconds per package.
- Abstract(参考訳): Rustは,コンパイル時の検証を通じてメモリ安全性を保証する,効果的なシステムプログラム言語である。
新規なオーナシップベースのリソース管理モデルを採用して,自動配当を容易にする。
このモデルはメモリリークを排除することが期待されている。
しかし、ユーザの介入によって半自動メモリ管理に移行し、エラーが発生しやすいことが観察された。
安全でないキーワードによって制限されるメモリ安全性の保証を侵害するのとは対照的に、リークするメモリの境界は暗黙的であり、コンパイラは開発者に警告を発しない。
本稿では,半自動境界における漏洩を検出する静的,非侵入的,完全自動モデルチェッカーであるrCanaryを提案する。
我々は,ヒープアロケーションでデータを抽象化するエンコーダを設計し,ブール整合性に基づいた洗練されたリークフリーメモリモデルを定式化する。
Rust MIRのSMT-Lib2フォーマット制約を生成することができ、Cargoコンポーネントとして実装されている。
我々は、オープンソースのRustプロジェクトのプルリクエストから収集された欠陥パッケージベンチマークを使用してrCanaryを評価する。
以上の結果から,これらすべての欠陥を疑わしい偽陽性で思い出すことが可能であることが示唆された。
さらに当社のツールをcrates.ioとGitHubから1200以上の実世界のクレートに適用し、メモリリークのある19のクレートを特定します。
当社のアナライザも効率的で,パッケージあたりのコストは8.4秒です。
関連論文リスト
- AddressWatcher: Sanitizer-Based Localization of Memory Leak Fixes [6.31619298702529]
メモリリークバグはC/C++プログラムで大きな問題である。
メモリリークを自動的に修正する手法がいくつか提案されている。
静的ベースのアプローチは、すべてのパスにわたるメモリオブジェクトの完全なセマンティクスをトレースしようとする。
動的アプローチは、単一の実行パスでのみメモリオブジェクトの正確なセマンティクスを記述できる。
論文 参考訳(メタデータ) (2024-08-08T21:40:22Z) - FoC: Figure out the Cryptographic Functions in Stripped Binaries with LLMs [54.27040631527217]
削除されたバイナリの暗号関数を抽出するFoCと呼ばれる新しいフレームワークを提案する。
まず、自然言語における暗号関数のセマンティクスを要約するために、バイナリ大言語モデル(FoC-BinLLM)を構築した。
次に、FoC-BinLLM上にバイナリコード類似モデル(FoC-Sim)を構築し、変更に敏感な表現を作成し、データベース内の未知の暗号関数の類似実装を検索する。
論文 参考訳(メタデータ) (2024-03-27T09:45:33Z) - 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) - 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) - Lift Yourself Up: Retrieval-augmented Text Generation with Self Memory [72.36736686941671]
本稿では,検索拡張生成モデルを改善するための新しいフレームワーク,Selfmemを提案する。
Selfmemは、検索拡張ジェネレータを反復的に使用して、無制限のメモリプールを生成し、メモリセレクタを使用して、続く生成ラウンドの1つの出力をメモリとして選択する。
我々は,3つの異なるテキスト生成タスクにおける自己メモの有効性を評価する。
論文 参考訳(メタデータ) (2023-05-03T21:40:54Z) - 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) - Recurrent Dynamic Embedding for Video Object Segmentation [54.52527157232795]
一定サイズのメモリバンクを構築するためにRDE(Recurrent Dynamic Embedding)を提案する。
本稿では, SAM を長時間の動画でより堅牢にするため, トレーニング段階での無バイアス誘導損失を提案する。
また、メモリバンクの異なる品質のマスクの埋め込みをネットワークが修復できるように、新たな自己補正戦略を設計する。
論文 参考訳(メタデータ) (2022-05-08T02:24:43Z) - LaMemo: Language Modeling with Look-Ahead Memory [50.6248714811912]
右側トークンへの漸進的参加により再帰記憶を向上させるLook-Ahead Memory(LaMemo)を提案する。
LaMemoは、メモリ長に比例した追加のオーバーヘッドで、双方向の注意とセグメントの再発を受け入れる。
広く使われている言語モデリングベンチマークの実験は、異なる種類のメモリを備えたベースラインよりも優れていることを示した。
論文 参考訳(メタデータ) (2022-04-15T06:11:25Z) - Kanerva++: extending The Kanerva Machine with differentiable, locally
block allocated latent memory [75.65949969000596]
エピソディックメモリとセマンティックメモリは、人間のメモリモデルの重要なコンポーネントです。
我々は、エピソードメモリとセマンティックメモリのギャップを埋める新しい原理ベイズメモリ割り当てスキームを開発しました。
この割り当て方式がメモリ条件画像生成の性能を向上させることを実証する。
論文 参考訳(メタデータ) (2021-02-20T18:40:40Z) - DMV: Visual Object Tracking via Part-level Dense Memory and Voting-based
Retrieval [61.366644088881735]
DMVと呼ばれる部分レベル高密度メモリと投票ベースの検索による新しいメモリベースのトラッカーを提案する。
また,メモリの信頼できない情報をフィルタリングする新たな投票機構を提案する。
論文 参考訳(メタデータ) (2020-03-20T10:05:30Z)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。