Начнём с терминологии
DOS
DOS (denial of service) — это самый распространённый в интернете вид атак. DOS переводится как отказ в обслуживании. Суть проста — некий злоумышленник отправляем так много запросов на сервер жертвы, то сервер перестаёт справляться с обслуживанием этих запросов и как следствие, не успевает отвечать и обычным законопослушным пользователям.
Атака очень популярна, так как почти ничего не стоит, нужен просто компьютер, немного желания и скверный характер. К счастью, такие атаки так же легко отражаются, как и создаются. Достаточно определить IP адрес злоумышленника и запретить ему общаться с сайтом.
Пример работы скрипта, который мониторит обращения к сайту за период времени — сразу видно, кто много запрашивает. Не пора ли его забанить? (шутка)
DDOS
DDOS (distributed denial-of-service attack) — это прокачанная разновидность DOS, отличие заключается в том, что задействовано много устройств (компьютеров, телефонов и будете смеяться, умные вещи, например умный чайник или мультиварка).
Такие атаки сложнее в организации, поэтому обычно люди со скверным характером собираются в кучки и продают инфраструктуру для атаки. Сначала множество устройств заражаются вредоносным кодом (вирус/червь/троян — могут быть разные виды этого кода). Большое количество пользователей (возможно среди них и вы) не знают того, что их устройства заражены и живут обычной жизнью.
Когда к группе людей со скверным характером приходит заказ, они дают команду и в определённый момент времени (например, во время проведения конференции клерка), устройства начинают запрашивать странички с сервера. Такие атаки отражаются сложнее, так как «плохие» запросы бывает сложно отличить от «хороших». Тем не менее, способы тоже есть.
Заказ такой атаки тарифицируется по довольно хитрой схеме. Стоимость складывается из следующих составляющих:
количества задействованных устройств,
сложности и вариативности запросов которые они отправляют,
учёта индивидуальных особенностей жертвы,
количества запросов которые генерируют устройства, или объём трафика, который они забивают на сервере
продолжительности атаки.
Более подробной информации о методах противодействия и технических средствах, увы, предоставить публично не могу.
У нас очень много таких графиков. Когда что-то идёт не так, важно понять, какая подсистема перенапряглась первая, а какие — в следствии перенапряжения первой тоже сломались. Поразноображиваю ими статью для красоты.
«Нормальное» состояние клерка
И всё-таки, на сколько отличается «нормальное» состояние клерка от состояния под атакой?
Клерк — это огромный высоконагруженный проект. Этот факт привлекает к нам разработчиков. Программисты, которые занимаются своей карьерой не любят работать в студии, а любят работать на больших проектах. Почему так? Давайте сравним работу.
Работа в студии
В типичной студии программист работает на конвейере, или как говорят сами программисты «на галере».
Суть работы такая: есть стандартный движок сайта, на вход поступают заказы от романтиков, которые хотят открыть свой бизнес. Программист путём сложных или не очень доработок делает примерно одни и те же действия из проекта в проект: должна работать регистрация, корзина, публикация постов, надо «натянуть дизайн».
После этого сайт уходит к заказчику. Дальнейшая судьба его обычно в тумане, часто они закрываются и очень редко доходят до больших нагрузок. А программист возвращается к следующему проекту.
В Клерке
Клерк — это продуктовая компания. Продуктовая означает, что мы делаем свои продукты. Весь код который мы написали остаётся с нами, все проблемы которые возникают решаем мы тоже сами. Поэтому требования к качеству тут совсем другие.
Из-за того что проект большой, существует множество интересных направлений. Сегодня надо делать интеграцию с телеграмом, завтра — каталог онлайн-курсов, послезавтра — сервис консультаций. Это всегда интересные задачи.
Ооочень-очень много разных графиков, весь день бы ими любовался
Нагрузка
В Краснодаре есть небезызвестный стадион Краснодар.
Небезызвестный стадион Краснодар
Вместимость этого стадиона составляет при полном заполнении 35 тысяч человек.
Представьте, что вы открыли кофейню и к вам за день придут все эти 35 тысяч — это будет то, что вы вполне можете назвать DDOS атакой.
Так вот, на клерк в норме в обычный день приходят 8,5 полностью заполненных таких стадионов — это около 300 тысяч пользователей. Каждый из них в среднем посещает несколько страниц, то есть, если возвращаться к кофейне, можно считать, что люди покупают кофе и снова становятся в очередь. Поэтому настоящая нагрузка сильно больше этих 8.5 стадионов.
Понятное дело, что за 20 лет нашей истории мы научились работать с таким потоком и с таким количеством запросов, который большинству разработчиков в студии не снился.
Большое количество разных способов задействовано, чтобы сайт просто открылся у каждого, кто хочет на него попасть. Выкладывая любой новый функционал мы думаем в том числе и об этом. Это очень интересная работа для программиста.
DDOS на клерке
Возвращаясь к исходному вопросу — DDOS для любого крупного проекта такого масштаба — это абсолютно нормальное явление. На столько нормальное, что никто давно не пытается выяснить кто и почему его заказывает. DDOS — это просто наша среда обитания.
И как я писал выше, даже без него то что у нас происходит каждый день во многих проектах уже посчитали бы DDOS-ом. 7 атак за 3 месяца, это нормальные средние цифры, почти всегда так и бывает. Большинство атак наши пользователи даже не замечают, некоторые иногда приводят к тому, что сайт не открывается несколько минут, потом начинает работать медленно, а потом возвращается в нормальный режим.
Вот так выглядит более или менее успешная атака, когда некоторые пользователи около 10 минут не могли открыть сайт.
P.S.
Так как у нас бухгалтерский сайт, надо сказать кое-что про бухгалтерию. Не смотря на то что все графики из статьи IT отдел неплохо читает и понимает, а вы — скорее всего нет, могу сказать, что когда я смотрю на 1с или на правовую базу клерка, где собраны законы, я снимаю шляпу перед тем, с чем приходится разбираться бухгалтерам. DDOS атаки — далеко не самая главная проблема.
Как вы считаете, кому сложнее живётся?
Проголосовало 3 человека