Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
tailsnitch — Tailscale構成のセキュリティ監査ツール。tailnetをスキャンして、設定ミス、過度に寛容なアクセス制御、セキュリティベストプラクティス違反を検出します。 | Kitploit
ツール/GitHubGitHub/adversis/tailsnitch
脆弱性スキャナー構成監査ネットワークセキュリティクラウドセキュリティDevSecOps設定ミスインシデントレスポンス
GitHubadversis/tailsnitch

tailsnitch

Tailscale構成のセキュリティ監査ツール。tailnetをスキャンして、設定ミス、過度に寛容なアクセス制御、セキュリティベストプラクティス違反を検出します。

リポジトリを見る
1.1k292026日前Kitploit レビュー済み

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

Tailsnitch

Tailscale構成のセキュリティ監査ツール。Tailsnitchは、あなたのテールネットを57の設定ミス、過度に寛容なアクセス制御、セキュリティベストプラクティス違反についてスキャンします。

クイックスタート

# 1. Tailscale API認証情報を設定
export TS_API_KEY="tskey-api-..."

# 2. 監査を実行
tailsnitch

# 3. 高重大度の検出結果のみを表示
tailsnitch --severity high

# 4. いくつかの問題を修正  ~対話形式~ yoloモード
tailsnitch --fix

インストール

ビルド済みバイナリをダウンロード

GitHub Releasesから最新リリースをダウンロードしてください。

macOSユーザー: ダウンロード後に隔離属性を削除してください:

sudo xattr -rd com.apple.quarantine tailsnitch

Goでインストール

go install github.com/Adversis/tailsnitch@latest

ソースからビルド

git clone https://github.com/Adversis/tailsnitch.git
cd tailsnitch
go build -o tailsnitch .

認証

Tailsnitchは2つの認証方法をサポートしています。両方が設定されている場合はOAuthが推奨されます。

オプション1: OAuthクライアント(推奨)

OAuthクライアントは、従業員が退職しても失効しないスコープ付きの監査可能なアクセスを提供します。

export TS_OAUTH_CLIENT_ID="..."
export TS_OAUTH_CLIENT_SECRET="tskey-client-..."

OAuthクライアントを作成: https://login.tailscale.com/admin/settings/oauth

読み取り専用監査に必要なスコープ:

all:readはすべてをカバーします。スコープを個別に付与する場合:

スコープ使用目的
policy_file:readテールネットポリシーファイル — ACL-、NET-、SSH-*
devices:core:readデバイスリスト — DEV-、NET-、ACL-011
dns:readDNS設定 — DNS-001、DEV-007
auth_keys:readマシン認証キー — AUTH-*、ACL-011
feature_settings:readテールネット設定 — DEV-008、DEV-009、DEV-014
logs:network:readネットワークフローロギング設定 — LOG-001
networking_settings:readHTTPS証明書設定 — NET-004
log_streaming:readログストリーム送信先 — LOG-002
webhooks:readWebhookエンドポイント — LOG-005、LOG-012
oauth_keys:readOAuthクライアント — LOG-006
users:readユーザーロールとステータス — USER-001、LOG-006
account_settings:readセキュリティ連絡先 — LOG-011
devices:posture_attributes:readポスチャ統合 — DEV-014

省略したスコープは、それを必要とするチェックにのみ影響します。そのようなチェックは、合格として報告するのではなく、設定を読み取れなかったと報告します。

AUTH-005とAUTH-006は、テールネットのフェデレーテッドアイデンティティを読み取ります。これは管理コンソールではトラストクレデンシャルと呼ばれます。これらは認証キーと同じキーリストから取得されるため、auth_keys:readがそれらをカバーすることが期待されます。これはライブテールネットに対して確認されていません。キーリストを読み取れない場合、両方のチェックは合格ではなく「未評価」と報告します。スコープが不足している場合にエラーが返されるのか、それともアイデンティティがフィルタリングされたリストが返されるのかは未確認です。サイレントにフィルタリングされる場合、AUTH-005はトラストクレデンシャルが存在しないと報告し、AUTH-006はチェックするものが見つからないと報告します。

修正モード用の追加スコープ:

  • devices:core - デバイスの削除、タグの変更(タグ選択が必要)
  • auth_keys - 認証キーの削除

