paint-brush
MASC: 静的暗号 API 不正使用検出器の変異ベースの評価ツール@mutation
831 測定値
831 測定値

MASC: 静的暗号 API 不正使用検出器の変異ベースの評価ツール

長すぎる; 読むには

MASC は、突然変異テストを使用して暗号検出器を評価し、文書化されていない欠陥を発見し、自動化され、カスタマイズ可能で拡張可能なフレームワークを通じてソフトウェアのセキュリティを向上させる、ユーザーフレンドリーなツールです。
featured image - MASC: 静的暗号 API 不正使用検出器の変異ベースの評価ツール
The Mutation Publication HackerNoon profile picture
0-item

著者:

(1)アミット・シール・アミ、コンピュータサイエンス学部、ウィリアム&メアリー大学ウィリアムズバーグ校、バージニア州、米国、およびこの著者は、この論文に等しく貢献しました([email protected])。

(2)サイード・ユスフ・アハメド、ダッカ大学情報技術研究所、ダッカ、バングラデシュ、および本著者は、本論文に等しく貢献した([email protected])。

(3)Radowan Mahmud Redoy、ダッカ大学情報技術研究所、ダッカ、バングラデシュ、および本著者は、本論文に等しく貢献した([email protected])。

(4)ネイサン・クーパー、コンピュータサイエンス学部、ウィリアム&メアリー・ウィリアムズバーグ、バージニア州、米国([email protected]

(5)カウシャル・カフレ、コンピュータサイエンス学部、ウィリアム&メアリー大学ウィリアムズバーグ校、バージニア州、米国([email protected]

(6)ケビン・モラン、セントラルフロリダ大学コンピュータサイエンス学部、フロリダ州オーランド、米国([email protected]

(7)Denys Poshyvanyk、コンピュータサイエンス学部、ウィリアム&メアリー・ウィリアムズバーグ、バージニア州、米国([email protected]

(8)Adwait Nadkarni、コンピュータサイエンス学部、ウィリアム&メアリー・ウィリアムズバーグ、バージニア州、米国([email protected])。

リンク一覧

要約と1 はじめに

2 MASCの概要

3つの設計目標

4 MASCの実装

4.1 突然変異演算子

4.2 ミューテーションスコープ

5 MASCの使用

6 今後の課題と結論、謝辞、参考文献

抽象的な

ソフトウェア エンジニアは、暗号 API の誤用検出器 (または暗号検出器) をソフトウェア開発サイクルに積極的に導入していますが、この勢いには、暗号検出器が実際に暗号 API の誤用を検出する際の有効性を厳密に理解することが不可欠です。このデモ ペーパーでは、静的暗号 API 誤用検出器 (MASC) を評価するためのミューテーション分析という、当社のツールの技術的な詳細と使用シナリオについて説明します。当社は、暗号 API の誤用ケースのコンパイル可能なバリアントを表現的にインスタンス化するために使用できる、一般化可能な使用ベースのミューテーション演算子 12 個とミューテーション スコープ 3 個 (メイン スコープ、類似スコープ、網羅スコープ) を開発しました。MASC を使用して、9 つの主要な暗号検出器を評価し、文書化されていない固有の欠陥を 19 個発見しました。MASC は構成可能でユーザー フレンドリになるように設計されており、ユーザーはパラメーターを構成して、生成されたミューテーションの性質を変更できます。さらに、MASC にはコマンド ライン インターフェイスと Web ベースのフロントエンドの両方が付属しているため、さまざまなレベルの専門知識を持つユーザーにとって実用的です。


コード: https://github.com/Secure-Platforms-Lab-WM/MASC

1 はじめに

ソフトウェアエンジニアは、何十年もの間、作成、開発、保守するソフトウェアやサービスで暗号化APIが正しく使用されていることを確認するために暗号検出器に依存してきました[6]。このような暗号検出器は、IDE(Eclipse IDE用のCogniCryptプラグインなど[8])、Oracle Corporationなどの組織のテストスイート[9、17]、継続的インテグレーション/継続的デプロイメント(CI/CD)パイプライン[12、18]に統合されているため、ソフトウェアエンジニアリングでは遍在しています。さらに、GitHubなどのホスティングプロバイダーは、GitHub Code Scan Initiative [10]などのように、このような暗号検出器を正式にプロビジョニングしています。言い換えれば、ソフトウェアとサービスのセキュリティは、ますます暗号検出器に依存するようになっています。ただし、暗号検出器のパフォーマンスを評価するために手動でキュレートされたベンチマークに依存してきましたが、そのようなベンチマークは不完全で不正確であり、維持するのが非現実的であることが知られています[16]。したがって、セキュリティ重視の観点から暗号検出器の有効性を判断するには、暗号 API の量と多様性、およびさまざまな悪用パターンに合わせて拡張できる、信頼性が高く進化する評価手法が必要です。


我々は、変異テスト手法を文脈化して、静的暗号API誤用検出器(MASC)フレームワークを評価するための変異分析を作成しました。MASCのオリジナルのプロトタイプ実装[3]では、Javaの暗号API誤用ケースの変異をインスタンス化するために、12の一般化可能な使用ベースの変異演算子を内部的に活用していました。変異演算子は、Java暗号アーキテクチャ(JCA)[11]の設計原則と、さまざまなスキルと意図を持つユーザーで構成される脅威モデルに基づいて設計されました(セクション4.1)。MASCは、これらの変異した誤用ケースを、類似スコープ(MDroid+ [13、14]から拡張)、網羅的スコープ(𝜇SE [4、5、7]から拡張)、および独自に開発されたメインスコープの3つの変異スコープ(注入サイト)でJavaまたはAndroidベースのアプリに注入し、暗号APIの誤用を含む変異アプリケーションを作成します。私たちは、業界と学界の 9 つの暗号検出器を評価することで MASC のプロトタイプ実装の実用性を実証し、暗号検出器の範囲内での健全性を損なう、これまで文書化されていなかった 19 の未知の欠陥を発見しました。MASC の方法論、設計上の考慮事項、新しい欠陥の発見につながる暗号検出器の評価、オープンソース アプリケーションで発見された欠陥の実際の影響 (したがって、突然変異演算子の適用可能性)、および調査結果の議論の詳細については、元の研究論文 [3] を参照してください。


本稿では、セキュリティ研究者、開発者、ユーザーなど、暗号検出器の利害関係者に、拡張性、使いやすさ、保守性を重視したMASCフレームワークの成熟した実装を紹介します。詳しく説明すると、新しく開発されたプラグインアーキテクチャにより、MASCユーザーは、既存のコードベース(11𝐾+ソースコード行)を深く調べることなく、MASCに簡単にプラグインできる独自のミューテーションオペレーターを作成できるようになりました。さらに、MASCの元のプロトタイプ実装では暗号検出器の半自動評価が含まれていましたが、暗号検出器の事実上のSARIF [15]形式の出力を活用して、MASCのワークフローを自動化しました。さらに、ユーザーが参入障壁を下げるために、MASC実装のWebベースのフロントエンドを作成しました。最後に、MASCのオープンソースコードベースを再構築およびリファクタリングして、MASCの保守性と拡張性を高めました。これにより、MASCの開発者とオープンソース愛好家の両方にとって、将来の貢献と機能強化が容易になります。これらの追加機能と機能強化により、MASC の現在のオープンソース実装が、既存の暗号検出器の欠陥の発見に使用され、改善に役立つことを期待しています。


貢献: 暗号検出器を評価するための突然変異テスト技術を活用するユーザーフレンドリーなフレームワークである MASC を、基礎となる技術、設計上の考慮事項、および改善の詳細とともに紹介します。MASC の重要な新機能は次のとおりです。暗号検出器の自動評価: MASC を使用すると、メイン スコープ内でエンドツーエンドの自動ワークフローで暗号検出器を評価できます。


暗号検出器のカスタマイズ可能な評価:ユーザーは、暗号 API の誤用インスタンスを作成するための変異演算子を指定することにより、暗号検出器の評価をカスタマイズできます。


カスタム演算子のプラグイン アーキテクチャ: MASC は、セキュリティ研究者、開発者、およびユーザーが、MASC の内部詳細を学習して理解することなく、メイン スコープに直接プラグインできる独自のカスタム変異演算子を作成することで、暗号検出器の評価にすぐに取り掛かるのに役立ちます。


エンドユーザー向けの使いやすいフロントエンド: オリジナルのプロトタイプ実装のコマンドライン インターフェイスを強化するだけでなく、ローカルで実行できるエンドユーザー向けのオープンソースの Web ベースのフロントエンドを作成して導入します。フロントエンドには、MASC Lab という追加のプレイ、テスト、学習インターフェイスが含まれており、関係者はここでミューテーション オペレーターと対話し、ミューテーション暗号 API の誤用について学習できます。


ツールとデータの可用性: MASCフレームワークのプロトタイプ実装、暗号検出器の評価スクリプトと結果、


図 1: MASC フレームワークの概念的な概要。


リスト 1: MASC によって作成された暗号 API の誤用インスタンスの例


原著論文[3]に記載されているMASCアーティファクト[1]は、MASCアーティファクトで公開されています。さらに、活発にメンテナンスされている成熟したMASC実装のコードベースは、広範なドキュメントと例とともに別途公開されています[2]。


この論文は、CC BY-NC-SA 4.0 DEED ライセンスの下でarxiv で公開されています