Учитывая два общедоступных IP-адреса и сведения, которые оба находятся в одной сети / 27, можно ли определить из удаленного места (то есть из другой страны), принадлежат ли они одному или двум серверам?
Нет, в общем случае это не так.
Некоторые дополнения, чтобы порадовать наших гостей из SO:
Любопытно, «почему». Беспокойство о машинах с двойным подключением обычно локализуется как головная боль какого-то неназванного системного администратора. Детали должны быть скрыты моделью OSI.
Ориентированный на Linux ответ впереди.
Есть несколько способов получить отпечатки пальцев и сделать обучающее предположение.
nmap -o и nmap с приличным сканированием портов. Серверы не всегда привязаны к обоим сетевым адаптерам. Но во многих случаях они это делают.
MAC-адреса. Если у вас есть какие-либо средства для получения MAC-адресов, производители предпочитают использовать последовательные адреса для интегрированного оборудования. Два почти идентичных MAC-адреса, скорее всего, относятся к одной материнской плате. Конечно, это не относится к картам вторичного рынка.
Приветствую. Telnet, ftp, smtp и т.п. предлагают идентифицирующую информацию. Посмотрите, работают ли эти службы, предоставьте достаточно внятной информации. Баннеры сегодня, вероятно, редкость, но все же стоит попробовать.
Проверьте независимое поведение сетевой карты. Например, попробуйте отключить запрещающие хосты, предоставив фиктивную аутентификацию для ssh десятки раз. Если срабатывают запрещающие хосты, сокет немедленно закрывается при следующей попытке. Посмотрите, происходит ли это и с другим IP.
A / 27 net это ... что, 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. Существенно разные системы должны иметь существенно разные характеристики.
Предостережение 2: два компьютера, на которых установлена одна и та же ОС и патчи от производителя, скорее всего, будут выглядеть одинаково. В Windows две копии одной и той же версии Windows с автоматическими обновлениями будут почти неразличимы, если у них не запущены разные брандмауэры. В Linux различия, скорее всего, в основном связаны с тем, какая именно версия ядра и опции поставляются. Этот тест может дать только высокую вероятность того, что два IP-адреса не находятся в одной ОС.
Воспроизвести атаки. Когда список портов открыт на обоих IP-адресах, выполните идентичные действия на каждом IP-адресе и ищите несоответствия в поведении. Такие вещи, как тайм-ауты, сообщения об ошибках, ограничения повторных попыток и т. Д. Некоторое программное обеспечение сложнее или реже настраивается на разные в зависимости от IP. Если вы знаете, что один IP-адрес принимает почту для определенного домена, посмотрите, принимает ли другой IP-адрес также почту для этого домена.
Предостережение 3: это данные более низкого качества, чем часть отпечатка службы в тесте 2, потому что этот материал легче настроить по-разному на разных IP-адресах, и возможны все виды скрытого взаимодействия. Высокая вероятность получения ложных результатов снижает доверие к этим результатам.
Итак, как я уже сказал, основная теория состоит в том, что разные хосты, вероятно, будут иметь разные конфигурации, и это приводит к утечке информации.
При этом не учитывается то, что гораздо сложнее определить, является ли один и тот же сайт, работающий на двух IP-адресах, одним и тем же сервером или двумя серверами, настроенными на резервирование. Он также не учитывает системных администраторов, которые запускают управление конфигурациями, чтобы их системы оставались очень похожими. Он также не учитывает хосты, которые используют DNAT для нескольких служб, работающих на разных хостах, на один IP-адрес.
Технология виртуализации бросает в работу некоторые странные вещи. Контейнерные системы, такие как Docker, используют достаточно общего стека, чтобы отдельные контейнеры выглядели более похожими, чем они могли бы быть на самом деле. Виртуальные сетевые адаптеры, подключенные к физическому узлу, должно быть невозможно отличить от физически отдельного оборудования, но это не так, в основном из-за того, что мост является программным и, следовательно, пакеты должны проходить через стек IP хоста.
Есть много способов запутать людей, пытающихся проверить повторяемость. Лучшее, на что вы можете надеяться, - это модель, в которой нет никаких сомнений.
Мораль этого для людей, управляющих серверами, заключается в том, что вы должны настроить свои серверы на утечку как можно меньше информации:
По возможности убирайте информацию из баннера. Чем меньше атакующий знает о вашей конфигурации, тем лучше для вас.
Программное обеспечение должно принимать соединения только с того IP-адреса, на котором оно должно работать, и только при необходимости. Если он не должен быть доступен извне, сделайте его привязанным только к localhost. Уменьшение поверхности атаки всегда хорошо.
Если вам абсолютно необходимо что-то прослушивать, и вы хотите избежать корреляции между двумя IP-адресами, постарайтесь свести необычные параметры к минимуму. Вы хотите, чтобы он слился.
Установите брандмауэр с политикой сброса по умолчанию. Я думаю, что может быть ценность в настройке IDS, которая реагирует на злоумышленников случайными ответами, шум затруднит злоумышленнику доверие к их результатам, но в результате заставит вас выделиться.
Модули случайной задержки бесполезны для предотвращения временных атак. Нет, правда. Выберите случайное число, затем бросьте кубик несколько раз, запишите результат плюс число, которое вы выбрали в начале. В итоге вы получите диапазон с фиксированным смещением. Если подставляется случайное число, диапазон перемещается. Если диапазон изменяется, смещение остается прежним, и достаточно повторить процесс выборки, чтобы получить новую базовую линию.
Нормализаторы IP-стека действительно существуют, но в прошлый раз, когда я смотрел, им не уделялось должного внимания. Вероятно, это был бы хороший рынок для вендора средств защиты.