Nix-Cloud
← К услугам кибербезопасности
Образец · публичная версия
Отчёт по результатам работ

Аудит информационной безопасности веб-ресурса

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

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

Форматы поставки. Отчёт передаётся одновременно в PDF для руководства и архива и в HTML для разработчиков. По запросу готовим отдельную презентацию для руководства: что нашли, чем это грозит и что исправить в первую очередь.

Объект аудита
example-client.uz
Заказчик
ООО «Пример»
Исполнитель
ООО «NIXCLOUD»
Тип работ
Внешний аудит веб-приложения, Grey Box
Период проведения
01–08.11.2026
Версия документа
1.0, итоговая
Основание
Договор и NDA
Гриф
Конфиденциально

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

Раздел 1

Резюме для руководства

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

Цель работ

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

Общая оценка

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

Распределение находок по уровню критичности
Уровень Шт. Что это означает на практике
Критический 0 Прямой захват сервера или доступ к базе данных
Высокий 1 Реальный риск компрометации учётных записей клиентов
Средний 3 Усиливает последствия других уязвимостей, сам к взлому не ведёт
Низкий 4 Облегчает злоумышленнику подготовку к атаке
Замечание 2 Рекомендации по улучшению, уязвимостью не являются

Что сделать в первую очередь

  1. Ограничить частоту запросов на вход и восстановление пароля. Одна настройка, закрывающая единственную находку высокого уровня.
  2. Исправить параметры сессионных cookie и убрать из ответов сервера версии установленного ПО. Правки на полдня работы.
  3. Внедрить политику 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 мс; признаков ограничения не зафиксировано. Пароли не подбирались: проверялась только реакция сервера на частоту обращений.

Чем это грозит

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

Что сделать

  1. Ограничить вход до 5 попыток в минуту на учётную запись и на адрес — на уровне веб-сервера или на границе сети.
  2. Подключить адаптивную проверку после 3–5 неудачных попыток.
  3. Ввести нарастающую задержку ответа вместо жёсткой блокировки: она не даёт заблокировать чужой аккаунт намеренно.
  4. Ограничить частоту выдачи и проверки токенов восстановления отдельно от входа.
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

План устранения

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

СрокНаходкиРаботыЧья зона
1–3 дня NX-SEC-01 Ограничение частоты запросов на вход и восстановление пароля Системный администратор
1–2 недели NX-SEC-03, NX-SEC-04 Атрибуты сессионных cookie, отключение выдачи версий ПО Разработка
до 1 месяца NX-SEC-02 Content-Security-Policy: режим наблюдения, разбор отчётов, перевод в боевой режим Разработка

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

Раздел 5

Повторная проверка и ограничения

Повторная проверка

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

Ограничения

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

Справочные материалы

Как читать уровень критичности

Уровень CVSS Трактовка
Критический 9.0–10.0 Устранять немедленно, вплоть до остановки сервиса
Высокий 7.0–8.9 Устранять в первую очередь, в течение дней
Средний 4.0–6.9 Планировать в ближайший цикл разработки
Низкий 0.1–3.9 Устранять попутно с другими работами
Замечание — Уязвимостью не является, улучшает общее состояние

Журналы и расследование

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

  • Журналы доступа и ошибок веб-сервера
  • Журналы аутентификации операционной системы и приложения
  • Журналы изменения прав, создания и удаления учётных записей
  • Журналы развёртывания: кто и когда менял код и конфигурацию
  • Сетевые соединения сервера, хотя бы в агрегированном виде

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

Термины

  • Grey Box — проверка с частичным знанием системы: есть учётная запись и общее описание, но нет исходного кода.
  • CVSS — международная шкала оценки критичности уязвимостей от 0 до 10 с открытой методикой расчёта.
  • OWASP Top 10 — перечень десяти самых распространённых классов уязвимостей веб-приложений.
  • Rules of Engagement — согласованные до начала работ правила: что, когда и какими методами разрешено проверять.
  • Поверхность атаки — совокупность точек, через которые можно попытаться воздействовать на систему.

Нужен такой отчёт по вашей системе?

Опишите, что у вас есть: сайт, сервер, приложение. Назовём объём работ и стоимость до начала.

Оставить заявку

Образец документа. Домен, находки и даты вымышлены и приведены для демонстрации формата.