> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corgea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# プロジェクト管理

> CWEフィルターやファイル無視ルールなど、プロジェクトのスキャン動作を設定

## 概要

Corgeaのプロジェクト管理機能は、各プロジェクトのダッシュボードにあります。このページでは、コードベース、コンプライアンス要件、チームのワークフローに合わせてスキャン動作を調整できます。不要な検出結果を生むファイルの除外、無関係なCWEの無視、ポリシーの文書化、アプリケーションの安全性を維持するために必要な運用情報の確認が可能です。

ここで行った変更は、選択したブランチに対する今後のスキャンに適用されます。初めて設定する場合はデフォルト設定から始め、いくつかのスキャンレポートを確認してからフィルターを段階的に調整してください。

<Note>スキャン設定を変更するには、**Can edit project**権限が必要です。**Settings**ダイアログは、プロジェクト編集権限を持つユーザーのみが利用できます。</Note>

## ファイル無視ルール

ファイル無視ルールを使用すると、重要なコードに関する検出結果だけに集中できます。ルールに一致するファイルは今後のスキャンでスキップされ、プロジェクトに新しい問題を追加する際にも無視されます。一般的なビルドアーティファクト、依存関係フォルダ、生成ファイルはあらかじめ除外されているため、通常はプロジェクト固有の構造に対応するルールだけを追加します。

### デフォルトの除外事項

* **テストファイル**: `*_test.*`、 `test_*.*`、 `*.test.*`、 `*.spec.*`、 `*__tests__/*`、 `*test/*`、 `*tests/*`
* **依存関係**: `*node_modules/*`、`*python*/site-packages/*`
* **生成コード**: `*generated.*`、 `*.gen.go`、 `*.pb.*`、 `*.designer.cs`、 `*.d.ts`
* **ビルドアーティファクト**: `*build/*`、`*dist/*`、`*coverage/*`
* **設定**: `tsconfig.json`、`webpack.config.js`、`pnpm-lock.yaml`、`*compose*.yml`
* **その他の一般的なフォルダ**: `*migrations/*`、 `*mock/*`、 `*mocks/*`、 `*fixtures*`、 `*tmp/*`、 `*log/*`、 `*logs/*`

### カスタム無視の追加方法

<Steps>
  <Step title="設定ダイアログを開く">
    プロジェクトダッシュボードで**Settings**をクリックして設定ダイアログを開き、**File Ignore Rules**セクションを展開します。

    <img src="https://mintcdn.com/corgea/tZ_QwjgMonKKSEeb/images/project-settings/scan_settings.png?fit=max&auto=format&n=tZ_QwjgMonKKSEeb&q=85&s=ad2984792039ddf70376dc2c9ff573c9" style={{ borderRadius: '0.5rem' }} alt="スキャン設定" width="2560" height="1560" data-path="images/project-settings/scan_settings.png" />
  </Step>

  <Step title="パターンを追加する">
    **Glob Pattern of files to ignore**に、除外するパス（`src/tools/`）、ディレクトリ（`**/legacy/**`）、またはネストされたファイル（`src/assets/languages/**`）を表す単一のGlobパターンを入力します。`**/`で始まるパターンは、リポジトリルートを含む任意の深さのフォルダに一致します。必要に応じて、ルールの理由を\*\*Comment (optional)\*\*に200文字以内で入力し、**Add Ignore Rule**をクリックします。新しいルールは、**Pattern**、**Type**、**Status**、**Comment**とともに下の表に表示されます。

    <Card>
      <img src="https://mintcdn.com/corgea/tZ_QwjgMonKKSEeb/images/project-settings/file_ignore_rules.png?fit=max&auto=format&n=tZ_QwjgMonKKSEeb&q=85&s=533ce6820a321722f4627e1c9cfc4c7b" style={{ borderRadius: '0.5rem' }} alt="ファイル無視ルールの設定" width="1624" height="1422" data-path="images/project-settings/file_ignore_rules.png" />
    </Card>
  </Step>

  <Step title="ルールのコメントを更新する">
    ルールのコメントを編集するには、同じパターンを正確に再入力します。ボタンが**Update Ignore Rule**に変わり、送信すると重複ルールを作成せずに既存ルールのコメントが更新されます。コメントを空欄で送信した場合、既存のコメントは変更されません。

    <Card>
      <img src="https://mintcdn.com/corgea/tZ_QwjgMonKKSEeb/images/project-settings/same_file_update_ignore_rule.png?fit=max&auto=format&n=tZ_QwjgMonKKSEeb&q=85&s=6b60a869ad8acd214eec83af8eec57dc" style={{ borderRadius: '0.5rem' }} alt="既存のファイル無視ルールを更新" width="1586" height="1038" data-path="images/project-settings/same_file_update_ignore_rule.png" />
    </Card>
  </Step>

  <Step title="ルールを有効化、無効化、または削除する">
    **Actions**列から、ルールを**Disable**（一覧には残りますがスキャン時に適用されません）、再度**Enable**、または完全に**Delete**できます。**Status**列には、各ルールが現在有効かどうかが表示されます。

    <Card>
      <img src="https://mintcdn.com/corgea/tZ_QwjgMonKKSEeb/images/project-settings/disabled_rule.png?fit=max&auto=format&n=tZ_QwjgMonKKSEeb&q=85&s=f1a54fa2b15701e318c8bb63397f6c20" style={{ borderRadius: '0.5rem' }} alt="無効化されたファイル無視ルール" width="1586" height="1038" data-path="images/project-settings/disabled_rule.png" />
    </Card>
  </Step>

  <Step title="動作を確認">
    テストスキャンを実行し、動作が想定どおりであることを確認します。生成物や一時ディレクトリが新たに追加された場合は、この一覧を見直してください。
  </Step>
