ソフトウェアテストに関するトップ学術会議 - ISSTA 2023 論文(ネットワークセキュリティの方向性)一覧、要約、概要

78c3dc7e3d8ffe4310e7f01ca9a185c6.png

要約する

  1. このカンファレンスでは、ソース コード分析、バイナリ コード分析、マルウェア検出、脆弱性検出、ファズ テスト、プログラム検証など、セキュリティ研究の幅広いトピックが取り上げられます。

  2. 一般的な研究の方向性としては、機械学習に基づく脆弱性検出、ソフトウェア セキュリティにおける大規模言語モデルの適用、ブロックチェーン スマート コントラクト セキュリティ分析などが挙げられます。これらの方向性は近年発展し続けています。

  3. あまり人気のない研究方向には、組み込みファームウェアのセキュリティ、自動運転システムのセキュリティ テスト、マルチメディア コンテンツ レビュー ソフトウェアの検証などがあります。これらの方向で研究されるシステムとアプリケーションのシナリオは、比較的専門的です。

  4. 詳細な研究に値する方向性としては、脆弱性修復の自動化の向上、深層学習システムのセキュリティの強化、グラフ ニューラル ネットワーク モデルの解釈可能性の向上などが挙げられます。これらの方向性はすべて、自動化されたソフトウェア セキュリティ テクノロジの信頼性と説明可能性の向上に関連しています。

6affbe72222f7ef73e7cea6898379a94.png

1、1dFuzz: 有向差分ファジングで 1-Day 脆弱性を再現

1 日脆弱性は実際に一般的であり、攻撃者がリリースされたパッチを通じてこれらの脆弱性を学習して悪用する可能性があるため、エンド ユーザーに重大な脅威をもたらします。1 日脆弱性を再現することも、防御側にとって、たとえば 1 日脆弱性をターゲットとした攻撃トラフィックをブロックするために非常に重要です。1 日脆弱性の特定とトリガーの有効性に影響を与える中心的な問題は、セキュリティ パッチの固有の特性は何かということです。大規模な実証研究を実施することにより、パッチの共通かつ固有の機能がテール コール シーケンス (TCS) であることを指摘し、この論文では、1 日の脆弱性を効率的に再現するための新しいガイド付き差分ファジング ソリューション 1dFuzz を提案します。TCS の機能に基づいて、静的解析を通じて候補パッチ位置を見つけることができるロケーター 1dLoc、TCS ベースの指向性ファジィ距離測定方法、およびファズ テスト中に 1 日の脆弱性を捕捉できる PoC を提案します。私たちは、11 の異なる設定における一連の実際のソフトウェアの脆弱性について 1dFuzz の体系的な評価を実施しました。結果は、1dFuzz が最先端のベースラインを大幅に上回り、最大 2.26 倍の 1 日脆弱性を 43% 少ない時間で検出できることを示しています。

論文リンク: https://doi.org/10.1145/3597926.3598102

f39d4d6522a9e978eba03df8201cff99.png

2、自動デバッグのためのベイジアンフレームワーク

デバッグには開発者の時間のほとんどがかかります。したがって、障害位置特定 (FL) や自動プログラム修復 (APR) などの自動デバッグ技術は、開発者のデバッグ タスクを支援する可能性があるため、広く注目を集めています。統合デバッグなど、これら 2 つのタスクを緊密に結合したものとして扱う技術の最近の進歩により、これら 2 つのタスクを形式的に表現するフレームワークは、自動デバッグについての理解を向上させ、形式的な分析手法と方法の手段を提供することになります。この目的を達成するために、自動デバッグを理解するためのベイジアン フレームワークを提案します。ベイジアン フレームワークと自動デバッグ目標の明示的な記述により、以前の研究から最大の障害位置特定式を復元し、既存の APR 手法とその基礎となる仮定を分析できることがわかりました。

経験的アプローチを通じてフレームワークを実証するために、中間プログラム値を組み合わせて可能なパッチの位置と修復操作を分析するベイジアン パッチ優先順位付け手法である BAPP をさらに提案します。その中心方程式はベイジアン フレームワーク Come から導出されます。プログラム値を導入することで、BAPP が正しいパッチをより正確に識別できるようになったことがわかりました。BAPP は、パッチ評価の数を 68% 削減するランキング結果を生成し、その結果、修復時間を平均 34 分短縮しました。さらに、私たちのベイジアン フレームワークは、プログラム修復での障害位置特定情報の使用方法にいくつかの変更を提案しており、これが BAPP に役立つことが確認されました。これらの結果は、貴重な自動デバッグ技術の可能性を強調し、理論的枠組みをさらに検証します。

論文リンク: https://doi.org/10.1145/3597926.3598103

97677a1c2e0c1399f25ab784892a6b24.png

3、API2Vec: マルウェア検出のための API シーケンスの学習表現

API 呼び出しシーケンスに基づくマルウェア分析は、シーケンスがマルウェアの動的な実行動作を反映しているため、効果的な方法です。深層学習の最近の進歩により、これらの技術を適用して、一連の API 呼び出しから有用な情報をマイニングできるようになりました。ただし、これらの方法は主に生のシーケンスで動作し、主に API 呼び出しのインターリーブの問題により、特にマルチプロセス マルウェアの場合、重要な情報を効果的に取得できない可能性があります。

これに触発されて、この文書では、マルウェア検出のためのグラフベースの API 埋め込み手法である API2Vec を提案します。まず、元のシーケンスを表すグラフ モデルを構築します。特に、プロセス間の動作をシミュレートするために Time Process Graph (TPG) を設計し、プロセス内の動作をシミュレートするために Time API Graph (TAG) を設計します。これらのグラフを使用して、きめ細かいマルウェアの動作を捕捉できるパスを生成するヒューリスティック ランダム ウォーク アルゴリズムを設計します。Doc2Vec モデルを使用してこれらのパスを事前トレーニングすることで、マルウェア検出用のパスと API の埋め込みを生成できます。実際のマルウェア データセットでの実験では、特にマルチプロセス マルウェアの場合、API2Vec が精度と堅牢性の点で最先端の埋め込みおよび検出方法よりも優れていることが実証されています。

論文リンク: https://doi.org/10.1145/3597926.3598054

31fd45c1b31375b79dc078cc97382665.png

4、静的機械学習ベースの悪意のあるJavaScript検出器に対する難読化の影響に関する実証研究

サイバー攻撃の増加と手動識別の高額なコストに伴い、悪意のある JavaScript の検出に機械学習が使用されることが増えています。実際のアプリケーションでは、悪意のあるスクリプトと良性のスクリプトは、悪意のある動作を隠したり、知的財産権を保護したりするために、アップロードする前に自身のコードを難読化することがよくあります。難読化は有益ですが、コードにいくつかの追加のコード特性 (デッド コードなど) も導入します。機械学習を使用して悪意のある JavaScript 検出器を学習する場合、これらの追加機能がモデルに影響を与え、モデルの効果が低下する可能性があります。ただし、現時点では、さまざまな難読化ツールにおける既存の機械学習ベースの検出器の堅牢性については明確に理解されていません。

この論文では、静的特徴ベースの機械学習検出器に対する難読化の影響を明らかにするための最初の実証研究を実施します。実験結果を通じて、私たちはいくつかの発見を観察しました: 1) 難読化は検出器の有効性に重大な影響を及ぼし、偽陽性率と偽陰性率の両方が増加する原因となり、トレーニング セット内の難読化のバイアスにより検出器が容易になります。悪意のある動作ではなく混乱を検出します。2) 関連する混乱サンプルを追加したり、最先端の深層学習モデルを利用したりしてトレーニング セットの品質を向上させるなどの一般的な対策では、良い結果が得られません。3) これらの検出器に対する難読化の影響の根本的な理由は、検出器が使用する特徴空間はコードの浅い違いのみを反映し、難読化によって導入された違いの影響を受けやすい良性と悪意の本質的な違いは反映できないことです。4) 難読化は、VirusTotal の現実検出器にも同様の影響を及ぼします。これは、これが一般的な実際的な問題であることを示しています。

論文リンク: https://doi.org/10.1145/3597926.3598146

709d293766061ba0b8e9b9eeedd96e75.png

5、スマートコントラクトバイトコードのセキュリティ中心の記述の自動生成

スマート コントラクトと分散型アプリケーション (DApp) のユーザーは、脆弱で悪意のあるコントラクト コードの使用を避けるために必要な知識が不足しているため、重大なリスクに直面しています。この論文では、スマート コントラクトのバイトコードからセキュリティを重視したテキスト記述を自動的に生成する新しいシステムである Tx2TXT を提案します。金融アプリケーションのセキュリティ側面を把握するために、スマート コントラクトの主要な資金の流れをモデル化する資金移動グラフを正式に定義します。これらのグラフから得られる記述の表現力と簡潔さを確保するために、グラフ畳み込みネットワーク (GCN) ベースのモデルを採用して、安全関連の条件ステートメントを特定し、それらをモデル内のグラフに選択的に追加します。低レベルのバイトコード命令を読み取り可能なテキスト スクリプトに変換するために、堅牢な API シグネチャを利用してバイトコードのセマンティクスを復元します。私たちは、開発者が作成した説明を含む、脆弱性、悪意のある安全性の高い、適切にタグ付けされた 890 のコントラクトに基づいて Tx2TXT を評価しました。私たちの結果は、Tx2TXT が既存のソリューションよりも優れたパフォーマンスを発揮し、エンドユーザーが危険な契約を回避できるよう効果的に支援することを示しています。

論文リンク: https://doi.org/10.1145/3597926.3598132

4ab54afff906a1e06a75c6ba2c0109d7.png

6、ファジングの観点から見たプログラムの自動修復

この文書では、ファズ テストと自動プログラム修復 (APR) という 2 つの密接に関連するトピックを結び付ける新しいアプローチを提案します。この記事は 2 つの部分に分かれています。最初の部分では、ファズ テストと APR の類似点について説明します。どちらも検索問題とみなすことができます。2 番目の部分では、Casino と呼ばれる新しいパッチ スケジュール アルゴリズムを紹介します。これは、検索効率を向上させるためにファズ テストの観点から設計されています。私たちの実験では、Casino が既存のアルゴリズムを上回るパフォーマンスを示しています。また、新しいパッチ スケジュール アルゴリズムの評価に使用できるシミュレーション ツールである SimAPR を共有することで、オープン サイエンスを推進しています。

論文リンク: https://doi.org/10.1145/3597926.3598101

0054987c53535efddbcfda30d27926c0.png

7、設定可能な静的解析ツールの自動テストとベンチマーク

静的解析は、実際のソフトウェアのバグを検出するための重要なツールです。独自のトレードオフを伴う多数の分析アルゴリズムの出現により、構成可能な静的分析ツールが急増しましたが、その複雑で十分にテストされていない構成スペースが、広範な導入の障壁となっています。これらのツールの信頼性を向上させるために、私の研究はツールを自動的にテストおよびデバッグする新しい方法の開発に焦点を当てています。まず、Android 用の構成可能な汚染分析ツールのパフォーマンスと動作を理解するのに役立つ実証研究について説明します。この研究の結果は、テイント分析を超え、構成可能な静的分析ツールのテストに使用できるテストおよびデバッグ フレームワークである ECSTATIC の開発にインスピレーションを与えました。この研究の次のステップには、静的解析に関連する現実世界のベンチマーク、関連するベンチマークのグラウンド トゥルース、および解析特性の自動作成が含まれます。

論文リンク: https://doi.org/10.1145/3597926.3605232

d8dbe62b1d5e160cb6955beb2a8a2d47.png

8、自然言語処理と強化学習を利用したAndroidのバグレポートの自動再現

バグ レポートを通じてユーザーから送信された問題を解決する過程で、Android 開発者はバグ レポートに記載されているクラッシュ条件を再現して観察しようとします。バグレポートの品質が低く、最新のアプリケーションが複雑であるため、再現プロセスは単純ではなく、時間がかかります。したがって、Android のバグ レポートを再現するのに役立つ自動化された方法が緊急に必要とされています。ただし、開発者がバグ レポートを自動的に再現するために使用されている現在の方法では、限られた形式の自然言語テキストしか処理できず、最初のバグ レポートに欠落または不正確な手順がある場合、クラッシュを正常に再現することは困難です。このペーパーでは、Android のバグ レポートからクラッシュを再現する新しい完全に自動化された方法を紹介し、これらの制限に対処します。私たちのアプローチは、自然言語処理技術を活用して Android バグレポートの自然言語をより包括的かつ正確に分析し、強化学習に基づいて成功した再現手順の探索を導く新しい技術を設計することによって機能します。私たちは、77 件の実世界のバグレポートに対して実証的評価を実施しています。私たちの手法は、バグ レポートの再現可能なステップを正確に抽出する際に 67% の精度と 77% の再現率を達成し、バグ レポート全体の 74% を再現し、欠落しているステップを含むバグ レポートの 64% を再現しており、現在の技術レベルよりも大幅に優れたパフォーマンスを実現しています。 。

論文リンク: https://doi.org/10.1145/3597926.3598066

53f75b819f5a76bc20a​​0e02be229cba2.png

9、BehAVExplor: 自動運転システム向けの行動多様性ガイド付きテスト

自動運転システム (ADS) のテストは、自動運転車の信頼性と安全性を確保するための重要なタスクです。既存の方法は主にセキュリティ違反の発見に焦点を当てていますが、生成されたテスト ケースの多様性は無視されており、多くの冗長なテスト ケースや失敗が発生する可能性があります。このような冗長な障害はテストのパフォーマンスを低下させ、障害分析のコストを増加させます。この論文では、自動運転システム (ADS) によって制御される自車両 (つまり、ADS がテストしている車両) のさまざまな挙動を調査し、さまざまな違反を検出するための、新しい挙動誘導ファズ テスト テクノロジ (BehAVExplor) を提案します。具体的には、自車両の動作を記述するために、BehaviorMiner と呼ばれる効率的な教師なしモデルを設計します。BehaviorMiner は、特定のシーンから時間的特徴を抽出し、クラスタリング ベースの抽象化を実行して、類似した特徴を持つ動作を抽象状態にグループ化します。新しいテスト ケースが新しい動作 (新しい抽象状態をカバーするなど) をトリガーする場合、シード コーパスに追加されます。行動の多様性と一般的な違反フィードバックの間には潜在的な矛盾があるため、我々はさらに、シードの選択と突然変異を導くためのエネルギー的なメカニズムを提案します。種子のエネルギーは、それがどれほど優れているかを数値化します。私たちは、Apollo 産業グレードの ADS および LGSVL シミュレーション環境で BehAVExplor を評価しました。経験的評価の結果、BehAVExplor は既存の技術よりも多様な違反を効果的に発見できることがわかりました。

