Принцип адресації в інтернет і злом на його основі, Інтернет і інші мережі, Security & Hack, статті

Макаров Тихон

Оскільки для того щоб запам’ятовувати IP-адреси комп’ютерів мережі, треба витрачати багато зусиль, були створені домени. Але передавати адреси доменів можна. Отже, потрібно десь зберігати список IP-адрес і їх доменів, щоб легко можна було звернутися до якогось комп’ютера. Якщо на кожному комп’ютері зберігати такий список, то знадобилося б з десяток гігабайт місця. Тоді була створена служба DNS. У нас на комп’ютері зберігається IP-адреса комп’ютера під назвою “.” Коли ми звертаємося якогось комп’ютера, ми відсилаємо на цей “Сервер інтернет” запит з доменом нашого комп’ютера в поле даних. Він отримує наш запит, відсилає наш запит на сервер, містить адреса другого домену, що знаходяться в тому ж домені першого рівня, що і викликана нами. Той зв’язується з цікавлять нас комп’ютером і дає йому адресу наступного комп’ютера ланцюга. Така ланцюг передач нашого запиту буде відбуватися поки він не дійде до нас цікавить комп’ютера. Цей комп’ютер відправить нам відповідь, що отримав наш запит. Після чого наш комп’ютер кешує отримані дані “Домен-його IP “, щоб наступного разу не проводити знову такий ланцюжок запитів. Однак крім DNS ще до сих пір є файл hosts, в який можна зробити таку ж запис. При зверненні до якогось комп’ютера, наш комп’ютер буде шукати запис спочатку в цьому файлі, потім в кеші, а потім буде посилати такий запит.


Отже, тепер, знаючи принцип адресації в інтернет, можна легко придумати кілька способів злому. Перший і найпростіший: треба підмінити на якомусь комп’ютері такий запис. Наприклад: www.mail.ru-178.56.58.19, де 178.56.58.19 – IP адреса зловмисника. Тепер зловмисникові достатньо поставити собі на комп’ютер веб-сервер і створити сайт, схожий на mail.ru. Після чого йому просто залишиться збирати паролі. Однак як це зробити? Якщо зловмисник зламає комп’ютер, йому легко буде додати такий запис. Але для цього треба спочатку зламати! А це не завжди легко. Був придуманий інший спосіб підміни: комп’ютер 1 надсилає запит комп’ютера 2, який передається через комп’ютер 3. Тоді комп’ютер 3 може цей запит не відсилати комп’ютера 2, а комп’ютера 1 передати відповідь від імені комп’ютера 3, що отримав запит комп’ютера 1 на з’єднання і готовий його провести. Після цього комп’ютер 3 зможе обірвати з’єднання, адже комп’ютер 1 вже закешірует домен комп’ютера 2 з IP комп’ютера 3. Отже, небезпечність цього очевидна.


Однак що якщо комп’ютер 3 не перебуває на шляхи передачі пакета? Тоді комп’ютер 3 повинен вгадати дані запиту від комп’ютера 1 до комп’ютера 3, а так же час, коли стався цей запит. Вгадати це все неможливо. Є одне рішення: потрібно відправити відповідь від комп’ютера 3 на комп’ютер 1 на запит комп’ютера 1 комп’ютера 2, який комп’ютер 1 на Насправді не відправляв. Тоді комп’ютер 1 знову ж закешірует фальсифіковані дані. Проте є одна невелика проблема: якщо комп’ютер один запам’ятовує запити, які він відправляв і стежить, щоб відповідь приходив тільки від комп’ютера, запит якому він відправляв. Таке рішення називається забороною рекурсивних запитів і виконується в настройках Bind (Призначений для користувача інтерфейс для DNS):

recursion no; / / заборона рекурсивних запитів для всіх адрес  allow-recursion {198.155.12.13} ;/ / дозвіл рекурсивних запитів комп’ютера 198.155.12.13  fetch-glue no; / / при деяких запитах наш комп’ютер сам може почати / / Рекурсивний запит, що забороняє наявність даного параметра  use-id-pool yes / / параметри типу ID-DNS вибираються випадковим чином, / / Що підвищує безпеку (щодо вгадування / / Переданих параметрів)

І тут була знайдена щілину. DNS-перетворення: необхідно змусити нас цікавить сервер відправити запит на піддомен ns (ns.example.ru). Інтернет-сервіси, отримуючи запит на з’єднання, проводять таке перетворення, тобто запитують доменне ім’я для IP-адреси відправника, а потім запитують IP-адресу для отриманого доменного імені. Саме другий запит і створює пролом. Третя комп’ютер повинен всього лише відправити запит від імені комп’ютера 2 (до цього його IP адресою) на який-небудь сервер комп’ютера 1, що виробляє таке перетворення. Знайти таку службу не так вже й складно, зазвичай достатньо всього лише прочитати її відповідь при з’єднанні. Однак це ще не все. Після цього комп’ютер-жертва відішле відповідь за тією адресою, що був зазначений (комп’ютера 2), а ми повинні відіслати йому відповідь. Треба дізнатися параметри, які передасть комп’ютер-жертва в своєму запиті. Це досить складно. Для цього попередньо треба спробувати зв’язатися з комп’ютером-жертвою, досліджувати його поведінка, дізнатися з якого порту він відправляє відповіді і багато ін

От тільки якщо порт генерується випадковим чином, у зловмисника немає жодних шансів.

Однак це все я говорив для випадку, коли зловмисник не може прослухати запити, які виходять з комп’ютера-жертви. Якщо ж він може простежити, захиститися можна тільки за допомогою, наприклад, DNSSEC, однією з функцій яких є криптування переданих даних.

Тільки пам’ятайте, що навряд чи знайдеться хоч 0,01% користувачів Рунета, що користуються нею. Якщо Ви не хочете бути зламаним зловмисником, треба входити в число цих користувачів.

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*