Tailnet Lock

DEV-010とDEV-012はTailnet Lockについて報告します。これはTailscale APIがテールネット設定として公開していないものです。それによってロックされたデバイスはAPIを通じて表示されますが、ロックが有効かどうかを判断するには、tailsnitchを実行しているマシンのデーモンを読み取るローカルのtailscale CLIが必要です。--tailnetで別のテールネットを監査する場合は、結果のその部分をそれに応じて扱ってください。バイナリが標準以外の場所にある場合は--tailscale-pathを使用してください。

オプション2: APIキー

APIキーはそれを作成したユーザーとして動作し、そのユーザーの権限を継承します。

export TS_API_KEY="tskey-api-..."

APIキーを作成: https://login.tailscale.com/admin/settings/keys

使用例

基本監査

# 完全な監査を実行
tailsnitch

# 合格チェックも表示(詳細モード)
tailsnitch --verbose

# 処理用にJSONとして出力
tailsnitch --json

# 特定のテールネットを監査(OAuthクライアントが複数にアクセスできる場合)
tailsnitch --tailnet mycompany.com

結果のフィルタリング

# 重大および高重大度の問題のみを表示
tailsnitch --severity high

# カテゴリでフィルタリング
tailsnitch --category access    # ACLの問題
tailsnitch --category auth      # 認証とキー
tailsnitch --category device    # デバイスセキュリティ
tailsnitch --category network   # ネットワーク露出
tailsnitch --category ssh       # SSHルール
tailsnitch --category log       # ロギングと管理

# 特定のチェックのみを実行
tailsnitch --checks ACL-001,AUTH-001,DEV-010
tailsnitch --checks stale-devices,tailnet-lock-not-enabled

# 利用可能なすべてのチェックを一覧表示
tailsnitch --list-checks

対話型修正モード

修正モードでは、Tailscale APIを介して問題を直接修復できます:

# 対話型修正モード
tailsnitch --fix

# 修正される内容をプレビュー(ドライラン)
tailsnitch --fix --dry-run

# 安全な修正を自動選択(確認は依然として必要)
tailsnitch --fix --auto

# 修正アクションの監査ロギングを無効化
tailsnitch --fix --no-audit-log

APIで修正可能な項目:

チェックアクション
AUTH-001、AUTH-002、AUTH-003認証キーの削除
DEV-002ユーザーデバイスからタグを削除
DEV-004古いデバイスの削除
DEV-005保留中のデバイスの承認

修正モードでは、手動介入が必要な問題について管理コンソールへの直接リンクも提供されます。

SOC 2エビデンスエクスポート

Common Criteria(CC)コントロールマッピングを使用したSOC 2監査用のエビデンスレポートを生成:

# JSONとしてエクスポート
tailsnitch --soc2 json > soc2-evidence.json

# CSVとしてエクスポート(スプレッドシート用)
tailsnitch --soc2 csv > soc2-evidence.csv

SOC 2レポートには以下が含まれます:

  • リソースごとのテスト結果(各デバイス、キー、ACLルールが個別にテストされます)
  • CCコードマッピング(CC6.1、CC6.2、CC6.3、CC6.6、CC7.1、CC7.2など)
  • 各コントロールテストの合格/不合格/該当なしステータス
  • 監査証跡用のタイムスタンプ

CSV出力例:

resource_type,resource_id,resource_name,check_id,check_title,cc_codes,status,details,tested_at
device,node123,prod-server,DEV-001,Tagged devices with key expiry disabled,CC6.1;CC6.3,PASS,Tags: [tag:server] key expiry enabled,2025-01-05T10:30:00Z
key,tskey-auth-xxx,tskey-auth-xxx,AUTH-001,Reusable auth keys exist,CC6.1;CC6.2;CC6.3,FAIL,Reusable key expires in 45 days,2025-01-05T10:30:00Z

既知のリスクを無視

.tailsnitch-ignoreファイルを作成して、既知の許容リスクの検出結果を抑制します:

# .tailsnitch-ignore
# 情報提供チェックを無視
ACL-008  # 意図的にグループを使用していない
ACL-009  # レガシーACLは当社のユースケースに問題ない