論文リンク: https://doi.org/10.1145/3597926.3598072

b04301daab847e7bcfc21f94fc617b40.png

10、予期せぬことに注意してください: 二峰性テイント分析

静的分析は、セキュリティの脆弱性やその他のプログラミングの問題を検出するための強力なツールです。グローバル テイント トラッキングは、特に、複数の機能を通る複雑なデータ フローによって引き起こされる脆弱性を検出できます。ただし、どのフローに問題があるかを正確に判断することは困難であり、慣例や非公式の知識など、純粋なプログラム分析の範囲を超えた要素に依存する場合があります。たとえば、API 関数ロケールのパラメーター名がファイル パスに含まれることを知るのは驚くべきことであり、潜在的に問題となる可能性があります。対照的に、API 関数 execaCommand に渡されたパラメーター コマンドが最終的にオペレーティング システム コマンドの一部として解釈されることは、まったく驚くべきことではありません。この記事では、静的分析 (データ フローに関する推論) と機械学習 (どのフローに問題がある可能性があるかを確率的に判断する) を組み合わせた、Fluffy と呼ばれるバイモーダル テイント分析手法を紹介します。重要なアイデアは、汚染されたフローに含まれる自然言語情報 (API 名など) からそのフローが予期されるものであるか予期しないものであるかを機械学習モデルに予測させ、後者のみを開発者に報告させることです。私たちは一般的なフレームワークを提案し、トレーニング データに注釈を付ける必要性と予測精度の間で異なるトレードオフを提供する 4 つの学習モデルを使用してインスタンス化します。私たちは、CodeQL 分析フレームワーク上に Fluffy を実装し、250,000 の JavaScript プロジェクトに適用しました。5 つの一般的な脆弱性タイプに対して評価したところ、Fluffy はさまざまなデータセットでそのうちの 4 つについて 0.85 以上の F1 スコアを達成したことがわかりました。

論文リンク: https://doi.org/10.1145/3597926.3598050

9db997e41afaa6661a18ab73ead38c49.png

11、「保護」と「プライベート」を超えて: スマートコントラクトにおけるカスタム関数修飾子の実証的セキュリティ分析

スマート コントラクトは、ブロックチェーン台帳上で実行されるアプリケーション層のコードであり、トランザクションに基づいて事前定義された関数を実行することによってプログラミング ロジックを提供します。デフォルトでは、スマート コントラクト機能はどの当事者でも呼び出すことができます。これらを保護するために、イーサリアム ブロックチェーンの人気のスマート コントラクト言語である Solidity を例として、開発者が従来のプログラミングを超えたカスタム関数のアクセス制御ポリシーを定義できるようにする、独自の言語レベルのキーワード「修飾子」が提案されています。言語「protected」および「private」修飾子。

この記事は、現実のイーサリアム スマート コントラクトで使用されるモディファイアの大規模なセキュリティ分析を実施することを目的としています。この目標を達成するために、私たちは新しいスマート コントラクト分析ツールである SoMo を設計および実装します。その主な目的は、1 つ以上の保護されていないスマート コントラクト機能からバイパスできる安全でない修飾子を特定することです。これは、修飾子とその変数/関数の間の複雑な関係と、攻撃者がアクセスできるエントリ関数が不確実であるため、困難です。これらの問題を克服するために、最初に、すべてのモディファイア関連の制御/データ フローを接続するための新しい構造であるモディファイア依存関係グラフ (MDG) を提案します。MDG では、システム変数をモデル化し、シンボリック パス制約を生成し、各候補エントリ関数を繰り返しテストします。私たちの広範な評価結果では、SoMo がすべての真陽性を検出し、11 件の偽陽性を正確に回避する点で最先端の SPCon ツールよりも優れていることが示されています。また、62,464 件の契約の大規模なデータセットを分析した場合、400 を超えるモディファイアがバイパス可能であると特定され、91.2% という高い精度を達成しました。私たちの分析により、修飾子に関する 3 つの興味深いセキュリティ調査結果と、修飾子が使用される 9 つの主な方法がさらに明らかになりました。SoMo は、オンライン セキュリティ スキャン サービス MetaScan に統合されています。

論文リンク: https://doi.org/10.1145/3597926.3598125

f91d81c19f39ef7d6ff25b71c0b13f6d.png

12、実際の事故から自動運転の重要なテストシナリオを構築

自動運転技術の開発・普及の目的の一つは、人的要因による交通事故を減らすことです。しかし、自動運転システム (ADS) に関連する死亡事故に関する最近のデータは、この重要な目標がまだ達成されていないことを示しています。したがって、安全運転のより包括的かつ的を絞ったテストのために、新しい要件が提案されています。本稿では、実際の事故データから主要なテストシナリオを自動的に構築する方法を提案します。まず、事故記録(画像やビデオなど)から有効な情報を抽出し、さまざまな交通参加者の独立した個人を分離して現場をさらに復元するための、M-CPS(Multi-channel Panoramic Segmentation)と呼ばれる新しいモデルを提案します。従来のパノラマ セグメンテーション モデルと比較して、M-CPS モデルは、撮影角度、画質、ピクセルの重複などの問題により事故記録に存在するセグメンテーションの課題を効果的に処理できます。次に、抽出されたコア情報が仮想テスト プラットフォームに接続されて、元のシーン セットが生成されます。さらに、元のシナリオ セットに基づいて突然変異テスト ソリューションを設計し、テスト用のシナリオ ライブラリを大幅に強化しました。実験では、M-CPS モデルは CityScapes テスト セットで 66.1% の PQ 結果を達成し、純粋なパノラマ セグメンテーション タスクにおける最良のベースライン モデルと比較して、モデルのパフォーマンスがわずかに変動するだけであることを実証しました。SHIFT データセットでは、セマンティック セグメンテーション ブランチは 84.5% の IoU 結果を達成し、インスタンス セグメンテーション ブランチは 40.3% の mAP 結果を達成しました。次に、UCF-Crime、CADP、および US-Accidents データセットを使用して、オリジナルのシーン セットと変更されたシーン セットを生成しました。これらの生成されたシナリオのセットは、Apollo および Carla シミュレーション プラットフォームに接続され、ADS プロトタイプのテストに使用されました。ADS プロトタイプで事故が発生する 3 種類のシナリオが見つかり、既存の ADS プロトタイプに欠陥があることがわかりました。当社のソリューションは、ADS テストにおける主要なシナリオの回復に新たな可能性をもたらし、関連分野の効率を向上させることができます。

論文リンク: https://doi.org/10.1145/3597926.3598070

9455c29ceba0ae87f540a5033e12f065.png

13、CGuard: C 向けのスケーラブルで正確なオブジェクト境界保護

宇宙セキュリティ違反は、多くのセキュリティ攻撃やアプリケーションの予期せぬ動作の根本原因です。空間の安全性を強化するための既存の技術は、通常、オブジェクトまたはポインターの粒度で広範囲に機能します。オブジェクトベースのアプローチでは CPU オーバーヘッドが高くなる傾向がありますが、ポインターベースのアプローチでは CPU とメモリのオーバーヘッドが高くなります。

SGXBounds は、同様の精度を持つ他のツールよりもオーバーヘッドが低く、境界外のアクセスからオブジェクトを正確に保護するオブジェクト ベースのアプローチです。ただし、このアプローチの大きな欠点は、32 ビットを超えるアドレス空間をサポートできないことです。

この記事では、アプリケーションのアドレス空間を制限することなく、SGXBounds に匹敵するオーバーヘッドで C アプリケーションに正確なオブジェクト境界保護を提供するツールである CGuard を紹介します。CGuard は、オブジェクトのベース アドレスの前に境界情報を格納し、x86_64 アーキテクチャで利用可能な仮想アドレスの追加ビットを使用して、ベース アドレスの相対オフセットをエンコードします。追加ビットに収まらないオブジェクトの場合、CGuard はカスタム メモリ レイアウトを使用して、1 回のメモリ アクセスだけでオブジェクトのベース アドレスを見つけることができます。私たちの調査により、SPEC CPU2017 ベンチマーク スイートの gcc ベンチマークと x264 ベンチマーク、および Phoenix ベンチマーク スイートの string_match ベンチマークでスペース セキュリティ違反が明らかになりました。SPEC CPU2017 と Phoenix ベンチマーク スイートの実行時間のオーバーヘッドはそれぞれ 42% と 26% でしたが、CPU が完全に飽和すると、Apache Web サーバーのスループットは 30% 減少しました。これらの結果は、CGuard が妥当な効率レベルを維持しながら非常に効果的であることを示しています。

論文リンク: https://doi.org/10.1145/3597926.3598137

5f18e1e5146d49033cf7d75c718a6d7e.png

14、CONCORD: ソースコードのクローン認識対照学習

過去数年にわたって、ディープ ラーニング (DL) モデルはソース コードを分析する上で大きな可能性を示してきました。最近、自己教師あり事前トレーニングは、クローン作成やバグ検出などの多くの下流ソフトウェア エンジニアリング タスクにとって価値のあるユニバーサル コード表現を学習するために注目を集めています。

これまでの研究では、さまざまなコード抽象化 (マークアップ、AST、グラフなど) からの学習に成功しましたが、普遍的な表現を学習するには、開発者が日常的にコーディングする方法も考慮する必要があると主張します。一方で、人間の開発者は、関数を最初から実装するのではなく、現在のコード ベースまたはオンライン リソース (Stack Overflow Web サイトなど) から既存のコード スニペットを参照して反復的なプログラムを作成する傾向があり、この動作によりコード クローンが大量に作成されます。 。逆に、欠陥のあるクローンが悪意のあるプログラムの動作を引き起こす可能性があります。

したがって、開発者のコ​​ーディング動作を事前トレーニング スキームに組み込むための代用として、コード クローンとその異常なバリアントを含めることを提案します。具体的には、我々は、良性のクローンを表現空間の近くに配置し、異常な変異体を遠ざける自己監視型事前トレーニング戦略である CONCORD を提案します。CONCORD のクローン対応事前トレーニングにより、高価な事前トレーニング リソース要件が大幅に削減され、同時に下流のソフトウェア エンジニアリング タスクのパフォーマンスが向上することを実証します。また、CONCORD が既存の事前トレーニング済みモデルを改善し、より良い表現を学習できるため、意味的に同等のプログラムを識別し、バグのあるコードとバグのないコードを区別する効率が向上することも経験的に実証しています。

論文リンク: https://doi.org/10.1145/3597926.3598035

2d01f12df8586934994983f231757d2d.png

15、カタマラン: 並列加速による低オーバーヘッドのメモリ安全強化

メモリの安全性の問題は、C/C++ プログラムに固有の病気です。

動的メモリ安全性の強制は、主要な方法として効率の点で利点がありますが、実行時の過度のオーバーヘッドに悩まされます。

オーバーヘッドを削減する既存の試みは、労働集約的であるか、特定のハードウェア/コンパイラのサポートに大きく依存しているか、効果がありません。

この論文では、動的検査コードを並列実行することで時間オーバーヘッドを削減する新しい手法を提案します。

静的な依存関係分析と動的な利益分析を活用して、独立したスレッドで同時に実行する可能性のあるコードを特定してスケジュールします。私たちは Catamaran と呼ばれるツールを実装し、豊富なベンチマーク セットで評価しました。

実験結果では、Catamaran がメモリ安全性強制の機能を失うことなく、既存の動的ツールの実行時のオーバーヘッドを大幅に削減できることが確認されました。

論文リンク: https://doi.org/10.1145/3597926.3598098

76922b1690bc36b9b6416dc7f172af51.png

16、CodeGrid: コードのグリッド表現

コード表現は、人工知能をソフトウェア エンジニアリングに適用する際の重要なステップです。汎用の自然言語処理表現は効果的ですが、コードに固有の豊富な構造を最大限に活用できません。最近の研究は、抽象構文ツリー (AST) を抽出し、その構造情報をコード表現に統合することに焦点を当てています。これらの強化された AST 表現方法は技術の進歩を促進し、ソフトウェア エンジニアリングにおける人工知能の新しい応用を加速します。ただし、AST はコード構造の重要な制御およびデータ フローの側面を無視し、潜在的に関連するコード信号の一部を悪用されないままにします。たとえば、純粋なイメージベースの表現は、AST ベースの表現とほぼ同じように機能しますが、セマンティクスはもちろんのこと、トークンを認識することも学習する必要があります。この結果は、これらの新しいコード表現方法にはまだ改善の余地があるという以前の研究からの強力な証拠であり、画像ベースの方法によって正確にどのような信号が利用されるのかという疑問も生じます。私たちはこの質問に答えました。私たちは、コードが本質的に空間的であることを示し、この事実を利用して、コードのレイアウトを保持するグリッドにトークンを埋め込む新しい表現を提案します。一部の最新技術の方法とは異なり、このアプローチは下流のタスクに依存しません。つまり、タスクが生成か分類かに関係なく、空間信号を使用して学習アルゴリズムを強化します。たとえば、本質的に空間認識モデルである畳み込みニューラル ネットワーク (CNN) が出力を活用して、コード分類、コード クローン検出、脆弱性検出などの基本的なソフトウェア エンジニアリング タスクを効果的に解決できることを実証します。PixelCNN はグリッド表現を利用してコード補完を実装します。私たちは広範な実験を通じて空間コード仮説を実証し、グリッド範囲の変化を維持しながらモデルのパフォーマンスを定量化します。その一般化可能性を実証するために、モデルを強化してさまざまなタスクのパフォーマンスを向上させる方法を示します。クローン検出に関しては、ASTNN と比較して F1 スコアが 3.3% 増加しました。

論文リンク: https://doi.org/10.1145/3597926.3598141

038c64032ad3baa8392b9e8439de7d38.png

17、CoopHance: 深層学習システムの堅牢性のための協調強化

ディープラーニング システムにとって、敵対的攻撃は常に注意を必要とする脅威です。敵対的攻撃は、無害な入力に人間には知覚できない摂動を加えることにより、深層学習システムに誤動作を引き起こす可能性があります。業界におけるディープ ラーニング システムの人気を考慮すると、開発者はディープ ラーニング システムを敵対的攻撃に対してより堅牢にするための措置を早急に講じる必要があります。

