SASTルールのためのカスタムコードコンテキスト
Custom Code Contextでは、特定のSASTルールに自然言語のガイダンスを追加できます。Aikidoはそのガイダンスを使用して SAST 自動トリアージ より適切に真陽性・偽陽性を判定します。コンテキストはグローバルにも、リポジトリ単位でも追加できます。
それは しません ルールが検出する内容を変えるものではありません。Aikidoが検出結果をより正確に解釈するのに役立ちます。
ユースケース
ルールにコードベース固有の知識が必要な場合は、Custom Code Contextを使用します。たとえば:
信頼されたサニタイズ用ライブラリ
危険なAPIを安全にラップする内部ラッパー
データを信頼済みとマークするバリデーションヘルパー
1つのリポジトリでのみ安全なパターン
信頼できる入力を使って隔離されたマシン上で実行されるスクリプト
具体例を表示
信頼されたサニタイズ用ライブラリ
サニタイズには公開ライブラリ <L> をよく使用します。このライブラリの関数が返すすべての変数は信頼済みと見なされます。内部バリデーションヘルパー
このルールでは、validateAndNormalizeUserInput() が返す値はサニタイズ済みと見なされます。このヘルパーは無効な文字を拒否し、厳格な許可リストを適用します。危険なAPIを安全にラップするラッパー
このルールでは、safeRedirect() 経由の呼び出しが想定されます。このラッパーは、承認済みドメインの許可リストに含まれるURLへのリダイレクトのみを許可します。コンテキストの追加方法
Custom Code Contextは、AutoTriageをサポートするSASTルールでのみ利用できます。
ステップ1。 Repositories Checksページを開き、「SASTルールを表示'.
ステップ2。 該当するSASTルールを見つけ、アクションメニューを開いて選択します Custom Code Context.

ステップ 3。 コンテキストを平易な言葉で追加します。

ステップ4。 コンテキストをグローバルに適用するか、そのリポジトリのみに適用するかを選び、変更を保存します。
新しいコンテキストを適用するには、手動で再スキャンする必要があります。
記述のコツ
コンテキストは範囲を狭く、具体的に保ちます。
良い例:
正確なライブラリ、関数、ラッパー、またはフォルダ名を挙げる
データがなぜ信頼済みまたはサニタイズ済みなのかを説明する
選択したルールに限定して具体的に書く
避けるもの:
「入力は通常サニタイズされる」のような広い主張
関数名のない曖昧な記述
すべてに適用される例外
Custom Code ContextとカスタムSASTルールの比較
既存のルールのトリアージを改善したい場合は、Custom Code Contextを使用します。
使用します カスタムSASTルール コードベース内の新しいパターンを検出する必要がある場合。
要するに:
Custom Code Context 解釈を洗練させる
カスタムSASTルール 検出を拡張する
最終更新
役に立ちましたか?