← К услугам кибербезопасности
Образец · публичная версия
Отчёт по результатам работ
Аудит информационной безопасности веб-ресурса
Документ показывает структуру и формулировки отчёта, который заказчик получает по итогам работ. Данные вымышленные: домен, находки и даты приведены для иллюстрации формата и не относятся к реальному клиенту.
Это сокращённая версия, и сокращена она намеренно. Здесь показан поверхностный срез: типовые находки, разобранные ровно настолько, чтобы была понятна подача. Рабочий отчёт по итогам заказа содержит результаты контролируемого боевого тестирования, конкретные векторы и проверенные сценарии эксплуатации, полные запросы и ответы, затронутые участки кода и конфигурации, а также перечень применённых методов и инструментов. В открытый доступ это не выкладывается: отчёт с незакрытыми уязвимостями работает как готовая инструкция по атаке.
Форматы поставки. Отчёт передаётся одновременно в PDF для руководства и архива и в HTML для разработчиков. По запросу готовим отдельную презентацию для руководства: что нашли, чем это грозит и что исправить в первую очередь.
- Объект аудита
- example-client.uz
- Заказчик
- ООО «Пример»
- Исполнитель
- ООО «NIXCLOUD»
- Тип работ
- Внешний аудит веб-приложения, Grey Box
- Период проведения
- 01–08.11.2026
- Версия документа
- 1.0, итоговая
- Основание
- Договор и NDA
- Гриф
- Конфиденциально
Обращение с документом. Отчёт содержит сведения о незакрытых уязвимостях и до их устранения представляет интерес для злоумышленника. Передаётся ограниченному кругу лиц со стороны заказчика, хранится в защищённом виде и не публикуется. Исполнитель хранит свою копию согласованный срок, после чего уничтожает её вместе с рабочими материалами.
Раздел 1
Резюме для руководства
Раздел написан без технических терминов и рассчитан на читателя, который принимает решение о бюджете и сроках, а не выполняет работы.
Цель работ
Независимая оценка защищённости веб-ресурса и связанной инфраструктуры от несанкционированного доступа, утечки данных пользователей, нарушения доступности сервиса и обхода бизнес-логики.
Общая оценка
Уровень защищённости оценивается как удовлетворительный. Уязвимостей, позволяющих немедленно получить контроль над сервером или выгрузить базу данных, не выявлено. При этом найдены недостатки в настройке аутентификации, заголовков безопасности и параметров сессионных cookie, которые по отдельности не критичны, но вместе заметно расширяют поверхность атаки.
Что сделать в первую очередь
- Ограничить частоту запросов на вход и восстановление пароля. Одна настройка, закрывающая единственную находку высокого уровня.
- Исправить параметры сессионных cookie и убрать из ответов сервера версии установленного ПО. Правки на полдня работы.
- Внедрить политику Content-Security-Policy. Требует тестирования, поэтому вынесено в отдельный этап.
Раздел 2
Границы работ и методология
Что проверялось
- Домены заказчика и их поддомены в согласованном перечне
- Публичные точки API
- Регистрация, вход, восстановление пароля, управление сессией
- Загрузка и выдача пользовательских файлов
- Конфигурация веб-сервера и заголовков ответов
Что не проверялось
- Сторонние сервисы: CDN и платёжный шлюз. Проверялась только корректность интеграции
- Нагрузочные атаки на отказ в обслуживании
- Социальная инженерия в отношении сотрудников заказчика
- Физическая безопасность и внутренняя сеть офиса
Граница зафиксирована до начала работ и не менялась. Всё, что в неё не входит, не проверялось, и отсутствие находок по этим направлениям не означает их защищённости.
Правила проведения
Работы велись по согласованным правилам (Rules of Engagement), приложение к договору: перечень разрешённых доменов и адресов, окно проведения, контактное лицо для экстренной остановки, запрет на изменение и удаление данных. Действия, способные нарушить работу сервиса, выполнялись только после письменного согласования.
Глубина проверки
Объём работ согласуется до начала и бывает двух уровней. Проверка без эксплуатации: уязвимость фиксируется по признакам, без доведения атаки до конца, безопасно для боевой среды. Контролируемая эксплуатация: найденная уязвимость доводится до подтверждённого результата, чтобы отличить теоретический риск от реального и показать, до каких данных злоумышленник доберётся на самом деле. Второй уровень выполняется только по отдельному письменному разрешению, в согласованное окно и с возможностью немедленной остановки.
В публичной версии отчёта применённые методы, инструменты и цепочки атак не перечисляются. В рабочем отчёте они приводятся полностью: заказчик должен понимать, что именно проверялось и как результат воспроизвести.
Стандарты
- OWASP Web Security Testing Guide, версия 4.2
- OWASP Top 10:2021
- NIST SP 800-115
- Оценка критичности по CVSS версии 3.1
Обращение с данными заказчика
Выгрузка пользовательских данных не производилась. Журналы и конфигурации, переданные для анализа, обрабатывались в закрытом контуре исполнителя. Там, где для разбора объёмов привлекались языковые модели, использовалась модель, развёрнутая локально и не имеющая доступа в интернет: содержимое журналов и конфигураций не передавалось во внешние сервисы. Выводы и формулировки проверены инженером вручную.
Раздел 3
Детальные находки
Каждая находка описана по одной схеме: что именно не так, чем это грозит бизнесу, как это было подтверждено и что нужно сделать. Идентификатор используется в переписке и при повторной проверке.
NX-SEC-01
Высокий
Не ограничена частота запросов на вход и восстановление пароля
- CVSS 3.1
- 7.5AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N
- Категория
- OWASP A07:2021 — сбои идентификации и аутентификации
- Компоненты
POST /api/auth/login, POST /api/auth/password-reset
- Статус
- Открыта
В чём проблема
На обеих точках нет ограничения числа запросов — ни с одного адреса, ни по одной учётной записи. Отправка 1000 последовательных попыток входа не привела ни к задержке ответа, ни к блокировке, ни к появлению проверки «я не робот».
Как подтверждено
1000 запросов с одного адреса за 94 секунды, все получили ответ 401 со средним временем 112 мс; признаков ограничения не зафиксировано. Пароли не подбирались: проверялась только реакция сервера на частоту обращений.
Чем это грозит
Учётные записи клиентов можно подбирать по словарям утёкших паролей в промышленных объёмах. Отдельный риск у восстановления пароля: перебор токена восстановления даёт захват аккаунта без знания пароля вообще. При базе в несколько тысяч пользователей часть учётных записей будет скомпрометирована почти наверняка — люди повторно используют пароли.
Что сделать
- Ограничить вход до 5 попыток в минуту на учётную запись и на адрес — на уровне веб-сервера или на границе сети.
- Подключить адаптивную проверку после 3–5 неудачных попыток.
- Ввести нарастающую задержку ответа вместо жёсткой блокировки: она не даёт заблокировать чужой аккаунт намеренно.
- Ограничить частоту выдачи и проверки токенов восстановления отдельно от входа.
NX-SEC-02
Средний
Не настроены заголовки безопасности
- CVSS 3.1
- 5.4AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:L/A:N
- Категория
- OWASP A05:2021 — небезопасная конфигурация
- Компоненты
Все публичные страницы
- Статус
- Открыта
В чём проблема
В ответах сервера отсутствуют Content-Security-Policy, Permissions-Policy и защита от встраивания страницы во фрейм.
Чем это грозит
Сама по себе находка к взлому не ведёт — это отсутствие страховки. Без CSP любая будущая ошибка в коде, позволяющая выполнить посторонний скрипт, сразу превращается в кражу сессий. Без запрета на встраивание во фрейм возможна подмена интерфейса, когда поверх настоящей страницы показывают чужую и перехватывают нажатия.
Что сделать
Добавить заголовки в конфигурацию веб-сервера. Политику CSP сначала включить в режиме наблюдения и перевести в боевой режим после проверки, иначе возможны поломки сторонних скриптов.
Content-Security-Policy: default-src 'self'; frame-ancestors 'none'
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
Strict-Transport-Security: max-age=31536000; includeSubDomains
Permissions-Policy: camera=(), microphone=(), geolocation=()
NX-SEC-03
Средний
У сессионной cookie нет атрибутов Secure и SameSite
- CVSS 3.1
- 4.3AV:N/AC:L/PR:N/UI:R/S:U/C:L/I:N/A:N
- Категория
- OWASP A01:2021 — нарушение контроля доступа
- Компоненты
Cookie сессии
- Статус
- Открыта
Чем это грозит
Повышается риск подделки запроса с чужого сайта: авторизованный пользователь переходит по ссылке, и действие выполняется от его имени. Отсутствие Secure дополнительно допускает отправку cookie по незащищённому соединению.
Что сделать
Выставить полный набор атрибутов при выдаче сессионной cookie.
Set-Cookie: session_id=...; Secure; HttpOnly; SameSite=Lax; Path=/
NX-SEC-04
Низкий
Сервер сообщает версии установленного ПО
- CVSS 3.1
- 3.1AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:N/A:N
- Категория
- OWASP A05:2021 — небезопасная конфигурация
- Компоненты
Заголовки Server и X-Powered-By
- Статус
- Открыта
Чем это грозит
Точная версия в заголовке избавляет злоумышленника от разведки: он сразу подбирает известные уязвимости под конкретную сборку. На защищённость это напрямую не влияет, но ускоряет атаку и повышает шансы автоматических сканеров.
Что сделать
Отключить выдачу версий на уровне веб-сервера и приложения.
# nginx
server_tokens off;
# приложение — убрать заголовок X-Powered-By
В образце четыре находки из десяти, и каждая урезана. У находки в рабочем отчёте есть шаги воспроизведения, запросы и ответы целиком, снимки экрана, ссылки на затронутые участки кода и конфигурации и — там, где эксплуатация была разрешена, — подтверждённый сценарий с описанием того, до чего удалось добраться. Это всё, что нужно разработчику, чтобы исправить и проверить себя. Публиковать такой текст по чужой живой системе нельзя.
Раздел 4
План устранения
Порядок составлен по соотношению «риск к трудозатратам»: первыми идут работы, которые снимают наибольший риск наименьшими усилиями.
По запросу находки выгружаются в трекер заказчика отдельными задачами с описанием, ссылками на затронутые файлы и критерием приёмки.
Раздел 5
Повторная проверка и ограничения
Повторная проверка
После внесения правок проводится контрольная проверка по закрытым находкам. По её итогам выпускается приложение к отчёту, где у каждой находки проставляется статус: устранена, устранена частично или остаётся открытой. Срок, в течение которого повторная проверка входит в стоимость работ, фиксируется договором.
Ограничения
- Оценка отражает состояние системы на дату проведения работ. Любое изменение кода или конфигурации после этой даты может создать новые уязвимости.
- Отсутствие находки не доказывает отсутствие уязвимости. Аудит ограничен согласованными границами, временем работ и доступными методами.
- Абсолютная защищённость недостижима. Цель работ — снизить риск до приемлемого уровня и сделать его управляемым.
Приложения
Справочные материалы
Как читать уровень критичности
Журналы и расследование
Если по итогам аудита возникает подозрение на уже состоявшийся взлом, глубина расследования полностью определяется тем, что сохранилось в журналах. Минимальный набор, который стоит хранить и выносить за пределы самого сервера:
- Журналы доступа и ошибок веб-сервера
- Журналы аутентификации операционной системы и приложения
- Журналы изменения прав, создания и удаления учётных записей
- Журналы развёртывания: кто и когда менял код и конфигурацию
- Сетевые соединения сервера, хотя бы в агрегированном виде
При подозрении на взлом нельзя переустанавливать систему и удалять файлы. Это уничтожает следы, и восстановить картину происходившего становится невозможно. Правильный первый шаг — снять образ или хотя бы копию журналов, и только потом восстанавливать работу.
Термины
- Grey Box — проверка с частичным знанием системы: есть учётная запись и общее описание, но нет исходного кода.
- CVSS — международная шкала оценки критичности уязвимостей от 0 до 10 с открытой методикой расчёта.
- OWASP Top 10 — перечень десяти самых распространённых классов уязвимостей веб-приложений.
- Rules of Engagement — согласованные до начала работ правила: что, когда и какими методами разрешено проверять.
- Поверхность атаки — совокупность точек, через которые можно попытаться воздействовать на систему.
Нужен такой отчёт по вашей системе?
Опишите, что у вас есть: сайт, сервер, приложение. Назовём объём работ и стоимость до начала.
Оставить заявку