本研究では、CoopHanceと呼ばれる新しい拡張技術を提案します。CoopHance は、レギュレーターとインスペクターという 2 つの特別にカスタマイズされたコンポーネントを活用して、さまざまな歪みを持つ敵対的な例に対する深層学習システムの堅牢性を相乗的に強化します。Regulator は低または中程度の歪みを持つ敵対的な例を浄化できますが、Inspector は深層学習システムの異常な状態を捕捉することで、高い歪みを持つ敵対的な例を検出する責任があります。さまざまな攻撃を使用して評価しました。その結果、平均して、CoopHance は、CIFAR-10 データセットと SVHN データセット上の保護されていないシステムによって生成された敵対的な例のそれぞれ 90.62% と 96.56% を防御でき、Feature Squeeze を含むものよりも優れていることがわかりました。 LID SOAP、Adversarial Training、MagNet を含む 5 つの最先端の強化テクノロジーはより効果的であり、効果は 188.14% 向上しました。一方、攻撃者が拡張システム上で新たな敵対例を生成すると、CoopHance は攻撃の 78.06% を拒否できます。これは、5 つの拡張技術のうち最良のものと比較して平均 82.71% の向上です。

論文リンク: https://doi.org/10.1145/3597926.3598093

f518f25f347737717d43d1594ab77185.png

18、DeFiTainter: DeFiプロトコルにおける価格操作の脆弱性の検出

DeFi プロトコルは、ブロックチェーン上の高価値デジタル資産を管理するプログラムです。価格操作の脆弱性は、DeFi プロトコルの一般的な脆弱性の 1 つであり、攻撃者がトークンの価格を操作することで過剰な利益を得ることができます。この論文では、価格操作の脆弱性を検出するためのクロスコントラクト汚染分析フレームワークである DeFiTainter を提案します。DeFiTainter は、その有効性を確保するための 2 つの革新的なメカニズムを備えています。1 つ目のメカニズムは、コード定数だけでなく、コントラクト ストレージや関数パラメーターを含む呼び出し情報を回復することによって、クロスコントラクト汚染分析用のコール グラフを構築することです。2 番目のメカニズムは、価格操作の脆弱性を検出し、汚染源と汚染源を正確に特定し、契約全体で汚染データを追跡するための高レベルのセマンティック誘導です。現実世界のイベントと高価値のDeFiプロトコルに関する広範な評価により、DeFiTainterは既存の手法を上回っており、価格操作の脆弱性の検出において96%の精度と91.3%の再現率で最先端のパフォーマンスを達成していることが示されています。さらに、DeFiTainter は、これまで未公開だった 3 つの価格操作の脆弱性を明らかにしました。

論文リンク: https://doi.org/10.1145/3597926.3598124

232d4124425a03d506dd4f015954332a.png

19、DeUEDroid: UTG 類似性に基づいたアンダーグラウンド エコノミー アプリの検出

近年、モバイル システムにおける地下経済が隆盛を極めています。これらのアンダーグラウンド エコノミー アプリケーション (略して UEware) は、特に機密分野 (ギャンブル、ポルノ、ローンなど) で違法なサービスを提供することで利益を上げています。従来のマルウェアとは異なり、そのほとんど (80% 以上) には悪意のあるペイロードがありません。その独特の特性により、既存の検出方法では、この新たな脅威に効果的かつ効率的に対処することができません。

この問題に対処するために、インターフェイス遷移グラフ (UTG) を考慮することで、UEware を効果的かつ効率的に検出する新しいアプローチを提案します。このアプローチに基づいて、DeUEDroid という検出用のシステムを設計および実装しました。DeUEDroid を評価するために、25,717 個のアプリケーションを収集し、最初の大規模な UEware 実世界データセット (1,700 個のアプリケーション) を構築しました。実際のデータセットに基づく評価結果は、DeUEDroid が新しいインターフェイス機能をカバーし、正確な UTG を静的に構築できることを示しています。検出 F1 スコアは 98.22% に達し、分類精度は 98.97% に達し、従来の方法のパフォーマンスよりも大幅に優れています。24,017 のアプリケーションを対象とした評価結果は、実際のシナリオにおける UEware の検出の有効性と効率性を示しています。さらに、結果は UEware が普及しており、実際に流通しているアプリの 54%、アプリ ストアのアプリの 11% が UEware であることを示しています。私たちの研究は、UEware の分析と検出における将来の研究に影響を与えます。コミュニティと協力するために、プロトタイプ システムとデータセットをオンラインで利用できるようにしました。

論文リンク: https://doi.org/10.1145/3597926.3598051

337bb3544af6618148bf0fcc19854e2f.png

20、制御フローグラフニューラルネットワークによる状態関連のバグの検出

自動エラー検出は高品質のソフトウェア開発に不可欠であり、長年にわたり幅広い注目を集めてきました。さまざまなエラーの中でも、条件式は非常にエラーが発生しやすく、実際には条件に関連したエラーがよくあることがこれまでの研究で示されています。従来の自動エラー検出方法はコンパイル可能なコードに限定されることが多く、面倒な手作業が必要です。最近の深層学習ベースの研究では、抽象構文ツリー (AST) に基づいて一般的な構文特徴を学習したり、既存のグラフ ニューラル ネットワークをプログラム グラフに適用したりする傾向があります。ただし、AST ベースのニューラル モデルはソース コードの重要な制御フロー情報を見逃す可能性がありますが、エラー検出用の既存のグラフ ニューラル ネットワークは局所的な近傍構造情報を学習する傾向があります。一般に、状態関連エラーは制御フローの知識に大きく影響されるため、状態関連エラーを自動的に検出する制御フロー グラフベースのグラフ ニューラル ネットワーク (CFGNN) を提案します。これには、制御を効率的に学習するためのグラフ構造の LSTM ユニットが含まれています。フロー知識と長距離コンテキスト情報。

また、API の知識を活用するために、API 使用状況注意メカニズムも採用しています。提案されたアプローチを評価するために、一般的な GitHub リポジトリで実際のバグを収集し、大規模な条件関連のバグ データセットを構築します。実験結果は、私たちが提案した方法が、状態関連エラーの検出において既存の最先端の方法よりも大幅に優れていることを示しています。

論文リンク: https://doi.org/10.1145/3597926.3598142

46c481495e9eeafd6566ac8199e2d45f.png

21、オンチェーントランザクションリプレイとファジングによるDAppsの状態不一致バグの検出

分散アプリケーション (DApp) は、ブロックチェーン上で実行される複数のスマート コントラクトで構成されます。DApp エコシステムの人気が高まるにつれ、DApp の脆弱性は経済的損失などの重大な影響を与える可能性があります。最新の DApp は複数の契約間の複雑な相互作用で構成されているため、DApp の脆弱性を特定するのは簡単な作業ではありません。スマートコントラクトの脆弱性を確認するためにスマートコントラクトを分析する際に正確なコンテキスト情報が欠如しているため、以前の研究では高い誤検知率または高い誤検知率が発生していました。このペーパーでは、状態不整合 (SI) 脆弱性を効果的に特定するためのファズ テストに基づく新しいフレームワークである IcyChecker を紹介します。これは、再入可能脆弱性やアップフロント トランザクションの複雑なパターンなど、脆弱性につながる可能性のある特定の種類の脆弱性です。以前の作品とは異なり、IcyChecker は正確なコンテキスト情報のセットを利用して、チェーン上の履歴トランザクションを再生することでコントラクトを曖昧にします。さらに、他のファズ テスト手法で必要とされる特定のテスト オラクルを設計する代わりに、IcyChecker は一連のファズ テスト トランザクション シーケンスを変更し、ステータスの違いを観察することで SI の脆弱性をさらに特定する新しいメカニズムを実装します。人気のある DApps 上位 100 件に対する IcyChecker の評価では、合計 277 件の SI 脆弱性を 87% の精度で効果的に特定したことがわかりました。Smartian、Confuzzius、Sailfish などの他の最先端ツールと比較することで、IcyChecker はより多くの SI 脆弱性を特定するだけでなく、正確なオンチェーン データと独自のデータが統合されているため、誤検知率も低いことがわかります。ファズテスト戦略。私たちの研究は、DApps のスマート コントラクトの脆弱性を発見するための新しい方法を提供します。

論文リンク: https://doi.org/10.1145/3597926.3598057

5f27776c012f5b330900ca3c01b090b7.png

22、SSEベースのオンデマンドエイリアス分析によるLinuxベースの組み込みファームウェアの脆弱性の検出

Linux ベースの組み込みファームウェアで静的テイント分析を使用してテイント タイプの脆弱性を検出する重要性は広く認識されていますが、既存の方法には次のような大きな制限があります。 (a) 既存の方法では、攻撃者が制御可能なソースからソースへの移行を適切に処理できません。セキュリティに敏感な場所間の間接的な呼び出しは、多数の誤検知につながります。(b) ヒューリスティックを使用して汚染源を特定しますが、その精度が十分ではないため、誤検知率が高くなります。

これらの問題に対処するために、Linux ベースの組み込みファームウェアのテイント タイプの脆弱性を正確かつ迅速に検出するための新しい静的手法である EmTaint を提案します。EmTaint では、まず構造化されたシンボリック表現に基づいたオンデマンドのエイリアス解析テクノロジを設計します。これに基づいて、間接呼び出し解析と正確なテイント分析ソリューションを提案しました。EmTaint をクリーニング ルール チェックと組み合わせることで、限られた時間内で多数の汚染された脆弱性を正確に検出できます。私たちは、6 つの有名なベンダーからの 35 個の実際の組み込みファームウェア サンプルで EmTaint を評価しました。その結果、EmTaint は 41 件の n-day 脆弱性と 151 件の 0-day 脆弱性を含む、少なくとも 192 件の脆弱性を発見したことがわかりました。この記事の執筆時点では、報告された脆弱性の一部に少なくとも 115 の CVE/PSV 番号が割り当てられています。KARONTE や SaTC などの最先端のツールと比較して、EmTaint は同じデータセット上でより短い時間でより多くの脆弱性を発見します。

論文リンク: https://doi.org/10.1145/3597926.3598062

700e91bf3a9620c0c1ef42b9970b3847.png

23、EDHOC-Fuzzer: EDHOC プロトコル状態ファザー

EDHOC は、IETF によって提案されたコンパクトで軽量の認証キー交換プロトコルであり、その設計は、制約のある IoT 通信テクノロジに適した小さなメッセージ サイズに重点を置いています。このツール ペーパーでは、EDHOC クライアントおよびサーバー実装用のプロトコル状態ファザーである EDHOC-Fuzzer の概要を説明します。モデル学習を使用して EDHOC 実装のステート マシン モデルを生成し、その入出力動作をキャプチャします。このモデルは、モデルベースのテストやフィンガープリントに使用したり、不整合、ステート マシン エラー、セキュリティの脆弱性を分析したりできます。EDHOC-Fuzzer のアーキテクチャと使用法の概要を示し、ツールによって生成されたモデルの例と現在の調査結果を示します。

論文リンク: https://doi.org/10.1145/3597926.3604922

aae4a16cf3417e712fb6de6062eea108.png

24、NLP 手法による REST API テストの強化

RESTful サービスは通常、OpenAPI 仕様を使用して文書化されます。仕様の機械可読部分を利用してテスト生成をガイドする自動テスト手法が数多く提案されていますが、人間が可読部分はほとんど無視されてきました。仕様内の自然言語記述には、サンプル値やパラメーター間の依存関係など、テスト生成を改善するために使用できる関連情報が含まれていることが多いため、これは見落とされている機会です。この考えのもと、自然言語処理技術を応用してREST APIのテストを支援する自動化手法「NLPtoREST」を提案しました。API とその仕様を指定すると、NLPtoREST は仕様の人間が読める部分から追加の OpenAPI ルールを抽出します。次に、これらのルールを元の仕様に追加して仕様を強化します。テスト ツールは、強化された仕様を透過的に使用して、より適切なテスト ケースを生成できます。自然言語に固有のあいまいさ、またはドキュメントと実装間の不一致が原因で、ルールの抽出が不正確になる可能性があるため、NLPtoREST には、偽のルールを排除するように設計された検証ステップも含まれています。私たちは、ルールの抽出と検証のアプローチの有効性と、8 つの最先端の REST API テスト ツールのパフォーマンスに対する仕様の強化の影響を評価するための調査を実施しました。NLPtoREST が多くの関連ルールを高精度で抽出できるため、テスト ツールのパフォーマンスが大幅に向上することを示した、心強い結果が得られました。

論文リンク: https://doi.org/10.1145/3597926.3598131

73684c97f629be266729e2ac2ca2e12e.png

25、Eunomia: シンボリックに実行される WebAssembly バイナリでのユーザー指定のきめ細かい検索の有効化

既存の技術では、シンボリック実行におけるパス爆発の問題を軽減するための自動化された方法が提案されていますが、ユーザーはさまざまな検索戦略を慎重に適用してシンボリック実行を最適化する必要があります。既存の方法は主に粗粒度のグローバル検索戦略をサポートしているため、複雑なコード構造を効率的に横断することができません。この論文では、きめ細かいローカル ドメインの知識をサポートするシンボリック実行テクノロジである Eunomia を提案します。Eunomia は、ユーザーがプログラムのさまざまな部分に対してローカル検索戦略を指定できるドメイン固有言語である Aes を使用します。Eunomia は、競合を避けるために、さまざまなローカル検索戦略の変数コンテキストも分離します。さまざまな言語で書かれたアプリケーションを解析できる WebAssembly を使用して Eunomia を実装しました。Eunomia は、WebAssembly の全機能をサポートする最初のシンボリック実行エンジンです。私たちは、マイクロベンチマーク スイートと 6 つの実際のアプリケーションを使用して Eunomia を評価します。評価結果は、Eunomia がエラー検出を最大 3 桁改善できることを示しています。また、Aes を使用するメリットを実証するユーザー調査も実施しました。さらに、Eunomia は 6 つの既知のバグを検証し、Collections-C で 2 つの新しいゼロデイ バグを検出しました。

論文リンク: https://doi.org/10.1145/3597926.3598064

402008a0a21a5f285de4f721675f230e.png

26、文法ベースの検索で短くて遅い入力をより速く見つける