</Steps>

### ルールを追加するタイミング

* **内部ツール**:スキャン対象にしない社内デプロイスクリプトやCLIヘルパーなどのスクリプトやユーティリティ。
* **レガシーまたは非推奨のコード**:リリースには含めないものの、参照用に保持しているモジュール。
* **ベンダーまたはサードパーティのアーティファクト**:ハードウェアベンダーやパートナーから提供され、自社では変更や管理を行わないファイル。
* **ドキュメントやコンテンツ**:コードだけを対象とする場合に除外する大規模なドキュメントフォルダ。
* **カスタム出力**:CIやローカルでの検証中に作成される、標準以外のビルドディレクトリ。

今後レビューする際にフォルダが除外される理由をチームメンバーが把握できるよう、各ルールの理由を必ず記載してください。

## CWEフィルター

CWEフィルターを使用すると、Corgeaの検出結果をプロジェクトの脅威モデルに合わせることができます。このセクションは、コードで表現したセキュリティポリシーに相当します。ほかのセキュリティ制御ですでに対策済み、または使用している技術スタックには該当しない脆弱性カテゴリを無効にできます。

### フィルターの設定方法

<Steps>
  <Step title="CWE Filtersを開く">
    **Settings**ダイアログで**CWE Filters**セクションを展開します。デフォルトでは、すべてのCWEが追跡対象です。
  </Step>

  <Step title="無視するCWEを選択">
    CWE ID（例:`CWE-79`）を入力します。必要に応じて**Glob Pattern**（例:`**/tests/**`）を指定し、ルールを特定のファイルやフォルダに限定できます。Globパターンを空欄にすると、プロジェクト内のすべてのファイルにルールが適用されます。必要に応じて、フィルターの理由を**Comment**に入力し、**Add CWE Filter**をクリックします。

    <Card>
      <img src="https://mintcdn.com/corgea/tZ_QwjgMonKKSEeb/images/project-settings/cwe_filters.png?fit=max&auto=format&n=tZ_QwjgMonKKSEeb&q=85&s=01ddd34a639d39b44bfc2fbd1be024e5" style={{ borderRadius: '0.5rem' }} alt="CWE フィルターの設定" width="1624" height="1476" data-path="images/project-settings/cwe_filters.png" />
    </Card>
  </Step>

  <Step title="フィルターの更新、無効、削除">
    既存のCWEとGlobパターンの組み合わせを再入力してコメントを編集すると、ボタンが**Update CWE Filter**に変わります。送信すると重複項目を作成せず、既存の項目が更新されます。コメントを空欄で送信した場合、既存のコメントは変更されません。**Actions**列から、いつでもフィルターを無効化、有効化、削除できます。
  </Step>
</Steps>

### よくあるシナリオ

* **重要なパスに集中**:重大度の高い検出結果のトリアージが完了するまで、影響の小さいCWEを一時的に除外します。
* **フレームワークレベルの保護**:フレームワークに組み込まれた保護機能（例:マネージド認証プロバイダー）で対策済みのCWEを除外します。
* **コンプライアンスに合わせた調整**:スキャンを管理可能な範囲に保ちながら、組織のポリシーに違反するCWEを禁止します。
* **開発初期**:不要な検出結果を非表示にして開発速度を優先し、リリース前にフィルターを再度有効にします。

> ヒント:フィルターの変更による回帰を見逃さないよう、すべてのCWEを有効にして定期的にスキャンを再実行してください。

## プロジェクトのビューとコントロール

### 特定のブランチのスキャンを起動

スキャンを開始する前に、ダッシュボード上部のブランチピッカーで対象のブランチを選択します。Corgeaは、そのブランチの最新コミットをスキャン対象として固定し、ブランチのメタデータを保存します。これにより、開発ラインごとの結果を比較できます。

<Card>
  <img src="https://mintcdn.com/corgea/tZ_QwjgMonKKSEeb/images/project-settings/branch_picker.png?fit=max&auto=format&n=tZ_QwjgMonKKSEeb&q=85&s=e4bf347673f33e4e90ebff9ea9f88d51" style={{ borderRadius: '0.5rem' }} alt="プロジェクトダッシュボードのブランチピッカー" width="1536" height="934" data-path="images/project-settings/branch_picker.png" />
