注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
すべてのコードスキャンでは、コードにルールが適用されます。各ルールは、検出する1つのパターン、そのパターンが見つかったときに表示するメッセージ、および検出結果の重大度を定義します。
エンロールメント管理者は、エンロールメントに適用されるルールを確認し、個々のルールを無効にしたり、独自のルールを追加したりできます。ルールはエンロールメント単位で管理されるため、変更はコードスキャンの対象となるすべてのリポジトリに適用されます。
| 種類 | 説明 | 利用可能な操作 |
|---|---|---|
| 組み込み | Palantir が保守および更新するデフォルトのルールセットです。 | 有効化、無効化、複製、ダウンロード |
| カスタム | エンロールメントに追加するルールです。 | 有効化、無効化、複製、ダウンロード、編集、削除 |
組み込みルールは編集も削除もできません。組み込みルールが報告する内容を変更するには、ルールを複製してコピーを編集し、元のルールを無効にします。
組み込みタブとカスタムタブには、それぞれの種類のルールが一覧表示されます。一覧を絞り込むには、検索項目に検索語を入力するか、ステータスフィルターからすべて、有効、または無効を選択します。ルールを選択すると、その定義が表示されます。

すべてのルールには、有効または無効のラベルが表示されます。ルールの表示画面にあるトグルを使って状態を変更します。組み込みルールとカスタムルールのどちらも切り替えられます。
ルールを無効にすると、エンロールメント内のすべてのリポジトリでそのルールが実行されなくなるため、変更が適用される前に確認を求められます。ルールの有効化はすぐに反映されます。
ルールを無効にしても、完了したスキャンの過去の検出結果は削除されません。次回のスキャン以降、そのルールはスキップされます。
新しいカスタムルールは保存するとすぐに有効になり、コードスキャンの対象となるすべてのリポジトリで、次回のスキャンから適用されます。まだ実行せずにルールを追加したい場合は、そのルールを無効にします。
Foundry は保存時に定義を検証し、有効なルールのみを受け付けます。
カスタムルールは組み込みルールと同じ形式を使用し、Semgrep ルール構文 ↗に従います。各定義は有効な Semgrep ルールであり、さらに次の要件を満たす必要があります。
id を指定すること。これはルール一覧に表示される名前になります。英字、数字、ピリオド、アンダースコア、およびハイフンのみを使用してください。id を使用すること。カスタムルールでは、組み込みルールの名前を再利用できます。次の例では、Python ファイル内の eval の呼び出しを検出します。
Copied!1 2 3 4 5 6 7 8 9 10rules: - id: custom_python_no-eval languages: - python message: | Avoid eval() on untrusted input. Use ast.literal_eval() to evaluate literal values. severity: WARNING metadata: category: security pattern: eval(...)
編集可能なコピーを作成するには、ルールの表示画面で複製を選択します。元のルールが組み込みルールであっても、コピーは常にカスタムルールとなり、コピー元のルールにはリンクされません。保存する前に、コピーに新しい id を指定してください。
ルールの名前を変更するには、id を変更します。ルール一覧の名前は定義から取得されるため、両者の整合性は維持されます。
ルール定義を .yml ファイルとして保存するには、ルールの表示画面でダウンロードを選択します。組み込みルールとカスタムルールのどちらもダウンロードできます。
ファイルからルールを追加するには、ルール一覧の上にあるアップロードを選択し、.yml または .yaml ファイルを選択します。ファイルの内容が新しいカスタムルールとしてエディターで開きます。定義を確認してから、保存を選択します。
ルールの表示画面で削除を選択し、確定します。削除は元に戻せず、エンロールメント内のすべてのリポジトリでそのルールが実行されなくなります。ルールを保持したまま一時的に停止するには、削除せずに無効にします。
ルールは、スキャンで報告する内容を決定します。スキャン対象のリポジトリはルールでは決まりません。これは、コードスキャンを有効にするで説明している設定によって制御されます。ルールは、コードスキャンの対象となるリポジトリでのみ検出結果を生成します。
すべてのルールが無効でも、スキャンは引き続き実行され、検出結果なしで完了します。