Не відкривайте порти у світ - вас поламають (ризики)

Не відкривайте порти у світ - вас поламають (ризики)

Знову і знову, після проведення аудиту, на мої рекомендації сховати порти за white-list'ом зустрічаюся зі стіною нерозуміння. Навіть дуже круті адміни/DevOps'и запитують: "Навіщо?!?"

Пропоную розглянути ризики в порядку зменшення ймовірності настання та шкоди.

  1. Помилка конфігурації
  2. DDoS по IP
  3. Брутфорс
  4. Уразливості сервісів
  5. Вразливість стека ядра
  6. Посилення DDoS атак

Помилка конфігурації

Найбільш типова та небезпечна ситуація. Як це буває. Розробнику треба швидко перевірити гіпотезу, він піднімає тимчасовий сервер з mysql/redis/mongodb/elastic. Пароль, звичайно, складний, він усюди його використовує. Відкриває сервіс у світ — йому зручно зі свого ПК гуємо коннектитися без цих ваших VPN. А синтаксис iptables згадувати ліньки, все одно сервер тимчасовий. Ще кілька днів розробки - вийшло чудово, можна показувати замовнику. Замовнику подобається, переробляти ніколи, запускаємо в ПРОД!

Приклад навмисно перебільшений з метою пройтися всіма граблями:

  1. Нічого немає більш постійного, ніж тимчасове - не люблю цю фразу, але, за суб'єктивними відчуттями, 20-40% таких тимчасових серверів залишаються надовго.
  2. Складний універсальний пароль, який використовується у багатьох сервісах – це зло. Тому що один із сервісів, де використовувався цей пароль, міг бути зламаний. Так чи інакше, бази зламаних сервісів стікаються в одну, яка використовується для [брутфорсу]*.
    Варто додати, що redis, mongodb та elastic після встановлення взагалі доступні без аутентифікації, і часто поповнюють колекцію відкритих баз.
  3. Може здатися, що за пару днів ніхто не насканить ваш порт 3306. Це помилка! Masscan – чудовий сканер, і може сканувати зі швидкістю 10М портів за секунду. А в інтернеті лише 4 мільярди IPv4. Відповідно, всі 3306 порти в інтернеті знаходяться за 7 хвилин. Карл! Сім хвилин!
    «Та кому це треба?» - Заперечіть ви. Ось і я дивуюся, дивлячись у статистику драпнутих пакетів. Звідки за добу 40 тисяч спроб скану з 3 тисяч унікальних IP? Зараз сканять усі кому не ліньки, від мамчиних хакерів до урядів. Перевірити дуже просто — візьміть будь-яку VPS'ку за $3-5 у будь-якого лоукостера, увімкніть логування драпнутих пакетів і загляньте в балку через добу.

Увімкнення логування

У /etc/iptables/rules.v4 додайте до кінця:
-A INPUT -j LOG -log-prefix "[FW - ALL]" -log-level 4

А в /etc/rsyslog.d/10-iptables.conf
:msg,contains,»[FW - » /var/log/iptables.log
& stop

DDoS по IP

Якщо зловмисник знає ваш IP, він може на кілька годин або доби задовольнити ваш сервер. Далеко не всі лоукост-хостинги мають захист від DDoS і ваш сервер просто відключать від мережі. Якщо ви сховали сервер за CDN, не забудьте змінити IP, інакше хакер його нагуглить і буде DDoS'ити ваш сервер в обхід CDN (дуже популярна помилка).

Уразливості сервісів

У всьому популярному ПО рано чи пізно знаходять помилки, навіть у найвідтестованіших і найкритичніших. У середовищі ІБешників є такий напів-жарт — безпеку інфраструктури можна сміливо оцінювати за часом останнього оновлення. Якщо ваша інфраструктура багата портами, що стирчать у світ, а ви її не оновлювали рік, то будь-який безпечник вам не дивлячись скаже, що ви діряві, і швидше за все, вже зламані.
Також варто згадати, що всі відомі вразливості колись були невідомими. Ось уявіть хакера, який знайшов таку вразливість, і просканував весь інтернет за 7 хвилин на її наявність. Ось і нова вірусна епідемія. І матимете рацію, якщо пакети ставляться не з офіційних репозиторіїв ОС. З досвіду, оновлення з офіційного репозиторію дуже рідко ламають прод.

Брутфорс

Як описав вище, є база з півмільярдом паролів, які зручно набирати з клавіатури. Іншими словами, якщо ви не згенерували пароль, а набрали на клавіатурі поряд розташовані символи, будьте впевнені * вас збрутять.

Вразливість стека ядра.

Буває**** і таке, що навіть не важливо який саме сервіс відкриває порт, коли вразливий сам мережевий стек ядра. Тобто абсолютно будь-який tcp/udp-сокет на системі дворічної давності схильний до вразливості DDoS.

Посилення DDoS-атак

Безпосередньо збитків не завдасть, але може забити ваш канал, підняти навантаження на систему, ваш IP потрапить в якийсь black-list*****, а вам прилетить абуза від хостера.

Невже вам потрібні усі ці ризики? Додати ваш домашній і робочий IP в white-list. Навіть якщо він динамічний - залягайте через адмінку хостера, через веб-консоль, і просто додайте ще один.

Я 15 років займаюся побудовою та захистом IT-інфраструктури. Виробив правило, яке всім наполегливо рекомендую. жоден порт не повинен стирчати у світ без white-list'a.

Наприклад, найбільш захищений web-сервер*** це той, у якого відкрито 80 і 443 тільки для CDN/WAF. А сервісні порти (ssh, netdata, bacula, phpmyadmin) повинні бути як мінімум за white-list'ом, а ще краще за VPN. Інакше ви ризикуєте бути скомпрометованим.

У мене все. Тримайте свої порти закритими!

  • (1) UPD1: Тут можна перевірити свій крутий універсальний пароль (не робіть цього не замінивши цей пароль на рандомні у всіх сервісах), чи не засвітився він у злитій базі. А тут можна подивитися скільки сервісів було зламано, де фігурував ваш email, і, відповідно, з'ясувати, чи не скомпрометовано ваш крутий універсальний пароль.
  • (2) На честь Amazon - на LightSail мінімум сканів. Мабуть, якось фільтрують.
  • (3) Ще більш захищений web-сервер це той, що за виділеним firewall'ом, своїм WAF, але йдеться про публічні VPS/Dedicated.
  • (4) Segmentsmak.
  • (5) Firehol.

Тільки зареєстровані користувачі можуть брати участь в опитуванні. Увійдіть, будь ласка.

А у вас стирчать порти назовні?

  • Завжди

  • Іноді

  • Ніколи

  • Не знаю, пох

Проголосували 54 користувачів. Утрималися 6 користувачів.

Джерело: habr.com

Додати коментар або відгук