最近の研究では、適切にインストルメントされた突然変異検索により、パフォーマンスの問題を示す短い入力が生成される可能性があることが示されています。ファジング研究の別の方向性は、派生ツリーのフォレスト内のサブツリーとの置換が、深い意味論的エラーを発見するための効果的な構文ベースのファジング手法であることを示しています。長さ制限のある派生ツリーを生成することで、パフォーマンス ファジングと構文ベースの検索を組み合わせます。各サブツリーにはその長さのラベルが付けられます。さらに、パフォーマンスを計測したフィードバックを使用して検索をガイドします。セキュリティ問題のファズ テストとは対照的に、定期的な増分テスト プロセスの一部となるのに十分短い検索プロセス (適度なコンピューティング リソースを使用して最大 1 時間) に焦点を当てています。従来の最高パフォーマンスのファジング ツールを含むベンチマークで、これらの手法の組み合わせを評価します。すべてのサンプルで優勢な単一の検索手法はありませんが、モンテカルロ ツリー検索と長さ制限付きツリー ハイブリダイゼーションは、構文的に正しい入力でセマンティック パフォーマンス エラーが見つかるサンプル アプリケーションで一貫して良好に機能します。評価中に、LunaSVG でハングするバグを発見しました。開発者はそれを認識し、修正しました。

論文リンク: https://doi.org/10.1145/3597926.3598118

f26b192965970c181179319dd408fa05.png

27、抽象構文ツリーのブロックベース分割によるきめ細かいコードクローン検出

コード クローン検出は、類似したコード フラグメントを見つけることを目的としており、ソフトウェア エンジニアリングの分野でますます重要になっています。コード クローンを検出するには、いくつかの手法があります。テキスト ベースまたはマークアップ ベースのコード クローン検出ツールは、スケーラブルで効率的ですが、構文に関する考慮事項が欠けているため、構文上のコード クローンを検出するパフォーマンスが低くなります。構文的または意味論的なコード クローンを良好なパフォーマンスで検出するために、いくつかのツリーベースの方法が提案されていますが、それらはほとんどの場合時間がかかり、スケーラビリティに欠けています。さらに、これらの検出方法では、きめ細かいコード クローン検出を実現できず、クローン化された特定のコード ブロックを区別できません。この論文では、スケーラブルで粒度の細かいツリーベースの構文コード クローン検出ツールである Tamer を設計します。具体的には、複雑な抽象構文ツリーを単純なサブツリーに変換する新しい方法を提案します。これにより、検出プロセスが高速化され、クローン ペアの詳細な分析が可能になり、コードの特定のクローン部分を特定できるようになります。Tamer の検出パフォーマンスとスケーラビリティを調べるために、広く使用されているデータセット BigCloneBench で評価します。実験結果では、Tamer が 10 種類の最先端のコード クローン検出ツール (CCAligner、SourcererCC、Siamese、NIL、NiCad、LVMapper、Deckard、Yang2018、CCFinder、CloneWorks) よりもパフォーマンスが優れていることが示されています。

論文リンク: https://doi.org/10.1145/3597926.3598040

c0c1d746da7629c169d4b2aa5fa22213.png

28、HirGen を使用した深層学習コンパイラのファジング

ディープ ラーニング (DL) コンパイラは、さまざまなハードウェアに効率的に展開できるように高レベルの DL モデルを最適化するために広く使用されています。その品質は、コンパイルされた DL モデルの品質に大きな影響を与えます。最近のバグ調査では、高レベル中間表現 (IR) の最適化が最もエラーが発生しやすいコンパイル段階であり、この段階でのエラーが収集されたエラー全体の 44.92% を占めることが示されました。ただし、既存のテスト手法では高度な最適化に関連する機能 (高度な IR など) が考慮されていないため、この段階でエラーを明らかにするには不十分です。このギャップを埋めるために、高度な IR 最適化におけるコーディング エラーを効果的に明らかにできる自動テスト手法である HirGen を提案します。HirGen の設計には、1) 多様で効率的な計算グラフを生成するための 3 つのカバレッジ基準、2) 高レベル IR の言語機能を活用して多様な IR を生成、3) 3 つのテスト オラクル (そのうち 2 つはセル テストとインスピレーションの対象となる) が含まれます。差動テスト。HirGen は、TVM で発生する 21 件のエラーを検出することに成功し、そのうち 17 件が確認され、12 件が修正されました。さらに、高度な最適化段階をカバーできる最先端の DL コンパイラー ファザーを使用して 4 つのベンチマークを構築します。私たちの実験結果は、HirGen はベースラインでは検出できない 10 件のクラッシュと不整合を 48 時間以内に検出できることを示しています。また、提案された適用範囲基準とテストオラクルの実用性も評価します。

論文リンク: https://doi.org/10.1145/3597926.3598053

4377d5d5661b88b9a72b27a3944983ec.png

29、デバッグインターフェースを使用した組み込みシステムのファジング

組み込みシステムのファジングテストは困難です。その主要なコンポーネントであるマイクロコントローラーは非常に多様であり、仮想化が困難であるため、ソフトウェアは変更または実装できない場合があります。ただし、ほとんどではないにしても、多くのマイクロコントローラーにはデバッグ インターフェイスを介したデバッグ機能があり、デバッグ プローブ (通常は GNU デバッガー GDB を通じて制御可能) が限られた数のハードウェア割り込みを設定できることがわかりました。これらのハードウェア ブレークポイントを使用すると、インスツルメントされていないバイナリに対しても部分的なカバレッジ フィードバックを抽出できるため、一般的で広く使用されているメカニズムを通じて組み込みシステムの効率的なファズ テストが可能になります。4 つの異なるマイクロコントローラー ボードで評価したところ、プロトタイプ実装の GDBFuzz はすぐに高いコード カバレッジを達成し、既知および新規の脆弱性を検出しました。GDBFuzz は、GDB がデバッグできるあらゆるプログラムやシステムに適用できるため、要求が最も少なく、最も柔軟なカバレッジ ガイド付きファジング ツールの 1 つです。

論文リンク: https://doi.org/10.1145/3597926.3598115

c9b83f569af854338c026483512ee17c.png

30、GDsmith: サイファー グラフ データベース エンジンのバグの検出

ビッグ データの時代において、グラフ データベース エンジンは、リンクされたデータのモデリングと処理における効率性において際立っています。グラフ データベース エンジンの高品質を確保するには、グラフ データベース エンジンが実際に最も一般的に採用されているランダム テスト生成などの自動テスト生成を実行することが重要です。ただし、ランダム テストの生成では、空ではないクエリ結果を生成するために複雑な入力 (つまり、プロパティ グラフやクエリ) を生成するという課題に直面しています。このような入力の生成は、誤った結果を伴うバグを検出するために特に重要です。この課題に対処するために、このホワイト ペーパーでは、Cypher グラフ データベース エンジンをテストするためのこれまでにない方法である GDsmith を紹介します。GDsmith は、ランダムに生成されたすべてのクエリがセマンティック要件を満たしていることを保証します。空ではない結果を返す複雑なクエリを生成する確率を高めるために、GDsmith では、グラフベースの複雑なパターンの組み合わせの生成とデータベースの複雑な条件の生成という 2 つの新しいテクノロジを採用しています。私たちの評価結果は、GDsmith が誤った結果を検出するための複雑なクエリを生成するのに非常に効果的かつ効率的であり、ベンチマークを大幅に上回るパフォーマンスを示していることを示しています。GDsmith は、3 つの非常に人気のあるオープンソース グラフ データベース エンジンのリリース バージョンで 28 個のバグを検出することに成功し、開発者から肯定的なフィードバックを受けました。

論文リンク: https://doi.org/10.1145/3597926.3598046

c8c527d39068c106abcaa20139c65325.png

31、GrayC: C 用コンパイラとアナライザのグレーボックス ファジング

コンパイラとコード アナライザのファズ テストでは、LLVM、GCC、Frama-C などの広く使用されているフレームワークで多くのバグが発見され、修正されています。これらのファジング手法のほとんどはブラックボックス アプローチを採用しているため、コンパイラやコード アナライザはそのようなファジングの影響を比較的受けにくくなります。

私たちは、他のアプリケーション ドメインでのこのようなグレーボックス ファズ テストの成功に触発されて、ファジング C コンパイラーとコード アナライザーに対するカバレッジ指向のミューテーション ベースのアプローチを提案します。この状況で突然変異ベースのファズ テストを適用する際の主な課題は、単純な突然変異によってコンパイルできないプログラムが生成される可能性があることです。これらのプログラムは、最適化、分析、コード生成ルーチンに影響を与える根深いエラーを見つけるのには役に立ちません。

私たちは、一般的な C 言語構造をターゲットにし、難読化されたプログラムを変換して意味のある出力を生成する新しい一連の突然変異を開発することにより、C コンパイラーおよびコード アナライザー用の新しいグレー ボックスを設計しました。これにより、差分テストをテスト オラクルとして利用し、ファザーによって生成されたプログラムをコンパイラおよびコード アナライザの回帰テスト スイートに統合する道が開かれます。

私たちは、GrayC と呼ばれる新しいオープンソース ツールにアプローチを実装し、Clang-Fuzzer、PolyGlot、および LangFuzz に類似した技術を含む他のミューテーション ベースのアプローチと比較して、コンパイラーとコード分析のパフォーマンスが向上することを実験的に実証しました。サーバーのバックエンド段階。

GrayC を使用したコンパイラおよびコード アナライザーのバグ 30 件を特定しました。これらのバグのうち 25 件は以前は知られていなかったバグであり (そのうち 22 件はレポートに基づいて修正されました)、残りの 5 つは発見される前に個別に特定されていました。確認済みのエラーを報告してください。さらに 3 件のバグ報告が調査中です。上記の結果に加えて、LLVM コードベースで以前に明らかになった 78 個の関数を対象として、GrayC によって生成されたカバレッジが強化されたテスト ケースの 24 の簡易バージョンを提供することで、Clang/LLVM テスト スイートにも貢献しました。

論文リンク: https://doi.org/10.1145/3597926.3598130

47a4e684b492158bae549b144c9f7fd9.png

32、グリーンファザーベンチマーク

過去 10 年にわたり、ファズ テストは脆弱性の発見に有効であるため、ますます注目を集めるようになりました。ただし、この期間中、主に標準化されたベンチマークが不足しているため、ファズ テスト ツールの評価は困難でした。この問題を軽減するために、Google は 2020 年に FuzzBench と呼ばれるオープンソース ベンチマーク プラットフォームをリリースしました。これは、正確なファズ テスト ツールの評価に広く使用されています。

ただし、典型的な FuzzBench の実験は完了するまでに何年もの CPU 時間を要します。ファジング ツールが積極的に開発されており、変更の経験的評価が必要であることを考慮すると、ベンチマークは計算リソースに制約があり、時間がかかります。この論文では、GreenBench と呼ばれる環境に優しいベンチマーク プラットフォームを提案します。これは、非常に高い精度を維持しながら、FuzzBench に比べてファズ テスト ツールの評価を大幅に高速化します。

FuzzBench とは異なり、GreenBench はベンチマーク テストの数を大幅に増やしながら、ファズ テストの時間を大幅に短縮します。その結果、GreenBench は FuzzBench とほぼ同じ精度 (相関関係が非常に高い) のファズ テスト ツール ランキングを生成しますが、GreenBench の方が 18 ~ 61 倍高速です。これらの発見がファジングコミュニティに与える影響について説明します。

論文リンク: https://doi.org/10.1145/3597926.3598144

52f21b308c465fb13507f770eb8a6ab2.png

33、グリーンファジング: 脆弱性予測を使用した飽和ベースの停止基準

ファズ テストは、ランダムな入力を使用してプログラムをクラッシュさせ、セキュリティの脆弱性を示す、広く使用されている自動テスト手法です。難しいですが重要な問題は、ファジング活動をいつ停止するかです。通常、アクティビティは、対象となるクラッシュやコード要素の数が一定期間内に増加しない場合に終了します。脆弱性に到達する前に途中で終了することを避けるために、アクティビティをいつ終了するかを決定する際に、クラッシュ カウントではなくコード カバレッジを使用することが多くの場合好まれます。ただし、このアクティビティは、セキュリティ クリティカルではないコードの範囲を拡大するだけであるか、同じクラッシュを繰り返し引き起こす可能性があります。したがって、コード カバレッジとクラッシュ数はファズ テストの有効性を過大評価する傾向があり、テスト プロセスの期間とコストが不必要に増加します。

この記事では、トリガーされたクラッシュや通常の関数カバレッジではなく、カバレッジの飽和に基づいてアクティビティを終了する場合に節約されるファジング時間と見逃されるバグの数との間のトレードオフについて検討します。合計 240 のセキュリティ脆弱性と 1280 のファズ テスト アクティビティを含む 30 のオープン ソース C プログラムの大規模な実証評価に基づいて、既知の脆弱性 (CVE) に基づいてソフトウェアでトレーニングされたバイナリ分類モデルを最初に実証します (潜在的に)。脆弱な機能は、静的なアプリケーション セキュリティ テスト ツールと検証済みのソフトウェア メトリクスから派生した軽量の機械学習機能を使用して、確実に予測できます。次に、私たちが提案する終了基準は、クラッシュや通常の機能カバレッジの飽和よりも 6 ~ 12 時間早く 24 時間のファジング キャンペーンを終了する一方で、0.5 未満の欠陥の平均数を見逃していることを示します。

論文リンク: https://doi.org/10.1145/3597926.3598043

09c4c80394f1e71fe0f5835100ce0b66.png

34、難しい Android マルウェアの検出を強化するためのガイド付き再トレーニング

Android オペレーティング システムは人気があるため、マルウェア開発者にとって魅力的なターゲットとなっています。機械学習ベースの技術などの検出を回避するために、攻撃者は正規のアプリケーションによく似たマルウェアの作成に投資し、現在の最先端技術に挑戦し、検出が困難なサンプルを作成します。この論文では、マルウェア検出器のパフォーマンスを向上させるために、Guided Retraining と呼ばれる教師あり表現学習に基づく方法を提案します。これを行うために、まず実験データセットを「簡単な」サンプルと「難しい」サンプルのサブセットに分割します。ここで、難易度はマルウェア検出器によって生成される予測確率に関連しています。「簡単な」サンプルのサブセットについては、このサブセットのエラー率が設計により低いため、基本マルウェア検出器を使用して最終予測が行われます。私たちの研究は、「困難な」サンプルを含む 2 番目のサブセットを対象としています。このサブセットでは、確率により分類器の予測の信頼性が低くなり、エラー率が高くなります。これらの困難なサンプルにガイド付き再トレーニング手法を適用して、分類を改善します。ガイド付き再トレーニングは、基盤となるマルウェア検出器の正しい予測とエラーを活用して、再トレーニング プロセスをガイドします。ガイド付き再トレーニングでは、教師あり対比学習を使用して、困難なサンプルの新しい埋め込みを学習し、最終予測のための補助分類器をトレーニングします。当社では、4 つの最先端の Android マルウェア検出方法をカバーする 265,000 を超えるマルウェアと無害なアプリケーションを使用して方法を検証しています。実験結果は、ガイド付き再トレーニングが困難なサンプルの予測エラーを排除することで最先端の検出器を改善し、エラー率を最大 45.19% 削減できることを示しています。さらに、私たちのアプローチは一般的であり、Android マルウェア検出以外の他のタスクにおけるバイナリ分類子のパフォーマンスを強化するように設計されていることにも注意します。

