Simple Science

最先端の科学をわかりやすく解説

# コンピューターサイエンス# ソフトウェア工学# 暗号とセキュリティ

LeakFuzzerでソフトウェアのセキュリティを強化する

LeakFuzzerはソフトウェアのセキュリティを向上させるために、プログラム内の情報漏洩を検出するよ。

― 1 分で読む


LeakFuzzer:ソフLeakFuzzer:ソフトウェアのセキュリティよ。キュリティを強化するために漏れを検出するLeakFuzzerは、ソフトウェアのセ
目次

コンピュータプログラムにおける情報漏洩は深刻な問題を引き起こす可能性があるんだ。こういうエラーは、敏感なデータが見られるべきでないユーザーやシステムに意図せずに公開されるときに起こる。残念なことに、テスト中にこの問題はしばしば見落とされがちで、従来のテスト手法は他のタイプのエラーに焦点を当てていて、セキュリティに隙間ができちゃうんだ。

ハイパーファズイングとは?

ハイパーファズイングは、こうした漏洩を見つけるための新しいソフトウェアテストの方法なんだ。これは、AFL++という確立されたテストツールに、情報が安全に流れるべき方法に関する特定のルールを組み合わせたものだ。この新しいツールは、情報漏洩をチェックしつつ、通常のファジングツールが見つけるようなエラーも見つけるためのテストを自動的に生成できるんだ。

どうやって動くの?

ハイパーファズイングを通じて開発されたツールLeakFuzzerは、セキュリティに関する定義されたルールセットを使って動くんだ。プログラムの入力と出力を見て、敏感なデータが漏れていないかを調べる。つまり、LeakFuzzerは、プログラムが特定の情報を正しくプライベートに保つかどうかを確認しながら、問題を見つけられるってわけ。

テストは、CとC++で書かれたさまざまなプログラムに対して行われたんだ。十個のプログラムが選ばれて、その中にはHeartbleedみたいな深刻な問題のある既知の脆弱性から取られたものも含まれている。これらのプログラムは、単純なものから非常に大きなコードまで、複雑さやサイズが異なるんだ。

プログラムテストの重要性

Heartbleedバグは、メモリアクセスのミスによって広範囲にわたる問題を引き起こした。自動テストはあったけど、2年以上もこのエラーを見逃しちゃったんだ。これが、情報漏洩を特にターゲットにしたより良いテスト方法の必要性を示してるんだ。

非干渉とは?

LeakFuzzerのキーメッセージの一つが、非干渉っていう考え方なんだ。これは、一群のユーザーが他のグループのプログラム内での行動を見たり影響を与えたりできないってことを意味する。この原則によって、敏感なデータが隠れたまま保たれるんだ。

この原則を適用するために、ツールはプログラムの実行ペアを比較する。秘密のデータの変更が、そんなはずじゃないのに異なる出力をもたらすなら、そのプログラムは情報を漏らしているってことになる。

テストプロセス

テスト中、LeakFuzzerは十個のプログラムにおける既知の漏洩をすべて見つけることに成功したんだ。これは、CBMCモデルチェッカーやAFL++とサニタイザーを使った従来の方法よりも効果的に動いた。データが安全に流れる方法に焦点を当てることで、より良い結果を出せたんだ。

一連のテストが設定されて、LeakFuzzerは各プログラムで24時間連続稼働して漏洩を探した。LeakFuzzerのパフォーマンスは、他のツールと比較してその効果を測定されたんだ。

SIFFベンチマークスイート

LeakFuzzerを適切に評価するために、Secure Information Flow Faults (SIFF)スイートとして知られる十個のプログラムのセットが作られた。このコレクションには、実際の脆弱性や既知の問題があるサンプルプログラムが含まれている。目的は、LeakFuzzerのパフォーマンスを正確に測るために、さまざまなテストシナリオを提供することなんだ。

LeakFuzzerの評価結果

