Скоро релиз, а безопасность никто не смотрел
Код писали под срок, ревью в команде проверяло, работает ли функция, а не что она позволяет. Нужен взгляд со стороны и список, который можно закрыть до релиза.
Secure code review — это чтение исходного кода с одним вопросом: что здесь может сделать пользователь, которому этого не положено. Мы идём от рисков, а не от первого файла: права на сервере, вход и сессии, запросы к базе, файлы, секреты, зависимости. На выходе список находок, где у каждой есть место в коде, сценарий, серьёзность и готовая правка, а не выгрузка сканера на сотни строк. Это ревью кода и конфигурации, а не атака на боевую систему и не аттестация.
Аудит кода на уязвимости — от 200 000 ₽, 2–3 недели на одно приложениеУ каждой находки место в коде, сценарий и правкаЧитаем в вашем репозитории, боевую систему не трогаем
Код писали под срок, ревью в команде проверяло, работает ли функция, а не что она позволяет. Нужен взгляд со стороны и список, который можно закрыть до релиза.
Автоматический анализ находит шаблонные замечания и пропускает логику доступа. Нужен тот, кто отделит замечание, до которого можно добраться из интернета, от замечания в мёртвом коде.
Секреты могли остаться в истории репозитория, права могли быть реализованы только в интерфейсе. Читать лучше до того, как на систему придут новые клиенты.
Опросник спрашивает про хранение паролей, проверку прав, обновление библиотек. Ответы без чтения кода пересказывают слова разработчиков. Отчёт ревью заменяет пересказ.
Список участков подгоняем под ваш стек. В разрезе категорий OWASP те же места описаны на странице аудита безопасности.
Первые дни уходят на то, чтобы понять, что в приложении ценно: деньги, персональные данные, документы, административные действия. С вашим разработчиком помечаем участки, где ошибка стоит дороже всего, и читаем с них.
Основной приём: берём данные, пришедшие снаружи, и идём по коду до места, где они что-то делают: попадают в запрос, в путь к файлу, в страницу, в решение о доступе. Если по дороге данные проверены, дальше не идём. Если нет, строим сценарий и воспроизводим его на тестовом стенде или локальной копии. Находка без воспроизведения помечается как «вероятная», и в отчёте это видно.
Анализаторы кода, проверка зависимостей и поиск секретов запускаются в первые дни: они дёшевы и находят шаблонные ошибки. Каждое срабатывание читает человек: часть окажется ложной, часть относится к коду, который не выполняется. Серьёзность определяется после чтения, а не по метке сканера. Часть замечаний снимает короткий ответ разработчика на вопрос «зачем здесь так»: тогда это пояснение, и оно попадает в отчёт.
Условный пример. В обработчике скачивания счёта документ берётся по номеру из адреса, принадлежность организации не проверяется. Сценарий: клиент меняет номер на соседний и получает чужой счёт. Серьёзность высокая. Правка: добавить условие по организации в выборку и вернуть одинаковый отказ на чужой и на несуществующий номер. Проверка: тест, где клиент А запрашивает документ клиента Б и ожидает отказ.
Разовое ревью отвечает на вопрос «что сейчас». Через несколько релизов ответ устаревает: добавился обработчик, кто-то поправил проверку «временно». Поэтому ревью встраивают в процесс команды, и брать эти уровни можно по очереди:
Перед крупным релизом мы читаем изменённые рискованные участки и отвечаем письменно. Это входит в сопровождение пакетами часов.
Ревью кода на уязвимости отвечает на вопрос «что не так в коде»: читаем исходники и конфигурацию, воспроизводим находки на вашем стенде, объясняем, как исправить.
Аудит безопасности веб-приложения шире: все категории OWASP Top 10, проверки на стенде, разбор окружения. Для одного сервиса и вопроса про код хватит ревью, для подтверждения клиентам по всему приложению берите аудит. Аудит кода и архитектуры отвечает на другой вопрос: можно ли систему развивать и сопровождать.
Пентест — попытка взлома боевой системы по согласованным правилам. Мы его не проводим, аттестацию не проводим, лицензии ФСТЭК у нас нет. Если нужно именно это, нужна другая организация, и мы скажем об этом на первом созвоне.
Вход сотрудников и единый вход разобраны на странице SSO и MFA, защита программного интерфейса от перебора и обхода прав — в статье «Как защитить API от взлома».
Цены совпадают с тарифами: ревью идёт по шкале обследования, цена называется до начала работ. Остановиться можно после отчёта.
Карта точек входа и ролей, автоматические проверки, чтение рискованных участков, воспроизведение на вашем стенде, отчёт и созвон с разработчиками.
Плюс границы между сервисами, ключи и токены обмена, общие библиотеки и конвейер сборки.
Много систем и команд, закрытая среда. Сводный отчёт и план исправлений по очереди.
Правки и тесты по отчёту, если хотите поручить их нам. Оценка по каждой находке, этап с приёмкой.
Анализатор кода, проверка зависимостей, поиск секретов и чек-лист для запросов на слияние под ваш стек.
Ревью изменений перед релизами, разбор срабатываний, обновление зависимостей. Сверх пакета — 5 000 ₽ в час.
Какие репозитории и ветки, где стенд. Доступ к коду на чтение, данные на стенде обезличены, соглашение о неразглашении при необходимости.
Точки входа, роли, ценные данные. Автоматические проверки и разбор срабатываний. Согласуем, какие участки читаем первыми.
От ввода к опасным местам, воспроизведение на стенде, вопросы разработчикам. Критические находки сообщаем сразу, не дожидаясь отчёта.
Находки с местом, сценарием, серьёзностью, правкой и способом проверки. Отдельно список того, что мы не читали, и причины.
Проходим по отчёту с вашими разработчиками. После исправлений по желанию проверяем, что находки закрыты и новых нет.
Небольшой сервис на одном языке читается быстрее, чем система, где рядом лежат серверная часть, интерфейс, скрипты обмена и устаревший модуль.
Работа растёт по числу правил доступа, а не экранов. Пять ролей с правами на уровне договоров и полей требуют иного объёма, чем две роли.
Если разработчики отвечают в тот же день, срок ровный. Если авторов кода уже нет, читаем дольше и чаще пишем «вероятно».
В закрытом контуре без выхода наружу всё нужное готовится заранее, а зависимости проверяются по локальным зеркалам.
Порядок защиты программного интерфейса: что проверять в коде, какие лимиты вводить и как не пропустить чужие данные.
Десять классов ошибок без жаргона и пять проверок, которые заказчик сделает сам.
Три схемы изоляции и тесты, которые показывают, что клиент А не видит клиента Б.
Сорок минут созвона: что за приложение, на чём написано, кто будет принимать отчёт. По итогам скажем, хватит ли ревью или нужен полный аудит, и в какую ступень это укладывается.
Ревью одного приложения — 200 000 ₽ и 2–3 недели, нескольких приложений — 350 000 ₽ и 3–4 недели, крупного контура — 500 000 ₽ и 4–6 недель. Цена называется до начала работ, остановиться можно после отчёта. Исправление найденного оценивается отдельно по каждой находке, от 150 000 ₽ за этап.
Ревью читает исходный код глубже и ведёт диалог с разработчиками. Аудит идёт по всем категориям OWASP Top 10, включает проверки на стенде и разбор окружения. Для одного сервиса и вопроса про код хватает ревью, для подтверждения клиентам по всему приложению нужен аудит.
Уверенно читаем Python, JavaScript и TypeScript, PHP и Go. Другие языки возможны, но решаем это до договора: если проверяющий не пишет на языке, ревью превращается в просмотр без понимания. Код приложений под iOS и Android не читаем.
Нужен доступ на чтение в вашем репозитории или копия на выделенной машине в вашем контуре. Данные на стенде обезличиваются, после работ доступ закрывается, копия удаляется по акту. Соглашение о неразглашении подписываем до начала.
Нет. Отчёт описывает прочитанное и проверенное, и в нём есть список того, что мы не читали. Ревью снижает вероятность типовых и дорогих ошибок и показывает слабые места, но полностью безопасных приложений не бывает.
Можно. Мы настраиваем автоматические проверки в сборке и чек-лист для запросов на слияние, а перед крупными релизами читаем изменённые рискованные участки. Сопровождение стоит 20 000, 60 000 или 120 000 ₽ в месяц, часы сверх пакета — 5 000 ₽ в час.
Нет. Мы не атакуем боевую систему и не имитируем внешнего нарушителя: читаем код и конфигурацию, воспроизводим находки на вашем стенде или локальной копии. Лицензии ФСТЭК и права проводить аттестацию у нас нет.
Мы в Ростове-на-Дону, работаем с заказчиками по всей России: удалённо и в вашем контуре. Доступ к системам и обследование согласуем на старте с вашей службой безопасности.