Начнём с терминологии
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 месяца, это нормальные средние цифры, почти всегда так и бывает. Большинство атак наши пользователи даже не замечают, некоторые иногда приводят к тому, что сайт не открывается несколько минут, потом начинает работать медленно, а потом возвращается в нормальный режим.
P.S.
Так как у нас бухгалтерский сайт, надо сказать кое-что про бухгалтерию. Не смотря на то что все графики из статьи IT отдел неплохо читает и понимает, а вы — скорее всего нет, могу сказать, что когда я смотрю на 1с или на правовую базу клерка, где собраны законы, я снимаю шляпу перед тем, с чем приходится разбираться бухгалтерам. DDOS атаки — далеко не самая главная проблема.
Комментарии
27оочень интересно)) 8.5 стадионов
Да, кажется это наглядное сравнение. Ещё можно сказать все поголовно население с детьми и пенсионерам Калуги или Смоленска или Мурманска
Вась, спасибо за информацию) Удивлюсь, если в опросе выиграют программисты)))
Пока только Наталья на нашей стороне 😀
Как страшно, когда не в состоянии контролировать собственную мультиварку или тостер с пылесосом 😝
Спасибо за статью, очень интересно написано и познавательно.
Мне бы пригодилась какая нибудь техника умная, которая сама зайдет на сайт, почитает, посмотрит, ответит, а мне бы не пришлось тратить кучу рабочего времени, но при этом самой быть в курсе всего самого интересного.
Единственное, немного режет глаз, когда слово Клерк написано с маленькой буквы. Имя собственное, как никак 💗
К сожалению, если у бухгалтера нет под рукой программиста, который может вовремя подсказать, что за фигню творит 1С и почему не встают нужные цифры туда, куда надо, то приходится терять очень много времени на разборки и попытки понять непонятное.
Я могу сутки иди двое просидеть и тупо подгонять 1С под то, что мне надо, совершенно не понимая что, куда, зачем и почему.
Она так спроектирована - чтобы максимально затруднить сопровождение.
Но и предметная область, если честно, очень тяжёлая. Мы когда пытаемся автоматизировать что-то связанное с деньгами, всегда хочешь-не-хочешь, а получается 1С :)