Microsoft は、コミュニティやエンドユーザと協力して、動的で高度な脅威の状況から防御するために、プラットフォームと製品を継続的に改善および調整することに専念しています。
今年の初めに、業界がこのモデルに移行するにつれて、Microsoft Security and Risk Detection として知られる既存のソフトウェア テスト エクスペリエンスを自動化されたオープンソース ツールに置き換えることを発表しました。
Azure 用の拡張可能なファズ テスト フレームワークである Project OneFuzz という新しいツールをリリースしました。
Microsoft Edge、Windows、および Microsoft のチームで使用されるテスト フレームワークは、オープン ソース ツールとしてGitHubから入手でき、世界中の開発者が利用できます
Fuzz Testは、ネイティブ コードのセキュリティと信頼性を向上させるための非常に効果的な方法ですが、これはコストがかかり、悪用可能なセキュリティ上の欠陥を見つけて削除するためのゴールド スタンダードです。
従来、ファズ テストは開発者にとって諸刃の剣で、ソフトウェア開発ライフサイクルによって義務付けられており、実用的な欠陥を見つけるのに非常に効果的ですが、情報を利用、実行、抽出するのは非常に複雑です。
その複雑さにより、専任のセキュリティ エンジニアリング チームがファズ テスト機能を構築および運用する必要があり、非常に便利ですが費用がかかりました。
開発者がファズ テストを実行できるようにすることで、脆弱性の発見が開発ライフサイクルの早い段階に移行し、同時にセキュリティ エンジニアリング チームが積極的な作業を追求できるようになります。
開発者がリリース前にコードを簡単かつ継続的にファズ テストできるようにするという Microsoft の目標は、エンパワーメントというマイクロソフトの使命の中核となっています。
Project OneFuzz のリリースは、日常業務や個人生活を強化するプラットフォームやツールを強化して、攻撃者の仕事をより困難にすることを目的としています。
LLVM でオープンソース化され、Google によって開拓されたコンパイラの世界における最近の進歩は、ネイティブ コードのファズ テストに関連するセキュリティ エンジニアリング タスクを変革しました。
かつては多額の費用をかけてアタッチされていたものを、次の方法で継続的なビルド システムに組み込むことができるようになりました。
- Electric Fence などのツールを介して接続されたクラッシュ検出は、 asan で焼き付けることができます。
- iDNA、Dynamo Rio、Pin などのツールを介してアタッチされたカバレッジ トラッキングは、sancov で焼き付けることができます。
- カスタム I/O ハーネスを介して一度達成された入力ハーネスは、libfuzzer の LLVMFuzzerTestOneInput 関数プロトタイプで組み込むことができます。
これらの進歩により、開発者は、信頼性の高いテスト呼び出し、入力生成、カバレッジ、およびエラー検出を 1 つの実行可能ファイルにコンパイルした最新のファジング ラボを使用して単体テスト バイナリを作成できます。
これらの機能の実験的なサポートは、Microsoft の Visual Studio で拡大しています。
これらのテスト バイナリをコンパイラでビルドできるようになると、現在の開発者は、それらを CI/CD パイプラインにビルドし、クラウドでファジング ワークロードをスケーリングするという課題を抱えています。
Project OneFuzz は、開発者主導の継続的な Windows のファジングを既に有効にしており、Microsoft は最新の OS ビルドの出荷前に Windows プラットフォームを積極的に強化することができました。
単一のコマンド ライン (ビルド システムに組み込まれています)を使用して、開発者は数個の仮想マシンから数千個のコアまでのサイズのファズ ジョブを起動できます。
Project OneFuzz は次のことを可能にします。
- 構成可能なファジング ワークフロー:オープン ソースにより、ユーザーは独自のファザーをオンボードし、インストルメンテーションを交換し、シード入力を管理
- 組み込みのアンサンブル ファジング:デフォルトでは、ファザーはチームとして機能して強みを共有し、ファジング テクノロジ間で関心のある入力を交換
- プログラムによるトリアージと結果の重複排除:常に再現される独自の欠陥ケースを提供
- 見つかったクラッシュのオンデマンド ライブ デバッグ:オンデマンドまたはビルド システムからライブ デバッグ セッションを呼び出すことが可能
- 観察可能でデバッグ可能:透過的な設計により、すべての段階でイントロスペクションが可能に
- Windows および Linux OS での Fuzz:設計によるマルチプラットフォーム。独自の OS ビルド、カーネル、またはネストされたハイパーバイザーを使用してファジング
- クラッシュ レポート通知のコールバック:現在、Azure DevOps 作業項目と Microsoft Teams メッセージをサポート
プロジェクト OneFuzz は、MIT ライセンスの下で GitHub で現在利用できます。
すべての Microsoft プラットフォームと製品のセキュリティを継続的に改善するために、パートナーシップを拡大し、会社全体でファジングの範囲を拡大するにつれて、Windows 全体の Microsoft Research & Security Groups およびより多くのチームからの貢献によって更新されます。
Microsoft は引き続き Project OneFuzz を維持および拡張し、オープンソース コミュニティに更新プログラムをリリースし、コミュニティからの貢献を歓迎しています。
Microsoft セキュリティ ソリューションの詳細については、当社のWeb サイトをご覧ください。 セキュリティ ブログをブックマークして、セキュリティに関する専門家の記事を入手してください。また、 @MSFTSecurityをフォローして、サイバーセキュリティに関する最新ニュースと更新情報を入手してください。
Comments