Рубрика «Блог компании Qrator Labs»

DDoS-атаки посылают волны в океане Интернета, создаваемые творениями разных размеров - ботнетами. Некоторые из них питаются ближе к поверхности, но существует категория огромных глубоководных чудовищ, которые достаточно редки и одновременно настолько опасны, что их можно увидеть только один раз за долгое время.

В ноябре 2021 мы встретили и успешно нейтрализовали несколько атак исходящих от ботнета, который, похоже, не связан с хорошо известными или детально описанными, как варианты Mirai, Bashlite, Hajime или Brickerbot.

Читать полностью »

DDoS-атаки и BGP-инциденты третьего квартала 2021 года - 1

Третий квартал 2021 года стал рекордным по масштабам и интенсивности DDoS-атак.

События достигли апогея в сентябре, когда мы вместе с Яндексом обнаружили и сообщилиЧитать полностью »

image

На днях в СМИ появилась информация о DDoS-атаке на Яндекс. Это правда, но не вся. Нашим специалистам действительно удалось отразить рекордную атаку более чем в 20 млн RPS — это самая крупная атака из известных за всю историю интернета. Но это лишь одна из множества атак, направленных не только на Яндекс, но и на многие другие компании в мире. Атаки продолжаются уже несколько недель, их масштабы беспрецедентны, а их источник – новый ботнет, о котором пока мало что известно.

Сегодня вместе с коллегами из Qrator Labs мы хотим поделиться текущими результатами совместного расследования деятельности нового ботнета Mēris. Расследование еще продолжается, но мы считаем важным поделиться уже собранной информацией со всей индустрией.

Читать полностью »

Десять (с плюсом) лет в лабе - 1

В начале 2021 года Qrator Labs отмечает собственный десятилетний юбилей. 19 января наша компания пройдет через формальную отметку 10 лет деятельности, войдя во вторую декаду существования.

Хотя, на самом деле, все началось несколько ранее - когда в возрасте десяти лет Александр первый раз увидел Robotron K 1820Читать полностью »

На первом в истории полностью виртуальном мероприятии РИТ++, прошедшем в конце мая, инженер Qrator Labs — Георгий Тарасов, рассказал публике про веб-скрейпинг, он же парсинг, популярным языком. Мы решили предоставить вашему вниманию транскрипцию выступления.

Web scraping вашего сайта: непрошеные гости и как их встречают - 1
Читать полностью »

Стоит оговориться, что нижеследующая история во многом уникальна.

И вот как она начиналась. В течение примерно одного часа, начиная с 19.28 UTC вчера, 1 апреля 2020 года, крупнейший российский интернет-провайдер — Ростелеком (AS12389) — начал анонсировать сетевые префиксы крупнейших игроков интернета: Akamai, Cloudflare, Hetzner, Digital Ocean, Amazon AWS и других известных имен. До того момента как проблема была решена пути между крупнейшими облачными провайдерами планеты были нарушены — Интернет «моргнул».

Данная утечка маршрута вполне успешно распространялась через провайдера Rascom (AS20764), откуда через Cogent (AS174) и, спустя еще несколько минут, через Level3 (AS3356) распространилась по всему миру. Утечка была настолько серьезной, что почти все Tier-1 операторы были задеты аномалией.

Выглядело это так:

image

Добавляя снизу:

image
Читать полностью »

“In 1665, Cambridge University closed because of the plague. Issac Newton decided to work from home. He discovered calculus & the laws of motion.”

We live in a truly remarkable moment. With the year 2020 and the COVID-19 outbreak employees all over the world are staying home for quarantine, trying their best to sustain the normal flow of life, which means continue working. And this is something new compared to all the previous infectious pandemics humanity has survived through — this time we have the Internet.
Turns out internet businesses are sustainable during pandemics. Why? Home Office DNA - 1
Читать полностью »

«В 1665 году Кембриджский университет закрылся из-за эпидемии чумы. Исааку Ньютону пришлось работать из дома. Он открыл дифференциальное и интегральное исчисление, а также закон всемирного тяготения».

К сожалению, мы живем в выдающееся время. С наступлением 2020 года и эпидемией COVID-19 сотрудники по всему миру закрываются дома на карантин, стараясь изо всех сил поддерживать нормальное течение жизни, а значит, и продолжать работать. Но есть одно отличие от всех предыдущих инфекционных пандемий, которые пережило человечество — в этот раз у нас есть Интернет.
Оказывается, интернет-бизнес выживает в текущих условиях. Почему? Удаленка в ДНК - 1
Читать полностью »

Ежегодный отчет Qrator Labs о сетевой безопасности и доступности - 1

Есть у нас в Qrator Labs такая традиция — в начале, а февраль это точно не конец, каждого года публиковать отчет о годе предыдущем.

Как и любая многолетняя сущность, она обрастает множеством сопутствующих историй. К примеру, уже стало «доброй» приметой, когда в начале января на наши корпоративные страницы заходит очередная DDoS-атака, которую мы не успеваем разобрать в отчете. 2020 год стал наполовину исключением — вектор атаки мы успели писать (TCP SYN-ACK-амплификация), но именно к нам, на qrator.net, гость пожаловал только 18 января, зато сразу с гостинцами: 116 Gbps при 26 Mpps.

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

Начнём мы с двух самых интересных нам тем прошлого года: SYN-ACK-амплификации и BGP-«оптимизации».
Читать полностью »

tl;dr

github.com/QratorLabs/fastenum

pip install fast-enum

Зачем нужно перечисление (enum)

(если вы все знаете — опуститесь до секции «Перечисления в стандартной библиотеке»)

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

# /path/to/package/static.py:
INITIAL = 0
PROCESSING = 1
PROCESSED = 2
DECLINED = 3
RETURNED = 4
...

… или как статические атрибуты класса:

class MyModelStates:
  INITIAL = 0
  PROCESSING = 1
  PROCESSED = 2
  DECLINED = 3
  RETURNED = 4

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

Однако, и константа модуля, и класс со статическими атрибутами страдают от внутренней природы объектов Python: все они изменяемы (мутабельны). Можно случайно присвоить значение своей константе во время выполнения, а отладка и откат сломанных объектов — отдельное приключение. Так что вы можете захотеть сделать пачку констант неизменяемыми в том смысле, что количество объявленных констант и их значения, на которые они отображаются, не будут изменяться во время выполнения программы.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js