Подход к выявлению признаков скрытного нелегитимного поведения пользователя в информационной системе при проведении атак типа LotL | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 16 ноября, печатный экземпляр отправим 20 ноября.

Опубликовать статью в журнале

Авторы: ,

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №44 (543) ноябрь 2024 г.

Дата публикации: 31.10.2024

Статья просмотрена: 3 раза

Библиографическое описание:

Садаков, Е. О. Подход к выявлению признаков скрытного нелегитимного поведения пользователя в информационной системе при проведении атак типа LotL / Е. О. Садаков, Д. И. Строчков. — Текст : непосредственный // Молодой ученый. — 2024. — № 44 (543). — URL: https://moluch.ru/archive/543/118665/ (дата обращения: 07.11.2024).



Современные атаки сложно обнаружить через сравнение сигнатур, так как они не оставляют следов в виде вредоносных файлов и их поведение похоже на действия системного администратора или пользователя. Как правило, для запуска и закрепления в системе, вредоносное ПО использует возможности легитимных программ и компонентов ОС [1]. Такая атака называется Living off the land, или LotL-атака. Чтобы отследить активность бестелесного вредоносного ПО, современные системы безопасности применяют методы поведенческого анализа, а также дополнительную проверку критических элементов [2]. Существует множество типов этих атак, каждая из которых представляет значительную угрозу как для организаций, так и для отдельных пользователей. Для предотвращения подобных угроз необходимо предпринимать упреждающие меры, направленные на их своевременное обнаружение и нейтрализацию. Рассмотрим основные виды проведения LotL-атаки:

1. Изменение автозагрузчика

— Добавление вредоносных сервисов в список автозагрузки;

— Замены существующих легитимных сервисов на свои версии;

— Создание бэкдора, который будет запускаться при перезапуске системе.

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

2. Подмена модулей аутентификации

— Создать параллельную систему аутентификации;

— Имитировать легитимные аутентификационные механизмы;

— Внедрение бэкдоров в драйверы.

Позволяет злоумышленнику создать параллельную систему аутентификации, которая может игнорировать или обходить существующие меры безопасности. Что приведет к несанкционированному доступу к системе даже при неправильном пароле или другой форме аутентификации.

3. Изменение системных процессов

— Создание скрытых каналов связи;

— Отключение важных системных функций;

— Инкапсуляция вредоносного кода внутри легитимных процессов.

Приведет к возможности повышения привилегий и доступа к конфиденциальной информации.

4. Модификация ядра ОС

— Добавление скрытых функций;

— Создания каналов связи через сетевые устройства;

— Реализация собственных механизмов аутентификации.

Этот метод позволит внедрять корневые уязвимости, которые не могут быть устранены обычными средствами безопасности. Так же, например, модификации сетевой функции для обхода фильтров и детектирования

Каждый из этих типов атак представляет серьёзную угрозу для информационной безопасности и требует внедрения современных методов защиты и мониторинга для их своевременного обнаружения и предотвращения [3].

В марте 2024 года была обнаружена уязвимость (CVE-2024–3094) в XZ Utils версий 5.6.0 и 5.6.1, которая замедляла работу sshd на полсекунды и позволяла злоумышленникам обойти аутентификацию и получить доступ к системе [1]. Уязвимость связана с бэкдором в коде для компрессии данных по алгоритму lzma, используемому в Linux и OpenSSH. Бэкдор был внедрен на двух уровнях: через файл build-to-host.m4, извлекающий вредоносный скрипт из тестовых файлов, и через модификацию исходного кода, заменяя функцию __get_cpuid на _get_cpuid, активируя вредоносную программу как функцию cpuid [1]. Этой атаке подвержены системы Linux xв системах x86_64 с библиотекой Glibc, sshd использует libsystemd и LibLZMA.

Вредоносный код вызывал функцию _get_cpuid как часть преобразователя косвенных функций, злонамеренный объектный файл используется. GNU (IFUNC). Возникновение этих ошибок может произойти в любой момент работы программы, однако, с точки зрения безопасности, их обычно исправляют во время динамической компиляции программы. Программисты обращают на них внимание, чтобы избежать возможных проблем. IFUNC система запускалась на ранней стадии, что давало возможность вносить изменения в таблицы функций и встраивать вредоносный код, который мог быть активирован при наличии соответствующего сертификата. SSH.

