Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
tailsnitch — Инструмент аудита безопасности для конфигураций Tailscale. Сканирует ваш tailnet на наличие неправильных конфигураций, излишне разрешительных политик доступа и нарушений лучших практик безопасности. | Kitploit
Инструменты/GitHubGitHub/adversis/tailsnitch
Сканеры уязвимостейАудит конфигурацииСетевая безопасностьБезопасность облачных средDevSecOpsНеправильная КонфигурацияРеагирование на Инциденты
GitHubadversis/tailsnitch

tailsnitch

Инструмент аудита безопасности для конфигураций Tailscale. Сканирует ваш tailnet на наличие неправильных конфигураций, излишне разрешительных политик доступа и нарушений лучших практик безопасности.

Репозиторий
1.1k295 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Tailsnitch

Аудитор безопасности для конфигураций Tailscale. Tailsnitch сканирует вашу tailnet на наличие 50+ неправильных конфигураций, излишне разрешительных контролей доступа и нарушений лучших практик безопасности.

Быстрый старт

root@kitploit:~
# 1. Установите учётные данные API Tailscale
export TS_API_KEY="tskey-api-..."

# 2. Запустите аудит
tailsnitch

# 3. Просмотр только проблем высокой степени серьёзности
tailsnitch --severity high

# 4. Исправление некоторых проблем  ~интерактивный~ yolo-режим
tailsnitch --fix

Установка

Загрузить готовый бинарник

Загрузите последний релиз с GitHub Releases.

Пользователи macOS: Снимите атрибут карантина после загрузки:

root@kitploit:~
sudo xattr -rd com.apple.quarantine tailsnitch

Установка через Go

root@kitploit:~
go install github.com/Adversis/tailsnitch@latest

Сборка из исходников

root@kitploit:~
git clone https://github.com/Adversis/tailsnitch.git
cd tailsnitch
go build -o tailsnitch .

Аутентификация

Tailsnitch поддерживает два метода аутентификации. OAuth предпочтителен, если настроены оба.

Вариант 1: OAuth-клиент (рекомендуется)

OAuth-клиенты предоставляют ограниченный, аудируемый доступ, который не истекает при увольнении сотрудников.

root@kitploit:~
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-политика
  • devices:core:read — список устройств
  • dns:read — конфигурация DNS
  • auth_keys:read — ключи аутентификации (для проверок AUTH)

Дополнительные разрешения для режима исправления:

  • devices:core — удаление устройств, изменение тегов (требует выбора тегов)
  • auth_keys — удаление ключей аутентификации

Вариант 2: API-ключ

API-ключи действуют от имени пользователя, который их создал, и наследуют его разрешения.

root@kitploit:~
export TS_API_KEY="tskey-api-..."

Создайте API-ключ по адресу: https://login.tailscale.com/admin/settings/keys

Примеры использования

Базовый аудит

root@kitploit:~
# Полный аудит
tailsnitch

# Показать также проходящие проверки (подробно)
tailsnitch --verbose

# Вывод в формате JSON для обработки
tailsnitch --json

# Аудит конкретной tailnet (если OAuth-клиент имеет доступ к нескольким)
tailsnitch --tailnet mycompany.com

Фильтрация результатов

root@kitploit:~
# Показать только критические и проблемы высокой степени серьёзности
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

Интерактивный режим исправления

Режим исправления позволяет устранять проблемы напрямую через API Tailscale:

root@kitploit:~
# Интерактивный режим исправления
tailsnitch --fix

# Предварительный просмотр того, что будет исправлено (сухой прогон)
tailsnitch --fix --dry-run

# Автовыбор безопасных исправлений (всё равно требует подтверждения)
tailsnitch --fix --auto

# Отключение аудита действий исправления
tailsnitch --fix --no-audit-log

Исправляемые через API элементы:

ПроверкаДействие
AUTH-001, AUTH-002, AUTH-003Удалить ключи аутентификации
AUTH-004Заменить на эфемерные ключи

Режим исправления также предоставляет прямые ссылки на консоль администрирования для проблем, требующих ручного вмешательства.

