Memcached как средство для DoS. Как ошибка в конфиге превратила полезную утилиту в хакерское оружие - «Новости»
«Эпический» сериал Netflix по Assassin’s Creed впервые за несколько лет подал признаки жизни - «Новости сети»
«Эпический» сериал Netflix по Assassin’s Creed впервые за несколько лет подал признаки жизни - «Новости сети»
«Хуже моего самого страшного кошмара»: утечка геймплея с тестирования новой The Sims ужаснула фанатов - «Новости сети»
«Хуже моего самого страшного кошмара»: утечка геймплея с тестирования новой The Sims ужаснула фанатов - «Новости сети»
Самые полные издания Borderlands 3 и Diablo III добавят в Game Pass, а лучшая игра 2024 года по версии 3DNews подписку скоро покинет - «Новости сети»
Самые полные издания Borderlands 3 и Diablo III добавят в Game Pass, а лучшая игра 2024 года по версии 3DNews подписку скоро покинет - «Новости сети»
Amazon включилась в борьбу за американский бизнес TikTok - «Новости сети»
Amazon включилась в борьбу за американский бизнес TikTok - «Новости сети»
«Яндекс» представил «Нейроэксперта» — ИИ, который соберёт базу знаний по ссылкам и файлам пользователя - «Новости сети»
«Яндекс» представил «Нейроэксперта» — ИИ, который соберёт базу знаний по ссылкам и файлам пользователя - «Новости сети»
ZA/UM отреагировала на утечку «одиночной кооперативной игры» Locust City во вселенной Disco Elysium - «Новости сети»
ZA/UM отреагировала на утечку «одиночной кооперативной игры» Locust City во вселенной Disco Elysium - «Новости сети»
GTA V вернётся в Game Pass, причём совсем скоро — впервые игра будет доступна в PC Game Pass - «Новости сети»
GTA V вернётся в Game Pass, причём совсем скоро — впервые игра будет доступна в PC Game Pass - «Новости сети»
Обзор системы резервного копирования и восстановления данных «Кибер Бэкап Малый Бизнес» - «Новости сети»
Обзор системы резервного копирования и восстановления данных «Кибер Бэкап Малый Бизнес» - «Новости сети»
Nintendo создала гибридный эмулятор Switch, но работать он будет только на Switch 2 - «Новости сети»
Nintendo создала гибридный эмулятор Switch, но работать он будет только на Switch 2 - «Новости сети»
Лавкрафтианский хоррор Stygian: Outer Gods готовится к старту открытой «беты» — новый геймплейный трейлер - «Новости сети»
Лавкрафтианский хоррор Stygian: Outer Gods готовится к старту открытой «беты» — новый геймплейный трейлер - «Новости сети»
Новости мира Интернет » Новости » Memcached как средство для DoS. Как ошибка в конфиге превратила полезную утилиту в хакерское оружие - «Новости»

Содержание статьи

  • Пара слов про UDP
  • Реальные опасности
  • Выводы
В конце?февраля этого года GitHub подвергся мощнейшей DoS-атаке с пиковой мощностью 1 Тбайт/с, которая стала возможна из-за особенностей кеширующей базы данных Memcached. Помимо GitHub, ее используют Facebook, LiveJournal и другие большие сайты. В этой статье я расскажу, что делает небольшой скрипт на Python, который привел к таким последствиям.

Сама атака относится к типу так называемых DRDoS (Distributed Reflection Denial of Service) — отраженных DoS, когда сервер атакуется не напрямую запросами от ботов, а ответными пакетами. В случае с Memcached злоумышленник отправляет запрос якобы с IP-адреса жертвы, БД верит этому и ответ уходит уже на?реальный сервер.


Важно, что здесь присутствует так называемое умножение (амплификация) мощности, когда размер атакующего трафика увеличивается в несколько раз. Таким образом, запрос в 15 байт, отправленный «Мемкешу», превращается в ответ размером в несколько сотен килобайт, что дает колоссальный фактор умножения — примерно?в 51 тысячу раз.


Давай разберемся, как это можно провернуть, кто виноват и как такое предотвращать.


