For the complete documentation index, see llms.txt. This page is also available as Markdown.

シークレット用Pre-Commitフック

Aikido は、機密情報が本番環境に到達する前に 3 つの段階で防ぎます: IDE、pre-commit、PR gating です。pre-commit の git hook は、ステージ済みコードをスキャンして、機密情報、パスワード、API キーを検出します。これにより、機密データがリポジトリに到達するのを防ぎ、漏えいと誤って露出するリスクを低減します。

インストール

Aikido の Aikido IDE プラグイン がインストールされていると、Aikido Expansion Packs を使って pre-commit hook をワンクリックでインストールできます。

すべての git リポジトリに対して Aikido Secrets の pre-commit hook をインストールするには、次を実行します:

curl -fsSL https://raw.githubusercontent.com/AikidoSec/pre-commit/6cc79e039ee78b206520f143d618a44665c904b3/installation-samples/install-global/install-aikido-hook.sh | bash

これにより、機密情報検出に使用される Aikido の pre-commit スキャナーがダウンロードされ、pre-commit hook スクリプトがグローバル hooks ディレクトリにインストールされます。

すべての git リポジトリに Aikido Secrets の pre-commit hook をインストールするには、PowerShell で次を実行します:

iex (iwr "https://raw.githubusercontent.com/AikidoSec/pre-commit/6cc79e039ee78b206520f143d618a44665c904b3/installation-samples/install-global/install-aikido-hook.ps1" -UseBasicParsing)

これにより、機密情報検出に使用される Aikido の pre-commit スキャナーがダウンロードされ、pre-commit hook スクリプトがグローバル hooks ディレクトリにインストールされます。

すでに pre-commit フレームワークを使用している場合は、次を .pre-commit-config.yaml:

repos:
  - repo: https://github.com/AikidoSec/pre-commit
    rev: main  # または特定の commit に固定
    hooks:
      - id: aikido-local-scanner

次に hook をインストールします:

pre-commit install

注意: 次の aikido-local-scanner バイナリは別途インストールする必要があります。まずグローバルインストールスクリプトを実行してください:

macOS/Linux:

curl -fsSL https://raw.githubusercontent.com/AikidoSec/pre-commit/2235fe0536f9135aa561ce108702fac708b38977/installation-samples/install-global/install-aikido-hook.sh | bash -s -- --download-only

Windows (PowerShell):

irm https://raw.githubusercontent.com/AikidoSec/pre-commit/2235fe0536f9135aa561ce108702fac708b38977/installation-samples/install-global/install-aikido-hook.ps1 | % { iex \"& { $_ } -DownloadOnly\" }

これによりスキャナーが ~/.local/bin/aikido-local-scanner.

pre-commit hook のテスト

セットアップ後に pre-commit hook をテストするには、 sample.js ファイルを

const password = "eRwjQKVUSRX7uYV017B0cRHVKv45Gv8G"

リポジトリ内に作成し、このファイルをステージ済みの変更に追加します。このファイルをコミットしようとすると、pre-commit hook が実行され、次のメッセージでコミットがブロックされます:

ステージ済みファイルで機密情報が検出されました!
機密情報 #1:
  ファイル: sample.js
  行: 1
  機密情報: password = "****************************Gv8G"
  説明: 一般的な API キーが検出され、さまざまなサービスや機密操作へのアクセスが公開される可能性があります。

特定の機密情報をスキップする

特定の 機密情報がフラグ付けされるのをスキップするには、検出された機密情報の行にコメントを追加します:

Aikido Secrets の pre-commit スキャンを無効にする

単一のコミットで pre-commit hook を一時的にバイパスする

単一のコミットで Aikido Secrets の pre-commit hook を一時的にバイパスする

アンインストール

アンインストールスクリプトを使用するか、以下の手順に従って hook を手動でアンインストールします。

インストールスクリプトを使って Aikido の pre-commit hook をインストールしており、アンインストールしたい場合は、次を実行します:

インストールスクリプトを使って Aikido の pre-commit hook をインストールしており、アンインストールしたい場合は、次を実行します:

グローバル pre-commit hook の手動アンインストール

これにより、すべてのグローバル Git hook と Aikido バイナリが完全に削除されます。

  1. グローバル hooks ディレクトリを削除します:

    • Unix/Linux/macOS: rm -rf ~/.git-hooks

    • Windows: Remove-Item -Recurse -Force $env:USERPROFILE\.git-hooks

  2. Git hooks のパスをリセットします: git config --global --unset core.hooksPath

  3. 必要に応じてバイナリを削除します:

    • Unix/Linux/macOS: rm ~/.local/bin/aikido-local-scanner

    • Windows: Remove-Item $env:USERPROFILE\.local\bin\aikido-local-scanner.exe

Aikido Git Hook のみを手動でアンインストールする

すでに独自のグローバル Git hook を持っていてそれを残したい場合は、hooks ディレクトリを削除しないでください。

代わりに:

  1. グローバル hooks ディレクトリ内の pre-commit ファイルを開きます(例: ~/.git-hooks/pre-commit)。

  2. aikido-local-scanner を呼び出す行、または Aikido によって追加されたと明確に示されている行だけを削除します。

  3. ファイルを保存します。

Git は既存の hook を使い続け、Aikido Secrets は実行されません。

関連記事

最終更新

役に立ちましたか?