OSSファズ?OSSファズのセットアップクラスタAPI

3819 ワード

オープンソースソフトウェアは、ソースコードを持つソフトウェアは、誰もが検査、変更、および強化することができます.彼らは高品質のソフトウェアのような複数の利点を持っていないベンダーのロックイン、低価格のソフトウェアコストと最も重要な豊富なサポート.
しかし、より多くの柔軟性がより多くの責任を持って来るので、我々は我々のソフトウェアがプログラム上のエラーから自由であると保証することができる何かを必要とします、そして、重大なセキュリティ脅威がありません.
それで、オープンソースソフトウェアをより安全で安定したものにするために、Googleは2016年にOSS Fuzzを3つの主要な目標で導入しました.
1. Finding security vulnerabilities, stability issues, and functional bugs at scale.
2. Making the platform easy to use for open-source developers and encouraging them to take security testing into their own hands.
3. Getting the bugs fixed quickly (OSS-Fuzz has a 90% fix-rate!)
OSS FUSZは、ソフトウェアのプログラミングエラーを発見するための周知の技術であるファズテストを行う.バッファオーバーフローのように、これらの検出可能なエラーの多くは、深刻なセキュリティ上の意味を持つことができますが、OSSファズでは、一般的なオープンソースソフトウェアをより安全で安定したものにすることを目指しています.
現在、OSS FuzzはC/C +をサポートしています.LLVMによってサポートされる他の言語も働きます.OSSファズは、x 86 6 64とi 386ビルドをfuzzingをサポートしています.

概要



詳細を知るには、OSS FUSZを使用する方法を学ぶために、this詳細なドキュメントを読んでください

クラスターAPI


クラスタAPIは、Kubernetesサブプロジェクトは、複数のKubernetesクラスタをプロビジョニング、アップグレード、および操作を簡素化する宣言的APIとツールを提供することに焦点を当てています.
Kubernetes特殊関心グループ(SIG)クラスタライフサイクルによって開始され、クラスタAPIプロジェクトは、プラットフォーム演算子のクラスタライフサイクル管理を自動化するためにKubernetesスタイルのAPIとパターンを使用します.Kubernetesクラスタ構成と同様に、仮想マシン、ネットワーク、ロードバランサ、およびVPCSのようなサポートインフラストラクチャは、すべてのアプリケーション開発者が展開し、自分のワークロードを管理するように定義されています.これは、多種多様なインフラストラクチャ環境全体で一貫して反復可能なクラスタ展開を可能にします.
より多くを知っているために、this githubページを訪問してください.

OSSファズのセットアップクラスタAPI


クラスタAPIは広く使われているオープンソースプロジェクトであるので、コミュニティはOSS Fuzz上でクラスタAPIを設定することを決めました.

This is the following PR to track this setup process in CAPI project.


我々がOss-Fuzzの上でどんなオープンソースプロジェクトのセットアップも始めるならば、我々はgoogle/oss-fuzz倉庫で1つの対応するPRを上げました.
これはcapi setup `に対応するgoogle/oss fuzz PRです
すべてのこれらのステップが実行されると、初期の積分で行われます.上記の手順では、PRの中にいくつかの電子メールIDを記載しており、これらの人々は、任意のバグが記載されているプロジェクトで見つかった場合、自動メール通知を取得します.
一旦メールを受け取ったら、次のアクションアイテムはこの問題をローカルで再現し、プロジェクトで解決します.
次のセクションでは、ローカルシステムで問題を再現するためにいくつかの手順を一覧表示します.

ローカルで再生する手順


ローカルで実行するために必要なファイルと変数
  • /path/to/ダウンロード/最小化/テストケース
    これは、すべての問題があるファイルのパスです.これは、再生産ファイル(“テストケース”ファイルとも呼ばれる)と呼ばれています.これは、再生産テストケースとして名前をメールから取得することができます
  • ローカルのOSSファズのチェックアウトを行います.git clone https://github.com/google/oss-fuzz
    cd oss-fuzz
  • 最新のDocker画像を引きます
    Docker画像は、ビルドツール、ビルド構成、スクリプト、およびその他の変更の新しいバージョンで定期的に更新されます.場合によっては、特定の問題は、使用されている新鮮なイメージだけで再生されることができます.次のコマンドを実行して最新の画像をプルします.python infra/helper.py pull_images
  • イメージとファジーをビルドします.次のコマンドを実行するpython infra/helper.py build_image kubernetes-cluster-api
    python infra/helper.py build_fuzzers kubernetes-cluster-api
    python infra/helper.py reproduce kubernetes-cluster-api fuzz_conversion_of_all_types /path/to/downloaded/minimized/testcase
  • 上記のコマンドを実行した後、ローカルでこのように表示されます.

    このようにして、ローカルでバグを再現することができます.
    バグの再現についてもっと知りたい方は、this公式docに従ってください.