Начать проект

Обсудим проект?

Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.

Отправлено!

Спасибо за заявку, мы свяжемся с вами в ближайшее время!

Аудит информационной безопасности: что проверяют в приложении и коде

Аудит информационной безопасности: проверка кода, доступов и данных приложения

«Нам нужен аудит безопасности» — запрос, за которым скрываются три разные работы с разной ценой и разным результатом. Одному нужен разбор кода, другому — попытка взлома снаружи, третьему — бумаги для крупного клиента. Мы в Code Pilots делаем аудит кода и архитектуры и сразу говорим, где заканчивается наша часть.

Если совсем коротко. Аудит защищённости продукта отвечает на три вопроса: где в приложении можно получить доступ к чужим данным, что будет при утечке и какие исправления стоит сделать первыми.

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

Три разные работы

Работа Что делают Что получаете Кто делает
Аудит кода и архитектуры Читают код, схемы, права доступа, зависимости; ищут места, где данные утекают или доступ обходится Приоритизированный список проблем с оценкой риска и стоимости исправления Разработчики с опытом безопасной разработки
Тест на проникновение Пытаются пробить систему снаружи, как атакующий Подтверждённые векторы атаки Профильные команды по тестированию защищённости
Проверка соответствия требованиям Сверяют процессы и документы с нормативными требованиями, готовят аттестацию Заключение и документы для регуляторов и контрактов Лицензированные организации

Разница практическая. Аудит кода находит проблему до того, как её найдут снаружи, и сразу показывает, где именно её исправлять. Пентест доказывает, что проблему можно использовать. Проверка соответствия отвечает на вопрос «есть ли у нас бумаги», а не «защищены ли мы».

Мы делаем первую работу. Аттестацию, лицензированные средства защиты и обследование серверного парка не берём — для этого нужны лицензии, и это отдельная индустрия. По похожему принципу работает и проверка производительности: нагрузочное тестирование отвечает на вопрос, выдержит ли система пик, а не защищена ли она.

Три работы, которые называют аудитом безопасности: разбор кода и архитектуры, тест на проникновение, проверка соответствия требованиям

Когда пора

Перед крупным клиентом или тендером. Требование по безопасности всё чаще входит в договор, а анкету поставщика заполняют совместно с ИТ.

Когда данных стало много. База клиентов на сотни тысяч записей — это уже риск, измеряемый оборотными штрафами.

После смены команды. Ушёл разработчик, знавший систему целиком; никто не может сказать, где хранятся ключи доступа.

После инцидента. Своего или отраслевого: утечка у конкурента — хороший повод проверить себя.

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

Раз в год как регламент. Код меняется, зависимости стареют, права накапливаются.

Что смотрят в приложении

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

Самая частая и самая недооценённая находка — не экзотическая уязвимость, а отсутствие проверки прав на стороне сервера: интерфейс не показывает лишнего, но запрос с изменённым идентификатором возвращает чужие данные.

Что проверяют в приложении: аутентификация и права, ввод данных, секреты и зависимости, хранение данных и логи

Инфраструктура и доступы

Даже когда речь идёт о продукте, а не о серверном парке, часть находок всегда лежит в организации доступов.

Кто имеет доступ к боевой базе и почему; сколько людей знают пароль администратора; остались ли учётные записи уволившихся; используются ли одни ключи для тестового и боевого контуров; есть ли резервные копии и проверял ли кто-нибудь восстановление из них; как раздаются права в системе управления кодом.

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

В распределённых системах добавляется вопрос доверия между сервисами: если внутренняя сеть считается «доверенной» и сервисы не проверяют, кто их вызывает, одна пробитая точка открывает всё остальное. Подробнее про устройство таких систем — в материале про монолит и микросервисы.

Персональные данные и цена ошибки

Экономика вопроса изменилась, и это главный аргумент в разговоре с руководством.

С 30 мая 2025 года действуют новые штрафы за утечки персональных данных. За первую утечку — от нескольких миллионов до пятнадцати миллионов рублей в зависимости от числа пострадавших, а для биометрии и особых категорий данных — до двадцати миллионов. За повторную — оборотный штраф от 1 до 3% годовой выручки, при этом не меньше двадцати с лишним миллионов и не больше 500 млн.

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

