前提条件
パイプラインを設定する前に、次のものが必要です。- API Key: MindFort Dashboard の Settings > API Keys で生成します。
- Target ID: Target Inventory で、アセスメントを実行したいターゲットをクリックすると確認できます。
GitHub Actions の例
アセスメントをトリガーする
この例では、main へのプッシュまたは PR 時に、ターゲットに対するセキュリティアセスメントをリクエストします。実行を開始できるかどうかは、ターゲットの準備状況、利用可能なクレジット、別のアセスメントがすでに実行中かどうかによって決まります。アセスメント方式は MINDFORT_ASSESSMENT_METHOD 変数 (balanced、deep、または ultra) で設定します。これらはダッシュボードのラベル Balanced、Deep、Ultra に対応します。任意で、assessment_type を black-box (デフォルト) または white-box に設定できます。
必要なシークレットと変数
必要なシークレットと変数
ターゲットと検出結果を一覧表示する
最初にターゲットを確認し、その後すべてのターゲットまたは 1 つのターゲット内の検出結果を一覧表示したい場合は、組織全体のエンドポイントを使用します。これらのエンドポイントはlimit と offset によるページネーションを使用し、total 件数を含みます。
GET /v1/findings は、識別子、ターゲットのメタデータ、重大度と上書き値、ライフサイクルステータス、タイムスタンプ、再テストの状態を含む検出結果のサマリーを返します。レスポンスには、ページネーションのメタデータとして total、limit、offset、next_cursor が含まれます。デフォルトは status=ACTIVE です。ダッシュボードの Open タブ (脆弱性のみ) と一致させるには、exclude_secured=true を設定してください。1 回のアセスメント実行に絞り込むには assessment_id を使用します。すべてのフィルターについては、Findings API を参照してください。
description、impact、evidence、approach、remediation_advice を含む詳細を取得するには、GET /v1/findings/{finding_id} を使用します。
アセスメントをキャンセルする
POST /v1/assessments/run から返された、または Assessments ページからコピーした assessment_id を使用します。
アセスメントの進捗をポーリングする
パイプラインでステージ単位の進捗や最終的な失敗理由が必要な場合は、アセスメントの詳細エンドポイントを使用します。stage_progress を使用します。NOT_STARTED は状態がまだ記録されていないことを意味し、RUNNING または ACTIVE は処理が進行中であることを示します。失敗したアセスメントには、問題を説明する failure_reason が含まれる場合があります。
アセスメントの作成に失敗した場合は、安定した公開エラーの code を確認してください。たとえば、assessment_credits_insufficient は請求上の容量不足を認可の問題と区別するためのもので、assessment_queue_loading は再試行可能であり Retry-After を含みます。
検出結果のステータスを更新する
ステータスの更新を使用して、自動化からトリアージの状態を同期させます。解決済みにする際は、resolve_reason (FIX または WONT_FIX) と任意の resolve_context を含めることができます。
ACTIVE、RESOLVED、ARCHIVED です。