# 正当な理由がある特定の中程度チェックを無視
DEV-006  # 外部デバイスは承認された請負業者
LOG-001  # フローログにはEnterpriseプランが必要

# チェック全体をミュートする代わりに、チェック内の1つの項目を無視
ACL-011:tag:monitoring  # 設計上広範。他のすべてのタグは引き続きチェックされる
AUTH-001:tskey-auth-xxxx  # CIで自動ローテーション、TICKET-123で追跡

行はチェック全体(ACL-011)またはその中の1つの項目(CHECK-ID:item、最初のコロンで分割 - 項目自体にコロンが含まれる場合があります)を指定します。項目ごとのルールはその項目のみを抑制します。チェックは引き続き実行され、見つけた他のすべてを報告します。フラグされたすべての項目を抑制しても、失敗したチェックが合格になることはありません - 検出結果は残り、情報提供に格下げされるため、抑制された検出結果が満たされたコントロールとして読まれることはありません。

無視ファイルの場所(順にチェックされます):

  1. カレントディレクトリの.tailsnitch-ignore
  2. ホームディレクトリの~/.tailsnitch-ignore

最初の場所は作業ディレクトリであるため、無視ファイルはあなたではなくリポジトリから取得される可能性があります。実行ごとに使用したファイルと抑制した検出結果と項目の数が報告され、--jsonはこれをignore_fileおよびignoredフィールドに記録します(チェック全体の場合はCHECK-ID、抑制された1つの項目の場合はCHECK-ID:item)。ファイルをスキップするには--no-ignoreを使用します。

# 特定の無視ファイルを使用
tailsnitch --ignore-file /path/to/ignore

# 無視ファイル処理を完全に無効化
tailsnitch --no-ignore

JSONエクスポートと処理

# 完全なレポートをエクスポート
tailsnitch --json > audit.json

# 失敗したチェックをTSVとして抽出
tailsnitch --json | jq -r '
  .suggestions
  | map(select(.pass == false))
  | .[]
  | [.id, .title, .severity, .remediation]
  | @tsv
' > findings.tsv

# 重大度別のサマリー
tailsnitch --json | jq '
  .suggestions
  | map(select(.pass == false))
  | group_by(.severity)
  | map({severity: .[0].severity, count: length})
'

# 管理リンク付きの重大/高問題を一覧表示
tailsnitch --json | jq -r '
  .suggestions
  | map(select(.pass == false and (.severity == "CRITICAL" or .severity == "HIGH")))
  | .[]
  | "\(.id): \(.title)\n  Fix: \(.fix.admin_url // "manual")\n"
'

コマンドリファレンス

フラグ説明
--jsonJSONとして出力
--severity最小重大度でフィルタリング: critical、high、medium、low、info
--categoryカテゴリでフィルタリング: access、auth、network、ssh、log、device、dns
--checks特定のチェックを実行(カンマ区切りのIDまたはスラッグ)
--list-checks利用可能なすべてのチェックを一覧表示して終了
--tailnet監査するテールネットを指定(デフォルト: APIキーから)
--verbose合格チェックも表示
--fix対話型修正モードを有効化
--auto安全な修正を自動選択(--fixが必要)
--dry-run実行せずに修正アクションをプレビュー(--fixが必要)
--no-audit-log修正アクションの監査ロギングを無効化
--soc2SOC 2エビデンスをエクスポート: jsonまたはcsv
--tailscale-pathtailscale CLIへのパス(Tailnet Lockチェック用)
--timeout監査の全体の時間予算(デフォルト 2m)
--ignore-file無視ファイルへのパス
--no-ignore無視ファイル処理を無効化
--versionバージョン情報を表示

セキュリティチェック

Tailsnitchは7つのカテゴリにわたって57のセキュリティチェックを実行します。各チェックの詳細なドキュメントについてはdocs/CHECKS.mdを参照してください。

重大な重大度

IDチェックリスク
ACL-001デフォルトの「すべて許可」ポリシーすべてのデバイスが無制限にアクセス可能
ACL-002SSH autogroup:nonrootの設定ミス任意の非rootユーザーとしてSSH
ACL-006tagOwnersが広すぎるタグによる権限昇格
ACL-007autogroup:danger-allの使用外部ユーザーへのアクセス付与

高重大度

ツールをダウンロード