Для обнаружения скрытого нелегитимного поведения, предлагается проводить анализ действий ядра операционной системы на конечном устройстве. Чтобы предотвратить проведение атак LotL необходимо обратить внимание на следующие признаки угрозы безопасности:

1) Изменения, произошедшие в системных библиотеках: вредоносное программное обеспечение оказывает воздействие на системы с ядром. Linux и Си-библиотекой (Glibc), используя LibLZMA через IFUNC. Мониторинг изменений в библиотеках и анализ кода помогут выявить любые вмешательства.

2) Модификации в системных вызовах: замена функции __get_cpuid на _get_cpuid это может свидетельствовать о возможной уязвимости и попытке манипулирования системой.

3) Структуры, содержащие информацию о процессе, инициализируются вредоносным скриптом до запуска кода, что может быть выявлено при анализе процессов и их состояний.

4) Изменения, внесенные в общую таблицу смещений (GOT): отслеживание изменений в GOT с помощью этого инструмента можно обнаружить попытки компрометации, когда изменяются адреса и указатели.

5) Использование функций на уровне ядра: внедрение бэкдора активирует определенную функцию cpuid для мониторинга вызываемых функций необходимо проводить контроль. Изучение вызовов функций и их работы помогает выявить данную активность.

В настоящее время для выявления признаков компрометации применяется всесторонняя система защиты, позволяющая обнаруживать и передавать агенту динамические индикаторы для последующего реагирования [4,5].

Модель комплексной защиты

Рис. 1. Модель комплексной защиты

Инструменты статического анализа: для выявления нестандартных изменений в библиотеках, скриптах и конфигурационных файлах, рекомендуется применять следующий подход. sonarqube ;

Инструменты динамического анализа: valgrind демонстрирует аномальное поведение приложений, включая обращения к системным библиотекам;

Инструменты мониторинга системных вызовов: strace это позволит мониторить системные вызовы, которые могут указать на попытки изменения системы или ее компонентов.

Анализ сетевого трафика : для обнаружения нестандартных сетевых связей, связанных с системными вызовами, рекомендуется применять следующий метод. NTA -системы ;

Инструменты криминалистики памяти: rizin система будет выявлять необычные изменения в двоичных файлах, в том числе в таблицах смещений.

Инструменты мониторинга процессов : ps для мониторинга аномального поведения процессов, включая их запуск и расход ресурсов;

Инструменты двоичного анализа : radare 2 в состоянии обнаруживать необычные изменения в двоичных файлах, в том числе в таблицах смещений, что может свидетельствовать о изменениях в программном обеспечении.

Мониторинг целостности файлов: для контроля за изменениями в файлах с целью отслеживания их целостности рекомендуется применять мониторинг. tripwire ;

Инструменты для мониторинга на уровне ядра: kerberoast функции, которые встречаются в основной части программы. Cupid отчетно демонстрируются усилия по маскировке или изменению работы системы.

Инструменты аппаратной виртуализации: для выявления подозрительной активности, связанной с аппаратным визуализацией, рекомендуется применить следующий метод. VMware .

В настоящее время эти инструменты работают на конечных узлах, собирая телеметрические данные и передавая их агенту. Однако такой подход устарел из-за необходимости затратного времени и низкой оперативности обработки данных [6,7]. Новая технология предлагает более надежную безопасность ядра операционной системы.

Предлагаемая технология eBPF (Extended Berkeley Packet Filter) — это платформа для программирования, которая обеспечивает возможность безопасного выполнения отдельных программ в ядре Linux без необходимости изменения самого кода ядра. Программы eBPF отличаются высокой эффективностью и надежностью, поскольку они проходят проверку ядром, чтобы гарантировать стабильность и безопасность операционной системы. Фильтр eBPF позволяет улучшить работу ядра без необходимости загружать дополнительные модули или перекомпилировать его. Этот фильтр обеспечивает безопасность и надежность работы системы. Идеальное место для внедрения защиты, сетевой работы, мониторинга и профилирования в компьютере — операционная система является основой для работы компьютера. Ядра операционных систем поддерживаются консервативно, поскольку они являются ключевой частью любой ОС. Разработка новых функций в ядрах происходит медленно из-за важности и сложности этого процесса. Безопасность играет важную роль, поэтому внедрение новых функций в ядра может представлять определенные риски для системы [10].