論文リンク: https://doi.org/10.1145/3597926.3598123

38444ba5fd68cd544011dbb71f29c727.png

35、ミューテーションテストによるグレーボックスファジングのガイド

グレーボックス ファズ テストとミューテーション テストは、ソフトウェア テスト研究の 2 つの人気のある分野ですが、ほとんどが独立した分野であり、これまでのところ 2 つの重複部分は限られています。グレー ボックス ファズ テストは、新しい脆弱性を検索するためによく使用され、主にコード カバレッジ選択入力を使用して保存されます。ミューテーション テストは主に、回帰テストの品質を評価するためのコード カバレッジに代わるブルート フォースの代替手段として使用されます。その目的は、ターゲット プログラムに人為的に挿入されたエラーを識別するテスト ケースの能力を評価することです。しかし、グレーボックス ファズ テストを使用して高品質の回帰テストを生成したい場合はどうすればよいでしょうか?

この論文では、高い突然変異スコアを持つテスト入力ライブラリを生成することを目的として、グレーボックス ファズ テスト ループに突然変異分析を組み込んだ Java ベースのフレームワークである Mu2 を開発および評価します。Mu2 は、差別化された期待される出力を活用して、興味深いプログラム動作を引き起こすが、クラッシュは引き起こさない入力を特定します。この論文では、各ファザーによって生成された入力を使用した突然変異解析の高コストを克服するために、Mu2 に実装されたいくつかの動的最適化について説明します。これらの最適化により、ファジング スループットと突然変異除去機能の間にトレードオフが導入されます。これは、5 つの実際の Java ベンチマークで経験的に評価されています。全体として、Mu2 のバリアントは、最先端の Java ファザー Zest よりも高い突然変異スコアを持つテスト入力ライブラリを生成できます。

論文リンク: https://doi.org/10.1145/3597926.3598107

dcc47c183915f0015a899fc232d8586d.png

36、ニューラルネットワークはセキュリティの脆弱性を修正するのにどの程度効果的ですか

セキュリティの脆弱性の修復は難しいタスクであり、自動化が切実に必要です。2 つのグループの技術が有望です: (1) コード補完などのタスクのためにソース コード上で事前トレーニングされた大規模コード言語モデル (LLM)、(2) 深層学習 (DL) モデルを使用した自動プログラム修復 (APR) 技術の自動修復ソフトウェアの欠陥。このペーパーは、Java の脆弱性を修復する際の LLM と DL ベースの APR モデルの機能を研究し、比較した最初の論文です。(1) 5 つの LLM (Codex、CodeGen、CodeT5、PLBART、および InCoder)、4 つの微調整された LLM、および 2 つの実際の Java 脆弱性ベンチマーク (Vul4J および VJBench) に基づく 4 つの DLM の APR テクノロジのアプリケーションと評価。 2) Codex トレーニングとテスト データの重複の脅威に対処するためのコード変換を設計しました; (3) LLM と APR テクノロジをより適切に評価するために、新しい Java バグ修正ベンチマーク VJBench とその変換バージョン VJBench-trans を作成しました; (4) の能力を評価しましたVJBench-trans の LLM と APR テクノロジーにより、変換の脆弱性が修復されます。私たちの調査結果は次のとおりです。 (1) 既存の LLM および APR モデルは、Java の脆弱性をほとんど修正しません。Codexは10.2件(20.4%)の脆弱性を修正し、最多となった。これらの生成されたパッチの多くはコンパイルに失敗します。(2) 共通の APR データを使用した微調整により、LLM の脆弱性修復機能を向上させることができます。(3) 新しい VJBench は、LLM と APR モデルが、CWE-325 の暗号化ステップの欠落や CWE-444 HTTP リクエストの密輸など、多くの Common Weakness Enumeration (CWE) タイプを修正できないことを明らかにしました。(4) Codex は依然として 8.7 の変換脆弱性の脆弱性を修正しており、他のすべての LLM および APR モデルを上回っています。この調査結果では、より大規模な脆弱性修復トレーニング データを作成し、このデータを使用して LLM を微調整し、コード削減変換を適用して脆弱性修復を促進するなど、Java 脆弱性修復の自動化を強化するためのイノベーションが求められています。

論文リンク: https://doi.org/10.1145/3597926.3598135

86e96c060371fc14fb3278557ea597a6.png

37、ハイブリッド インライン化: 構成およびコンテキスト依存の静的分析のためのフレームワーク

クロスプロシージャル静的分析では、良好な精度を得るためにコンテキストの感度が重要です。コンテキスト依存性を実現するには、トップダウン分析では各呼び出しサイトで呼び出される関数内のすべてのステートメントを完全にインライン化する必要があり、ステートメントの爆発が発生します。組み合わせ分析は、呼び出されるすべての関数の要約をインライン化することによって拡張されますが、厳密にはコンテキストに依存しないため、通常は精度が失われます。私たちは、構成的かつ厳密にコンテキスト依存型の静的解析フレームワークを提案します。このフレームワークは、重要な観察に基づいています。つまり、組み合わせ分析は、通常、状況に応じた分析を必要とするいくつかの重要なステートメントでのみ精度が失われます。私たちのアプローチでは、インラインのクリティカルなステートメントと、呼び出される関数ごとに非クリティカルなステートメントの概要を混合するため、非クリティカルなステートメントを再分析する必要がなくなります。さらに、私たちの分析では、必要に応じて主要なステートメントの要約を遅らせ、呼び出しコンテキストが十分に蓄積されると主要なステートメントの伝播を停止します。このフレームワークに基づいて、いくつかの分析 (ポインター分析を含む) を設計および実装しました。ポインタ分析の評価では、DaCapo ベンチマーク スイートや産業用アプリケーションの大規模な Java プログラムを数分で分析できることがわかりました。コンテキストフリー分析と比較して、ハイブリッド インライン化では、DaCapo アプリケーションと産業アプリケーションでそれぞれ 65% と 1% の時間オーバーヘッドが追加されるだけです。

論文リンク: https://doi.org/10.1145/3597926.3598042

e71ebd80d2f551825dbff5887b5284b1.png

38、Icicle: グレーボックスファームウェアファジング用に再設計されたエミュレータ

エミュレーション ベースのファザーは、ソース コードなしでバイナリをテストでき、ターゲット ハードウェア アーキテクチャでの自動実行が困難で遅い埋め込みアプリケーションを簡単にテストできます。フィードバックを抽出し、入力の突然変異をガイドして効果的なテスト ケースを生成する追加のインストルメンテーション技術が、最新のファザーの中核です。ただし、最新のエミュレーション ベースのファザーは、汎用エミュレータを再利用することによって進化しているため、ファジング技術 (たとえば、インストルメント化されたアプローチ) の開発と統合は難しく、多くの場合、命令セット アーキテクチャ (ISA) 固有のアドホックな追加方法の形で行われます。 。これにより、既存のファズ テスト技術の適用が一部の ISA (x86/x86-64 や ARM/AArch64 など) に限定されます。これは、さまざまな ISA のファームウェア ファズ テストにとって重要な問題です。この研究では、ファズ テストのシミュレーションを再考するための私たちの取り組みを紹介します。私たちは、ファズ テスト用のマルチ アーキテクチャ シミュレーション フレームワークである Icicle を設計し、実装しました。アーキテクチャに依存しない方法で、低い実行オーバーヘッドで、Icicle にインストルメンテーションを 1 回追加できることを示します。私たちは、最先端の ARM ファームウェア ファザーである Fuzzware のエミュレーターとして Icicle を使用し、結果を再現しました。重要なのは、Icicle で新しいインスツルメンテーションを利用できるようになると、新しい脆弱性の発見が可能になることを示しています。私たちは、計測器テクノロジーの既知の特定の動作機能を必要とするさまざまな命令セット アーキテクチャ (x86-64、ARM/AArch64、RISC-V、MIPS) のベンチマークの脆弱性を発見することで、Icicle の忠実性とアーキテクチャに依存しない計測器の有効性を実証します。さらに、エミュレーションベースのファザーでサポートされていないアーキテクチャの脆弱性を発見する際の Icicle の有効性を実証するために、Texas Instruments の MSP430 ISA の実際のファームウェア バイナリに対してファズ テストを実施し、7 つの新しい脆弱性を発見しました。

論文リンク: https://doi.org/10.1145/3597926.3598039

52926b0cf103fca228386ed6843efe0d.png

39、セマンティクス駆動命令ディエンファシスによるバイナリコード類似性トランスフォーマーモデルの改善

バイナリ コード類似性分析は、バイナリ実行可能形式の関数の多数の候補関数の中から、類似した関数のセットを識別するプロセスです。これらの同様の関数は、多くの場合、異なるコンパイル設定を使用して同じソース コードからコンパイルされます。この分析には、マルウェア検出、コード クローン検出、ソフトウェア パッチの自動適用など、多くの用途があります。現在の最先端の手法では、Transformer モデルなどの複雑な深層学習モデルが採用されています。これらのモデルは、特定のコンパイラ規則によって引き起こされる望ましくない命令分散バイアスの影響を受けていることがわかります。私たちは、データセットから対応する命令を削除し、モデルを微調整することで、このバイアスを検出して修正する新しい手法を開発しました。これには、深層学習モデル分析とプログラム分析の間の相乗効果が必要です。私たちの結果は、テストデータがトレーニングデータの分布に適合しない可能性がある最も困難なケースにおいて、最先端のモデルのパフォーマンスを最大 14.4% 大幅に向上できることを示しています。

論文リンク: https://doi.org/10.1145/3597926.3598121

028bbe91a42441ade21d928ee99d43a3.png

40、GNN ベースの脆弱性検出のためのインタプリタ: まだそこにいますか?

従来の脆弱性検出方法には多くの手作業が必要であるため、限界があります。自動化された脆弱性検出手法は研究者の関心を集めており、特にディープラーニングは顕著な成果を上げています。グラフィックスはテキストよりもコードの構造的特徴をうまく伝えることができるため、グラフ ニューラル ネットワーク (GNN) に基づく脆弱性検出方法はテキストベースの方法よりも大幅に優れています。したがって、GNN ベースの脆弱性検出方法がますます普及しています。ただし、セキュリティ アナリストにとって、GNN モデルはブラック ボックスに近いため、特定のコード サンプルが脆弱または安全であると検出される理由を説明する明確な証拠をモデルから提供することはできません。現段階では、多くの GNN インタプリタが提案されています。しかし、これらのインタープリタは、脆弱性検出モデルによって提供される説明の安定性と信頼性に関して、非常に一貫性がなく、説得力のない問題に悩まされています。上記の問題に対処するために、GNN ベースの脆弱性検出器の解釈方法の品質を評価するために、脆弱性検出における懸念 (安定性、堅牢性、有効性) に基づいた原則的なガイドラインを提案します。私たちは、4 つの脆弱性検出器 (DeepWukong、Devign、IVDetect、および Reveal) 上で 6 つのよく知られたインタプリタ (GNN-LRP、DeepLIFT、GradCAM、GNNExplainer、PGExplainer、および SubGraphX) の解釈パフォーマンスを評価する広範な実験を実施しました。実験結果は、ターゲット インタプリタの有効性、安定性、堅牢性の点でパフォーマンスが低いことを示しています。有効性の点では、インスタンスに依存しないメソッドは、検出モデルに対する深い洞察により、他のメソッドよりも優れていることがわかりました。安定性の観点から見ると、摂動ベースの解釈方法はモデルに依存しないため、モデル パラメーターのわずかな変化に対する耐性が高くなります。堅牢性の点では、インスタンスに依存しないメソッドは、同様の脆弱性に対してより一貫した解釈結果を提供します。

論文リンク: https://doi.org/10.1145/3597926.3598145

9b7030c82b06834d23606ecddde95b8f.png

41、ItyFuzz: スマートコントラクト用スナップショットベースのファザー

スマート コントラクトは重要な金融商品であり、そのセキュリティは最も重要です。ただし、すべてのトランザクションの背後に永続的なブロックチェーンの状態があるため、スマート コントラクト プログラムはファジングが困難です。トランザクション シーケンスの変更は複雑で、多くの場合、入力空間とプログラム空間の次善の探索につながります。この記事では、スマート コントラクトをテストするための新しいスナップショット ベースのファズ テスト ツールである ItyFuzz を紹介します。ItyFuzz では、トランザクションのシーケンスを保存して変更するのではなく、スナップショット状態とシングルトン トランザクションを保存します。興味深い状態を探索するために、ItyFuzz はデータ フロー ウェイポイント メカニズムを導入し、潜在的な勢いがより大きい状態を特定します。ItyFuzz には、状態空間をプルーニングするためのパス ポイントの比較も組み込まれています。状態のスナップショットを保持することで、ItyFuzz は再突入攻撃などの特定の攻撃を迅速に合成できます。ItyFuzz はスマート コントラクトをテストするための二次応答時間を備えているため、ローカル開発テストに比べて多くの利点があるオンチェーン テストに使用できます。最後に、現実世界のスマートコントラクトとハッキングされたいくつかのオンチェーン DeFi プロジェクトに関して ItyFuzz を評価します。命令カバレッジの点で、ItyFuzz は既存のファズ テスト ツールを上回っており、オンチェーン プロジェクトに対する実際の攻撃を迅速に発見して生成できます。

論文リンク: https://doi.org/10.1145/3597926.3598059

08462416839a8e4ee8ce3d950ffbdcfa.png

42、大規模言語モデルはゼロショット ファザーです: 大規模言語モデルによるディープラーニング ライブラリのファジング

