Принципы систем обнаружения вторжений, описанные в работе Дороти Деннинг, используются и по сей день — вот уже 31 год. Не вдаваясь в технические детали слишком глубоко, хочется отметить, что в данной работе затронуты различные модели профилирования аномального поведения информационных систем, включая статистические алгоритмы и цепи Маркова. А сигнатурой называется нормальное поведение взаимодействия объекта и субъекта.
В ходе больше маркетинговой, чем технической эволюции, за 20 лет, прошедших с момента выхода той первой статьи, понятие сигнатур несколько видоизменилось. Наравне с более общим понятием правил обнаружения на основе отклонения от норм, под сигнатурами также стали подразумевать и хэш-суммы файлов, и регулярные выражения, описывающие один или несколько признаков по наличию определенных данных, выявленных аналитически. Например, так появились первые сигнатуры — регулярные выражения для вирусов и вредоносного ПО (которые, к слову, зачастую просто представляли собой маркеры бинарных данных известных компонент, используемых в вирусах), сигнатуры в виде хэш-сумм известных модификаций вирусов и регулярные выражения для поиска в трафике атак (от низкоуровневых сетевых сервисов до атак на веб-приложения).
Появилась целая индустрия по сбору и продаже сигнатур различных видов сетевых атак. Вместе с этим возник и обратный эффект — развитие «по другую сторону баррикад» различных способов обхода сигнатур посредством техник перепаковки, обфускации, полиморфизма и других. Такая «гонка вооружений» привела к тому, что производители средств защиты стали выбирать иные методы, дополняя статические сигнатуры файлов или сетевые запросы поведенческими механизмами.
Общий подход к поведенческому анализу можно описать как применение песочницы, в которой безопасно или относительно безопасно выполняется проверяемый объект. По результатам анализа его поведения принимается решение о блокировке. Песочницы могут быть как полностью изолированными от защищаемых систем (скажем, они могут быть установлены на отдельном сервере, проверяющем все файлы из входящей электронной почты), так и интегрированными в защищаемые системы (например, приложения или операционные системы). Большинство современных прикладных программ, в частности браузеры, также имеют интегрированные песочницы, чтобы предотвратить компрометацию операционной системы в случае эксплуатации в них прикладных уязвимостей.
Наиболее надежным представляется вариант полностью изолированной песочницы, однако он имеет ряд ограничений. В этом случае система защиты должна эмулировать или виртуализировать все варианты защищаемых систем, что невозможно, например, в случае веб-приложений, разнообразие которых не ограничено. Атакующие также нашли способы обхода эмуляций и виртуализаций за счет проверки косвенных признаков, начиная с языковых параметров и имен устройств и заканчивая откликом сред исполнения на различные их активные действия (например, время открытия окон, доступность файлов и прочее). Кроме того, время выполнения кода при эмуляции всегда ограничено, а реальная система может быть скомпрометирована и через несколько дней после начала работы вредоносного кода.
Третьим, принципиально новым методом в развитии средств и систем защиты можно назвать применение машинного обучения, а именно нейронных сетей. Не вдаваясь в технические детали, можно выделить следующие преимущества такого подхода:
- адаптация (путем обучения) к объекту защиты;
- способность обнаруживать вредоносные активности «по аналогии» с наблюдаемыми в прошлом, но не эквивалентные им;
- простота добавления новых примеров вредоносных активностей для обнаружения.
Вместе с этими преимуществами следует сразу отметить и ряд технических проблем, которые не позволяли широко применять нейронные сети до последнего времени. Основными из них являются:
- Длительное время обучения. Чаще всего оно зависит от сложности применяемой модели и объема тренировочного множества.
- Непрозрачность причин принятия решений. При срабатывании такой системы в большинстве случаев невозможно ответить пользователю, почему система ведет себя именно так, а не иначе.
- Неготовность к продуктивной эксплуатации ввиду недоработки технологий.
Однако такие факторы, как бурный рост вычислительных мощностей, продолжающиеся инвестиции в разработку и появление набравшего уже миллионы человек сообщества исследователей машинного обучения, позволили практически полностью решить все проблемы технических ограничений и сделали возможным широкое применение нейронных сетей в последние 5–8 лет. С точки зрения вычислительных ресурсов особо стоит отметить существенный прогресс компаний Intel, NVIDIA, Google и других. Они не только совершили качественный технологический прорыв в области увеличения производительности вычислительных устройств, но и предоставили производителям готовые библиотеки и фреймворки для прикладного программирования с возможностью использования технологий машинного обучения.
Главное преимущество подхода машинного обучения — возможность автоматической нормировки систем защиты с учетом окружения защищаемой системы. Приведу практический пример из области безопасности веб-приложений. Предположим, требуется блокировать атаки на ресурс наподобие stackoverflow/habrahabr, где размещается технический контент. Для такого продукта (защищаемой системы) является нормальным принимать сами описания атак в виде текста, так как люди делятся этой информацией. В случае сигнатурного анализа, для отключения ложного срабатывания требуется вручную отключить сигнатуру, блокирующую отправку статьи об атаках с их примерами. В случае машинного обучения система может адаптироваться под поведение автоматически, без отключения сигнатур конкретного типа атаки. Замечу, что раньше для подобных ситуаций применялся подход «обеззараживания» данных посредством различных кодировок, который не оправдал себя при появлении приложений, использующих программные интерфейсы API.
Вывод
Подводя итог, хочу еще раз отметить, что практически все базовые подходы к организации средств защиты от атак были предложены еще в 1985 г. и с тех пор модифицировались в основном технические аспекты их реаизации. Применение же машинного обучения, в частности нейронных сетей, получило широкое распространение в последнее время из-за развития индустрии в целом: увеличилась производительность вычислительных устройств (вплоть до библиотек и фреймворков) и выросло сообщество экспертов. Важную роль в решении проблемы практического применения машинного обучения сыграло также и развитие облачных технологий, которые позволили перераспределять ресурсы более эффективно, обеспечивая такие высокие производительность и масштабирование, которых нельзя добиться в рамках собственной ограниченной инфраструктуры. В результате, несмотря на локальную установку средств защиты в системе с ограниченными ресурсами, стали возможными высокопроизводительная обработка метрик этой системы в облаке производителя и обучение системы защиты до высокого качества срабатываний в короткое время. И именно такой гибридный подход к архитектуре средств защиты — то есть локальная установка агентов / файерволов / антивирусов / прочих средств, облачный сервис анализа метрик для них и адаптация методов обнаружения атак с помощью машинного обучения — на данный момент наиболее популярен у производителей.