
Всем привет!
Сегодня любое развитие онлайн-бизнеса, его процессы и выручка напрямую зависят от бесперебойной работы сайтов и веб-приложений. Тут же возникает риск кражи персональных данных и чувствительной информации из хранилищ веб-сайтов и приложений. Еще хуже, если злоумышленники взломают онлайн-ресурс, а затем продолжат развитие атаки уже внутри инфраструктуры компании. Чтобы избежать кибератак, приводящим к потере прибыли и штрафам за утечки данных, нужно заняться защитой своих веб-приложений.
Чаще всего для защиты от атак на сайты и веб-приложения используют сервис WAF. Один нюанс – при подключении такого сервиса требуется грамотно рассчитать основной параметр емкости – Requests Per Second (RPS). Это нужно, чтобы WAF обладал емкостью, которой будет хватать для стабильной работы онлайн-ресурса, и при этом его владелец не переплачивал за лишние мощности. В этой статье мы расскажем, как рассчитать RPS четырьмя разными способами, чтобы успешно защитить свой онлайн-бизнес от хакеров.
WAF-сервис – а все-таки зачем?
По данным «Солара», только в 2024 году среднее число веб-атак на один домен выросло более чем в 4 раза в сравнении с тем же периодом прошлого года. При этом большая часть из них (51%) приходится на поиск уязвимостей в веб-приложениях с помощью автоматических средств. После этого хакеры совершают целевые атаки, с помощью которых крадут базы данных, получают доступ в инфраструктуру веб-приложения, выводят его из строя или меняют его внешний вид. Как минимум это отпугивает посетителей и вызывает панику среди интернет-пользователей. Как максимум – останавливаются продажи, клиенты переходят к конкурентам, а компании теряют выручку, которая в некоторых случаях (например, среди крупных маркетплейсов) может достигать сотен миллионов рублей в сутки.
В случае успешной атаки время восстановления ИБ-инфраструктуры может занять до 7–10 дней. Все это время бизнес будет терять деньги, возврат клиентов повлечет серьезных маркетинговых трат. Все эти потери бизнеса, как при пожаре, в десятки и сотни раз выше затрат на сервисы защиты от веб-атаки. Для подключения подобного сервиса владельцу онлайн-ресурса нужно сделать две вещи:
Поменять IP-адрес в А-записи на DNS со своего на IP-адрес провайдера сервиса WAF;
Выяснить величину веб-трафика, чтобы рассчитать оптимальный объем сервиса. Для этого необходимо знать, как рассчитать один важный параметр – RPS.
RPS – не знаю, что это, как посчитать?
RPS (Requests Per Second) – это первый и основной параметр емкости WAF, который показывает, сколько запросов обрабатывает сервер или приложение за одну секунду.
Чтобы его вычислить, рекомендуем пользоваться формулой (она проверена на опыте и пока не подводила ни одного заказчика):
R (максимальное число RPS за год) + 20%.
Максимальное число RPS можно узнать у ИТ-службы компании, эксплуатирующей сервис. По нашему опыту защиты, стоит брать запас RPS не впритык, а с резервом пропускной способности хотя бы от 20%. На практике 20% показало себя оптимальным значением – меньше может не хватить в пики продаж, а больший запас может повлечь лишние расходы.
Например: если у вас на пике было 1700 RPS, то следует запросить от провайдера емкость 2000 RPS. Также можно договориться о разной емкости в разные сезоны, например в месяцы активных продаж — 2000 RPS, а в месяцы низких продаж — 1000 RPS.
Нет возможности посчитать RPS, что делать?
Если нет понимания, какая у вас RPS-нагрузка на веб-приложение, следует обратить внимание на второй параметр — это количество Мбит/c веб-трафика, идущего до веб-серверов. Важно, что это не емкость канала широкополосного доступа, который обычно утилизирован только наполовину и может также применяться для сетей Wi-Fi или других потребностей, связанных с доступом в Интернет. Это именно величина веб-трафика — она всегда меньше, чем емкость канала широкополосного доступа.
Дело в том, что для точной оценки нагрузки на систему защиты важен пик-RPS, который отражает реальный максимум и учитывает все ожидаемые пики». Но пользователи могут ошибаться и рассчитать нагрузку, игнорируя пики и критичные сценарии, сезонные всплески (распродажи, праздники) и планируемые рекламные кампании, которые тоже увеличивают нагрузку. У компании может быть просто мало статистики (например, счетчик поставили пару месяцев назад) или она будет отсутствовать в принципе (сайт новый).
Именно поэтому есть еще один простой вариант высчитать примерный показатель RPS по следующей формуле:
М (максимальная величина веб-трафика в Мбит/с) * 10
Важно: формула работает для усредненного веб-приложения, за исключением видеопорталов и прочих веб-ресурсов, где на один GET- или POST-запрос идет очень большая нагрузка в Мбит/c.
Например: веб-трафик до веб-серверов составляет 127 Мбит/c, рассчитываем примерное число RPS, выходит 1270 RPS.
Еще один способ — обратиться к сайтам подсчета посещаемости
Если величина веб-трафика неизвестна, можно воспользоваться и этим способом. В Интернете есть множество сайтов, где можно вбить любой адрес и посмотреть посещаемость этого веб-приложения за месяц. Такая информация доступна у большинства сайтов, особенно нагруженных и популярных, так как они индексируются в Рунете и отдают статистику по счетчикам.
Например, мы заходим на сайт для проверки веб-приложения, печатаем www с адресом и видим, что за последний квартал средняя посещаемость в месяц была от 3 до 4 млн визитов. Используем формулу:
W (средняя посещаемость в месяц)/1000
Важно: формула работает для усредненного веб-приложения с погрешностью в большую и меньшую сторону.
Имейте в виду: посещаемость обычно считается спецресурсами без учета трафика с рекламы, он создает погрешность при вычислении RPS. Если у вас большой рекламный трафик, то стоит взять больший запас по этому параметру.
Четвертый способ, чтобы посчитать емкость трафика для WAF
И, наконец, последний способ (правда, с немного большей погрешностью)— это использование статистики «Яндекс Метрики». Какие там есть параметры:
Переходы по рекламе;
Переходы из поисковых систем;
Прямые заходы;
Переходы по ссылкам на сайтах;
Переходы из социальных сетей;
Внутренние переходы;
Переходы из рекомендательных систем;
Переходы с сохраненных страниц;
Переходы из мессенджеров;
Общее количество переходов.
Вы можете взять для оценки два параметра: переходы из поисковых систем и внутренние переходы. Они являются индикативными, так как не учитывают все виды переходов. Посчитав с их помощью емкость RPS, можно понять, какой примерный объем WAF заказать у провайдера.
Например, переходы из поисковых систем в среднем составляют 65% от общей посещаемости. Допустим, что показатель посещаемости за какой-то месяц составил 37 000. Используем формулу:
37 000/65% = 57 000/1000 = 57 rps
Аналогичный пример с внутренними переходами. Например, они составляют в среднем 1,57% от посещаемости сайта. Если взять показатель за месяц 1100, то посещаемость высчитывается так: 1100 /1,57% = 70 000, далее откидываем три нуля и получаем нагрузку на сайт примерно 70 RPS.
Вот и все: теперь можно понять, в каком объеме взять сервис WAF для любого бизнес-сайта и быть спокойным за его бесперебойную работу.
Автор: Алексей Пашков, руководитель направления WAF ГК «Солар»