ディープラーニング (DL) システムは非常に人気があり、私たちの日常生活に広く普及しています。これらのシステムは、DL システムの構成要素を提供する TensorFlow や PyTorch などの一般的な DL ライブラリ上に構築されています。これらの DL ライブラリのエラーを検出することは、ほとんどすべてのダウンストリーム DL システムにとって、エンド ユーザーの有効性とセキュリティを確保するために重要です。同時に、入力 DL プログラムが入力言語 (Python など) の構文/セマンティクスと、ファジングのための DL API 入力/形状制約の両方を満たす必要があるため、従来のファジング手法はこの困難な領域ではほとんど機能しません。

これらの制限に対処するために、私たちは TitanFuzz を提案します。これは、大規模言語モデル (LLM) を直接活用して、DL ライブラリをファジングするための入力プログラムを生成する最初の方法です。LLM は、人間のようなコード スニペットを自動的に生成するために、数十億のコード スニペットでトレーニングされた巨大なモデルです。私たちの重要な洞察は、最新の LLM には、トレーニング コーパスに DL ライブラリ API を呼び出す多数のコード スニペットを含めることができるため、言語の構文/セマンティクスと複雑な DL API 制約を暗黙的に学習して、効率的な DL プログラムを生成できるということです。具体的には、生成 LLM およびフィラー LLM (Codex/InCoder など) を使用して、ファズ テスト用の効率的で多様な入力 DL プログラムを生成および変更します。私たちの実験結果は、TensorFlow/PyTorch 上の TitanFuzz のコード カバレッジが、最先端のファズ テスト ツールと比較して 30.38%/50.84% 向上することを示しています。さらに、TitanFuzz は 65 個のバグを発見することができ、そのうち 44 個はこれまで知られていなかったバグであることが確認されました。

この論文は、最新の巨大 LLM を利用して、数十年にわたって研究されてきた世代ベースおよび突然変異ベースのファズ テストを直接実行できると同時に、完全に自動化され、一般化可能で、従来の方法 (DL システムなど) が困難な領域にも適用できることを示します。に対応します。私たちは、TitanFuzz がファズ テスト用の LLM のこの有望な方向にさらに多くの取り組みを推進することを願っています。

論文リンク: https://doi.org/10.1145/3597926.3598067

a9d228b7568ea09db0fdcd8e799c91b5.png

43、NodeRT: Node.js アプリケーションの競合を実際に検出する

Node.js は、優れた同時実行サポートにより、最も人気のある開発プラットフォームの 1 つになりました。ただし、Node.js アプリケーションでは、イベント ハンドラーの非決定的な実行順序によって引き起こされる競合が、重大なランタイム エラーを引き起こす可能性があります。最も高度な Node.js 競合検出ツールである NRace は、一連の HB (happens-before) 関係ルールを使用して、検出前に HB グラフを構築します。検出プロセス中に、NRace は強力な BFS ベースのアルゴリズムを利用してリソース操作間の到達可能性をクエリします。これにより、実際には大量のオーバーヘッドが発生し、NRace を実際の Node.js アプリケーションのテスト プロセスに適用できなくなります。 。この記事では、NodeRT (Node.js Race Tracker) と呼ばれる、より実用的な Node.js 動的レース検出方法を提案します。不要なオーバーヘッドを削減するために、NodeRT は HB 関係ルールを簡素化し、検出をトレース収集ステージ、競合候補検出ステージ、および誤検知除去ステージの 3 つのステージに分割します。トレース収集フェーズ中に、NodeRT は非同期コール ツリー (ACTree) と呼ばれる部分的な HB グラフを構築し、イベント ハンドラー間の効率的な到達可能性クエリを可能にします。競合候補検出フェーズでは、NodeRT が ACTree を検出し、ほとんどの非競合イベント ハンドラーを効果的に排除し、競合候補を出力します。誤検知の除去段階では、NodeRT は HB 関係ルールとリソース特性から派生したマッチング ルールを利用して、競合する候補間の誤検知を削減します。実験では、NodeRT はすべての既知の競合と 9 つの未知の有害な競合を検出しましたが、NRace は 3 つの未知の有害な競合のみを検出し、平均時間の増加は 64 回でした。NodeRT は NRace と比較してオーバーヘッドを大幅に削減し、実際のテスト プロセスに統合する実用的なツールになります。

論文リンク: https://doi.org/10.1145/3597926.3598139

c5183feafb977e4b70df0af42513b22b.png

44、OCFI: 関数エントリの識別を再び困難にする

関数エントリの識別は、バイナリ逆アセンブラにおいて重要かつ困難なタスクであり、過去数十年にわたって研究の焦点となってきました。ただし、最近の研究では、コール フレーム情報 (CFI) が正確でほぼ完全な関数エントリ情報を提供することが示されています。CFI の助けにより、逆アセンブラは関数エントリの検出を大幅に改善しました。CFI は、効率的なスタックの巻き戻しを目的として特別に設計されており、x64 および aarch64 アーキテクチャでは、すべての関数に対応する CFI があります。ただし、すべての関数や命令が実行時にスタックを巻き戻すわけではないため、逆アセンブラによる関数の検出を困難にする難読化などの技術の開発につながりました。

私たちは、CFI を難読化するためのこの観察に基づいた OCFI プロトタイプを提案します。OCFI の目的は、関数エントリ検出の方法として CFI を使用する一般的な逆アセンブラでの関数検出を妨げることです。実際のアプリケーションや自動生成されたプログラムを含む大規模なデータセットで OCFI を評価したところ、難読化された CFI がスタックを正しく巻き戻し、一般的な逆アセンブラにとって関数エントリの検出がより困難になることがわかりました。さらに、平均して、OCFI によるサイズ オーバーヘッドはわずか 4% であり、実行時のオーバーヘッドはほとんどありません。

論文リンク: https://doi.org/10.1145/3597926.3598097

d9844fd66e33e21629676ed3b376d560.png

45、コード難読化に対する Android アプリケーションの正確かつ効率的なパッチ存在テスト

サードパーティ ライブラリ (TPL) は、新しいアプリケーションを実装するために Android 開発者によって広く使用されています。ただし、TPL には多くの場合、攻撃者が悪用してアプリケーション ユーザーに壊滅的な結果をもたらす可能性があるさまざまな脆弱性が含まれています。したがって、ターゲット アプリケーションで脆弱性が修正されたかどうかをテストすることが重要です。ただし、実際には難読化が広く普及しているにもかかわらず、既存の技術では難読化されたアプリケーションのパッチの存在を効果的にテストすることはできません。コードの難読化によってもたらされる新たな課題に対処するために、この研究では、パッチ関連の方法の難読化防止セマンティック特徴を捕捉してターゲット アプリケーション内のパッチの存在を判断するシステムである PHunter を提案します。具体的には、PHunter は粗粒度の機能を利用してパッチ関連メソッドを特定し、粒度の細かいセマンティック類似性を比較してコードが修正されたかどうかを判断します。94 の CVE と 200 のアプリケーションに対する広範な評価により、PHunter が平均精度 97.1%、高い効率、低い誤検知率で既存のツールを上回るパフォーマンスを発揮できることがわかりました。さらに、PHunter はさまざまな難読化戦略に耐えることができます。さらに重要なことは、PHunter は、既存の TPL 検出ツールによって生成される誤検知を排除するのに役立ちます。特に、95.3% の精度で誤検知を最大 25.2% 削減できます。

論文リンク: https://doi.org/10.1145/3597926.3598061

e496b34e3e727b8f624b1129d2f3302c.png

46、クラウド上のアクセス制御のための定量的なポリシー修復

クラウド コンピューティングの普及に伴い、クラウドに保存された情報への安全なアクセスを提供することが重要な問題となっています。アクセス制御ポリシーが複雑なため、管理者が意図せず個人情報へのアクセスを許可してしまう可能性があり、これがクラウド サービスにおけるデータ侵害の一般的な原因となります。本稿では、過度に寛容なアクセスポリシーを自動的に修復する定量的シンボリック解析手法を提案する。SMT 定式化を使用してアクセス コントロール ポリシーのセマンティクスをエンコードし、モデル数を使用してその許容性を評価します。ポリシー、許容限界、および許可されるべき一連のリクエストが与えられた場合、指定された一連のリクエストを許可しながら許容限界に到達するために、許容度の削減と改善を通じてポリシーを繰り返し修正します。Amazon の AWS Identity and Access Management (IAM) ポリシー言語で記述されたポリシーにこの方法を適用することで、自動ポリシー修復技術の有効性を実証します。

論文リンク: https://doi.org/10.1145/3597926.3598078

48c2be1fd16fcdef8525bc660d11c775.png

47、定量的記号類似性分析

類似性分析は、ソフトウェアの変更の検出、バージョンのマージ、盗作の特定、バイナリ コードの分析など、さまざまなソフトウェア エンジニアリング タスクにおいて重要な役割を果たします。等価性分析は、異なるプログラムまたは同じプログラムの異なるバージョンが同じように動作するかどうかを判断することに焦点を当てた、より厳密な類似性の形式です。コードとバイナリの類似性および等価性の分析に関する研究は数多く存在しますが、これらの分野では定量的推論が不足しています。非等価性は、入力ドメイン空間でさまざまな方法で現れる可能性があるため、深く調査する必要がある領域です。この記事では、意味上の違いから生じる非同等性についての定量的推論の重要性を強調します。非等価性について定量的に推論することにより、プログラムがどの特定の入力範囲にわたって等価であるか、または非等価であるかを判断できます。私たちは、シンボル類似性分析における定量的推論のギャップを埋めて、プログラムの動作をより包括的に理解することを目指しています。

論文リンク: https://doi.org/10.1145/3597926.3605238

503e372bddd1f8554d6da4dbaa2f5592.png

48、レアパスガイド付きファジング

ファザーはランダムな初期シードから開始して、バグや脆弱性を引き起こす可能性のある入力を探します。ただし、ファザーは、制限的な分岐条件を満たすプログラム パスの入力を生成できないことがよくあります。この論文では、最初にプログラム内のまれなパス (つまり、満たされる可能性が低いランダムな入力によってパス制約を生成するプログラム パス) を特定し、次に入力を生成することで、ファジング ツールのパフォーマンスを向上できることを示します。まれなパスをトリガーできる /seeds。具体的には、2 つの手法を提案します。1) 定量的シンボリック解析を使用してまれなパスを特定する。2) パスガイド付きコモンモード実行を使用して、これらのまれなパスを探索できる入力を生成する。これらの入力を初期シード セットとして 3 つの最先端のファザーに供給します。一連のプログラムに対する実験的な評価では、レア パスベースのシード セットを使用するファザーは、ランダムな初期シードと比較してより優れたカバレッジを実現することが示されています。

論文リンク: https://doi.org/10.1145/3597926.3598136

021f3ad4f9ced589a4d7c37001fb4a0e.png

49、エフェクトとハンドラーによるMLIRセマンティクスの推論

MLIR は、新しいコンパイラー中間表現 (IR) 開発フレームワークです。MLIR の核心は、文法フラグメント (方言) と最適化を標準化するためのフレームワークであり、これらをオンデマンドで組み合わせてカスタマイズされた IR を形成できます。このように、MLIR では、異なるドメイン間で IR 抽象化を共有できます。産業界での MLIR の急速な導入に伴い、MLIR が提供する柔軟性とスケーラビリティに適合する形式的セマンティック テクノロジが緊急に必要とされています。我々は、MLIR と並行してモジュール式かつ構成可能な方法で方言セマンティクスを指定できるエフェクト ハンドラーに基づいた MLIR セマンティクス フレームワークを提案します。また、ハンドラーベースの MLIR セマンティクスにおけるいくつかの研究の方向性についても説明します。

論文リンク: https://doi.org/10.1145/3597926.3605239

5f28e4ecc68c15055eefea635ec7b1b3.png

50、ファイングレインガベージコレクションを使用したIFDSベースのデータフロー分析のメモリフットプリントの削減

IFDS アルゴリズムでは、多数のパス エッジをメモリに保存し、固定点に到達するまでそれらを処理する必要があるため、大規模なプログラムには大量のメモリとコンピューティング リソースの両方が必要です。一般に、テイント分析などの IFDS ベースのデータ フロー分析は、特定のプログラム ポイントでのみデータ フローの事実を発見することを目的としています。多数のパス エッジを維持すると、その多くは 1 回しかアクセスされず、メモリ リソースが無駄になり、スケーラビリティと効率が低下します (パス エッジ データ構造の再ハッシュ操作が頻繁に行われるため)。このペーパーでは、パス エッジのデータ構造から非アクティブなパス エッジ (つまり、他のパス エッジを確立するのに不要になったエッジ) を削除することで (マルチスレッドの) IFDS のメモリ使用量を削減できるようにする、きめの細かいガベージ コレクション (GC) アルゴリズムを紹介します。 。結果として得られる FPC と呼ばれる IFDS アルゴリズムは、IFDS の正確性、精度、終了特性を維持しながら、今後の解析反復で GC されたパス エッジ (未知の再帰ループの存在下で形成される可能性がある) の繰り返し処理を回避します。粗粒度 GC アルゴリズムを使用してメソッド レベルでパス エッジを収集する CleanDroid とは異なり、FPC はデータ ファクト レベルでパス エッジを収集することで粒度の細かい制御を実現します。したがって、FPC は CleanDroid よりも多くのパス エッジを収集できるため、使用されるパス エッジ データ構造の再ハッシュ操作が少なくなります。私たちの評価では、IFDS ベースの汚染分析を 28 個の Android アプリケーションのセットに適用することに焦点を当てています。FPC は 3 つのアプリケーションをスケーラブルに分析できますが、CleanDroid はアプリケーションあたり 3 時間の予算内では完全に実行できません (メモリ不足のため)。残りの 25 のアプリケーションでは、FPC は CleanDroid によって生成されるパス エッジの数とメモリ使用量をそれぞれ 4.4 倍と 1.4 倍削減します。そのため、FPC は平均して CleanDroid を 1.7 倍上回るパフォーマンスを示します (最良の場合は 18.5 倍に達します)。

論文リンク: https://doi.org/10.1145/3597926.3598041

3fefee18d11a7484654678205746f1c2.png

51、トリガーアクションプログラミングスマートホーム統合のセキュリティチェック

