論文の概要: rCanary: Detecting Memory Leaks Across Semi-automated Memory Management
Boundary in Rust
- arxiv url: http://arxiv.org/abs/2308.04787v1
- Date: Wed, 9 Aug 2023 08:26:04 GMT
- ステータス: 処理完了
- システム内更新日: 2023-10-23 15:02:42.555756
- Title: rCanary: Detecting Memory Leaks Across Semi-automated Memory Management
Boundary in Rust
- Title(参考訳): rCanary: Rustの半自動メモリ管理境界を越えてメモリリークを検出する
- Authors: Mohan Cui, Suran Sun, Hui Xu, Yangfan Zhou
- Abstract要約: Rustはコンパイル時の検証を通じてメモリ安全性を保証するシステムプログラミング言語である。
リソースの自動配置を容易にするために、新しいオーナシップベースのリソース管理モデルを採用している。
半自動境界における漏洩を検出するために,非侵襲的で完全自動化されたモデルチェッカーであるrCanaryを提案する。
- 参考スコア(独自算出の注目度): 4.981203415693332
- 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 resource deallocation. It is
anticipated that this model will eliminate memory leaks. However, we observed
that user intervention driving semi-automated management is prone to
introducing leaks. In contrast to violating memory-safety guarantees via the
unsafe keyword, the leak breached boundary is implicit with no compiler
alerting. In this paper, we present rCanary, a static, non-intrusive, and fully
automated model checker to detect leaks across the semi-automated boundary. It
adopts a precise encoder to abstract data with heap allocation and formalizes a
refined leak-free memory model based on Boolean satisfiability. rCanary is
implemented as an external component of Cargo and can generate constraints via
MIR data flow. We evaluate it using flawed package benchmarks collected from
the pull requests of prominent Rust packages. The results indicate it is
possible to recall all these defects with acceptable false positives. We also
apply our tool to more than 1,200 real-world crates from crates.io and GitHub,
identifying 19 crates with potentially vulnerable leaks in 8.4 seconds per
package.
- Abstract(参考訳): Rustは、コンパイル時検証によるメモリ安全性を保証する効果的なシステムプログラミング言語である。
新たなオーナシップベースのリソース管理モデルを採用し、リソースの割り当てを自動化する。
このモデルはメモリリークをなくすことが期待されている。
しかし, ユーザ介入による半自動管理は, 漏えいを起こす傾向がみられた。
アンセーフキーワードによるメモリ安全性保証を侵害するのとは対照的に、漏洩した境界はコンパイラの警告なしで暗黙的である。
本稿では,半自動境界における漏洩を検出する静的,非侵入的,完全自動モデルチェッカーであるrCanaryを提案する。
ヒープ割り当てでデータを抽象化するために正確なエンコーダを採用し、Booleanの適合性に基づいた洗練されたリークフリーメモリモデルを形式化する。
rCanaryはCargoの外部コンポーネントとして実装されており、MIRデータフローを介して制約を生成することができる。
著名なRustパッケージのプルリクエストから収集した,欠陥のあるパッケージベンチマークを使用して評価する。
その結果,これらすべての欠陥を許容できる偽陽性で思い出すことが可能であることが示唆された。
また、当社のツールをcrates.ioとGitHubから1200以上の現実世界のクレートに適用し、パッケージあたり8.4秒で脆弱性のある19のクレートを特定します。
関連論文リスト
- 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)
関連論文リストは本サイト内にある論文のタイトル・アブストラクトから自動的に作成しています。
指定された論文の情報です。
本サイトの運営者は本サイト(すべての情報・翻訳含む)の品質を保証せず、本サイト(すべての情報・翻訳含む)を使用して発生したあらゆる結果について一切の責任を負いません。