IT-инфраструктура для бизнеса и творчества

В 2019 году продолжаются DDoS-атаки с использованием протокола LDAP: в этот раз на сайт Qiwi

Это уже шестая подобная атака за 12 месяцев.

Не прошло и месяца 2019 года, как мы опять не пустили DDoS-атаку в сеть клиента.

Паттерн нелегитимного трафика атаки из фрагментов CLDAP-датаграммы Qrator Labs

LDAP (Lightweight Directory Access Protocol — «облегчённый протокол доступа к каталогам») — протокол прикладного уровня для доступа к службе каталогов X.500, разработанный IETF как облегчённый вариант разработанного ITU-T протокола DAP.

LDAP — относительно простой протокол, использующий TCP/IP и позволяющий производить операции аутентификации (bind), поиска (search) и сравнения (compare), а также операции добавления, изменения или удаления записей.

Обычно LDAP-сервер принимает входящие соединения на порт 389 по протоколам TCP или UDP. Для LDAP-сеансов, инкапсулированных в SSL, обычно используется порт 636.

В четверг, 24 января, мы наблюдали атаку 212,5 Gbps (гигабит в секунду) / ~10 Mpps (миллионов пакетов в секунду) в пике, комбинировавшую векторы старого доброго SYN-флуда и достаточно редкой LDAP-амплификации с фрагментами.

Полоса атаки, гигабиты в секунду Qrator Labs
Интенсивность атаки, миллионы пакетов в секунду Qrator Labs

Подход атакующих менялся волнами: вначале было две попытки на основе LDAP-амплификации, когда злоумышленнику стало ясно, что желаемый эффект не достигается, был опробован SYN-флуд. Весь трафик атаки был пойман нашей сетью фильтрации, в основном в Западной Европе и США.

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

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

Это существенный фактор, который следует учитывать при планировании средств защиты: DDoS-атаки, как правило, не проявляют себя в полной мере, пока работает постоянная фильтрация. Нередко можно встретить подход: если атаки происходят редко и длятся считанные минуты, не проще ли переждать их или (в крайнем случае) переключиться под защиту только на время инцидента?

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

Другой важный момент. Читающий эти строки неоднократно мог ранее видеть в СМИ фразы наподобие «кибератаки производились с IP-адресов, расположенных на территории США, Канады, Саудовской Аравии и Украины».

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

Однако в случае атак типа Amplification или SYN flood это категорически неверно, потому что для первых используются уязвимые серверы, неподконтрольные злоумышленнику в целом, а вторые почти всегда организуются с подделыванием IP-адреса отправителя.

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

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

В то же время, кстати, удалённая фильтрация пакетов, идущих с LDAP-порта 389, каким-то из существующих механизмов (BGP FlowSpec, selective blackholing и других) могла бы быть действенной против LDAP-компонента. Однако SYN-флуд — при отсутствии подключения к распределённой сети фильтрации трафика — всё равно пришлось бы полностью обрабатывать на своей сети и рассчитывать мощность «последней мили» с учётом такой угрозы.

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

Предыдущая атака типа LDAP amplification длилась менее трёх минут на полосе около 120 Gbps. В следующий раз злоумышленники могут найти столько уязвимых ресурсов, что хватит на очередной рекорд.

Особенно учитывая, насколько дёшево сейчас организовать подобные атаки.

