cicd-sensor と連携
cicd-sensor は、GitHub Actions など CI 環境向けのオープンソースの eBPF ランタイムセキュリティセンサーです。CI/CD ジョブに cicd-sensor を導入すると、Takumi Runner を利用しなくてもジョブの実行をトレースし、そのログを Takumi に送信することが可能になります。
cicd-sensor のみご 利用の場合でも、ルールを設定して脅威を検知したり、トレースログを保管したりできますが、Takumi と連携することにより、取得したトレースログをより効果的に活用できます。
Takumi と連携することにより、以下が可能になります。
- トレースログが可視化できる
- トレース検索機能により、サプライチェーンインシデント発生時に該当期間のトレースログを調査できる
- 脅威検出機能により、弊社の専門知識とシステムを活かした脅威を検出する機能をご利用いただける
cicd-sensor のルールは Takumi との連携と併用いただけます。
サポートされている CI/CD パイプライン
cicd-sensor の連携は実行環境に依存しないため、基本的には cicd-sensor がサポートする CI/CD パイプラインに対応しています。cicd-sensor は以下の CI/CD 環境に対応しています。
- GitHub Actions
- GitHub ホステッドランナー
- x64
- arm64
- セルフホステッドランナー
- GitHub ホステッドランナー
- GitLab CI/CD
- Self-Managed Runner
Third party ランナーなど他にも対応している環境がありますので、詳しくはcicd-sensor のドキュメントをご覧ください。
cicd-sensor は GitLab ホステッドランナーには対応しておりません。また、GitHub ホステッドランナーの ubuntu-slim にも対応しておりません。
cicd-sensor のトレースログを Takumi に送信する
cicd-sensor から Takumi へトレースログを送信できるよう、独自の cicd-sensor Manager(以下「Takumi の Manager」)を提供しています。cicd-sensor の Manager 設定で Takumi の Manager を指定することによって連携されます。
GitHub ホステッドランナーをご利用の場合
GitHub Actions のジョブでは cicd-sensor の パラメータ manager-url で Manager を指定します。
jobs:
build:
runs-on: ubuntu-24.04
steps:
- uses: cicd-sensor/cicd-sensor-action@6511eb44c91d71b2b93d71193b1bf2cb18352f66 # v0.0.38
with:
manager-url: https://manager.cicdsensor.cloud.shisho.dev
manager-token: ${{ secrets.AUTH_TOKEN }} #トークンの設定は後述
manager-token に関しては以下の認証をご確認ください。
GitHub ホステッドランナー以外をご利用の場合
cicd-sensor の導入は CI/CD の環境により異なるため、cicd-sensor のドキュメントをご確認ください。
cicd-sensor が導入されたら、後は Manager の設定をするだけです。 Manager を設定するには Manager のエンドポイント manager-url と認証情報 manager-token を指定します。こちらの設定方法も実行環境によって異なるため、cicd-sensor のドキュメントをご確認ください。
Takumi の Manager のエンドポイントと認証情報は以下の通りです。
manager-url:https://manager.cicdsensor.cloud.shisho.devmanager-token: 認証をご覧ください
認証
認証は、キーレス OIDC と API キーを使う 2 つの方法があります。どちらも Shisho Cloud のボットを利用して行います。
はじめに、Shisho Cloud のボット作成ページを開いてボットを作成してください。ボットの作成時には、必ずミッション固有ロールの Takumi Runnerトレース送信者 を指定してください(ルールと config のプッシュ用のボットを作成の場合は Takumi Runner設定管理者 のロールを選択してください)。


ここからは、キーレス OIDC を設定するか API キーを作成するかによって手順が異なります。セルフホステッドランナーなど、OIDC 認証が行えない環境では API キーをご利用ください。
方法 A: OIDC によるキーレス認証
キーレス認証では、ワークフロー実行時に短命なトークンを取得するため、長期間有効なシークレットを CI 環境に保存する必要がありません。
キーレス認証を利用するには、Shisho Cloud でボットに、GitHub Organization とリポジトリを紐付ける信頼条件を作成します。

オーディエ ンス欄は空のままにしてください。flatt-security/shisho-cloud-action@v1 は特定のオーディエンスを要求しないため、空欄にするとトークンの aud クレームは検証されません。ワークフローが特定のオーディエンスを要求する場合に限り、その値をそのまま入力してください。
ボットを作成したら、次にワークフローで OIDC トークンを取得する設定を入れます。
GitHub Actions をご利用の場合、トークンは flatt-security/shisho-cloud-action@v1 を使って取得できます。OIDC トークンの取得には id-token: write 権限が必要です。
id-token: write を指定したジョブでは、GitHub の OIDC トークンが発行できるようになります。トークンは Shisho Cloud 以外のサービスでも利用が可能なため、ジョブの侵害時に他サービスへの不正アクセスに使われる可能性があります。ここでは environment を cicd-sensor に設定してトークンがこの値を subject で持つようにし、少しでも他サービスで利用できる可能性を下げます。また、id-token: write の適用範囲で必要以上の処理を行わないようご注意ください。
以下は、 OIDC トークンを取得するワークフローです。
jobs:
build:
runs-on: ubuntu-latest
environment: cicd-sensor # このジョブ専用の environment
permissions:
contents: read
id-token: write
steps:
- id: auth
uses: flatt-security/shisho-cloud-action@v1
with:
bot-id: <Bot ID>
export-token: true
expires-in-minutes: 360
- uses: cicd-sensor/cicd-sensor-action@6511eb44c91d71b2b93d71193b1bf2cb18352f66 # v0.0.38
with:
manager-url: https://manager.cicdsensor.cloud.shisho.dev
manager-token: ${{ steps.auth.outputs.token }}
<Bot ID> は、作成したボットの ID に置き換えてください。
トークンの有効期限(expires-in-minutes)はワークフローで指定されるため、ジョブの実行中に期限切れにならないようご注意ください。