Дополнительно стоит держать в голове требования к размещению данных и к используемому ПО — особенно если компания попадает под регулирование по отраслевому признаку. Общая картина требований разобрана в материале про импортозамещение ПО.

Повторная утечка стоит процентами от оборота. Самая дешёвая защита — не собирать данные, которые вам не нужны.

Как проходит аудит кода

Порядок работ примерно такой.

  • 1. Модель угроз на страницу. Что защищаем, от кого, что будет, если это утечет. Без этого шага проверка превращается в перечисление всего подряд.
  • 2. Обзор архитектуры. Схема компонентов, где хранятся данные, кто с кем общается, где границы доверия.
  • 3. Автоматические проверки. Статический анализ кода, анализ зависимостей, поиск секретов в репозитории. Дают быстрый первый список.
  • 4. Ручной разбор критичных мест. Аутентификация, права, платежи, работа с файлами, интеграции. Это то, что автоматика находит хуже всего.
  • 5. Проверка доступов и окружений. Кто имеет доступ, чем отличается тестовый контур, как хранятся ключи.
  • 6. Воспроизведение находок. Каждая проблема подтверждается на тестовом контуре: без воспроизведения это гипотеза.
  • 7. Оценка риска и отчёт. Вероятность, последствия, стоимость исправления.

Сроки: для среднего продукта — от двух до четырёх недель, в зависимости от объёма кода и числа интеграций.

Что должно быть в отчёте

Плохой отчёт — список из ста пунктов с уровнями критичности из инструмента. Хороший отвечает на четыре вопроса.

Что именно нашли — с описанием на человеческом языке, местом в коде и шагами воспроизведения.

Чем это грозит — какие данные и какие деньги под риском. «Обход прав в кабинете даёт доступ к заказам и телефонам всех клиентов» вместо «нарушение контроля доступа».

Что делать — конкретное решение, а не отсылка к стандарту.

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

Плюс раздел, который часто забывают: что уже сделано хорошо. Это не вежливость, а защита от переделок того, что работало.

Разберём код и архитектуру

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

Обсудить проект

Что делать после

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

Первая неделя. Смена скомпрометированных ключей, закрытие критичных дыр в правах доступа, удаление лишних доступов, обновление уязвимых зависимостей.

Первый месяц. Исправления, требующие изменений в коде: проверки прав на сервере, валидация ввода, логирование без чувствительных данных, обезличивание тестовых контуров.

Кварталы. Изменения архитектуры и процессов: разделение прав, управление секретами, регламент хранения данных, обучение команды. Обычно это делается в потоке продуктовой разработки — исправления встраиваются в спринты вместе с развитием системы, а не выносятся в отдельный проект, который никогда не начнётся.

И повторная проверка через несколько месяцев: без неё непонятно, закрыты ли находки на самом деле.

Аудит без плана исправлений — это документ. Через полгода он описывает систему, которой уже нет.

Проверки в конвейере

Разовый аудит стареет. Чтобы не возвращаться к нулю каждый год, часть проверок переносят в процесс разработки.

  • Анализ зависимостей на каждый релиз: новые уязвимости в библиотеках появляются постоянно, и это самая дешёвая автоматизация.
  • Поиск секретов в коммитах — до попадания в репозиторий, а не после.
  • Статический анализ с разумным набором правил: слишком строгий набор команда отключит через месяц.
  • Обновление зависимостей по расписанию, а не «когда сломается».
  • Ревью изменений в чувствительных местах — права, аутентификация, платежи — обязательным вторым человеком.
  • Проверка прав в тестах: автотест, который убеждается, что чужой заказ недоступен, ловит регрессию навсегда.

Это и есть безопасная разработка в практическом смысле: не отдельная дисциплина, а несколько шагов, встроенных в обычный конвейер сборки.

Пентест

Тест на проникновение отвечает на другой вопрос: что можно сделать с системой снаружи, не имея доступа к коду.

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

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

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

Пентест показывает, что можно пробить снаружи за отведённое время. Аудит кода показывает, где это исправлять.

Сколько стоит

Стоимость определяется объёмом кода, числом интеграций и глубиной проверки.