モノのインターネット (IoT) は、特にホーム オートメーション (HA) のコンテキストで、さまざまな分野で広く使用されています。HA-IoT デバイスをより適切に制御するため、特に複数のデバイスを統合して豊富なインテリジェント機能を実現するために、「If This then That」(IFTTT) などのトリガー アクション プログラミングが一般的なパラダイムになっています。このパラダイムを活用すると、初心者ユーザーは、特定の条件が満たされた場合に別のデバイス/サービスを介してデバイス/サービスを制御する方法に関する意図をアプレットで簡単に指定できます。ただし、セキュリティの経験が不足していたり​​、個々のデバイスをターゲットにしたサイバー攻撃のセキュリティへの影響に対する認識がなかったりするため、ユーザーは IFTTT スタイルの統合を不適切に設計する可能性があります。これにより、経済的損失、プライバシー侵害、不正アクセス、その他のセキュリティ問題が発生します。これらの問題に対処するために、この論文では、スマートホーム統合のモデリングとセキュリティ検査のための MEDIC と呼ばれるシステムフレームワークを提案します。外部からの攻撃やデバイス内の脆弱性を考慮して、サービス/デバイスの動作やアプレットの動作ルールを含むモデルを自動生成できます。私たちの方法では、統合されたモデリングと検査が完了するまでに約 1 秒かかります。私たちは 200 の統合を作成し、ユーザー調査と ifttt.com から収集したデータセットに基づいて実験を実施しました。驚くべきことに、これらの統合のほぼ 83% にセキュリティの問題がありました。

論文リンク: https://doi.org/10.1145/3597926.3598084

8c97e3ea1b26c2b27d396020b79dbf07.png

52、セマンティックベースのニューラルネットワーク修復

最近、ニューラル ネットワークは多くの安全性が重要なシステムやその他の分野で広く使用されています。ニューラル ネットワークは、TensorFlow や PyTorch などのフレームワークでのプログラミングを通じて構築 (およびトレーニング) されます。開発者は、事前定義されたレイヤーの豊富なセットを適用して、ニューラル ネットワークを手動でプログラムしたり、AutoML などの自動機械学習を通じてニューラル ネットワークを自動的に生成したりできます。ニューラル ネットワークをさまざまなレイヤーと組み合わせると、これらのレイヤーを使用するために満たさなければならない重要な制約があるため、エラーが発生しやすくなります。この研究では、欠陥のあるニューラルネットワークを自動的に修復する方法を提案します。課題は、ネットワークを効果的にするための最小限の変更を特定することです。1 つのレイヤーを変更すると、後続のレイヤーに連鎖的な影響が及ぶ可能性があるため、このアプローチでは再帰的に検索して「グローバルな」最小限の変更を特定する必要があります。私たちのアプローチは深層学習層の実行可能セマンティクスに基づいており、実際によくある 4 種類のエラーに焦点を当てています。私たちは 2 つの使用シナリオでアプローチを評価します。1 つは、自動生成されたニューラル ネットワークと手動で作成されたニューラル ネットワークにおける一般的なモデル エラーの修復です。結果は、既存の AI フレームワーク テスト手法を使用して生成されたランダムに生成されたニューラル ネットワークのセットを効果的かつ効率的に 100% 修復できること (平均修復時間 21.08 秒) と、実際のニューラル ネットワークのセットの 93.75% が間違っていることを示しています (平均時間は3分40秒)。

論文リンク: https://doi.org/10.1145/3597926.3598045

e147f628015bbed2ba745812abc74f15.png

53、SmartState: きめ細かい状態依存性分析によるスマート コントラクトの状態復帰の脆弱性の検出

Solidity によって作成されたスマート コントラクトは、イーサリアム、TRON、BNB チェーンなどのさまざまなブロックチェーン プラットフォームで広く使用されています。Solidity スマート コントラクトの独自の設計は、エラー処理とアクセス制御のための状態復元メカニズムです。しかし、最近のいくつかのセキュリティ インシデントでは、攻撃者がこのメカニズムを悪用してスマート コントラクトの重要な状態を操作し、不正な利益やサービス妨害 (DoS) などのセキュリティ上の影響を引き起こしていることが示されています。この記事では、この脆弱性を状態復元脆弱性 (SRV) と呼びます。SRV を自動的に識別するには、スマート コントラクトの状態依存関係の詳細な分析と理解を必要とするため、特有の課題が生じます。

この論文では、詳細な状態依存性分析を通じて、Solidity スマート コントラクトの状態復元の脆弱性を検出するための新しいフレームワークである SmartState を提案します。SmartState には、その有効性を確保するための新しいメカニズムが統合されています。特に、SmartState はコントラクト バイトコードと履歴トランザクションから状態の依存関係を抽出します。これらは両方とも SRV 関連の依存関係を推論するために重要です。さらに、SmartState は SRV の一般的なパターン (利益獲得と DoS) を SRV 指標としてモデル化し、構築された状態依存関係グラフに基づいて SRV を効果的に識別します。SmartState を評価するために、91 個の実世界 SRV のベンチマーク データセットに手動でアノテーションを付けました。評価の結果、SmartState は精度 87.23%、再現率 89.13% を達成したことがわかりました。さらに、SmartState は、実際の 47,351 件のスマート コントラクトから 406 件の新しい SRV を特定することに成功しました。SRV のうち 11 件は、取引額の多い人気のスマート コントラクト (つまり、上位 2,000 件) からのものです。全体として、私たちが報告した SRV はデジタル資産の総額 428,600 ドルに影響を与えました。

論文リンク: https://doi.org/10.1145/3597926.3598111

ad36d36295377c746cbd23fba9589063.png

54、Splendor: 最新の Web アプリケーションに保存された XSS の静的検出

最近の Web サイトでは、保存されたクロスサイト スクリプティング (XSS) 攻撃が最も危険な XSS 脆弱性であり、Web サイト システムに悪意のあるコードが保存され、被害者によって直接引き起こされる可能性があります。Web サイトで最も一般的に使用されるデータ記憶媒体であるデータベース (DB) は、保存された XSS が最も頻繁に発生する場所でもあります。最新のプログラミング アーキテクチャはモジュール式であるため、複雑な基盤となるデータベース操作は通常、データ アクセス層 (DAL) にカプセル化および抽象化され、ビジネス層に統合されたデータ アクセス サービスを提供します。カプセル化プロセスでオブジェクト指向 (OO) 機能と動的言語機能が広く使用されているため、静的汚染分析ツールがソース コードとデータベース間の汚染されたデータのフロー パスを理解することがますます困難になっています。この記事では、最新の Web アプリケーションで DAL を使用して保存された XSS を検出するための静的分析フレームワークを提案し、Splendor と呼ばれる PHP コード分析プロトタイプを実装します。このフレームワークのハイライトは、データベースとソース コード間の汚染されたデータ フロー パスを特定するためのヒューリスティックかつ正確なトークン マッチング方法の設計です。特定されたデータベースの読み取りおよび書き込み (R/W) 位置の精度は、それぞれ 91.3% と 82.6% でした。識別された R/W の場所を通じて、テイント パスを静的に接続して、保存された XSS の完全なテイント伝播パスを取得できます。5 つの既存の実世界アプリケーションと GitHub 上の PHP Web アプリケーションとの大規模な実験比較では、Splendor が保存された XSS 検出において最先端の静的および動的手法を大幅に上回り、17 個のゼロデイの抜け穴を発見したことが示されています。

論文リンク: https://doi.org/10.1145/3597926.3598116

c27510564913fe6d98878f71d7fca417.png

55、SymRustC: Rust用ハイブリッドファザー

我々はRust用のハイブリッドファジングツールであるSymRustCを提案します。SymRustC は、ファズテストと結合実行を組み合わせたハイブリッドです。SymRustC は、SymCC と呼ばれる既存ツールの結合実行機能と、LibAFL と呼ばれる別の既存ツールのファズ テスト機能を利用します。SymCC は共役実行のために LLVM IR (中間表現) をインストルメントし、Rust コンパイラは LLVM をバックエンドとして使用するため、SymCC を Rust コンパイラと統合して、Rust プログラムの共役実行に対するインストルメント化されたサポートを提供します。LibAFL は、ファジング ツールを開発するためのフレームワークを提供します。これを使用して、ファジングと共役実行を組み合わせたハイブリッド ファジング ツールを開発しました。SymRustC が Rust プログラムのバグを見つけるための入力を生成できることを実証するために、4 つのケーススタディとともに実装について説明します。

論文リンク: https://doi.org/10.1145/3597926.3604927

46665214c80ea1646355ed0b08e34228.png

56、KNN のデータポイズニング耐性の体系的なテスト

データ汚染は、トレーニング セットを汚染してテスト入力の予測を変更することにより、機械学習ベースのソフトウェア コンポーネントを侵害することを目的としています。データ汚染に対する堅牢性を判断するための既存の方法は、精度が低いか実行時間が長く、さらに重要なことに、真に堅牢なケースをいくつかしか証明できず、認証が失敗した場合には結論を導き出すことができません。言い換えれば、本当に非ロバストな状況を証明することはできません。この制限を克服するために、広く使用されている教師あり学習手法 k 近傍法 (KNN) のデータ汚染堅牢性を実証および実証できる、体系的なテストに基づくアプローチを提案します。私たちのアプローチは、検索スペースを迅速に狭めるための抽象ドメインでの新しいプロセス分析と、実際の違反を見つけるための具体的なドメインでの体系的なテストにより、ベースラインの列挙方法よりも高速かつ正確です。一連の教師あり学習データセットでメソッドを評価します。結果は、この方法が最先端の技術を大幅に上回り、ほとんどのテスト入力に対する KNN 予測結果のデータ汚染堅牢性を決定できることを示しています。

論文リンク: https://doi.org/10.1145/3597926.3598129

27efc7a44273f79658e8d6a32bad9b15.png

57、Tai-e: 古典の優れた設計を活用した、開発者に優しい Java 静的解析フレームワーク

静的分析は成熟した分野であり、エラー検出、セキュリティ分析、プログラムの理解、最適化などに使用されます。これらのアプリケーションを容易にするために、静的解析フレームワークは重要な役割を果たし、中間表現 (IR) の生成、制御フロー グラフの構築、ポインタ/エイリアス情報の計算などの一連の基本サービスを提供します。ただし、過去数十年間で静的分析が大幅に進歩し、いくつかのよく知られたフレームワークが登場したにもかかわらず、これらのフレームワークに依存して分析を作成および実装する開発者にとって、これらのフレームワークを学習して使用するのは簡単ではありません。この意味で、開発者にとって使いやすい静的解析フレームワークを構築することは簡単な問題ではありません。静的解析フレームワークの設計と実装に関する知識は、静的解析自体に必要な知識よりもはるかに少ないからです。

この作業では、「クラシック デザインを活用する」という原則を採用し、Java 静的分析フレームワークの主要コンポーネントの設計トレードオフを議論することで、設計ソリューションを選択します。静的分析フレームワークの主要コンポーネントごとに、次のようなさまざまなクラシック フレームワークを比較します。 Soot、Wala、Doop、SpotBugs、Checker) を選択して、より適切なソリューションを選択しますが、十分なソリューションがない場合は、より良い設計を提案します。これらの選択された設計、または新たに提案された設計は、最終的に、ゼロから実装されたまったく新しい Java 静的解析フレームワークである Tai-e を構成します。Tai-E は、IR、ポインター分析、新しい分析開発など、多くの面で革新的な設計を行っており、開発者にとって使いやすい (学びやすく使いやすい) 分析フレームワークを実現しています。私たちの知る限り、これは Java のさまざまな静的分析フレームワークの設計と実装を体系的に調査した最初の研究です。これが、より優れた静的解析インフラストラクチャを構築するための有用な資料と視点を提供し、この困難だが実践的なトピックに対するコミュニティの注目がさらに高まることを願っています。

論文リンク: https://doi.org/10.1145/3597926.3598120

8c62fa84ea7c225de150e098c038f649.png

58、多くの法律を破って効率的に自動運転システムをテストする

自動運転システム (ADS) は自動運転車 (AV) の頭脳として機能し、導入前に包括的なテストが必要です。

ADS は、交通安全を確保するために、既存の交通規制や特に AV を対象とする可能性のある将来の規制など、一連の複雑な規制を満たす必要があります。

ADS を包括的にテストするために、特定の交通法に違反するさまざまなシナリオを体系的に発見したいと考えています。課題は、一方では交通法規が多数存在することである(たとえば、中国の交通法には13の検証可能な規定があり、シンガポールの交通法には16の検証可能な規定があり、それぞれ81種類と43種類の違反をカバーしている)。ちなみに、交通法の多くは、複雑な特定のシナリオにのみ適用されます。

既存の ADS テスト方法は、単純なルール (衝突なしなど) に焦点を当てているか、さまざまな違反シ​​ナリオを生成する機能が限られています。

この研究では、GFlowNet の成功に触発され、さまざまなシナリオを生成することで複数の規制に効率的に違反するように設計された新しい ADS テスト手法である ABLE を提案します。

従来の GFlowNet とは異なり、ABLE は堅牢なセマンティクスと堅牢な信号時相論理のアクティブ学習に基づいてテスト ターゲットを動的に更新し、広大な検索空間を効果的に探索します。

Apollo と LGSVL に基づいた ABLE の評価では、Apollo 6.0 と Apollo 7.0 をテストした際に、ABLE がより多くの規制 (それぞれ 17% と 25%) に違反しており、そのほとんどは違反が難しい規制であり、現在の技術レベルを超えていることがわかりました。

論文リンク: https://doi.org/10.1145/3597926.3598108

c3c92a059d0c68677509638bc0f85727.png

59、新生プログラミング言語のコンパイラのテスト: 産業ケーススタディ (経験論文)

コンパイラの重要な役割により、多くのコンパイラ テスト手法が提案されていますが、その中で最も注目すべき 2 つのカテゴリは、構文ベースの手法と変換ベースの手法です。これらの手法はすべて、成熟したコンパイラをテストするために広範囲に研究されています。ただし、実際には、初期のプログラミング言語用に新しいコンパイラを開発する必要があることがよくあります。この場合、いくつかの重要な理由により、既存の技術を適用するのは困難です: (1) 差分テストをサポートするリファレンス コンパイラがない、(2) ほとんどのバリアント ベースのコンパイラ テストをサポートするプログラム分析ツールが不足している、(3) ) さまざまなプログラミング言語の機能により、大量の実装作業が発生します。したがって、既存のテクノロジーがこの新しいシナリオでどのように機能するかは不明です。