Предложенная технология позволяет запускать программы ядра в специальном изолированном режиме, что обеспечивает безопасность и стабильность работы системы. Разработчики могут легко расширять функционал ядра без необходимости создания дополнительных драйверов и модулей благодаря использованию динамического (JIT) компилятора и движка для проверки байт-кода.

Типичная архитектура eBPF [10].

Рис. 2. Типичная архитектура eBPF [10].

Данная технология позволяет пользователю перехватывать системные вызовы и обрабатывать сетевые пакеты на уровне сокетов, собирая информацию о сетевых операциях. Это обеспечивает высокую производительность и предоставляет новый подход к созданию систем для обеспечения безопасности и мониторинга. Одним из преимуществ является возможность получения информации о системных вызовах, сетевых событиях и других операциях в одном месте, не требуя сбора разных технологий. Технология также позволяет подключаться к процессам в системе, получать доступ к стеку, куче и переменным внутри операционной системы. Возможны пробы ядра, пользовательские пробы и точки трассировки. Встроенные структуры данных в eBPF позволяют извлекать отладочную информацию без необходимости экспорта данных. Хотя технически возможно загружать модули в ядро и вносить изменения напрямую, это рискованно и сложно, поэтому редко кто решается на такой подход.

eBPF предлагает решение данной проблемы, предоставляя безопасный и эффективный способ подключения и запуска программ в ядре. Давайте рассмотрим, как обеспечивается безопасность и производительность.

Высокая безопасность

Перед тем как загрузить любую программу eBPF в ядро, она проходит строгую проверку специальным верификатором, что обеспечивает полную безопасность кода. Это включает в себя проверку наличия жестких циклов, недопустимого доступа к памяти, опасных операций и других потенциально угрожающих безопасности действий.

Песочница для eBPF-программ предусматривает их запуск в специально выделенной памяти ядра, отделенной от остальных его частей. Такой подход гарантирует защиту от несанкционированного доступа к памяти, данным и исходному коду ядра.

Из-за ограниченных операций, eBPF-программы обычно требуют написания на узком наборе языка C, что ограничивает доступ к инструкциям и операциям, которые могут выполняться. Такой подход значительно снижает вероятность возникновения уязвимостей в системе безопасности.

Высокая производительность/легкий вес

Запуск программ eBPF происходит как инструкции, специально созданные для процессора, что позволяет им работать быстрее и эффективнее, обеспечивая лучшую общую производительность.

Отсутствие переключения контекста — это стандартное приложение, которое постоянно переключается между пространством пользователя и пространством ядра, что требует больших затрат ресурсов. Программы eBPF, работающие на уровне ядра, могут напрямую обращаться к структурам данных и ресурсам ядра, что позволяет экономить время и повышать производительность.

Программы eBPF, управляемые событиями, активируются только при определенных событиях ядра и не постоянно активны, что помогает снизить издержки ресурсов.

Оптимизация для оборудования — eBPF-программы преобразуются в машинный код JIT-компилятором (Just-In-Time) ядра непосредственно перед выполнением, поэтому код оптимизируется для конкретного оборудования, на котором он работает.

Таким образом, eBPF обеспечивает безопасный и эффективный доступ к ядру для программирования. А учитывая, что все процессы проходят через ядро, это открывает некоторые новые возможности, которые были недоступны ранее.

На сегодняшний день существует два основных способа инструментирования приложений и инфраструктуры для наблюдаемости, помимо eBPF.

Инструментарий на основе агентов. Это независимые программные SDK/библиотеки, интегрированные в код приложения или узлы инфраструктуры для сбора данных телеметрии [8].

Инструментарий на основе прокси-сервера Sidecar. Sidecars — это лёгкие независимые процессы, которые выполняются вместе с приложением или службой. Они популярны в микросервисах и архитектурах на основе контейнеров, таких как Kubernetes.

Сравнение eBPF c другими методами [10].

Рис. 3. Сравнение eBPF c другими методами [10].

