メインコンテンツまでスキップ

Takumi Guard のセットアップスクリプトにヘルスチェック機能を追加

· 約3分
Cheng-Jui Chen
Software Engineer @ GMO Flatt Security Inc.

Takumi Guard のセットアップスクリプト(setup.sh / setup.ps1)に healthcheck サブコマンドを追加しました。Guard が正しく設定されているか、および悪性パッケージが実際にブロックされるかを自動で検証できます。設定ファイルの変更や API クレデンシャルは不要です。

概要

従来、setup.sh install の実行後に Guard がエンドツーエンドで正しく動作しているかを確認する自動化された手段がありませんでした。ユーザーガイドには手動の検証手順(例:npm install @panda-guard/test-malicious)を記載していましたが、手順が省略されやすく、スクリプトへの組み込みにも対応していませんでした。

healthcheck サブコマンドはこの課題を解決します。サポート対象のエコシステムごとに、以下の 3 段階で検証を行います。

  1. 設定確認:パッケージマネージャーが Guard プロキシを参照しているかを検証する
  2. 接続確認:Guard プロキシへの到達性を確認する
  3. ブロックテスト:ブロック対象のテスト用パッケージのインストールを試行し、拒否されることを検証する

このサブコマンドは読み取り専用であり、API クレデンシャル(TG_BOT_API_KEY / TG_BOT_ID)は不要です。

利用方法

setup.sh install の完了後にヘルスチェックを実行します。

./setup.sh healthcheck

特定のエコシステムのみを確認する場合は、引数でスコープを指定します。

./setup.sh healthcheck golang

終了コード

ヘルスチェックは終了コードで結果を返すため、管理ツールによる定期実行や自動化に組み込むことができます。

終了コード意味
0すべてのチェックに成功
11 つ以上のチェックに失敗
2判定不能(CLI が見つからない、ネットワークの問題など)

出力例

$ ./setup.sh healthcheck golang

[OK] go: GOPROXY → https://golang.flatt.tech
[OK] go: Guard proxy reachable
go: creating new go.mod: module healthcheck-tmp
[OK] go: sentinel module hola-takumi-go@v0.1.0 correctly blocked

[OK] All healthchecks passed

サポート対象のエコシステム

ヘルスチェックは現在 npm、RubyGems、Go に対応しています。PyPI については、テスト用パッケージの公開後に対応予定です。

エコシステムスコープ引数テスト用パッケージ
npmnpm@panda-guard/test-malicious
RubyGemsrubygemshola-takumi v0.1.0
Gogolanggithub.com/flatt-security/hola-takumi-go v0.1.0
PyPIpypi(対応予定)

ヘルスチェックサブコマンドの詳細については、ユーザーガイドの管理ツールによる一括セットアップ — ヘルスチェックを参照してください。