(function () { let cdnUrl = `https://specialsf378ef5-a.akamaihd.net/SelectelBranding/images/` let previousArticleNumber = null let currentArticleNumber = 0 let platform = 'Desktop' let articles = [ { name: 'camera', url: `${cdnUrl}CameraCat`, text: 'умную камеру для\u00A0наблюдения за\u00A0котиками', link: 'https://vc.ru/selectel/306690', num: 3 }, { name: 'chill', url: `${cdnUrl}ChillCat`, text: 'трекер, который подскажет, когда пора отдохнуть', link: 'https://vc.ru/promo/288561-eye-tracker', num: 1 }, { name: 'cloud', url: `${cdnUrl}CloudCat`, text: 'котика: даёшь ему «пять», а\u00A0он делает бэкап в облако', link: 'https://vc.ru/dev/294799-maneki-neko', num: 2 } ] let buttonCycle = document.querySelector('.button--cycle') let buttonChoose = document.querySelector('.button--choose') let buttonMobile = document.querySelector('.button--mobile') let textField = document.querySelector('.selectel-footer-subtitle') let imageAgent = document.querySelector('.image--agent') let banner = document.querySelector('.selectel-footer') buttonCycle.addEventListener('click', cycleClick) buttonChoose.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) buttonMobile.addEventListener('click', () => sendEvent(`Promo ${articles[currentArticleNumber].num} Left`, 'Click')) let media = window.matchMedia("(max-width: 570px)") media.addEventListener('change', matchMedia) function matchMedia() { if (media.matches) { platform = 'Mobile' } else { platform = 'Desktop' } update() } matchMedia() function cycleClick(event) { sendEvent(`Promo ${articles[currentArticleNumber].num} Right`, 'Click') if (event) { event.preventDefault() event.stopPropagation() } window.open('https://vc.ru/tag/selectelDIY', '_blank') //cycle(event) } function cycle(event) { // incrementArticleNumber() textField.innerHTML = generatedText() imageAgent.src = articles[currentArticleNumber].url + platform + '.svg?3' imageAgent.setAttribute("class", "") imageAgent.classList.add('image--agent', articles[currentArticleNumber].name) banner.href = articles[currentArticleNumber].link } function update() { banner.href = articles[currentArticleNumber].link imageAgent.src = articles[currentArticleNumber].url + platform + '.svg' textField.innerHTML = generatedText() } function incrementArticleNumber() { previousArticleNumber = currentArticleNumber if (currentArticleNumber >= articles.length - 1) { currentArticleNumber = 0 } else { currentArticleNumber++ } } const sendEvent = (label, action = 'Click') => { const value = `SelectelDIY — loc: Footer — ${label} — ${action}`; if (window.dataLayer !== undefined) { window.dataLayer.push({ event: 'data_event', data_description: value, }); } }; function generatedText() { let defaultText if (platform === 'Desktop') { defaultText = `Мы тут собрали %text%. Хотите научим?` } else { defaultText = `Мы тут собрали %text%.` } return defaultText.replace('%text%', articles[currentArticleNumber].text) } function getRandom(min, max) { min = Math.ceil(min) max = Math.floor(max) return Math.floor(Math.random() * (max - min + 1)) + min } (function create() { currentArticleNumber = getRandom(0, articles.length - 1) cycle() let page = document.querySelector('.page--entry') if (page) { function insertAfter() { let parents = page.querySelectorAll('[data-id="7"]') let referenceNode = parents[0] referenceNode.parentNode.insertBefore(banner, referenceNode.nextSibling); loaded() } setTimeout(() => insertAfter(), 0) } }()) function loaded() { banner.classList.add('loaded') } loadImages([ `${cdnUrl}CameraCatDesktop.svg`, `${cdnUrl}ChillCatDesktop.svg`, `${cdnUrl}CloudCatDesktop.svg`, `${cdnUrl}CameraCatMobile.svg`, `${cdnUrl}ChillCatMobile.svg`, `${cdnUrl}CloudCatMobile.svg?3`, ]) function loadImages(urls) { return Promise.all(urls.map(function (url) { return new Promise(function (resolve) { var img = document.createElement('img'); img.onload = resolve; img.onerror = resolve; img.src = url; }); })); } }())
0
4 комментария
Популярные
По порядку

Атаки можно купить на каком–то сайте по тарифу?

Действительно, открытие. Всегда думал, что такое совершают какие–то "головастые" новички, либо полноценная ит-криминал группа.

0

Да, атаки уже давным-давно продаются и, на сегодняшний день, 80% основной массы атак - это как раз не слишком умные и сложные генераторы трафика, доступные в дарквебе за смешные деньги. Но когда такой поток прилетает из 100-гигабитного инстанса Амазона, жертвам уже не до смеха.

2

Комментарий удален

Как думаете, атаки как-нибудь повлияют на работу qiwi nfc (https://paysnfc.ru/nfc-qiwi-wallet/)?

0

Не должны.

0
Читать все 4 комментария
Корпоративный проект в Казахстане

Юридическая фирма «Надмитов, Иванов и Партнеры» успешно представляла интересы приобретателя по сделке приобретения 100% долей в уставном капитале общества, крупного производителя битумных материалов в Казахстане, регулируемой по российскому праву.

Илон Маск отправил сотрудникам письмо о риске банкротства SpaceX из-за медленного производства двигателей — CNBC Статьи редакции

Компании нужно ускориться, чтобы запускать ракеты минимум раз в две недели в 2022 году, написал Маск.

Бакальчук резко ответила на жалобы продавцов Wildberries во время сессии форума "Россия зовет"
О прекрасном: графовая аналитика в 3D

Порой Data Scientist’ам приходится иметь дело с графами. Чаще всего это дело не такое уж и сложное, но бывают разногласия, которые начинаются при представлении результатов заказчику данного графа, ведь у каждого своё представлении о прекрасном. Особенно, когда дело касается расположения узлов.

На сайтах с эквайрингом от ПСБ появился Yandex Pay

Покупатели с аккаунтом «Яндекса» смогут оплачивать покупки, не вводя данные карты.

Яндекс такси не проставил статус золото водителю

Не первый год регулярно беру машину в аренду

И вот снова Яндекс веселит

Выполнил за ноябрь план по баллам на золото, а присвоили серебро, при этом поддержка говорит, что все так и должно быть и изменить невозможно

Онлайн-санаторий для сотрудников: как помочь команде справиться с выгоранием

Чтобы поддержать команду, мы собрали эффективные инструменты для борьбы с эмоциональным выгоранием и объединили их в стенах виртуального санатория «Источник». Рассказываем, как пришли к созданию собственной экосистемы для поддержки сотрудников, и почему это действительно важно.

«Яндекс» попросил ЦБ «принять меры» из-за фальшивого сайта «Яндекс-банка» Статьи редакции

Домен зарегистрировало частное лицо на следующий день после объявления о переименовании «Акрополя».

Kornia - Python библиотека для обработки изображений в задачах CV

В этой статье я хотел бы познакомить читателей с библиотекой для ЯП python — Kornia, имеющей богатый функционал в области computer vision. Библиотека написана с использованием pytorch, в ее основе лежат готовые решения, такие как torchvision, PIL, skimage, tf.image, OpenCV. В Kornia реализована возможность выполнения вычислений не только с…

null