SASTルール向けのCustom Code Context
Custom Code Contextを使うと、特定のSASTルールに平易な言葉でガイダンスを追加できます。AikidoはAutoTriageの際にこのガイダンスを利用し、真陽性・偽陽性の判定精度を高めます。コンテキストはグローバル、またはリポジトリ単位で追加できます。
このガイダンスは、ルールが検出する対象そのものを変更するものではありません。Aikidoが検出結果をより正確に解釈できるようにするものです。
ユースケース
Section titled “ユースケース”以下のようにルールがコードベース固有の知識を必要とする場合に、Custom Code Contextを使用します。
- 信頼できるサニタイズ用ライブラリ
- リスクのあるAPIをラップした社内製の安全なラッパー
- データを信頼済みとしてマークするバリデーションヘルパー
- 特定のリポジトリでのみ安全なパターン
- 信頼できる入力のみを扱う、隔離されたマシン上で実行されるスクリプト
具体例を表示
信頼できるサニタイズ用ライブラリ
We often use the public library <L> for sanitization. Every variable returned by a function from this library is considered trusted.社内製のバリデーションヘルパー
For this rule, values returned by validateAndNormalizeUserInput() are considered sanitized. This helper rejects invalid characters and enforces a strict allowlist.リスクのあるAPIに対する安全なラッパー
For this rule, calls made through safeRedirect() are expected. This wrapper only allows redirects to URLs from our approved domain allowlist.コンテキストの追加方法
Section titled “コンテキストの追加方法”手順1. 「Repositories Checks」ページを開き、「View SAST Rules」を選択します。
手順2. 対象のSASTルールを見つけ、アクションメニューを開いてCustom Code Contextを選択します。

手順3. 平易な言葉でコンテキストを入力します。

手順4. コンテキストをグローバルに適用するか、そのリポジトリのみに適用するかを選択し、変更を保存します。
書き方のコツ
Section titled “書き方のコツ”コンテキストは狭く具体的に保ちましょう。
推奨:
- 具体的なライブラリ名・関数名・ラッパー名・フォルダ名を明記する
- データが信頼できる、あるいはサニタイズ済みである理由を説明する
- 選択したルールに固有の内容にとどめる
避けるべきこと:
- 「入力は通常サニタイズされている」といった大まかな主張
- 関数名を伴わない曖昧な記述
- あらゆるケースに適用される例外
良い例と弱い例を表示
良い例
For this SQL injection rule, values returned by buildSafeQuery() are trusted. That helper only creates parameterized queries and never concatenates raw user input.弱い例
Our team is careful with SQL queries, so these findings are often false positives.Custom Code Contextとカスタム SAST ルールの違い
Section titled “Custom Code Contextとカスタム SAST ルールの違い”既存ルールのトリアージ精度を改善したい場合はCustom Code Contextを使用します。
コードベース内の新しいパターンを検出する必要がある場合は、カスタムSASTルールを使用します。
要するに:
- Custom Code Context は解釈を洗練させるもの
- カスタムSASTルール は検出範囲を広げるもの