
Привет, Хабр! На связи команда uFactor, я — Глеб Дубодел, аналитик SOC L1 UserGate. Сегодня расскажу о значимости временных параметров в контексте ИБ и об угрозах безопасности, с которыми можно столкнуться, если не сверять часы.
Время — величина, определяющая длительность протекания процессов, оно позволяет нам мыслить себя в направлениях «было», «есть», «будет». Для технических устройств и инструментов эти координаты важны не меньше чем для человека.
По мере развития компьютерных сетей возникла проблема несогласованности времени на хостах: разница во времени искусственно увеличивала время доставки сетевых пакетов, из-за чего они считались уже недействительными при получении. Для решения этой проблемы был создан протокол NTP (Network Time Protocol). Он позволил согласовать время в сети относительно UTC, с формированием иерархии NTP-серверов.
Со временем компьютерные сети расширялись, соединялись и постепенно стали общедоступными. Изначально для работы использовались открытые протоколы, без применения методик скрытия или защиты передачи данных — но, когда интернет стал частью повседневной жизни общества, этого стало недостаточно. Количество пользователей начало стремительно расти, появилась необходимость решения ряда вопросов по защите передаваемой информации:
Точно ли никто кроме получателя не сможет получить передаваемую информацию?
Точно ли итоговый получатель является изначально запланированным получателем?
Для ответа на эти вопросы было принято решение совершенствовать криптографические методы в компьютерных технологиях, что, в свою очередь, привело к развитию двух направлений:
Криптография для передачи. Для безопасной передачи данных было введено шифрование данных. Чтобы обеспечить однозначное шифрование/дешифрование данных в качестве общего секрета было решено использовать время, поскольку оно уже было синхронизировано через протокол NTP.
Сертификаты для подтверждения идентичности. Для подтверждения конечных хостов была сформирована концепция PKI (public key infrastructure), основанная на использовании сертификатов безопасности для подтверждения идентичности. Сертификат безопасности выступает гарантом того, что владелец является тем, за кого себя выдает. Сертификаты безопасности имеют срок применения, а также используют в своей работе время UTC для шифрования.
Таким образом, временной параметр укоренился в компьютерных технологиях, став их неотъемлемой частью: когда используется верное и согласованное время, все хорошо и все системы работают штатно. Рассмотрим, к чему может привести неверное сетевое время, появившееся в результате ошибки или целенаправленного влияния.
Можно выделить следующие основные группы последствий:
сетевые сбои;
сбои отдельных хостов;
сбои отдельных приложений.
Сбои в работе сети
Не синхронизированное в сети время может привести к следующим ошибкам взаимодействия:
Некорректная работа контроллеров домена, состоящего из множества компьютеров. Контроллеры домена используют временной параметр во множестве сетевых протоколов, и несогласованность домена во времени может парализовать весь домен. Первые ошибки возникнут на уровне протоколов аутентификации, работа которых связана с использованием временных меток. Неправильная аутентификация приведет к прекращению работы инфраструктурных служб, что повлечет за собой отказ доступности некоторых функций домена.
Изоляция инфраструктуры. Чаще всего контроллер домена выступает в качестве локального NTP-сервера инфраструктуры. Если NTP-сервер настроен неверно, он также будет реплицировать неверное время на другие устройства сети, что сделает невозможным доступ во внешнюю сеть. Для обеспечения безопасности в NTP-серверах применяют актуальные версии протоколов, которые используют временные метки.
Неправильная работа протоколов аутентификации. Протоколы аутентификации используют временные метки для повышения вероятности корректного и однозначного идентифицирования пользователя в сети. Если на конечном хосте используется неверное время, при попытках аутентификации пользователя его сессия будет считаться уже истекшей или недействительной (invalid). В качестве примера протокола аутентификации можно привести Kerberos, формирование запросов которого привязано ко времени.
Использование неактуальных данных аутентификации. В доменных именах, отключенных от сети домена, последние данные, с которыми был совершен успешный вход в домен, некоторое время считаются верными и хранятся в качестве кэша. Смена времени позволит вернуть актуальность уже истекшим данным аутентификации — а этим может воспользоваться злоумышленник.
Недоступность сетевых ресурсов. Невозможность использования безопасных сетевых протоколов приводит либо к выбору менее защищенных протоколов, либо к невозможности установки соединения.
Истекшие сертификаты. Как было описано выше, для передачи данных в сети было внедрено шифрование, ориентирующееся на время UTC. Если хост в сети имеет время, отличное от локального, его сертификаты будут считаться некорректными, что приведет к нарушению работы сетевых протоколов.
Сбои в работе отдельных хостов
Рассмотрев общие инфраструктурные ошибки, можно перейти к аномалиям на отдельных хостах. Неправильное время отдельного хоста может сильно ограничить его связь с другими звеньями инфраструктуры либо привести к ряду ошибок:
Ошибки работы приложений. Некоторые приложения активно используют интернет во время работы или запуска для проверки лицензии. Для доступа в интернет такие приложения применяют собственные или стандартизированные безопасные протоколы — неправильное время хоста может привести к невозможности использования безопасных протоколов, что повлияет на работу приложений.
Ошибки в работе планировщика задач. Некоторые задачи на отдельных хостах, такие как проверка доступных обновлений и создание бэкапов, настроены работать через планировщики задач по триггерам или по времени. Разовые ошибки в работе планировщика неопасны, однако их накопление может привести к неприятным последствиям.
Сбои при установке локальных обновлений. Если в инфраструктуре есть свой центр распределения обновлений Windows, а на конечном хосте установлено неправильное временя, такой хост не сможет получать локальные обновления системы — что сделает его уязвимым.
Сбои в работе приложений
Последний уровень, где возможны ошибки, возникшие из-за неправильного времени, — уровень приложений. Неправильное время конечного хоста может привести к следующим ошибкам:
Использование неактуальных протоколов. При инициализации сетевого соединения на уровне приложений определяется, какие сетевые проколы будут задействованы. Выбирается наиболее защищенный протокол, поддерживаемый всеми членами соединения. Все современные протоколы содержат временные метки, из-за чего в случае неправильного времени на конечном хосте выбор будет осуществлен в пользу менее защищенных. В качестве примера можно привести ситуацию, когда нет возможности установить соединение через протокол FTPS (FTP over SSTL/TLS), в таком случае для передачи будет использоваться протокол FTP, не шифрующий данные и передающий их в открытом виде.
Ошибки синхронизации данных. Подобные ошибки могут возникнуть по нескольким причинам: хост не может связаться с сервером синхронизации данных или хост не может валидировать актуальность данных. В первом случае ошибка возникает из-за невозможности установки соединения по безопасным сетевым протоколам. Во втором случае из-за смены времени конечный хост не может подтвердить актуальность данных на сервере синхронизации, считая их либо устаревшими, либо более актуальными, что может привести к потере данных.
Ошибки работы лицензии программного обеспечения. При работе с коммерческими продуктами лицензия подтверждается за счет нескольких параметров: текущая дата, время действия лицензии, подтверждение со стороны сервера лицензирования. Неактуальность одного из параметров может привести к прекращению работы лицензионного ПО.
Инциденты информационной безопасности
Разобравшись с влиянием неверного времени на инфраструктуру, можно перейти к анализу влияния на инциденты информационной безопасности. Неверное время конечного хоста приведет к ряду взаимосвязанных проблем:
Отправка журналов событий в «прошлое» или «будущее». SIEM-системы получают журналы событий систем с помощью агентов-сборщиков. Агенты собирают данные с конечных хостов, проводя первичное обогащение событий (добавление временных меток и другой метаинформации) с последующим отправлением данных на коллектор событий. Коллектор событий собирает данные со множества устройств без их анализа, его главная задача — передать данные на обработку в SIEM-систему. Иногда коллектор производит обогащение данных (добавление служебных меток). Такой алгоритм событий приводит к возможности отправки событий в прошлое или будущее.
Обход правил безопасности. SIEM-системы анализируют трафик, поступающий с коллектора в реальном времени, с помощью правил корреляции (событие A и последующее событие B = срабатывают правила безопасности). При этом правила безопасности работают с определенным временным интервалом. Например: правило срабатывает один раз в 10 минут с анализом событий за прошедшие 10 минут. Однако из-за некорректных временных меток события не попадают во временные рамки правил безопасности SIEM или нарушается временная корреляция между взаимосвязанными событиями — что приводит к обходу правил безопасности SIEM и снижает эффективность системы.
Осложненный сбор дельты событий. Поскольку журналы событий были отправлены по неправильной временной метке, а также на каждом этапе перемещения журналов добавляются своя метаинформация и свои временные метки, возникает проблема корреляции созависимых событий, а именно — дельта событий распределяется по всем временным меткам, что в разы усложняет составление таймлайна инцидента безопасности.
Повторное использование сетевых пакетов. Если ИТ-инфраструктура не подразумевает средств одноразового и однозначного использования сетевых пакетов, злоумышленник может использовать сетевые пакеты повторно, проводя атаки типа replay. Такие атаки направлены на перехват сетевого трафика: проанализировав трафик, злоумышленник определяет пакет успешной аутентификации, актуализирует в нем временные метки и повторно отправляет его, тем самым успешно аутентифицируясь.
Proof of concept
Для практического доказательства возможности обхода средств мониторинга и антифорензики с помощью временного параметра был создан стенд с SIEM-системой с подключенным к ней хостом под управлением Windows.
Был смоделирован кейс: на целевом хосте было изменено время (с 13 марта, 2:00 на 11 марта, 2:00), что отразилось на графике событий.

