日本語

ローカルスキャナーを使った夜間スキャンの実行

Aikido Local ScannerをCIに導入する際は、デフォルトブランチへの変更に対してスキャンを実行することをお勧めします。また、特に定期的に更新されないリポジトリについては、一定の間隔でスケジュールスキャンを実行することも検討するとよいでしょう。この記事では、こうした定期スキャンの設定に焦点を当てます。特定のCI/CDツールでLocal Scannerを設定する方法の詳細については、各ツールのガイドを参照してください。

GitHub Actionsでの夜間スキャンの設定

以下の例では、mainブランチへのプッシュ時と、毎晩深夜0時にスキャンを実行するGitHub Actionを作成します。

on:
  push:
    branches:
      - main
  schedule:
    - cron: '0 0 * * *'

name: Aikido Scan
jobs:
  aikido-local-scan-repo:
    runs-on: ubuntu-latest
    container:
      image: aikidosecurity/local-scanner:latest
    steps: 
      - uses: actions/checkout@v4 
        with: 
          token: ${{ secrets.GITHUB_TOKEN }} 
          path: my-repo 
      - name: Run scan
        run: aikido-local-scanner scan my-repo --apikey ${{ secrets.AIKIDO_API_KEY }} --repositoryname MyRepo --branchname main

GitHub Actionsを使用したスキャンの設定方法の詳細はこちらをご覧ください。
GitHub Actionでscheduleオプションを使用する方法の詳細はこちらをご覧ください。

GitLabでの夜間スキャンの設定

事前にGitLabプロジェクトでパイプラインを設定しておく必要があります。詳細はこちらの記事を参照してください。
夜間スキャン用のパイプラインを設定したら、それをスケジュールする必要があります。
左側のサイドバーで、Build > Pipeline schedulesを選択します。
希望する間隔、タイムゾーン、デフォルトブランチをフォームに入力し、「Create pipeline schedule」をクリックします。これにより、スケジュールされたパイプラインが概要に表示されます。

「main」ブランチでスケジュールされた夜間Aikidoスキャン。次回の実行は21時間後。

パイプラインのスケジュールに関する詳細はこちらをご覧ください。

Jenkinsでの夜間スキャンの設定

Jenkinsでスケジュールスキャンを設定するには、Build TriggerとしてBuild Periodicallyを選択します。
以下の例では、毎晩深夜0時にスキャンをスケジュールします。

cron構文を使用して毎日深夜0時に実行するよう設定されたJenkinsのビルドトリガー。

JenkinsでLocal Scannerを設定する方法の詳細はこちらをご覧ください。

Azure DevOpsでの夜間スキャンの設定

以下の例では、mainブランチで毎晩深夜0時に夜間スキャンを実行するAzure DevOpsパイプラインを作成します。

trigger: none

schedules:
- cron: "0 0 * * *"
  displayName: Nightly Aikido scan
  branches:
    include:
    - main
  always: true

pool:
  vmImage: 'ubuntu-latest'

container:
  image: aikidosecurity/local-scanner:latest
  options: --entrypoint=""

steps:
- script: aikido-local-scanner scan $BUILD_SOURCESDIRECTORY --apikey $(AIKIDO_API_KEY) --repositoryname $BUILD_REPOSITORY_NAME --branchname main
  displayName: 'Run Aikido security scan'

Azure DevOpsでパイプラインのスケジュールを設定する方法の詳細はこちらをご覧ください。