Глобальный диагностический чекер NULL
В рамках строго структурированной иерархии Domain Name System запись NULL выделяется как самый аномальный и слабо определенный тип данных из когда-либо кодифицированных. Описанная в оригинальной спецификации RFC 1035, запись NULL полностью лишена правил форматирования, синтаксических ограничений или внутренней семантики. В отличие от A-записи, ожидающей IP-адрес, или MX-записи, требующей целого числа приоритета и имени хоста, запись NULL существует исключительно как пустой контейнер. Она была спроектирована для хранения произвольных полезных нагрузок (Payload) бинарных данных длиной до 65 535 байт, при этом авторитетный сервер имен не применяет к содержимому никакой проверки.
Экспериментальная песочница
Когда инженеры-основатели Интернета разрабатывали архитектуру DNS, они осознавали, что системе потребуется адаптация к будущим сетевым протоколам, которые не будут аккуратно вписываться в стандартные ограничения A, MX или TXT. Запись NULL была явно зарезервирована в качестве "песочницы" для разработчиков (sandbox) экспериментальных расширений протоколов и академических исследований. Поскольку программное обеспечение BIND не применяет к NULL Payload никаких проверок кодировки или ограничений на символы (кроме размера пакета), сетевые инженеры могли внедрять необработанные неформатированные шестнадцатеричные (hexadecimal) строки, пользовательские криптографические хеши или проприетарные данные бинарной маршрутизации непосредственно в файл зоны для анализа специализированными клиентскими приложениями.
Почему она потерпела неудачу в Production
Несмотря на свою теоретическую гибкость, запись NULL практически отсутствует в современных производственных (production) средах. Основной проблемой была интероперабельность. Поскольку не существовало стандартизированного способа интерпретации произвольных бинарных данных различными программными клиентами, ее можно было использовать только в закрытых экосистемах, где администратор контролировал как DNS-сервер, так и клиентское приложение. Более того, появление TXT-записи — которую намного проще парсить стандартным REST API и веб-приложениям — и развертывание EDNS (Extension Mechanisms for DNS) сделали сырой бинарный Payload записи NULL абсолютно устаревшим для реальных данных приложений.
Скрытые каналы (Covert Channels) и аудиты безопасности
Сегодня запись NULL редко встречается за пределами узкоспециализированных контекстов кибербезопасности. Продвинутые постоянные угрозы (APT) и сложные варианты вредоносного ПО (malware) исторически пытались использовать записи NULL для создания скрытых каналов Command and Control (C2). Кодируя украденные (exfiltrated) данные или получая вредоносные инструкции через произвольные бинарные объекты (blobs), спрятанные в записях NULL, атакующие могут обойти брандмауэры прикладного уровня, поскольку большинство корпоративных сетей слепо разрешают DNS-трафик на порт 53. Выполнение глобального поиска NULL сегодня строго проводится во время глубокого тестирования на проникновение (penetration testing), анализа вредоносного ПО или академического аудита протоколов, чтобы отслеживать, как различные пограничные резолверы (edge resolvers) фильтруют или пропускают нерегулируемые бинарные Payload через магистраль Интернета.