カスタム SAST・IaC ルールを追加する
これらのカスタムルールを使用すると、コードベース内の特定のリスク、特に自社の環境に特有のリスクをAikidoにスキャンさせることができます。これにより、より汎用的なSASTやIaCルールでは見落とされる可能性のある脆弱性を検出できます。
ステップバイステップガイド
Section titled “ステップバイステップガイド ”Step 1: repositories checksページに移動します。
Step 2: SASTセクションで「Create Custom Rule」をクリックします。

Step 3: ルールについて以下の詳細を入力します。
- Opengrep rule: Aikidoが検索するルールを定義します。ヒント: 保存する前に、Opengrep playground でルールの有効性をテストしてください。
- Title: 識別しやすいようにルールに名前を付けます。
- TL;DR: issueの簡潔な説明を記載します。サイドバーに表示されます。
- How to fix it: このissueを修正する最善の方法をチームに伝えます。
- Language: プログラミング言語を指定します。
- Aikido Score: メインフィードでのissue報告の優先度レベルを設定します。

Step 4: ルールの設定に問題がなければ、「Save」をクリックしてAikidoのSASTチェックに追加します。カスタムルールが有効化され、以降のスキャンで自動的に適用されます。
- 全体として、Opengrepルール内のlanguage属性が常に優先されます。これは、すべての言語・ファイルに一括で適用する必要があるカスタムルールを実装したい場合に役立ちます。
- IaCルールを作成したい場合は、languageをyaml/terraform/…などに設定することで実現できます。
-
SAST Rule: JavaScriptにおける脆弱なMD5ハッシュアルゴリズムの使用を検出します。
rules:- id: CUSTOM-RULE-XXXXmessage: It looks like MD5 is usedlanguages:- javascriptpaths:include- "*.js"severity: WARNINGpattern-either:- pattern: $CRYPTO.createHash("md5")- pattern: CryptoJS.MD5(...) -
IaC Rule: 危険な可能性のあるLambda関数を検出するカスタムルールです。
rules:- id: CUSTOM-RULE-530languages:- hclseverity: WARNINGmessage: >A Lambda function was found with the "type:monitored" tag, but without a "service" tag.patterns:- pattern: |-resource "aws_lambda_function" $ANYTHING {...tags = {..., type = "monitored", ...}}- pattern-not: |-resource "aws_lambda_function" $ANYTHING {...tags = {..., service= "...", ...}}