</Card>

ページヘッダーのボタンからスキャンを開始します。スキャン実行済みのプロジェクトでは**New Scan**、未実行のプロジェクトでは**Start Scan**と表示されます。

<Card>
  <img src="https://mintcdn.com/corgea/6_FZ3tSsReGJqh7D/images/new_scan_button.png?fit=max&auto=format&n=6_FZ3tSsReGJqh7D&q=85&s=e108244878bac8a2962ff5950e23465a" style={{ borderRadius: '0.5rem' }} alt="ページヘッダーの新しいスキャンボタン" width="2312" height="516" data-path="images/new_scan_button.png" />
</Card>

ボタンを押すとメニューが開き、2つのオプションが表示されます。

* **Full Scan**では、プロジェクトで有効なすべてのスキャナーを選択したブランチに対して実行します。
* **Custom Scan**では、実行するスキャナーを選択し、ポリシーを使用するスキャナーについては対象のポリシーも選択します。**Start Custom Scan**をクリックして確定します。契約プランに含まれないスキャナーも表示されますが、**Plan Restricted**と示されます。

<Card>
  <img src="https://mintcdn.com/corgea/6_FZ3tSsReGJqh7D/images/new_scan_list_expanded.png?fit=max&auto=format&n=6_FZ3tSsReGJqh7D&q=85&s=9468779954641e9f3c4aec7447ba72bf" style={{ borderRadius: '0.5rem' }} alt="新しいスキャンメニューのフルスキャンおよびカスタムスキャンオプション" width="396" height="516" data-path="images/new_scan_list_expanded.png" />
</Card>

<Note>プロジェクトをスキャンできない場合、ボタンはロックアイコン付きでグレーアウトされます。ボタンにカーソルを合わせると理由が表示されます。</Note>

### スキャンログ

Scan Logには、ユーザーが開始したすべての実行が記録されます。各スキャンのステータス、所要時間、ブランチ、実行者を確認できます。このページでは、スキャンの再実行、結果の並列比較、失敗の原因となった検出結果の確認が可能です。

<Card>
  <img src="https://mintcdn.com/corgea/tZ_QwjgMonKKSEeb/images/project-settings/scan_log.png?fit=max&auto=format&n=tZ_QwjgMonKKSEeb&q=85&s=89c8ac01cc4311a763e2826b70cd6d84" style={{ borderRadius: '0.5rem' }} alt="スキャン実行の一覧を表示するスキャンログ" width="2190" height="1638" data-path="images/project-settings/scan_log.png" />
</Card>

### エンドポイント検出フィルター

スキャンの検出結果テーブルを**Endpoints**ビューに切り替えた場合、**Reachable**トグルを使用して、エンドポイントのコールパスから到達可能な問題のみに絞り込めます。トグルの状態はURLに保持されるため、絞り込んだビューを共有またはブックマークできます。

### 高度脆弱性検索

プロジェクトページの**Advanced**ボタンをクリックすると、Advanced Vulnerability Searchページが開き、すべてのスキャン実行を横断して検出結果を絞り込めます。ページ上部には総数と重大度別の件数が表示されます。各プロジェクトを展開すると、一覧を離れることなく、ファイル、CWEバッジ、緊急度、検出日時などの情報を確認できます。

* **フィルター**:Vulnerability Category、Urgency、Confidence、Status、Fix Status、Scan Type、Project、Branch、ポリシーなどのメタデータで結果を絞り込めます。検索対象期間を指定するため、プリセットまたはカスタムのDate Rangeを必ず選択します。
* **日付範囲の通知**:日付範囲を選択せずに検索しようとすると、不足している設定が強調表示されます。プリセットまたはカスタムの期間を選択するまで、検索操作は無効です。
* **結果の確認**:行をクリックすると、現在のフィルターを維持したままサイドパネルに詳細が表示されます。一覧から移動せずに、根拠、修復ガイダンス、関連するスキャンの詳細を確認できます。

<CardGroup cols={1}>
  <Card>
    <img src="https://mintcdn.com/corgea/tZ_QwjgMonKKSEeb/images/project-settings/advanced_search_location.png?fit=max&auto=format&n=tZ_QwjgMonKKSEeb&q=85&s=d35724acf445d60e5b7779327072886c" style={{ borderRadius: '0.5rem' }} alt="高度な検索場所" width="1948" height="226" data-path="images/project-settings/advanced_search_location.png" />
  </Card>

  <Card>
    <img src="https://mintcdn.com/corgea/tZ_QwjgMonKKSEeb/images/project-settings/advanced_search.png?fit=max&auto=format&n=tZ_QwjgMonKKSEeb&q=85&s=a6187081d6731b548d6bb72c76cc209b" style={{ borderRadius: '0.5rem' }} alt="高度な脆弱性検索画面" width="1980" height="1392" data-path="images/project-settings/advanced_search.png" />
  </Card>
</CardGroup>
