DDoS атака в обхід Qrator

Давайте зареєструємось у такому сервісі та отримаємо від нього листа про реєстрацію в пошту. Відкриємо вихідний лист і побачимо:

Тепер ми можемо сміливо атакувати цю машину. Канал на машині навряд чи буде більше 1GB, але є материнки, де вбудовані мережні карти одночасно з чотирма інтерфейсами. Значить атака буде із запасом – 4GB. Ми не будемо влаштовувати атаку на додаток або атаку на nginx — можна просто залити канал трафіком. При тому, що ми заллємо тільки напрямок, що входить до сервера - не страшно. Запити від користувачів — напрямок, що теж входить. Чи багато це 4 GB для DDoS атаки? Давайте порахуємо. У Москві у багатьох людей вдома хороший інтернет – 40Мб мінімум. 4 GB/40 MB = 100 машин. Це всього лише 100 машин з ботом - такий ботнет можна організувати досить швидко (якщо є відповідна навичка), а для людини, яка постійно займається DDoS - це взагалі не проблема. Сучасні ботнети – це тисячі заражених машин.

Як захиститься?

Просте рішення мати поштову машину поза ДЦ і поза бойовою підмережею, яка працюватиме поштовим релеєм і відрізатиме весь «Received», що в неї є. Зробити це не складно, в тому ж postfix є опція content_filter, де можна вказати проксі SMTP для фільтрації контенту. Будь-якою мовою можна легко і просто написати smtp-proxy, який відріже все зайве в листі. Я готових інструментів не знаю, якщо чесно, але для мене завдання написати smtp-proxy на python чи ruby ​​– завдання на кілька годин.

Вкрасти DNS зону

Захиститься досить просто - всі технічні DNS-и, виносяться в окремий піддомен і захищаються ретельніше. srv1.servers.example.com - як то так.

Непряма атака

Не важко зробити висновок, що сайт без статики - непрацює. Зазвичай сервіси захисту від DDoS беруть гроші за трафік, тому статику з основного домену переносять на CDN. Завалити трафіком CDN — завдання дуже складне, через його розподіл. Але можна побачити, що за статика є ще на сайті. О! З лівого сервісу показуються банери і він не сидить за проксей-захисником – це просто удача. Можна залити канал до банерної системи: не завантажиться js, не станеться DOM Ready – якщо на сайті купа js – користуватися ним майже неможливо.

Це не універсальний спосіб, але він може проїхати там, де сайт без js не працює в принципі. Захист від цього теж максимально тупий - асинхронний js до банерів. Не зміг — ну й добре.

Фінансова атака

Ось ми знайшли на CDN цікавий файл: cdn-1.example.com/static/video/hardporn.flv. Важить він аж 140 МБ. Ми пам'ятаємо, що проксі-захисники беруть гроші за трафік. А звідки CDN візьме цей файл? У найпростішому випадку з www.example.com/static/video/hardporn.flv. Перевіримо та переконаємося, що він віддається. Ну і відмінно. У найпростішому випадку нам потрібний дуже маленький ботнет, який просто буде кілька днів завантажувати цей файл - без особливого навантаження, не привертаючи до себе уваги проксі-захисника. Звичайно, це буде перевищення передплаченого трафіку і фірмі-власнику сайту доведеться дуже сумно.

Можна трохи докрутити таку атаку - знайти XSS і встромити туди html5 video з autoplay і display: none. Зовні нічого не змінюється, але кожен користувач тягне до себе великий трафік. Кожного користувача, на відміну від ботнета, не фільтруєш.

Загалом фінансові атаки — найнебезпечніші для бінзесу. Або бізнес платить за величезний трафік, щоб сайт працював (і тягнув ще більший трафік) або не платять і сервіс лягає.

Захист від такого простого до дурості — повертайте 403зі статики всім, крім CDN-ки.

Атака на мобільний API

Якщо сайт має ще й мобільний додаток - це зараз модно, він означає сучасний сайт. Маючи мобільний додаток, зазвичай сайт ще має і мобільний API. Встановивши додаток і зібравши tcpdump-ом трафік (ну не складно підняти wifi точка-точка на своєму PC), можна знайти api-mobile.example.com. Можливо через бажання економити він теж буде не за проксей-захисником, а прямо дивитися на сервер. Ну ось і спалив потрібний нам IP.

Захист, як ви вже зрозуміли, простий — трафік API повинен йти через проксю-захисника.

Висновок

Усі наведені способи прості. Вони не вимагають глибокого дослідження сайту – просто потикаються до нього, не вимагають навіть отримати на ньому shell. Не всі способи реальні на всіх сайтах, але на більшості сайтів, хоча б один спосіб буде працювати.

Захист від DDoS атак через сервіси-захисники — хороший, він виправдовує себе матеріально та технічно. Залишилося завдання для адмінів сайту – та не спали свій IP!

Хардкорна конфа за С++. Ми запрошуємо лише профі.