Что проверяют при проверке безопасности уязвимостей
Что проверяют
Отличаете ли вы проверку безопасности от запуска сканера и понимаете ли, какие классы дефектов находит только человек. От тестировщика ждут не пересказа списка типовых уязвимостей, а рассказа, что вы руками делали с чужим запросом.
Как отвечать
Начните с модели угроз: что защищаем, от кого, чем оборачивается утечка. Дальше по областям.
- Аутентификация и сессия: ограничение перебора, срок жизни и отзыв токена при выходе и смене пароля, флаги куки, одноразовость и срок ссылки восстановления.
- Авторизация, самое ценное для тестировщика: подмена идентификатора в адресе отдаёт чужие данные; обычный пользователь зовёт административный метод напрямую, мимо спрятанной кнопки; лишнее поле в теле запроса меняет роль; данные соседнего клиента видны через фильтр.
- Ввод и вывод: внедрение в запросы к базе и в команды системы, межсайтовый скриптинг во всех его видах, подделка запроса там, где авторизация держится на куках, обращения сервера по подставленному адресу.
- Данные: лишние поля в ответах, трассировки стека и отладочные методы наружу, секреты в клиентской сборке и в репозитории, персональные данные в логах.
- Настройка: заголовки безопасности, политика межсайтовых запросов с отражением источника, учётные записи по умолчанию, открытые служебные порты, свежесть зависимостей.
Инструменты называйте по ролям: статический анализ кода, перехватывающий прокси для ручных проб, анализ состава зависимостей, поиск секретов.
Где спотыкаются
Пересказывают список типовых уязвимостей наизусть, но не могут привести ни одного случая, когда сами что-то нашли. Один разобранный пример с подменой идентификатора весит больше, чем полный перечень по памяти.
Второе: считают зелёный отчёт сканера доказательством. Логику доступа и бизнес-правила автоматика не понимает, а часть её находок надо подтверждать руками, иначе команда получает поток ложных срабатываний и перестаёт их читать.
Третье: проверяют через интерфейс. Спрятанная кнопка и заблокированное поле это не ограничение доступа. Проверка это прямой вызов метода с токеном другой роли, с просроченным токеном и без токена вообще. И отдельно: чужие стенды без письменного разрешения трогать нельзя.