Що таке відкритий DNS-розв’язувач, і як я можу захистити свій сервер від зловживань хакерами?


15

У мене немає найсильнішого досвіду комп'ютерної безпеки, але вчора один з серверів моєї компанії був закритий нашим хостом.

Це сервер, призначений для відкритого IP-адреси, де я розміщую кілька додатків для веб-сервісів, включаючи веб-сайти та API. Мені сказали, що мій сервер "працює відкритим dns-роздільником, який використовується для передачі атаки відмови в службі зовнішньому об'єкту".

Що це означає? Як працює ця атака? І як я можу захистити свою систему від подібних зловживань?

У моєму конкретному випадку відповідний сервер знаходиться на Windows Server 2012, і він обслуговує DNS для домену Active Directory.


Якщо ви дасте нам знати, який DNS-сервер ви використовуєте, хтось, ймовірно, може вам точно сказати, яку конфігурацію вам потрібно встановити та яким способом. Без цієї інформації я просто здогадався про BIND та всі приватні простори IP-адрес, оскільки BIND - це найпоширеніший DNS-сервер, а приватні адресні простори безпечні. Можливо, ви, можливо, захочете дозволити рекурсивні запити з вашого зовнішнього блоку адрес, якщо це можливо.
HopelessN00b

@ HopelessN00b Дякую, ваша відповідь була дуже корисною. Я не використовую BIND (мій хост також припускав, що я є, і надав мені кілька команд для запуску); У мене DNS-сервер створений як роль у IIS. Цікаво, що я не вручну налаштовував DNS-сервер і не впевнений, що я цілком розумію, навіщо мені це потрібно. Що порушується, якщо він стає інвалідом?
JSideris

Так, не відключайте DNS в середовищі Windows. Ймовірно, ви зламаєте Active Directory. Повідомте мене, яку версію Windows Server, і я можу (певно) редагувати на деяких знімках екрана, щоб показати, як захистити вікно DNS для Windows.
HopelessN00b

Добре. Я фактично просто створив активний каталог у ці вихідні. Це стандарт Windows Server 2012.
JSideris

Відповіді:


28

"Відкритий DNS-розв'язувач" - це сервер DNS, який готовий вирішувати рекурсивні пошуки DNS для будь-кого в Інтернеті. Це дуже схоже на відкрите реле SMTP, оскільки проста відсутність автентифікації дозволяє зловмисникам третьої сторони розповсюджувати свої корисні навантаження за допомогою незахищеного обладнання. При відкритих реле SMTP проблема полягає в тому, що вони пересилають спам. З відкритими DNS-рішеннями проблема полягає в тому, що вони дозволяють атаку відмови в обслуговуванні, відому як атака посилення DNS.

Спосіб цієї атаки досить простий - оскільки ваш сервер буде вирішувати рекурсивні запити DNS від будь-кого, зловмисник може змусити його брати участь у DDoS, надіславши на ваш сервер рекурсивний запит DNS, який поверне великий обсяг даних, набагато більший, ніж оригінальний пакет запитів DNS. Підробляючи (підробляючи) свою IP-адресу, вони спрямовуватимуть цей додатковий трафік на комп’ютери жертви замість власних, і, звичайно, вони будуть робити якомога швидше запити на ваш сервер та будь-який інший відкритий DNS рішення, яке вони можуть знайти. Таким чином, хтось із відносно невеликою трубою може "посилити" атаку відмови в обслуговуванні, використовуючи всю пропускну здатність на їх трубі, щоб направити набагато більший обсяг трафіку на своїх жертв.

ArsTechnica зробив гідну статтю про недавню атаку DDoS Amplification DDoS проти Spamhaus , і варто швидко прочитати, щоб отримати основи (та гарну візуальність розширення).

Найпростіший спосіб захистити вашу систему від зловживань, як це обмежити адреси, на яких ваш сервер здійснюватиме рекурсивні пошуки для ваших локальних підмереж. (Особливості яких, звичайно, залежать від того, який DNS-сервер ви використовуєте, звичайно).


Наприклад, якщо я використовував BIND 9 і хотів просто запобігти рекурсії DNS з зовнішніх адрес, я використовував би такий код у своїй конфігурації:

options {
    directory "/var/named/master";
    allow-recursion { 127.0.0.1; 10.0.0.0/8; 192.168.0.0/16; 172.16.0.0/12; };

Цей рядок коду повідомляє моєму серверу BIND обробляти лише рекурсивні запити DNS для локальної адреси зворотного циклу (яку, мабуть, я міг / повинен встановити для локального блоку зворотного зв'язку, весь / 8) та 3 приватних просторів IPv4 адрес.


Для Windows Server 2012, який, як ви кажете, використовуєте, у вас є наведені нижче варіанти.

1. Відокремте свій DNS-сервер від IIS-сервера.

  • Принаймні, в ідеальному світі немає жодної причини запускати DNS у тому ж полі, що і IIS.
    • Помістіть DNS у внутрішнє вікно, яке не є НАТУМЕНОМ, щоб зовнішній світ не міг потрапити на нього, і нехай IIS перебуває на зовнішньому вікні, до якого може потрапити решта світу. Ви можете використовувати правила подвійного наведення або брандмауера, щоб вибірково дозволити доступ до вашого DNS-сервера з вашого IIS-сервера.

2. Блокуйте зовнішні запити DNS за допомогою брандмауера, наприклад вбудованого брандмауера Windows.

  • На мій подив, Windows DNS не дозволяє вам обмежувати адреси, на які рекурсивні запити DNS шануються, тому це фактично рекомендований Microsoft.
  • введіть тут опис зображення
    • Виберіть правила DNS (TCP та UDP), перейдіть до Remote IP addressрозділу та додайте підмережі, які використовуються у вашій локальній мережі, а також будь-які відкриті IP адреси серверів, яким потрібен доступ до Active Directory. Як і в прикладі BIND, приватними адресними просторами IPv4 є 127.0.0.0/8 10.0.0.0/8 192.168.0.0/16і 172.16.0.0/12.

3. Вимкнути рекурсію .

  • Я, чесно кажучи, не впевнений, який вплив це матиме на ваше оточення, оскільки ви насправді не заявили, як налаштовані DNS та AD у вашому оточенні, і, відповідно, це останній варіант.
  • введіть тут опис зображення
    1. Відкрийте Диспетчер DNS.
    2. У дереві консолі клацніть правою кнопкою миші відповідний сервер DNS, а потім натисніть кнопку Властивості.
    3. Де?
    4. DNS / застосований DNS-сервер
    5. Перейдіть на вкладку Додатково.
    6. У параметрах сервера встановіть прапорець Відключити рекурсію та натисніть кнопку ОК.
      • Оскільки в нас є багатолісове середовище і використовую умовні експедитори для роботи, я не збираюся перевіряти це поле. Можливо, ви також можете врахувати щось.

Відмінна відповідь!
Fred Fred Magic Wonder Dog

Ідеальне, добре документоване рішення :).
JSideris

2
Тоді як 8.8.8.8 або 1.1.1.1 не дозволяють собі бути відкритими резолюціями?
LinuxBabe
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.