RD / Обучение

Курс аудита безопасности кода, индивидуально

Научитесь читать незнакомую кодовую базу так, как её читает атакующий: проследить недоверенные данные до строки, где всё ломается, доказать, что уязвимость эксплуатируема, и предложить исправление, которое примут разработчики. Индивидуально, онлайн, в вашем темпе.

Первая 20-минутная встреча для оценки уровня бесплатна, после неё согласуем план и дату начала.

Для кого

  • Пентестеры и участники bug bounty, которые хотят перейти от тестирования «чёрным ящиком» к исходному коду.
  • Инженеры по безопасности приложений, которым нужен воспроизводимый метод аудита и разбор результатов сканеров.
  • Опытные разработчики и тимлиды, которые проверяют pull request’ы и хотят ловить уязвимости до слияния.

Что вы сможете делать

  • Составлять карту незнакомого репозитория: точки входа, границы доверия и код, на который стоит тратить время.
  • Прослеживать недоверенные данные от источника до опасной операции и отличать реальную находку от ложного срабатывания сканера.
  • Находить ошибки аутентификации, авторизации, изоляции арендаторов и бизнес-логики, которые пропускают инструменты.
  • Доказывать эксплуатируемость в локальной лаборатории и обосновывать критичность понятным для владельца продукта языком.
  • Находить варианты известной уязвимости с помощью сравнения патчей и собственных запросов Semgrep или CodeQL.
  • Описывать находки с первопричиной, доказательствами и исправлением и проверять, держится ли предложенный фикс.

Что нужно до начала

  • Вы уверенно читаете код хотя бы на одном из языков: JavaScript/TypeScript, PHP, Java или Python.
  • Вы знаете HTTP и основные классы веб-уязвимостей на уровне OWASP Top 10.
  • Вы работаете с git, Docker и терминалом и готовы заниматься на английском. Начинаем с короткой оценки вашего уровня, чтобы план вам подошёл.

Программа

Восемь модулей. Ваш план проходит их в том порядке и с той глубиной, которые подходят вашему уровню: быстро там, где вы уже разбираетесь, и дольше там, где это нужно.

  1. 01Чтение незнакомой кодовой базы с точки зрения безопасностиПревратите репозиторий, который видите впервые, в карту того, до чего может добраться атакующий.
    • Точки входа: маршруты, контроллеры, фоновые задачи, вебхуки и обработчики сообщений
    • Соглашения фреймворков, скрывающие маршрутизацию и middleware
    • Модель угроз на одной странице: активы, участники и границы доверия
    • Ограниченное по времени ревью там, где риск
  2. 02Источники, опасные операции и потоки данныхПроследите недоверенные данные до места, где они причиняют вред.
    • Ручная трассировка от источника до опасной операции, включая потоки второго порядка
    • Валидация, санитизация и кодирование: когда что действительно защищает
    • Опасные операции: SQL, команды, шаблоны, пути к файлам, SSRF и десериализация
    • Разбор результатов SAST: подтвердить, отклонить или копать дальше
  3. 03Аутентификация и сессииАудит кода, который решает, кто пользователь.
    • Вход, регистрация, сброс пароля и MFA
    • Жизненный цикл токенов и сессий: выдача, проверка, истечение, отзыв
    • Ошибки проверки JWT на примере цепочки патчей fast-jwt
    • Проверки redirect, state и audience в OAuth и OpenID Connect
  4. 04Авторизация и изоляция арендаторовНайдите пропущенную проверку, из-за которой один клиент видит данные другого.
    • Проверки на уровне объектов и функций (BOLA, BFLA, IDOR) в обработчиках, middleware и ORM-запросах
    • Массовое присваивание (mass assignment)
    • Ограничение арендатора в запросах, кешах и фоновых задачах
    • Резолверы GraphQL и административные эндпоинты
  5. 05Бизнес-логика, состояние и конкурентностьНайдите код, который нарушает правила, на которых держится продукт.
    • Инварианты: что всегда должно быть верно и какой код это нарушает
    • Состояния гонки в платежах, купонах и квотах
    • Доверие к ценам, ролям и идентификаторам от клиента
    • Арифметика: переполнение, усечение и ширина сдвига (CVE-2025-37858)
  6. 06Парсеры, платформы и цепочка поставокПроверьте допущения, которые код делает обо всём вокруг.
    • Нормализация путей и расхождения парсеров (CVE-2026-21589, CVE-2026-104935)
    • Проверки, исчезающие после неудачного поиска (CVE-2024-26855)
    • Границы серверного рендеринга после React2Shell
    • Зависимости, скрипты сборки и lock-файлы после компрометации Axios в npm
  7. 07Доказательство эксплуатируемости и последствийОт подозрительной строки — к подтверждённой и приоритизированной находке.
    • Предусловия, достижимость и контроль атакующего
    • Минимальное доказательство в локальной лаборатории
    • Критичность по CVSS с учётом бизнес-контекста
    • Сравнение патчей и поиск вариантов с Semgrep и CodeQL
  8. 08Исправления, отчёты и код, написанный ИИДобейтесь исправления уязвимости — и чтобы оно держалось.
    • Находки, которые принимают разработчики: место, первопричина, доказательство, исправление
    • Проверка предложенного исправления и его регрессионного теста
    • Безопасные значения по умолчанию, устраняющие целый класс ошибок
    • Аудит кода, сгенерированного ИИ, и проверка выводов ИИ-ревьюера

