З огляду на дві загальнодоступні IP-адреси та знання, які знаходяться в одній мережі / 27, чи можна було б визначити з віддаленого місця (тобто різної країни), чи належать вони одному або двом серверам?
З огляду на дві загальнодоступні IP-адреси та знання, які знаходяться в одній мережі / 27, чи можна було б визначити з віддаленого місця (тобто різної країни), чи належать вони одному або двом серверам?
Відповіді:
Ні, це не так, в загальному випадку.
Деякі доповнення, щоб зробити наших гостей від ТАК щасливими:
Цікаво "чому". Занепокоєння з приводу подвійних машин вдома зазвичай локалізується як головний біль безіменного сисадміна. Деталі призначені для прихованої моделі OSI.
Linux орієнтований відповідь попереду.
Існує кілька способів генерувати відбитки пальців і робити здогадку про освіту.
nmap -o і nmap з гідним скануванням портів. Сервери не завжди пов'язуються з обома NIC. Але багато разів вони роблять.
MAC адреси. Якщо у вас були кошти отримати MAC-адреси, виробники люблять використовувати послідовні адреси для інтегрованого обладнання. Два майже однакових MAC-адреси, швидше за все, однакова материнська плата. Це, звичайно, не стосується карт післяпродажного обслуговування.
Привітання. Telnet, ftp, smtp тощо, пропонують ідентифікаційну інформацію. Перевірте, чи працюють ці служби, запропонуйте достатньо чіткої інформації. Банери, ймовірно, сьогодні рідкісні, але все-таки варто зняти.
Перевірте незалежну поведінку NIC. Наприклад, спробуйте відключити заборонені хости, надавши неправдиву автентифікацію на ssh десяток разів. Якщо затримка хостів спрацьовує, вам слід знайти наступну спробу негайно закрити сокет. Подивіться, чи це відбувається і для іншого ІС.
Чиста сітка A / 27 - це ... що, 29 господарів? Я б сказав, що шанси на виявлення машини з подвійним будинком з високою впевненістю є дуже тонкими, можливо, 5%. Але з огляду на так мало господарів, можливо, ви зможете зробити здогадку про освіту.
Забавне запитання для інтерв'ю. Я можу це фактично вкрасти.
Теоретично в більшості випадків можна надати значущий рівень довіри. Однак є кілька застережень, які значно ускладнюють практику.
Я буду перетинати інші відповіді, і я, мабуть, пропустив речі, але це, принаймні, детальне обґрунтування того, чому ці конкретні шматочки мають значення чи ні.
Спочатку забудьте будь-які думки про MAC-адреси. Якщо у вас немає прямого доступу до мережевого сегменту, ви не зможете їх побачити.
Також не довіряйте скануванню портів. Тривожно порти брандмауера лише для певних IP-адрес, мати програмне забезпечення для прослуховування лише певних IP-адрес або мати систему IDS / IPS, яка застосовує фільтрацію при виявленні сканування. Все це викривить ваше тестування.
Гаразд, тому спосіб, який ви можете сказати, простий: ймовірність того, що два поля будуть абсолютно однаковими, є низькою, якщо вони все одно не пов'язані. Тож те, що ти насправді робиш, намагається довести, що вони різні коробки, а не намагається довести, що вони однакові.
Пінг. Вам потрібно тестувати обидва одночасно і робити багато тестів. Виявляється, хоча в мережевому часі спостерігається тремтіння, це досить якісний псевдовипадковий шум, якщо у вас є достатня кількість зразків за невеликі часові рамки, шум в середньому вистачає, щоб дати точне порівняння.
Кожен шар 2-х стрибків у мережі додає невелику кількість затримок, різні рівні перевантаженості дадуть різні значення затримки. Якщо два IP-адреси демонструють значно різну одночасну затримку, то ви можете припустити, що вони, ймовірно, не є одним і тим же полем.
Застереження 1: Один сервер з двома висхідними посиланнями (не зв’язаний) та налаштований з різним IP на кожній висхідній лінії зв'язку може мати достатньо дисбалансу висхідної лінії зв'язку, щоб скинути це.
Сканування портів. Порти призначення можуть бути в одному з трьох станів: прослуховування, закриття, фільтрування. Як вони зазначаються, насправді не так багато використовують, як зазначено вище, але є ще корисна інформація.
Коробки з портами, відкритими для кількох IP-адрес, швидше за все, мають однакове програмне забезпечення на всіх IP-адресах. Можна запустити, скажімо, nginx на одному IP та apache на іншому, але більшість людей не турбуються. Відбийте пальці служб, що працюють, щоб знайти схожість. Подивіться, яке програмне забезпечення та версію рекламує сама, які опції підтримує, яке ім'я хоста (якщо таке є), чи є якісь химерності в поведінці програмного забезпечення.
Для цього веб-сервіси є найменш корисними, набагато кориснішими є такі речі, як SMTP (важко змішувати та узгоджуватись через підтримку sendmail, витікає багато інформації), SNMP (інформаційна золота шахта), SSH (хто запускає кілька демонів SSH? ) та HTTPS (якщо вам пощастить і вони працюють із тим самим програмним забезпеченням, ви можете перевірити на наявність відмінностей у конфігурації SSL; однаковий, але незвичний конфігурація є хорошим показником). NTP використовувався як хороший тест, але він зараз важко замикається через його важке використання як підсилювач DoS, SNTP насправді недостатньо точний для курильного пістолета таким же чином.
Відбитки пальців 3 рівня. Основний спосіб віддаленого відбитків пальців на ОС - це химерність в його реалізації TCP / IP. Точні деталі є занадто довгими для того, щоб тут вноситись, але, по суті, метадані пакетів просочують багато інформації, як і те, як закритий або відфільтрований порт реагує на з'єднання і як веде себе хост при отриманні неправильно сформованих пакетів. Хоча ці характеристики не є певною річчю для визначення того, що працює, вони, по суті, гарантують, що вони близькі до однакових для кожного IP, пов'язаного з певним стеком TCP / IP. Значно різні системи повинні мати суттєво різні характеристики.
Caveat 2: Два поля з точно однаковою ОС та виправленнями постачальників, ймовірно, будуть виглядати однаково. У Windows дві копії однієї і тієї ж версії Windows, що працює з автоматичними оновленнями, будуть непомітними, якщо вони не мають різних брандмауерів. У Linux відмінності, ймовірно, стосуються в основному саме тієї версії ядра та опцій, які постачаються. Цей тест може дати високу ймовірність того, що два IP-адреси не в одній ОС.
Повторна атака. Коли список портів відкритий для обох IP-адрес, виконайте однакові дії щодо кожного IP-адреси та шукайте розбіжності в поведінці. Такі речі, як тайм-аути, повідомлення про помилки, обмеження кількості спроб тощо. Деякі програми важче або рідше налаштовуються для того, щоб відрізнятись від IP-адреси. Якщо ви знаєте, що один IP приймає пошту для певного домену, подивіться, чи приймає інша IP адреса для цього домену.
Caveat 3: Це більш низька якість даних, ніж службова дактилоскопічна частина тесту 2, оскільки цей матеріал простіше налаштувати по-різному на різних IP-адресах і можливі всі види взаємодії за кадром. Висока ймовірність помилкових результатів дає малу впевненість у цих результатах.
Тому, як я вже сказав, основна теорія полягає в тому, що різні хости, ймовірно, будуть різними конфігураціями, і це просочує інформацію.
Чому це не враховує те, що набагато складніше сказати, чи є той самий сайт, який працює на двох IP-адресах, той самий сервер або два сервери, налаштовані на надмірність. Він також не враховує системних адміністраторів, які працюють із конфігураційним керуванням, щоб зберегти їх системи дуже схожими. Він також не враховує хостів, які мають DNATing декількох служб, що працюють на різних хостах, на одну IP-адресу.
Технологія віртуалізації кидає у творі деякі дивні ключі. Контейнерні системи, такі як Docker, діляться достатньою кількістю стеку, щоб зробити окремі контейнери схожішими, ніж вони могли бути насправді. Віртуальних мікросхем, пов'язаних з фізичною нік, не можна відрізнити від фізично окремого обладнання, але це не так, головним чином, через те, що міст є програмним забезпеченням, і тому пакети повинні проходити через стек IP хостів.
Існує багато способів заплутати людей, які намагаються перевірити на повторюваність. Найкраще, на що можна сподіватися, - це модель, що має низький запас сумнівів.
Моральність цього для людей, які працюють із серверами, полягає в тому, що ви повинні налаштувати свої сервери на те, щоб просочувати якомога менше інформації:
Відкиньте інформацію банера наскільки це можливо. Чим менше напад знає про вашу конфігурацію, тим краще для вас.
Нехай програмне забезпечення приймає тільки з'єднання в IP, на яке воно повинно обслуговуватися, і лише за необхідності. Якщо він не потребує зовнішнього доступу, змусьте його прив'язуватися лише до localhost. Зменшення поверхні атаки завжди добре.
Якщо вам абсолютно потрібно щось слухати, і ви хочете уникнути кореляції між двома IP-адресами, спробуйте звести незвичні варіанти до мінімуму. Ви хочете, щоб він змішався.
Запропонуйте брандмауер із політикою скидання за замовчуванням. Я думаю, що в налаштуванні IDS може бути цінність, яка реагує на зловмисників випадковими відповідями, шум ускладнить зловмисникові довіритися їх результатам, але це призведе до того, що ви виділяєтесь.
Модулі випадкової затримки не потрібні для запобігання тимчасових атак. Насправді ні. Виберіть випадкове число, а потім прокрутіть штамб кучу разів, записуючи результат плюс число, яке ви вибрали на початку. У кінцевому підсумку - діапазон із фіксованим зміщенням. Якщо випадкове число замінено, діапазон рухається. Якщо діапазон буде змінено, зміщення залишається таким же, і це лише питання повторення процесу вибірки для отримання нової базової лінії.
Нормалізатори стеків IP є, але останній раз, коли я дивився, це була занедбана частина досліджень безпеки. Можливо, було б приємно інвестувати ринок для постачальника безпеки.