Готовимся


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


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


Запускаем сервер-жертву.


docker run -ti --rm --privileged --name=memcvictim --hostname=memcvictim debian

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


apt-get update && apt-get install -y tcpdump build-essential wget libevent-dev

Сам дистрибутив Memcached будем?собирать из исходников, нам понадобится версия 1.5.5.


cd ~/ && wget http://www.memcached.org/files/memcached-1.5.5.tar.gz && tar xzf memcached-1.5.5.tar.gz
cd ~/memcached-1.5.5 && ./configure && make && make install
memcached -u root


Запущенный докер-контейнер, который будет играть роль сервера для атаки

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


docker run -ti --rm --privileged --link=memcvictim --name=memcdosbot1 --hostname=memcdosbot1 debian
docker run -ti --rm --privileged --link=memcvictim --name=memcdosbot2 --hostname=memcdosbot2 debian

Компилируем дистрибутив.


cd ~/ && wget http://www.memcached.org/files/memcached-1.5.5.tar.gz && tar xzf memcached-1.5.5.tar.gz
cd ~/memcached-1.5.5 && ./configure && make && make install
memcached -u root

И последняя в списке — машина атакующего. Ее нужно слинковать с DoS-ботами.


docker run -ti --rm --privileged --link=memcdosbot1 --link=memcdosbot2 --name=attacker --hostname=attacker debian

Здесь нам понадобится Python и библиотеки: Scapy для манипулирования пакетами на низком уровне и memcache — для работы с базой данных.


apt-get update && apt-get install -y nano python wget python-requests python-scapy python-memcache tcpdump

Скачиваем исходный код эксплоита.


cd ~ && wget https://www.exploit-db.com/download/44254.py

В итоге?у нас получилась следующая схема.



Схема тестового окружения для проверки Memcached DoS

Пара слов про UDP


Атака будет выполняться по протоколу UDP, поэтому не мешало бы немного поговорить о его структуре. User Datagram Protocol, или протокол?пользовательских датаграмм, — один из ключевых элементов стека TCP/IP. UDP, в отличие от TCP, использует упрощенную передачу пакетов. В контексте протокола они называются датаграммами и не содержат всевозможных штампов времени, подписей, проверки целостности данных и тому подобных вещей.


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


Все, что касается вида датаграммы, описывается в стандарте RFC 768, который был представлен в августе 1980 года. Согласно этому документу структура пакета UDP выглядит следующим образом.


Memcached как средство для DoS. Как ошибка в конфиге превратила полезную утилиту в хакерское оружие - «Новости»

Структура UDP-пакета

Заголовок датаграммы состоит из четырех полей, каждое имеет размер два байта (16 бит). Выделенные цветом поля необязательны к использованию в протоколе IPv4.


Поле порт отправителя, как следует из названия, отвечает за номер порта отправителя. Если предполагается, что на переданные пакеты нужно отвечать, то значение этого поля определяет, на какой конечный порт будет посылаться ответ. Это первое важное?для эксплуатации поле.


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


Поскольку UDP — это протокол без установления соединения, то, чтобы передавать данные между машинами в сети, он работает над IPv4. Так что, помимо этих заголовков, присутствуют, разумеется, еще и заголовки?от IP.



Обычный пакет UDP в сниффере Wireshark

Как видишь, теперь появились еще заголовки Source и Destination, в которых указаны IP-адреса машин клиента и сервера соответственно.



Источник новостиgoogle.com
Цитирование статьи, картинки - фото скриншот - Rambler News Service.
Иллюстрация к статье - Яндекс. Картинки.
Есть вопросы. Напишите нам.
Общие правила  поведения на сайте.