Рассмотрим временную метку до и после смены времени.



Смена времени приводит к артефактам на хосте, что может быть использовано злоумышленником для антифорензики.

В этом тесте предполагаемый злоумышленник отправил хост в «будущее», что видно из расследования при форензическом анализе снятого образа хоста-жертвы. Использование такой техники злоумышленником усложнит расследование.
В данном кейсе получилось смоделировать изменение времени конечного хоста, что повлияло на корректность работы SIEM-системы: данные с хоста пришли в «прошлое» — это позволило событиям хоста обойти правила корреляции, не скрывая сам факт активности. Данная особенность средств защиты может быть использована злоумышленником.
Рассмотрев методы реализации угрозы, крайне важно также рассмотреть методы противостояния. В данном случае наиболее простым и надежным методом защиты будет обогащение данных, а именно — добавление дополнительных временных меток.
В рассматриваемом кейсе было решено добавить данные времени на каждом этапе прохождения события. Мы можем видеть сразу несколько временных меток:
В рассматриваемом кейсе было решено добавить данные времени на каждом этапе прохождения события. Мы можем видеть сразу несколько временных меток: event.raw.timestamp (время события с хоста источника), event.parser.timestamp (время получения события коннектором), @timestamp (время получения события ядром SIEM-системы). В данном случае @timestamp является основной временной меткой, что делает изменение времени хоста бесполезным для обхода правил корреляции SIEM-системы.

Заключение
Определив, какую роль играет временной параметр в инфраструктуре, к каким ошибкам может привести сбой времени и как неверное время может повлиять на инциденты информационной безопасности, необходимо определить основные методы защиты от подобных ошибок:
Использование сервисов синхронизации времени с шифрованием. Использование NTP-серверов внутри инфраструктуры — явная необходимость. При этом следует использовать защищенные версии протокола NTP — NTPv4, NTS.
Создание своего NTP-сервера. Исторически сложилось так, что число публичных NTP-серверов в пространстве интернет-сегмента .ru относительно небольшое, и это может влиять на их надежность. Поэтому необходимо использование своего NTP-сервера в инфраструктуре, что можно обеспечить с помощью контроллера домена.
Ограничение количества обращений к источникам времени. NTP-протокол уязвим для атак типа DoS и Poisoning, поэтому при настройке крайне важно ограничить как количество пользователей, которые могут обращаться к NTP-серверу, так и количество возможных обращений.
Использование этих методов позволит избежать ошибок и атак, связанных с временными параметрами. Чтобы быть в курсе других актуальных угроз и методов защиты — подписывайтесь на телеграм-канал uFactor.