ЖУРНАЛ «СТА» 4/2018
DPI позволяет брандмауэру углублять- ся в сообщение, чтобы точно понимать, для чего используется протокол. Далее мы рассмотрим, как на основе технологии DPI можно анализировать структуру сообщений EtherNet/IP-па- кетов и как это позволяет обеспечить безопасность сети. Анализ протокола EtherNet/IP для использования DPI Основная задача устройства, которое осуществляет DPI-анализ протокола, – это понять базис структуры протокола и правильно выявить ложные данные. Понимание структуры протокола важ- но для оценки характеристик каждого поля в сообщении и взаимодействия этих полей. Например, значение поля “Length” в сообщении EtherNet/IP в первом приближении не несёт никакой критичной информации. Но это поле задействовано при выполнении часто используемого сервиса Get Attribute All, который позволяет получить служеб- ную информацию об объекте, напри- мер, текущее значение аналоговых вы- ходных сигналов. Но что именно поле “Length” означает? Это минимум или максимум? Сигнализирует ли выход за пределы его значения о возможной ата- ке? Будет ли изменение этого парамет- ра влиять на CIP-объекты или сервисы? Как это поле связано с другими поля- ми? Это всё вопросы для проверки DPI. Получается, что если в процессе DPI- анализа можно определить конкретный байт или поле, из-за которого возникла проблема, то есть большая вероятность, что удастся блокировать ошибочные значения полей данных, при этом со- хранить легитимное управление. Одна- ко для этого необходимо понимать структуру протокола, а также проводить подробный его анализ. Структура заголовка EtherNet/IP Структура заголовка EtherNet/IP имеет очень важное значение, так как содержит данные для дальнейшей ин- капсуляции сообщений протокола CIP. Заголовок EtherNet/IP имеет фиксиро- ванную длину в 24 байта. Максималь- ный размер пакета, включая заголовок, составляет 65535 байт и представляет собой прямой порядок байтов (табл. 1). Поле команды (Command) описывает действия, которые могут выполняться на этом уровне. Создание сеанса про- исходит по команде RegisterSession и может быть отменено с помощью ко- манды UnregisterSession. Существуют также различные команды запросов, та- кие как ListInterfaces и ListIdentity. Эти команды предоставляют клиентскому программному обеспечению базовую информацию об устройстве, с которым он пытается связаться. Наиболее важ- ными командами являются SendRRData и SendUnitData, которые включают значимые параметры для анализа CIP- данных. Сообщения CIP хранятся внут- ри EtherNet/IP-пакетов с командами SendRRData и SendUnitData. Поле Command является обязательным для DPI-анализа, оно позволяет ограничить круг коммуникаций и возможных путей связи. Поле длины (Length) также очень важно, оно определяет общую ожидае- мую длину пакета минус размер заго- ловка EtherNet/IP (24 байта по умолча- нию). Таким образом, если фактиче- ский размер полезных данных пакета меньше или превышает указанную дли- ну, возникает проблема с пакетом, и это один из признаков ошибочных данных. Следующее за полем длины поле – дескриптор сессии (Session handle). Оно ОБ ЗОР / П РОМЫШЛ Е ННЫЕ С Е Т И СТА 4/2018 32 www.cta.ru Реклама
RkJQdWJsaXNoZXIy MTQ4NjUy