По нашим работам: аудит кода и архитектуры — от 200 до 600 тыс. ₽, консалтинг по стеку и разбор смет подрядчика — от 300 до 900 тыс. ₽, исправления в составе разработки — от 1,7 млн ₽, работы по конвейеру и инфраструктурным проверкам отдельной услугой — от 200 тыс. ₽. Аттестацией и защитой серверного парка мы не занимаемся — это работа лицензированных организаций. Точная цифра зависит от объёма системы: оценка проекта бесплатная.

Прикинуть бюджет можно заранее — бесплатный калькулятор оценки собирает вилку по составу работ за несколько минут.

Посчитаем аудит

Расскажите про систему, объём кода и данные — вернём состав проверок, смету и срок, а по чужой зоне честно отправим к профильным командам.

Получить консультацию

Ошибки

Покупают не ту работу. Нужен был разбор кода, заказали проверку документов — бумаги есть, дыра в правах доступа осталась.

Собирают данные «на всякий случай». Чем больше собрано, тем дороже утечка; половину полей в формах можно убрать без потерь для бизнеса.

Тестируют на копии боевых данных. Тестовый контур защищён слабее, а данные в нём те же самые.

Исправляют по списку из инструмента. Команда тратит недели на предупреждения низкой критичности, а обход прав доступа остаётся.

Не проверяют восстановление из резервных копий. Копии есть, но никто не пробовал развернуть их; выясняется это в худший момент.

С чего начать

Первое — написать модель угроз на одну страницу: какие данные у вас есть, кто может ими заинтересоваться, что произойдёт при утечке и при недоступности сервиса. Этот документ определяет всё остальное.

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

Третье — включить в конвейер анализ зависимостей и поиск секретов. Два дня работы, а закрывают целый класс типовых проблем.

С чего начать: модель угроз на страницу, инвентаризация данных и доступов, автоматические проверки в конвейере

Обсудим вашу систему?

Соберём модель угроз, посмотрим доступы и оценим объём работ. Оценка бесплатная.

Обсудить проект

Часто задаваемые вопросы

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

Зависит от того, кто вы и с какими данными работаете: для государственных заказчиков, объектов критической инфраструктуры и отдельных отраслей это обязательное требование, для большинства коммерческих продуктов — нет. Аттестацию проводят лицензированные организации; мы этой работой не занимаемся и говорим об этом сразу, чтобы вы не покупали у нас не то, что нужно.

С 30 мая 2025 года штраф за первую утечку составляет от нескольких миллионов до пятнадцати миллионов рублей в зависимости от числа пострадавших, а для биометрии и особых категорий данных — до двадцати миллионов. За повторную утечку предусмотрен оборотный штраф в размере от 1 до 3% годовой выручки, не менее двадцати с лишним миллионов и не более 500 млн. К этому добавляются репутационные потери и работа по реагированию.

Аутентификацию и права доступа — там находится большинство критичных проблем. Затем хранение и передачу данных, секреты в коде и репозитории, устаревшие зависимости, логирование без чувствительных данных и доступы к боевым контурам. Экзотические уязвимости встречаются реже, чем обычная непроверенная авторизация запроса на сервере.

Полный разбор — раз в год и при существенных изменениях: новая архитектура, работа с новыми категориями данных, смена команды. Автоматические проверки — анализ зависимостей и поиск секретов — должны идти на каждый релиз, иначе к моменту следующего аудита накопится то же самое.

Разработка с Code Pilots

Code Pilots — студия заказной разработки полного цикла: веб- и мобильные продукты со сложной бизнес-логикой, интеграциями и высокими нагрузками. По безопасности наша зона — продукт: разбор кода и архитектуры, права доступа, хранение и передача данных, секреты, зависимости, проверки в конвейере сборки и сами исправления.

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

Внутри — backend- и мобильные разработчики, DevOps, QA и аналитики, middle+ и senior. Начните с модели угроз на одну страницу — по ней уже понятно, что проверять первым. Обсудить проект →

Обсудим проект?

Заполните форму или напишите нам
на airmail@code-pilots.ru
Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь с политикой конфиденциальности.

Спасибо!

Спасибо за сообщение, мы свяжемся
с вами в ближайшее время!
success