find-bugs

Методология поиска багов и уязвимостей. Security checklist, STRIDE, attack surface mapping, верификация.

SKILL.md

GitHub

Usage

Loaded automatically when its description matches the active task. The body below provides the working context.

Find Bugs — Методология поиска уязвимостей

Главное правило

Не исправляй — только находи и докладывай. Каждая находка должна быть обоснована реальным кодом.

Фаза 1: Attack Surface Mapping

Для каждого модуля определи:

  • Все пользовательские входы (request params, headers, body, URL)
  • Все database queries
  • Все auth/authz проверки
  • Все операции с состоянием/сессиями
  • Все внешние вызовы (API, сервисы)
  • Все криптографические операции

Фаза 2: Security Checklist

Проверь КАЖДЫЙ пункт для КАЖДОГО модуля:

  • Injection: SQL, command, template, header injection
  • XSS: Все выходные данные в шаблонах корректно экранированы?
  • Authentication: Auth проверки на всех защищённых операциях?
  • Authorization/IDOR: Контроль доступа проверен, а не только аутентификация?
  • CSRF: State-changing операции защищены?
  • Race conditions: TOCTOU в паттернах read-then-write?
  • Session: Fixation, expiration, secure flags?
  • Cryptography: Secure random, правильные алгоритмы, нет секретов в логах?
  • Information disclosure: Ошибки, логи, timing attacks?
  • DoS: Unbounded операции, отсутствие rate limits, resource exhaustion?
  • Business logic: Edge cases, нарушения state machine, numeric overflow?

Фаза 3: STRIDE анализ

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

Угроза Вопрос
Spoofing Можно ли подделать идентичность? Есть ли auth на всех endpoints?
Tampering Можно ли изменить данные в transit/at rest? Есть ли integrity checks?
Repudiation Есть ли audit log? Можно ли отрицать действие?
Info Disclosure Утечки данных через логи, ошибки, API responses?
Denial of Service Unbounded operations, missing timeouts, resource exhaustion?
Elevation of Privilege Можно ли получить повышенные права? Есть ли role checks?

Фаза 4: Верификация

Для каждой потенциальной проблемы:

  • Проверь: не обработана ли она уже в другом месте кода?
  • Поищи существующие тесты покрывающие сценарий
  • Прочитай окружающий контекст для подтверждения
  • Отметь что НЕ удалось проверить полностью и почему

Приоритизация

security vulnerabilities > bugs > code quality

Пропускай: стилевые/форматные замечания

Для каждой находки:

  • Файл:Строка — краткое описание
  • Severity: Critical / High / Medium / Low
  • Problem: Что не так
  • Evidence: Почему это реальная проблема (не уже исправлено, нет теста)

Если ничего значительного не найдено — скажи об этом. Не выдумывай.