Практика

Лабораторные по трассировке

Разбор приложений, подготовленных мной для курса: вы проводите данные через реальный код фреймворков до уязвимой строки.

Поиск вариантов

Начинаете с опубликованного патча в open-source проекте и ищете ту же ошибку в других местах этой кодовой базы в уязвимой версии.

Проверка исправлений

Определяете, устраняет ли предложенный фикс первопричину или только описанный симптом, и пишете тест, который это доказывает.

Итоговая проверка

Аудит мультитенантного веб-приложения

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

Критерии оценки

  • Карта точек входа и границ доверия
  • Подтверждённые находки с доказательствами и шагами воспроизведения
  • Верная первопричина для каждой находки
  • Обоснование критичности, понятное владельцу продукта
  • Исправления, устраняющие причину, с тестом
  • Минимум ложных срабатываний, открытые вопросы отделены

Чем отличается этот курс

Один ученик — один преподаватель

Каждое занятие проходит со мной, а план следует за вашим прогрессом, а не за общим расписанием.

Реальные случаи вместо учебных фрагментов

Вы разбираете код опубликованных уязвимостей, в том числе тех, что я анализировал или исправлял сам, и приложения, подготовленные для курса.

Сначала метод, потом инструменты

Сканеры разбираются там, где они сильны. Вы учитесь оценивать их результаты и находить то, что они не умеют моделировать.

Инструменты

  • ripgrep
  • VS Code
  • git log / blame / diff
  • Semgrep
  • CodeQL
  • Docker
  • Burp Suite Community / Caido
  • Debugger

Стандарты и источники

Разборы, которые можно прочитать уже сейчас

Вопросы о курсе

Какие языки программирования нужны?

Лабораторные используют TypeScript/Node.js, PHP и Java, а для разборов нативного кода — C. Достаточно уверенно читать один из них: метод переносится между языками, и мы это отрабатываем.

Сколько длится обучение?

Зависит от вашего начального уровня и времени между занятиями. План мы согласуем после первичной оценки и корректируем по мере продвижения.

Это подготовка к OSWE?

Нет. OSWE подтверждает навыки эксплуатации «белым ящиком» через экзамен. Этот курс учит методу аудита, анализу первопричин и качеству исправлений под личным руководством. Навыки во многом пересекаются, и курс хорошо готовит к любой работе «белым ящиком».

Нужен ли коммерческий сканер?

Нет. Всё в курсе работает на бесплатных инструментах с открытым кодом.

Когда можно начать?

Напишите коротко о своём уровне и целях. Я отвечу в течение трёх дней, мы договоримся о бесплатной 20-минутной встрече для оценки уровня, а после неё согласуем план и дату начала.

Сколько стоит обучение?

Один курс стоит 79 000 ₽: около 10 индивидуальных занятий по 90 минут, лабораторные, проверка заданий, итоговая оценка и сертификат. Оба курса вместе — 142 000 ₽, отдельное 90-минутное занятие — 7 500 ₽.

Как проходит индивидуальное обучение?

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

На каком языке проходят занятия?

На английском языке для иностранных учеников. Носители арабского могут выбрать арабский или английский. Английские термины из инструментов, отчётов и вакансий сохраняются.

Есть ли очные занятия?

Нет. Все занятия, лабораторные, задания и обратная связь проходят онлайн.

Будет ли сертификат?

После успешной итоговой проверки вы получаете сертификат о прохождении. Его выдаю я, и это не отраслевая сертификация вроде OSWE. Работодатель может проверить саму работу — ваш итоговый отчёт.

Законны ли практические задания?

Да. Вся практика ведётся на приложениях, которые я подготовил для курса, и на open-source проектах в версиях с опубликованными уязвимостями — всё работает на вашем компьютере. Вы не тестируете системы, которые вам не принадлежат или на тестирование которых у вас нет письменного разрешения.

Что если мне понадобится больше времени?

Если понадобится больше занятий, чем запланировано, каждое дополнительное стоит 7 500 ₽, и мы согласуем его заранее.

Дальше

Продолжите курсом пентеста веб-приложений и API с опорой на код.

08Контакт

Готовы начать?

Напишите коротко: какой курс, ваш текущий уровень и чему вы хотите научиться. Занятия проходят на английском (для носителей арабского — на арабском). Отвечу в течение трёх дней, чтобы договориться о бесплатной оценке.