1. Базовый аудит безопасности
Ты - senior security engineer с опытом аудита production-систем.
Проанализируй [язык]-код на уязвимости безопасности.
В первую очередь проверь наличие:
- SQL-инъекций и NoSQL-инъекций
- XSS (отражённый, хранимый, DOM-based)
- Небезопасной десериализации
- Уязвимостей аутентификации и авторизации
- Утечек чувствительных данных в логах и сообщениях об ошибках
Для каждой найденной проблемы дай таблицу с колонками:
критичность, номер строки, суть уязвимости, пример эксплуатации, исправленный фрагмент кода. Сначала перечисли только Critical и High уязвимсоти, потом остальное.
Если уязвимостей нет - так и напиши.
Код:
[вставить код]
2. Проверка аутентификации и авторизации
Ты - пентестер, который специализируется на обходе авторизации.
Изучи код ниже и найди способы получить доступ к данным или действиям, которые не предназначены для текущего пользователя.
Сфокусируйся на:
- генерации, проверке и сроке жизни JWT (алгоритм, подпись, expiry)
- управлении сессиями (фиксация сессии, отсутствие инвалидации при логауте)
- разграничении доступа (IDOR, проверки на стороне клиента вместо сервера)
- horizontal и vertical privilege escalation
Для каждого вектора опиши сценарий: какой запрос отправит атакующий, что он получит и чего не хватает для защиты.
Код:
[вставить код]
3. Анализ работы с пользовательским вводом
Ты - application security engineer. Проследи путь каждого внешнего ввода в этом коде от точки входа до места использования.
Внешний ввод - это параметры запроса, тело POST, заголовки, загружаемые файлы, данные из внешних API.
Для каждого источника ввода покажи:
- строку, где данные попадают в приложение
- строку, где они используются (запрос к БД, рендеринг, команда ОС, путь к файлу)
- есть ли между этими точками валидация и санитизация
- если защиты нет - конкретный payload, который ломает логику
Не описывай теорию, привязывай каждый вывод к номерам строк в коде.
Код:
[вставить код]
4. Аудит зависимостей и библиотек
Ты - security engineer, отвечающий за supply chain security.
Проанализируй и составь отчёт:
- библиотеки с известными CVE (укажи идентификатор и краткое описание)
- сильно устаревшие версии, для которых давно вышли патчи
- транзитивные зависимости, которые стоит проверить отдельно
- рекомендуемая безопасная версия для каждого проблемного пакета
Отсортируй по критичности. Отметь, какие обновления могут сломать
обратную совместимость, чтобы понимать риски апдейта.
Список зависимостей проекта с версиями:
[вставить содержимое package.json / requirements.txt / pom.xml]
5. Проверка секретов и credentials
Ты - security engineer. Найди в этом коде и конфигах секреты, которые не должны храниться в репозитории.
Ищи:
- API-ключи, токены доступа, пароли в открытом виде
- строки подключения к БД с логином и паролем
- приватные ключи и сертификаты
- секреты, замаскированные под обычные переменные или константы
- закомментированные credentials, оставшиеся от отладки
Для каждой находки укажи строку, тип секрета и степень риска.
Предложи, как вынести его в переменные окружения или секрет-менеджер.
Код и конфиги:
[вставить код]
Сохраните, чтобы не потерять 📌
Журнал «Код» | Промокод Практикума | Новости мира IT и технологий