Checkmarx ONE (Pro)
このページの内容
DefectDojo の Checkmarx ONE コネクタは、データを取得するために Checkmarx の API を呼び出します。
Connector Mappings
Checkmarx Tenant フィールドにTenant Name を入力します。この名前は Checkmarx ONE のログインページの右上に表示されているはずです。
" Tenant: <your tenant name> "

有効な API キーを入力します。新しく生成する必要がある場合があります。詳細は Checkmarx API Documentation を参照してください。
Location フィールドにテナントの場所を入力します。この URL は次の形式です。
https://<your-region>.ast.checkmarx.net/。リージョンは、Checkmarx アプリ利用時の Checkmarx URL の先頭に表示されます。https://ast.checkmarx.net は主要な US サーバーです(リージョンプレフィックスはありません)。
Branch handling
デフォルトでは、各同期はブランチに関わらず、プロジェクトの直近の完了済みスキャン 1 件のみの検出事項をインポートします。CI で多数のブランチをスキャンしている場合、たまたま最後にスキャンされたブランチがその同期で「勝ち」となります。他のブランチにのみ存在する検出事項はインポートされず、同期のクローズ処理(close-old reconciliation)によって、異なるブランチが交互に最新スキャンになるたびに検出事項が開いたり閉じたりを繰り返すことがあります。
この動作を制御する 2 つのオプションフィールドがあります。
- Branch: すべてのプロジェクトを 1 つのブランチ名に固定します。そのブランチのスキャンのみがインポートされます。これはコネクタ全体に対する単一のグローバル値であるため、すべてのプロジェクトが同じ長期運用ブランチ(例えば
main)を使用しているフリート向けです。*ワイルドカードに対応しています。*を含む Branch 値は、単一のブランチではなく一致するすべてのブランチを対象とします。例えばrelease/*は各リリースブランチをインポートし、*はすべてのブランチにマッチします。Track Scanned Branches と組み合わせることで、すべてを個別に追跡することなく、一群のブランチを追跡する方法になります。- ワイルドカードがスキャンウィンドウ内でどのブランチにもマッチしない場合、その同期は「ブランチに検出事項がない」として扱われるのではなくスキップされます。これにより、一時的に何にもマッチしないパターンが、アセット上のすべての検出事項をクローズしてしまうことを防ぎます。
- Track Scanned Branches: 有効にすると、各同期はプロジェクトの直近のスキャン履歴の中から完了済みスキャンを持つすべてのブランチを検出し、各ブランチの最新の完了済みスキャンをインポートします(ブランチごとに 1 回の再インポート)。各ブランチの検出事項は、マッピングされたアセット上の「<default engagement> - <branch>」という名前の独自のエンゲージメントに格納されるため、古い検出事項のクローズ処理はブランチ単位でスコープされます。あるブランチにマージされた修正が、別のブランチの検出事項をクローズすることはありません。プロジェクトの主要ブランチ(Checkmarx が報告するもの)が最初にインポートされるため、他のブランチで同じ検出事項が再発した場合、主要ブランチのオリジナルと重複排除されます。
Track Scanned Branches に関する注意点:
- 自分にどのデフォルトが適用されるか確認してください。 ブランチ追跡は新規インストールではデフォルトで有効です。この変更より前から存在するインストールは従来の動作を維持するため、誰かがトグルを有効にするまでオフのままです。
- 両方のフィールドが設定されている場合、追跡されるのは固定された Branch のみです。その Branch 値がワイルドカードパターンである場合も同様で、その場合はパターンに一致するすべてのブランチが追跡されます。
- スキャンされなくなった(マージまたは削除された)ブランチは更新を受け取らなくなります。そのエンゲージメントは最後に判明している検出事項とともに表示され続けるため、レビューして一括でクローズできます。
- 後でトグルをオフにしても安全です。ブランチごとのエンゲージメントはインポートを受け取らなくなり、次の同期からデフォルトのエンゲージメントが再開されます。
- Connector は同期スケジュールに沿って状態を突き合わせます。ブランチ追跡は各同期をブランチ横断で完結させるものであり、同期と同期の間のデータをリアルタイム化するものではありません。
Checkmarx のスキャン ID で検出事項にタグを付ける
Checkmarx One の各検出事項の Unique ID From Tool は、その Checkmarx の結果ハッシュです。結果ハッシュだけでは Checkmarx 上で検出事項を特定できず、その検出事項を含むスキャンの ID も必要です。Tag Findings With Scan ID をオンにすると、Connector がインポートする検出事項にそのスキャン ID が記録されます。
トグルがオンの場合、同期でインポートされるすべての検出事項(SAST、SCA、KICS、DAST)に scan-id:<スキャン ID> というタグが付きます。この ID は、Connector がその検出事項を取得した Checkmarx スキャンの ID です。Track Scanned Branches がオンの場合、各ブランチの検出事項にはそのブランチ自身のスキャンの ID が付きます。このタグで検出事項を絞り込んだり、API で Unique ID From Tool と合わせて読み取ったりできます。
注意事項:
- このトグルはデフォルトでオフで、オンにしても重複排除は変わりません。スキャン ID はタグにすぎず、Unique ID From Tool や説明に追加されることはありません。
- タグには、DefectDojo がその検出事項を最初にインポートしたスキャンが記録されます。 既存の検出事項に一致した後続の同期ではその検出事項のタグが維持されるため、新しいスキャン ID のたびにタグが置き換わることはありません。そのスキャンには検出事項が含まれているため、Checkmarx のデータ保持によってスキャンが削除されていない限り、引き続き Checkmarx 上で検出事項を特定できます。
- トグルをオンにした時点ですでに DefectDojo に存在する検出事項にはタグが付きません。タグが付くのは、それ以降の同期で作成された検出事項のみです。