この作業では、この新しいシナリオに適応した既存のテクノロジーのパフォーマンスを大幅に向上させるための最初の調査 (つまり、産業ケーススタディ) を実施します。差分テスト用の参照コンパイラがないため、コード スニペットに基づいて新しいテスト プログラムを合成し、テストの期待される結果としてコンパイル クラッシュを使用することで、構文ベースのコンパイラ テスト手法をこのシナリオに適応させます。また、プログラム分析ツールへの依存を軽減するために同等のテスト プログラムを構築することで、変換ベースのコンパイラ テスト手法をこのシナリオに適応させます。これらの改良された技術をそれぞれ SynFuzz および MetaFuzz と呼びます。

私たちは、世界的な IT 企業の初期プログラミング言語用の新しいコンパイラーの 2 つのバージョンで SynFuzz と MetaFuzz を評価しました。テスト チームや一般的なファズ テスター (AFL) が採用したテスト手法と比較することで、SynFuzz は同じテスト時間でより多くのバグを検出でき、SynFuzz と MetaFuzz は両方とも 2 つのテクノロジーを補完できます。特に、SynFuzz と MetaFuzz は合計 11 個のこれまで知られていなかったバグを検出し、開発者によって修正されました。業界の事例研究に基づいて、学んだ一連の教訓と実用化および将来の研究のための推奨事項をまとめています。

論文リンク: https://doi.org/10.1145/3597926.3598077

e0f2f45202baf415cef41e2da834ffb5.png

60、C/C++ エコシステムにおける大規模 SCA のサードパーティ ライブラリの依存関係: どこまで進んでいるのか?

C/C++ エコシステム用の既存のソフトウェア構成分析 (SCA) 手法は、ターゲット ソフトウェア プロジェクトと収集されたサードパーティ ライブラリ (TPL) の間の機能マッチングを通じて、再利用されたコンポーネントを特定する傾向があります。ただし、内部コードの複製による機能の重複により、SCA の結果が不正確になる可能性があります。この問題を軽減するために、C/C++ エコシステム用の最先端の SCA テクノロジーである Centris が提案されています。これは、関数レベルのコード クローン検出を採用して TPL 依存関係を導き出し、SCA タスクを実行する前に冗長な機能を排除します。Centris は元の論文で有効であることが証明されていますが、そこから派生した TPL 依存関係の精度は評価されていません。さらに、SCA に対する TPL 依存の影響を評価するためのデータセットは限られています。Centris の有効性と限界をさらに調査するために、まず 2 つの大規模なグラウンド トゥルース データセットを構築し、派生した TPL 依存関係と SCA 結果の精度をそれぞれ評価しました。次に、Centris を広範囲に評価しました。評価結果は、Centris 由来の TPL 依存関係の精度が評価データセットに適用できない可能性があることを示唆しました。さらに、パフォーマンスの低下につながる主な要因は、不正確な関数の発生時間としきい値に基づく再現である可能性があると推測されます。さらに、Centris 由来の TPL 依存関係が SCA に及ぼす影響には、特定の制限がある可能性があります。私たちの発見に触発されて、私たちは C/C++ エコシステムにおける TPL 再利用検出の精度を高めるために、関数レベルのオリジンベースの TPL 検出とグラフベースの依存関係リコールを採用する TPLite を提案します。私たちの評価結果は、Centris と比較して、TPLite が TPL 依存関係の精度を 35.71% から 88.33% に、再現率を 49.44% から 62.65% に効果的に向上させたことを示しています。さらに、TPLite は精度を 21.08% から 75.90% に、再現率を 57.62% から 64.17% に向上させます。これは、SOTA アカデミック SCA ツール B2SFinder に匹敵し、広く採用されている商用 SCA ツール BDBA よりもさらに優れています。つまり、精度は 72.46 から 64.17 です。 % は 75.90% に増加し、再現率は 58.55% から 64.17% に増加しました。

論文リンク: https://doi.org/10.1145/3597926.3598143

13a461ee9e4496545f2d0b2c9230b437.png

61、ミュータントを殺すには: ミュータント検査による死亡に関する実証的研究

突然変異テストは、テスト スイートの強度を評価する方法として 40 年以上使用され、研究されてきました。この技術は、プログラムに人為的な欠陥 (つまり、突然変異) を追加してバリアントを生成し、その後一連のテストを実行して、その中のテスト ケースのいずれかが突然変異 (つまり、致命的なバリアント) を検出するのに十分であるかどうかを判断します。 。この場合、テスト ケースを失敗させる原因となるのは、バリアントを強制終了するケースです。しかし、これらの失敗の性質についてはほとんどわかっていません。この記事では、これらの失敗の性質を調査するために設計された実証研究を紹介します。私たちは次の質問に答えようとします: どのようにしてテスト ケースが失敗し、ミュータントの殺害につながるのでしょうか? ミュータントを殺すのに必要な失敗が 1 回だけだと考えると、殺されるミュータントごとに、失敗するテスト ケースはいくつありますか? プログラムのクラッシュはどのようにしてミュータントの殺害につながるのでしょうか?また、これらのクラッシュの原因と性質は何ですか? すべての実験対象にわたって、バリアントの破壊につながるテスト失敗への「クラッシュ」の大きな寄与、単一の突然変異であってもテスト失敗の原因が多様であること、クラッシュした特定の例外タイプが頻繁に引き起こされることなど、いくつかの明らかな結果が見つかりました。私たちは、この研究とその結果は、実務家が突然変異テストを使用してその突然変異スコアを解釈する際に、また研究者が将来の研究で突然変異テストを研究および利用する際に考慮すべきであると考えています。

論文リンク: https://doi.org/10.1145/3597926.3598090

84b67889ba9ba9616a04ea509a5b0961.png

62、スマートコントラクトにおける予期せぬ価格フィードの自動検出に向けて

スマートコントラクトベースの分散型ファイナンス(DeFi)は、2022年にロックされた総額(TVL)が2,000億ドルを超えました。DeFiエコシステムでは、価格オラクルは、スマートコントラクトにおける正確な資産価格設定を保証するために、暗号通貨のリアルタイム価格データを提供する上で重要な役割を果たします。ただし、価格オラクルは、予期せぬ価格データの可能性を含むセキュリティの問題にも直面しており、これが DeFi プロトコルにおける負債と資産の不均衡につながる可能性があります。ただし、既存のソリューションでは、トランザクションとコードを効果的に組み合わせて、リアルタイムで価格オラクルを監視することはできません。

この制限に対処するために、当社はまず、信頼できる当事者に基づいて価格オラクルを DON オラクル、DEX オラクル、または内部オラクルに分類し、セキュリティ リスク、データ ソース、価格期間、およびクエリ料金を分析します。次に、スマートコントラクト内の予期せぬ価格データを自動的に検出するための正式な検証フレームワークである VeriOracle を提案します。VeriOracle は、価格オラクルの正式なセマンティック モデルをブロックチェーン上に展開し、スマート コントラクトのステータスをリアルタイムで検出し、予期しない価格データを含むトランザクションを識別できます。私たちは、13 の脆弱な DeFi プロトコルにわたる 500,000 件を超えるトランザクションの実世界での検証に VeriOracle を適用しました。実験結果は、(1) VeriOracle は効果的であり、DeFi 攻撃の前に予期せぬ価格データを検出できる (最良の場合、攻撃者より 33,714 ブロック先)、(2) VeriOracle は効率的であり、検証時間は (約 4 秒) であることを示しています。 ) はイーサリアムのブロック時間 (約 14 秒) よりも小さいため、VeriOracle は安全でないトランザクションをリアルタイムで検出できます (3) VeriOracle はスケーラブルであり、防御戦略の検証に使用されます。予期せぬ価格データを使用した攻撃は、特定のスマート コントラクト状態でのみ成功します。VeriOracle は、どのスマート コントラクトの状態が攻撃に対して耐性があるかを検証できます。

論文リンク: https://doi.org/10.1145/3597926.3598133

23af59f66f4d33997aca5c940ae09b3b.png

63、事前トレーニング済みコードモデルの効率的な微調整に向けて: 実験的研究とその先へ

最近、CodeBERT などの事前トレーニング済みコード モデルの微調整は、多くのソフトウェア テストおよび分析タスクで大きな成功を収めています。このアプローチは効果的で一般的ですが、事前トレーニング パラメーターの微調整には多大な計算コストがかかります。この論文では、広範な実験研究を通じて、微調整中のレイヤーごとの事前トレーニング済み表現とエンコーディングのコード知識の変化を調査します。次に、これらの発見に基づいて、大規模な事前トレーニング済みコード モデルを効率的に微調整するための代替方法を提案します。私たちの実験的研究は次のことを示しています: (1) ソースコードの語彙的、構文的、構造的特性はそれぞれ下位層、中間層、上位層でエンコードされますが、意味論的特性はモデル全体に​​及びます。(2) 微調整プロセスでは、コードの機能のほとんどが保持されます。具体的には、下位層と中間層によって捕捉された基本的なコード特性は、微調整プロセス中に保持されたままになります。さらに、さまざまな下流タスクの微調整中に、上位 2 つのレイヤーの表現のみが最も大きく変化することがわかりました。(3) 上記の発見に基づいて、層のフリーズを通じて事前トレーニングされたコード モデルを効率的に微調整する Telly を提案しました。5 つの異なる下流タスクに関する広範な実験結果は、パフォーマンスが同等かそれ以上でありながら、トレーニング パラメーターとそれに対応する時間コストが大幅に削減されることを示しています。

論文リンク: https://doi.org/10.1145/3597926.3598036

69d90208e25e531d84be49fe62f1a339.png

64、TreeLine と SlackLine: コーヒーブレイクでの文法ベースのパフォーマンス ファジング

TreeLine と SlackLine は、文脈自由文法で記述された高度に構造化されたテキストによって駆動されるプログラムのパフォーマンスの問題を迅速に発見するための文法ベースのファジング ツールです。セキュリティの脆弱性を引き起こす (ほとんどが無効な) 入力を見つけることを目的とした長期にわたるファジー テスト キャンペーンとは異なり、TreeLine と SlackLine は、有効な入力を使用してパフォーマンスの問題を数時間ではなく数分で検索するように設計されています。TreeLine と SlackLine のフロント エンドは、検索戦略 (それぞれモンテカルロ ツリー検索または派生ツリー スプライシング) が異なりますが、同じ構文仕様を受け入れ、インストルメント化された実行には共通のバックエンドに依存します。懸念事項の分離は、フロントエンドまたはバックエンドの代替案や拡張機能を探索したいと考えている他の研究者にとって便利なはずです。

論文リンク: https://doi.org/10.1145/3597926.3604925

3adfdeb3e4d7d6758d48fb4f9f3596cf.png

65、ディープラーニングベースの脆弱性検出におけるラベルエラーの理解と対処(体験論文)

ソフトウェア システムの複雑さとセキュリティ脆弱性の多様性は、ソフトウェア脆弱性研究における継続的な課題の確実な原因となっています。深層学習手法を自動脆弱性検出に適用することは、従来の検出手法を補完する効果的な手段であることが証明されています。ただし、適格なベンチマーク データセットが不足していると、深層学習ベースの脆弱性検出技術の有効性が大幅に制限される可能性があります。具体的には、既存の脆弱性データセットに誤ったラベルが残っていると、不正確な結果、偏った結果、さらには誤った結果が生じる可能性があります。この記事では、ラベル付けエラーの原因を深く理解し、説明することを目的としています。この目的を達成するために、私たちは最新の学習型脆弱性検出手法で使用される多様なデータセットを体系的に分析し、脆弱なソース コードのデータセットを収集するために使用される手法を調査します。ラベル付けエラーが主流の脆弱性検出モデルに深刻な影響を及ぼし、最悪の場合、平均 F1 スコアが 20.7% 低下することがわかりました。緩和策として、データセットのノイズ除去のための 2 つの方法を導入します。これにより、モデルのパフォーマンスを平均 10.4% 向上させることができます。データセットのノイズ除去手法を利用して、高品質のラベル付きデータセットを取得するための実現可能なソリューションを提供します。

論文リンク: https://doi.org/10.1145/3597926.3598037

1851932f7c63399ffe33ff2e88369d7c.png

66、セマンティックフュージョンによるマルチメディアコンテンツモデレーションソフトウェアの検証

ソーシャル メディア プラットフォーム (Facebook、Instagram、YouTube、TikTok など) の急激な成長により、人間社会のコミュニケーション方法やコンテンツの公開方法は完全に変わりました。これらのプラットフォームでは、ユーザーはテキスト、音声、画像、ビデオを組み合わせて情報を伝えるマルチメディア コンテンツを公開できます。同時に、マルチメディア コンテンツの公開の容易さが、ヘイトスピーチ、悪意のある広告、ポルノなどの有害なコンテンツの拡散に利用されることが増えています。この目的を達成するために、有害なコンテンツを検出してブロックするために、コンテンツ管理ソフトウェアがこれらのプラットフォームに広く導入されています。ただし、コンテンツ モデレーション モデルの複雑さと複数のモダリティにわたる情報の理解の難しさにより、既存のコンテンツ モデレーション ソフトウェアでは有害なコンテンツを検出できない可能性があり、多くの場合、極度の悪影響 (青少年の精神的健康への悪影響など) につながります。 . .

マルチメディア コンテンツ モデレーション ソフトウェアを検証するための一般的で効率的な方法論であるセマンティック フュージョンを紹介します。私たちの主なアイデアは、2 つ以上の既存の単峰性入力 (テキスト文や画像など) を、新しい方法で祖先のセマンティクスを組み合わせ、有害な特性を持つ新しい入力に融合することです。この融合された入力は、マルチメディア コンテンツ モデレーション ソフトウェアを検証するために使用されます。私たちはセマンティック フュージョンを実用的なコンテンツ モデレーション ソフトウェア テスト ツール DUO として実装します。評価では、DUO を使用して 5 つの商用コンテンツ モデレーション ソフトウェアと 2 つの最先端モデルを 3 種類の有害なコンテンツに対してテストしました。その結果、DUO は監査ソフトウェアのテスト時に 100% のエラー検出率 (EFR) を達成し、最先端のモデルのテスト時に 94.1% の EFR を達成したことがわかりました。さらに、DUO によって生成されたテスト ケースを使用して、調査した 2 つのモデルを再トレーニングしました。これにより、元のテスト セットの精度を維持しながら、モデルの堅牢性 (2.5% ~ 5.7% EFR) が大幅に向上しました。

論文リンク: https://doi.org/10.1145/3597926.3598079

d1e8a7d52f52fd4a993b3873df9f246f.png

おすすめ

転載: blog.csdn.net/riusksk/article/details/132331718
おすすめ