LeakFuzzerはほぼすべてのケースで漏洩を検出することに成功したんだ。テストされたすべてのプログラムで漏洩を見つけて、ツールの効果を証明した。一方、サニタイザーやモデルチェッカーを使った従来の漏洩検出手法では、いくつかのケースを見逃してしまうことが多かったんだ。

LeakFuzzerの全体的な効果は、ソフトウェアのセキュリティを向上させる方法としてハイパーファズイングの価値を強調している。短時間内に複数のキャンペーンを実行できる能力があって、見逃されがちな漏洩をすぐに特定できるんだ。

テスト中のメモリ使用

LeakFuzzerはAFL++のようなツールよりも多くのメモリを使ったけど、CBMCモデルチェッカーよりは一般的に低負荷だったんだ。重要なのは、実験中にメモリ枯渇には遭遇しなかったことで、これは大きなプログラムのテストでよくある問題なんだ。

より良いセキュリティコントロールの必要性

今の時代、ソフトウェアが日常生活の重要な部分になっている中で、強力なセキュリティ対策を持つことは必須なんだ。情報漏洩はデータ侵害や経済的損失、その他の深刻な結果を引き起こす可能性がある。だから、LeakFuzzerみたいなツールは、プログラムが敏感な情報を漏らさないようにするために重要なんだ。

LeakFuzzerの今後の方向性

今後、他のプログラミング言語にも対応したり、より幅広いセキュリティ問題に取り組むためにLeakFuzzerを強化することが期待されているんだ。情報がどれだけ漏れているかを測定する方法を作ることも考えられていて、これはパスワードマネージャーのように安全に動作しつつ使える出力を提供する必要があるアプリケーションにとって価値があるかもしれない。

結論

LeakFuzzerの開発は、ソフトウェアにおける情報漏洩の特定に向けた大きな一歩を示しているんだ。典型的なエラーの検出と安全なデータフローの理解の両方に焦点を当てることで、現在のテスト手法における重要な隙間を埋めているんだ。

ソフトウェアが進化し、もっと多くの生活の側面に統合される中で、敏感な情報を保護するのを助けるツールはますます重要になっていく。ハイパーファズイングは、みんなにとってより安全なソフトウェアにつながる方法を提供する、ソフトウェアセキュリティテストの未来に対する期待を示してるんだ。

オリジナルソース

タイトル: Hyperfuzzing: black-box security hypertesting with a grey-box fuzzer

概要: Information leakage is a class of error that can lead to severe consequences. However unlike other errors, it is rarely explicitly considered during the software testing process. LeakFuzzer advances the state of the art by using a noninterference security property together with a security flow policy as an oracle. As the tool extends the state of the art fuzzer, AFL++, LeakFuzzer inherits the advantages of AFL++ such as scalability, automated input generation, high coverage and low developer intervention. The tool can detect the same set of errors that a normal fuzzer can detect, with the addition of being able to detect violations of secure information flow policies. We evaluated LeakFuzzer on a diverse set of 10 C and C++ benchmarks containing known information leaks, ranging in size from just 80 to over 900k lines of code. Seven of these are taken from real-world CVEs including Heartbleed and a recent error in PostgreSQL. Given 20 24-hour runs, LeakFuzzer can find 100% of the leaks in the SUTs whereas existing techniques using such as the CBMC model checker and AFL++ augmented with different sanitizers can only find 40% at best.

著者: Daniel Blackwell, Ingolf Becker, David Clark

最終更新: 2023-08-17 00:00:00

言語: English

ソースURL: https://arxiv.org/abs/2308.09081

ソースPDF: https://arxiv.org/pdf/2308.09081

ライセンス: https://creativecommons.org/licenses/by/4.0/

変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。

オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。

著者たちからもっと読む

類似の記事

ソフトウェア工学オープンソースプロジェクトの初心者向けパーソナライズドおすすめ

カスタマイズされたおすすめは、新人がオープンソースに参加する時のオンボーディング体験を向上させることができるよ。

― 1 分で読む