Содержание статьи Пара слов про UDP Реальные опасности Выводы В конце?февраля этого года GitHub подвергся мощнейшей DoS-атаке с пиковой мощностью 1 Тбайт/с, которая стала возможна из-за особенностей кеширующей базы данных Memcached. Помимо GitHub, ее используют Facebook, LiveJournal и другие большие сайты. В этой статье я расскажу, что делает небольшой скрипт на Python, который привел к таким последствиям. Сама атака относится к типу так называемых DRDoS (Distributed Reflection Denial of Service) — отраженных DoS, когда сервер атакуется не напрямую запросами от ботов, а ответными пакетами. В случае с Memcached злоумышленник отправляет запрос якобы с IP-адреса жертвы, БД верит этому и ответ уходит уже на?реальный сервер. Важно, что здесь присутствует так называемое умножение (амплификация) мощности, когда размер атакующего трафика увеличивается в несколько раз. Таким образом, запрос в 15 байт, отправленный «Мемкешу», превращается в ответ размером в несколько сотен килобайт, что дает колоссальный фактор умножения — примерно?в 51 тысячу раз. Давай разберемся, как это можно провернуть, кто виноват и как такое предотвращать. Готовимся Для демонстрации атаки нам понадобится целых четыре стенда. Для этих целей я буду использовать контейнеры Docker. Первый контейнер будет играть роль сервера-жертвы, два других — боты для проведения DoS, и, наконец, последний?станет изображать компьютер атакующего, откуда мы запустим эксплоит. Все эти контейнеры будут работать на Debian и, за исключением установленных пакетов, могут быть идентичными. Запускаем сервер-жертву. Первое, что сделаем после старта контейнера, — установим все необходимые приложения и зависимости. Помимо непосредственно Memcached, нужно будет установить какой-нибудь сниффер, чтобы наглядно пронаблюдать атаку. Сам дистрибутив Memcached будем?собирать из исходников, нам понадобится версия 1.5.5. Запущенный докер-контейнер, который будет играть роль сервера для атаки Теперь дело за DoS-ботами, на них просто поднимаем ту же самую версию Memcached и линкуем контейнеры с жертвой, чтобы они могли отправлять ей?пакеты по сети. Компилируем дистрибутив. И последняя в списке — машина атакующего. Ее нужно слинковать с DoS-ботами. Здесь нам понадобится Python и библиотеки: Scapy для манипулирования пакетами на низком уровне и memcache — для работы с базой данных. Скачиваем исходный код эксплоита. В итоге?у нас получилась следующая схема. Схема тестового окружения для проверки Memcached DoS Пара слов про UDP Атака будет выполняться по протоколу UDP, поэтому не мешало бы немного поговорить о его структуре. User Datagram Protocol, или протокол?пользовательских датаграмм, — один из ключевых элементов стека TCP/IP. UDP, в отличие от TCP, использует упрощенную передачу пакетов. В контексте протокола они называются датаграммами и не содержат всевозможных штампов времени, подписей, проверки целостности данных и тому подобных вещей. Подразумевается, что UDP должен использоваться только для передачи?не сильно критичных данных, так как допускает, что они могут дублироваться, потеряться или приходить не в установленном порядке. Если нужны какие-то проверки состояний, то вся логика ложится на плечи конечного?приложения. Все, что касается вида датаграммы, описывается в стандарте RFC 768, который был представлен в августе 1980 года. Согласно этому документу структура пакета UDP выглядит следующим образом. Структура UDP-пакета Заголовок датаграммы состоит из четырех полей, каждое имеет размер два байта (16 бит). Выделенные цветом поля необязательны к использованию в протоколе IPv4. Поле порт отправителя, как следует из названия, отвечает за номер порта отправителя. Если предполагается, что на переданные пакеты нужно отвечать, то значение этого поля определяет, на какой конечный порт будет посылаться ответ. Это первое важное?для эксплуатации поле. Порт получателя нужен, чтобы датаграмма ушла на порт, который слушает обрабатывающий ее сервис. Поскольку UDP — это протокол без установления соединения, то, чтобы передавать данные между машинами в сети, он работает над IPv4. Так что, помимо этих заголовков, присутствуют, разумеется, еще и заголовки?от IP. Обычный пакет UDP в сниффере Wireshark Как видишь, теперь появились еще заголовки Source и Destination, в которых указаны IP-адреса машин клиента и сервера соответственно. Источник новости - google.com

запостил(а)
Sheldon
Вернуться назад
0

Смотрите также

А что там на главной? )))



Комментарии )))