Экспорт доказательств для SOC 2

Создание отчётов с доказательствами для аудитов SOC 2 с привязкой к общим критериям (CC):

root@kitploit:~
# Экспорт в 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:

root@kitploit:~
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, чтобы скрыть результаты для известных принятых рисков:

root@kitploit:~
# .tailsnitch-ignore
# Игнорировать информационные проверки
ACL-008  # Мы намеренно не используем группы
ACL-009  # Устаревшие ACL подходят для нашего случая

# Игнорировать определённые проверки средней степени серьёзности с обоснованием
DEV-006  # Внешние устройства — одобренные подрядчики
LOG-001  # Журналы потоков требуют тарифа Enterprise

Расположение файла игнорирования (проверяется по порядку):

  1. .tailsnitch-ignore в текущей директории
  2. ~/.tailsnitch-ignore в домашней директории
root@kitploit:~
# Использовать конкретный файл игнорирования
tailsnitch --ignore-file /path/to/ignore

# Отключить обработку файла игнорирования
tailsnitch --no-ignore

Экспорт в JSON и обработка

root@kitploit:~
# Экспорт полного отчёта
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"
'

Справочник команд

Проверки безопасности

Tailsnitch выполняет 52 проверки безопасности по 7 категориям. Подробное описание каждой проверки см. в docs/CHECKS.md.

Критическая степень серьёзности

Высокая степень серьёзности

Средняя степень серьёзности

Информационные

Проверки конфигурации логирования, настроек DNS, ролей пользователей и элементов, требующих ручной проверки.

Пример вывода

root@kitploit:~
+=====================================================================+
|                    TAILSNITCH SECURITY AUDIT                        |
|            Tailnet: example.com                                     |
|            Версия: 1.0.0 (сборка: abc123)                           |
+=====================================================================+

  Используется файл игнорирования: .tailsnitch-ignore (3 правила)

=== КОНТРОЛЬ ДОСТУПА ===================================================

[CRITICAL] ACL-001: Активна политика «разрешить всё» по умолчанию
  В вашей ACL-политике отсутствует поле 'acls'. Tailscale применяет
  политику «разрешить всё» по умолчанию, предоставляя всем устройствам
  полный доступ.

  Исправление:
  Определите явные правила ACL, следуя принципу наименьших привилегий.

  Источник: https://tailscale.com/kb/1192/acl-samples
----------------------------------------------------------------------

=== АУТЕНТИФИКАЦИЯ И КЛЮЧИ ============================================

[HIGH] AUTH-001: Существуют повторно используемые ключи аутентификации
  Обнаружено 2 повторно используемых ключа аутентификации. При компрометации
  они могут быть использованы для добавления нескольких устройств.

  Подробности:
    - Ключ tskey-auth-xxx (истекает через 45 дней)
    - Ключ tskey-auth-yyy (истекает через 89 дней)

  Исправление:
  Храните повторно используемые ключи в менеджере секретов. Предпочитайте
  одноразовые ключи.

  Источник: https://tailscale.com/kb/1085/auth-keys
----------------------------------------------------------------------

СВОДКА
======================================================================
  Critical: 1  High: 3  Medium: 5  Low: 2  Info: 8
  Всего результатов: 19  |  Пройдено: 33

Проверки Tailnet Lock

Проверки Tailnet Lock (DEV-010, DEV-012) требуют локального CLI tailscale и выполняются относительно демона локальной машины. При аудите удалённой tailnet через --tailnet эти проверки отражают локальный статус, а не аудируемой tailnet.

root@kitploit:~
# Укажите путь к пользовательскому бинарнику tailscale при необходимости
tailsnitch --tailscale-path /opt/tailscale/bin/tailscale

Интеграция с CI/CD

Запускайте Tailsnitch в конвейерах CI/CD для выявления регрессий безопасности:

root@kitploit:~
# Пример для GitHub Actions
- name: Аудит безопасности Tailscale
  env:
    TS_OAUTH_CLIENT_ID: ${{ secrets.TS_OAUTH_CLIENT_ID }}
    TS_OAUTH_CLIENT_SECRET: ${{ secrets.TS_OAUTH_CLIENT_SECRET }}
  run: |
    tailsnitch --json > audit.json
    # Ошибка, если существуют проблемы критической или высокой степени серьёзности
    if tailsnitch --severity high --json | jq -e '.summary.critical + .summary.high > 0' > /dev/null; then
      echo "Обнаружены проблемы критической или высокой степени серьёзности!"
      tailsnitch --severity high
      exit 1
    fi

Ссылки

  • Руководство по усилению безопасности Tailscale
  • Справочник по синтаксису ACL
  • Tailscale SSH
  • Журнал аудита
  • Tailnet Lock

Лицензия

MIT

Участие в разработке

Рекомендации см. в CONTRIBUTING.md.

Скачать инструмент
DEV-002Удалить теги с устройств пользователей
DEV-004Удалить устаревшие устройства
DEV-005Авторизовать ожидающие устройства
ФлагОписание
--jsonВывод в формате JSON
--severityФильтр по минимальной степени серьёзности: critical, high, medium, low, info
--categoryФильтр по категории: access, auth, network, ssh, log, device, dns
--checksЗапуск определённых проверок (идентификаторы или слагы через запятую)
--list-checksВывести список всех доступных проверок и выйти
--tailnetУказать tailnet для аудита (по умолчанию: из API-ключа)
--verboseПоказывать также проходящие проверки
--fixВключить интерактивный режим исправления
--autoАвтовыбор безопасных исправлений (требует --fix)
--dry-runПредварительный просмотр действий исправления без выполнения (требует --fix)
--no-audit-logОтключить аудит действий исправления
--soc2Экспорт доказательств SOC 2: json или csv
--tailscale-pathПуть к CLI tailscale (для проверок Tailnet Lock)
--ignore-fileПуть к файлу игнорирования
--no-ignoreОтключить обработку файла игнорирования
--versionПоказать информацию о версии
IDПроверкаРиск
ACL-001Политика «разрешить всё» по умолчаниюВсе устройства имеют неограниченный доступ
ACL-002Неправильная конфигурация SSH autogroup:nonrootSSH от имени любого пользователя не root
ACL-006tagOwners слишком широкиеЭскалация привилегий через теги
ACL-007Использование autogroup:danger-allДоступ предоставлен внешним пользователям
IDПроверкаРиск
AUTH-001Повторно используемые ключи аутентификацииНеограниченное добавление устройств при краже
AUTH-002Ключи аутентификации с долгим сроком действияУвеличенное окно экспозиции
AUTH-003Предварительно авторизованные ключиОбход одобрения устройств
DEV-001Помеченные устройства без истечения срока ключаБессрочный доступ
DEV-002Устройства пользователей с тегамиСохраняются после удаления пользователя
DEV-010Tailnet Lock отключёнНет защиты от кражи ключей
DEV-012Ожидающие подписи Tailnet LockНеподписанные узлы требуют проверки
NET-001Экспозиция FunnelДоступ из публичного интернета
NET-003Граница доверия маршрутизатора подсетиНезашифрованный трафик в локальной сети
SSH-002Root SSH без режима проверкиНе требуется повторная аутентификация
IDПроверкаРиск
ACL-004Использование autogroup:memberВнешние пользователи включены
ACL-005Настроены AutoApproversОбход одобрения маршрутов
AUTH-004Неэфемерные ключи CI/CDНакопление устаревших устройств
DEV-003Устаревшие клиентыПотенциальные уязвимости
DEV-004Устаревшие устройстваНеиспользуемая поверхность атаки
DEV-005Неавторизованные устройстваОчередь ожидания одобрения
DEV-007Чувствительные имена машинРаскрытие в CT-логах
DEV-009Конфигурация одобрения устройствМожет быть не включена
NET-004Раскрытие HTTPS в CT-логахИмена машин публичны
NET-005Видимость трафика на выходном узлеОператор видит весь трафик
NET-006Экспозиция ServeЛокальные сервисы видны в tailnet
SSH-003Раскрытие интерфейса RecorderСессии видны в сети