Как видно из таблицы, предложенная технология превосходит существующие методы инструментирования практически по всем параметрам.

Традиционные инструменты для обеспечения безопасности имеют свои сильные стороны и ограничения, но eBPF дополняет их, предоставляя дополнительный уровень видимости и контроля, особенно в реальном времени и на уровне ядра. Например, статический и динамический анализ кода может выявить уязвимости в исходном коде, тем не менее eBPF сможет заполнять эту слепую зону, предоставляя данные о фактическом поведении и взаимодействии процессов. Так же позволяет реализовывать мониторинг и защиту в реальном времени, что не всегда возможно с традиционными инструментами, которые могут полагаться на периодические проверки или требуют значительных ресурсов для анализа данных [9]. Так уже можно смоделировать варианты использования данной технологии к существующим продуктам обеспечения безопасности, например:

  1. Prometheus

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

  1. Kubernetes

Не имеет возможности мониторинга и управления контейнерами на уровне ядра. С использованием eBPF же появится возможность автоматического реагирования на события в ответ на состояние контейнеров.

  1. Falco

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

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

Литература:

  1. История с бэкдором в XZ — первоначальный анализ [электронный ресурс] URL: https://securelist.ru/xz-backdoor-story-part-1/109378/ (дата обращения 13.09.2024);
  2. Cao N., Shi C., Lin S., Lu J., Lin Y. R., Lin C. Y. Targetvue: Visual analysis of anomalous user behaviors in online communication systems // IEEE Transactions on Visualization and Computer Graphics. 2015. Vol. 22, no. 1, pp. 280–289. DOI: 10.1109/TVCG.2015.2467595 (Scopus).
  3. Chandola V., Banerjee A., Kumar V. Anomaly detection: A survey // ACM Computing Surveys (CSUR). 2009. Vol. 41, no. 3, pp. 1–58. DOI: 10.1145/1541880.1541882 (Web of Science).
  4. Salama M. A., Eid H. F., Ramadan R. A., Darwish A., Hassanien A. E. Hybrid intelligent intrusion detection scheme // In: Gaspar-Cunha, A., Takahashi, R., Schaefer, G., Costa, L. (eds.) Soft Computing in Industrial Applications. 2011. AINSC, vol. 96, pp. 293–303. DOI: 10.1007/978–3-642–20505–7_26 (Springer, Scopus).
  5. Chen C. M., Guan D. J., Huang Y. Z., Ou Y. H. Anomaly network intrusion detection using hidden Markov model // Security and Communication Networks. 2019. Vol. 12, no. 6, pp. 915–930. DOI: 10.1002/sec.2317 (Scopus).
  6. Bouallegue B., Jouini M., Rabai L. B. A. Formal modeling and detection of security breaches in cloud computing // Journal of Supercomputing. 2020. Vol. 76, pp. 7025–7054. DOI: 10.1007/s11227–019–02974–0 (Scopus).
  7. Bourobou S. T. M., Yoo Y. User activity recognition in smart homes using pattern clustering applied to temporal ANN algorithm // Sensors. 2015. Vol. 15, no. 5, pp. 11953–11971. DOI: 10.3390/s150511953 (Scopus).
  8. Королев В. Л., Тарасов А. А. Методы обнаружения аномалий в сетевых трафиках с использованием алгоритмов машинного обучения // Вестник ЮУрГУ. Серия «Вычислительная математика и информатика». 2021. Т. 10, № 4, с. 71–79. DOI: 10.14529/cmse210407 (РИНЦ).
  9. Кудрявцев Д. А., Сидоров С. А. Разработка методов для оценки безопасности киберсистем на основе анализа поведения пользователей // Информационные технологии и вычислительные системы. 2019. № 2. С. 59–67. DOI: 10.14357/19922264190207 (РИНЦ).
  10. Райс Л. Изучаем eBPF: программирование ядра Linux для улучшения безопасности, сетевых функций и наблюдаемости. СПб.: БХВ-Петербург, 2024. 112 с.
Основные термины (генерируются автоматически): IFUNC, уровень ядра, операционная система, система, GOT, изменение, вредоносный код, инструмент, мониторинг, предложенная технология.


Похожие статьи

Задать вопрос