IBCOURSES / СПРАВОЧНИК ИБ

Zeek dns.log: запрос, ответ и связь с соединением

К ответу ↓

dns.log связывает DNS-обмен с uid соединения, именем и результатом. Для одного uid может быть несколько запросов; trans_id сопоставляйте с адресами, портами и временем.

Например
Материалов с пояснениями: 94 · Записей реестров: 11 678

Уточнить поиск

События и журналы

Найдено: 84
Инструкция по проверке

Zeek dns.log: запрос, ответ и связь с соединением

dns.log связывает DNS-обмен с uid соединения, именем и результатом. Для одного uid может быть несколько запросов; trans_id сопоставляйте с адресами, портами и временем.

1. Закрепите видимость DNS

Установите сенсор, версию Zeek и точку сети, где виден обмен клиента с resolver. Описание соответствует Zeek 9.0.1. Для обычного dns.log нужен наблюдаемый анализируемый DNS. Отсутствие расшифрованных данных DoH/DoT нельзя выдавать за отсутствие разрешения имён. Сохраните формат JSONL либо TSV и период capture.

2. Найдите конкретный вопрос

В JSON-копии отберите query, затем уточните тип запроса, время и участников. Если известен uid, используйте его вместе с сенсором и временной областью. trans_id не уникален глобально и может повторяться. Для одного соединения возможны разные DNS-транзакции, поэтому один uid не является идентификатором одного вопроса. Сохраняйте исходную строку с флагами и доступным временем ответа.

3. Прочитайте иллюстрацию

Пример содержит A-запрос app.example.invalid, rcode=2 и имя SERVFAIL. Это пространство кодов ответа DNS, а не TYPE 2. rejected=false не означает, что запрос успешно разрешён: это отдельный признак отклонения запроса сервером, тогда как исход уточняет RCODE. Отсутствующие в сокращённом фрагменте answers и TTLs не следует заменять вымышленными адресами или нулевыми значениями.

4. Проверьте состав ответа

Сопоставьте qtype, rcode, answers и TTLs с конкретной транзакцией. Имя, полученный адрес и дальнейшее соединение — разные наблюдения: кеш клиента и повторные ответы могут менять связь. Не объявляйте DNS-запрос доказательством посещения сайта. Для ошибки отделите полученный отрицательный ответ от случая, где сенсор вообще не сопоставил ответ с запросом.

5. Перейдите к сетевому и серверному контексту

Через uid найдите conn.log того же наблюдения и установите resolver, протокол и видимость направлений. Для причины SERVFAIL нужны сведения выбранного resolver и его зависимостей. Если исследуется дальнейшее обращение, отдельно ищите соединение клиента к адресу из ответа с разумным временным окном; одинаковый IP на CDN не устанавливает одно приложение или одного пользователя.

6. Если вопрос или ответ не найден

Проверьте шифрование DNS, capture-фильтр, потери, точку наблюдения, ротацию и формат. Клиент мог получить адрес из локального кеша и не отправить новый вопрос в нужный период. Уточните тип A/AAAA и нормализацию имени при поиске. В итоговой заметке разделите отсутствие запроса, отсутствие сопоставленного ответа и отсутствие последующего соединения: это разные ограничения.

Поля и область применения

Исходное полеСмысл и ограничения
uidСвязь с conn.log в контексте сенсора.
trans_idDNS transaction ID; не глобально уникален.
query / qtype_nameИмя и тип запроса.
rcode / rcode_nameКод ответа и человекочитаемое имя.
answers / TTLsПолученные ответы и время жизни, если доступны.
rejectedПризнак, что DNS-запрос отклонён сервером; отдельно от RCODE и без универсального вердикта безопасности.

Примеры записей

Данные в примерах условные. Состав полей зависит от версии и настроек источника.

Пример фрагмента записи

Фрагмент журнала. Сокращённая схема для объяснения полей.

{
  "ts": 1793773200.5,
  "uid": "CdnsDemo",
  "id.orig_h": "192.0.2.20",
  "id.orig_p": 54000,
  "id.resp_h": "192.0.2.53",
  "id.resp_p": 53,
  "proto": "udp",
  "trans_id": 34011,
  "query": "app.example.invalid",
  "qtype": 1,
  "qtype_name": "A",
  "rcode": 2,
  "rcode_name": "SERVFAIL",
  "rejected": false
}

Команды и способы проверки

Укажите свой узел, путь к журналу и временной интервал. Требуемая среда указана рядом с командой.

jq 1.8 · локальная JSON-копия dns.log

jq 'select(.query == "app.example.invalid") | {ts,uid,trans_id,query,rcode_name,answers}' dns.log

Первоисточники

Отсутствующий answers не равен доказательству NXDOMAIN; нужны rcode и полнота наблюдения.

Связанные материалы

Как пользоваться техническим справочником

Найдите порт, код ошибки, событие или источник журнала. Уточните протокол и систему, затем сверяйте значение, поля, примеры и первоисточники. Назначение порта не определяет фактическую службу, а одна запись не доказывает инцидент.

Материалы по разделам

События и журналы

Два ответа рядом

Сравнение источников

Сравнение показывает различия. События и поля разных систем не считаются эквивалентными.

Выберите службу

В списке — службы, доступные с текущими условиями. Число рядом — количество записей портов, а не программ на вашем узле.

Как искать в справочнике

Введите число, код, фрагмент сообщения или вопрос. Известный идентификатор поможет найти карточку; это не анализ самого инцидента.

  1. Введите номер, код, имя или фрагмент записи. Для портов можно использовать список: 80, 443, 8000–8010.
  2. Уточните поиск фильтрами. Все условия действуют одновременно. Числа в списках показывают, сколько материалов останется при выборе варианта.
  3. Службу выбирайте из каталога: поиск внутри списка помогает найти название, а кнопка «Выбрать» применяет его.
  4. Убирайте отдельные условия кнопкой × рядом с фильтром. «Сбросить фильтры» сохраняет текст поиска и текущий раздел.
  5. В карточке сверьте источник, версию и условия регистрации, затем откройте поля, примеры и первоисточник.

/ — перейти к поиску. Прямые ссылки открывают выбранную карточку в этом же справочнике.

Назначения портов и коды приведены по официальным реестрам. Версии, условия регистрации и ссылки на документацию указаны в карточках.

Избранное и недавние материалы хранятся в этом браузере. Запрос и фильтры сохраняются при возврате к выдаче и обновлении вкладки. Поиск работает локально.

Что есть в справочнике

От вопроса к свидетельствам: кто вошёл, что запустил, к каким данным обратился, что изменил и где искать следы.

Выберите область, чтобы посмотреть доступные источники и перейти к материалам.

Уточнить или исправить ответ

Скопируйте сообщение и отправьте его на mail@ibcourses.ru.