Принцип адресації в інтернет і злом на його основі

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

Оскільки для того, щоб запам'ятовувати 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>

*

*