Назад | Перейти на главную страницу

Анализ данных для поддельного DNS

Удаленный сервер имен, на который у меня нет прав, периодически отвечает поддельными адресами. Я хочу отслеживать этот сервер и собирать данные о поддельных ответах для анализа. Как мне это сделать?

По сути, я хочу запросить известный домен, сравнить его с известным IP-адресом и зарегистрировать данные. Я намерен визуализировать количество времени, в течение которого сервер отвечает поддельным или легитимным, а также шаблоны в этом поведении.

Я надеюсь, что для этого есть инструменты, которые легко доступны, но при необходимости я мог бы использовать python / sql. Пожалуйста, порекомендуйте.

Пример:

An А запрос записи для google.com вернется 195.22.26.248.

Очевидно, это не адрес Google

Я предполагаю, что вы понимаете, о чем говорите, когда говорите, что это один DNS-сервер. Я настроен скептически, потому что вы не поделились своей методологией определения этого, но в моем ответе я буду считать само собой разумеющимся, что эта информация точна.

Обычно вы выполняете запрос, смотрите на наблюдаемый TTL и запрашиваете снова, когда истекает TTL. Вы должны продолжать это до тех пор, пока не будет достигнут заданный вами период выборки, и сравните хорошие ответы с плохими.

К сожалению, здесь ключевое слово «нормально». Вы ищете детерминированный ответ, но его трудно найти, если сервер скомпрометирован, и в большинстве случаев вам придется выбросить логику из окна, пока вы не узнаете специфику методологии эксплойта.

  • Учитывая ваш другой вопрос о безопасность.SE, более вероятно, что само серверное программное обеспечение было скомпрометировано, чем в результате бомбардировки поддельные ответы.
  • Взрыв поддельных пакетов всегда будет циклически завершаться по TTL, но другие методы могут непредсказуемо изменить ответ до истечения срока TTL. В последнем случае трудно сказать, связано ли изменение с обновлением или нет, если вы не уверены на 100%, что имеете дело с одним сервером, а не с фермой за VIP. В последнем случае TTL будет варьироваться довольно стабильно.

Короче говоря, вы много работаете над проблемой, которой не владеете, и, поскольку она вам не принадлежит, у вас очень мало способов убедиться, что собранная вами информация дает полезное заключение. (помимо академического упражнения в соотношении сырых хороших и плохих ответов с течением времени, что превратит эти вопросы и ответы в один из тех вопросов типа "дай мне код", которые мы не одобряем на этом сайте SE)

Ты можешь использовать dig www.example.com в bash в большинстве систем Linux для выполнения поиска DNS вывод может быть настроен в зависимости от количества деталей, которые вы хотите. Вы можете сохранить заведомо исправный результат в файл, а затем сравнить результаты, используя diff. Регистрация может быть выполнена путем извлечения желаемой информации из dig output, то вы можете сохранить его в любом желаемом формате, используя файл журнала или базу данных. С помощью date +%s вы можете получить временную метку unix для добавления в журнал, что сделает выбор временного диапазона в журналах вопросом целочисленного сравнения для одного значения.