Безопасность ERP

Безопасность ERP (англ. ERP Security) — это совокупность мер, направленных на защиту систем планирования ресурсов предприятия (ERP, Enterprise Resource Planning) от несанкционированного доступа, а также обеспечение доступности и целостности данных системы. Система ERP — это программное обеспечение, предназначенное для объединения информации, необходимой для управления организацией, включая производство, управление цепочкой поставок, финансовое управление, управление персоналом, управление взаимоотношениями с клиентами, управление эффективностью организации.

Обзор

ERP-система интегрирует бизнес-процессы, обеспечивая выполнение закупок, платежей, транспортировки, управления персоналом, управления продуктами и финансового планирования[1]. Поскольку в системе ERP хранится конфиденциальная информация, Ассоциация по аудиту и контролю информационных систем (англ. ISACA) рекомендует регулярно проводить комплексную оценку безопасности ERP-систем, проверяя серверы ERP на наличие уязвимостей программного обеспечения, ошибок конфигурации, конфликтов в разделении обязанностей, а также на соответствие стандартам, рекомендациям и предписаниям поставщиков[2][3].

Причины уязвимостей в ERP-системах

Сложность

ERP-системы обрабатывают транзакции и реализуют процедуры для обеспечения различных уровней доступа пользователей. В SAP существует сотни объектов авторизации, которые позволяют пользователям выполнять определения действий в системе. Для 200 пользователей компании может существовать порядка 800 000 (100*2*20*200) способов настройки параметров безопасности ERP-систем[4]. С ростом сложности увеличивается вероятность ошибок и конфликтов при разделении обязанностей[2].

Специфика

Производители регулярно устраняют уязвимости, поскольку злоумышленники следят за бизнес-приложениями, чтобы находить и использовать проблемы в области безопасности. SAP выпускает патчи ежемесячно по вторникам (Patch Tuesday), Oracle выпускает обновления безопасности ежеквартально в Oracle Critical Patch Update. Бизнес-приложения всё чаще становятся доступны через Интернет или полностью мигрируют в облако[5].

Недостаток компетентных специалистов

Согласно опросу «ERP Cybersecurity survey» организации, использующие ERP-системы, «недостаточно осведомлены и не предпринимают нужных шагов в области безопасности ERP»[6]. По данным ISACA, «наблюдается дефицит специалистов, обладающих знаниями в области безопасности ERP»[4]; службы безопасности лишь поверхностно понимают риски и угрозы, связанные с ERP-системами. В результате, уязвимости осложняют задачи поиска и устранения проблем[5][7].

Недостаток средств аудита безопасности

Аудит безопасности ERP-системы часто проводится вручную, так как специализированные инструменты, поставляемые вместе с ERP-пакетами, не предоставляют необходимых возможностей для аудита безопасности системы. Ручной аудит — это сложный и трудоёмкий процесс, который увеличивает вероятность ошибок[2].

Большое количество настроек

В системе присутствуют тысячи параметров и тонких настроек, включая разделение полномочий по транзакциям и таблицам; параметры безопасности устанавливаются для каждой системы индивидуально. Настройки системы ERP адаптированы под требования заказчиков.

Проблемы безопасности ERP-систем

Проблемы безопасности в ERP-системах могут возникать на различных уровнях.

Сетевой уровень

Перехват и модификация трафика

  • Отсутствие шифрования данных.

В 2011 году специалисты компании Sensepost проанализировали протокол DIAG, используемый в SAP ERP для передачи данных между клиентом и сервером SAP. Были опубликованы две утилиты, которые позволяли перехватывать, расшифровывать и изменять клиент-серверные запросы с критичной информацией. Это делало возможными атаки, включая Man-in-the-middle attack. Одна из утилит работает как прокси и предназначена для выявления новых уязвимостей; она позволяла модифицировать запросы между клиентом и сервером[8].

  • Передача паролей в открытом виде (старые версии SAP J2EE Telnet / Oracle listener).

В SAP ERP возможно выполнение административных операций через протокол Telnet, который шифрует пароли.

Уязвимости в протоколах шифрования и аутентификации

  • Аутентификация по хэшам;
  • XOR-шифрование паролей (SAP DIAG);
  • Принудительное использование устаревших протоколов аутентификации;
  • Некорректные протоколы аутентификации.

Уязвимости в протоколах (например, RFC в SAP ERP и Oracle Net в Oracle E-Business Suite) Протокол RFC (Remote Function Call) применяется для соединения двух систем через TCP/IP в SAP ERP. RFC-вызов — это функция, позволяющая удалённо запускать или пользоваться модулем, расположенным в другой системе. Язык ABAP, на котором пишутся бизнес-приложения для SAP, содержит встроенные функции RFC-вызова. В библиотеках SAP RFC версий 6.x и 7.x были найдены несколько критичных уязвимостей[9]:

  • Функция RFC «RFC_SET_REG_SERVER_PROPERTY» позволяет определить эксклюзивное использование сервера RFC. Эксплуатация уязвимости позволяет отказать в обслуживании легитимным пользователям, возможна атака «отказ в обслуживании»;
  • Ошибка в функции «SYSTEM_CREATE_INSTANCE». Эксплуатация уязвимости позволяет выполнить произвольный код;
  • Ошибка в функции «RFC_START_GUI». Эксплуатация уязвимости также позволяет выполнить произвольный код;
  • Ошибка в функции «RFC_START_PROGRAM». Эксплуатация уязвимости позволяет выполнить произвольный код или получить сведения о конфигурации сервера RFC;
  • Ошибка в функции «TRUSTED_SYSTEM_SECURITY». Эксплуатация уязвимости позволяет получить информацию о пользователях и группах на сервере RFC.

Уровень операционной системы

Уязвимости программного обеспечения ОС:

  • Любая удалённая уязвимость в ОС может быть использована для атаки на приложения.

Слабые пароли ОС:

  • Удалённый подбор паролей (brute force);
  • Пустые пароли для инструментов удалённого администрирования, таких как Radmin и VNC.

Небезопасные настройки ОС:

  • NFS и SMB. Данные SAP могут становиться доступны для удалённых пользователей через NFS и SMB;
  • Права доступа к файлам. Критически важные файлы SAP и Oracle DBMS могут иметь неадекватные права доступа, такие как 755 и 777;
  • Небезопасные настройки хостов. В доверенных хостах могут быть перечислены серверы, к которым атакующий легко получает доступ.

Уязвимости приложений

ERP-системы всё большую функциональность переносят на уровень веб-приложений, обладающих множеством уязвимостей:

Модель управления доступом на основе ролей

В ERP-системах применяется модель управления доступом на основе ролей (англ. Role-Based Access Control, RBAC), которая позволяет пользователям выполнять транзакции и получать доступ к бизнес-объектам[10]. В этой модели решение о предоставлении доступа принимается на основании функций пользователя, то есть ролей. Ролевая модель объединяет множество транзакций, которые пользователь или группа выполняет в компании. Транзакция — это процедура изменения данных системы. Каждой роли соответствует определённое количество пользователей, обладающих одной или несколькими ролями. Роли могут быть иерархичными. После реализации ролей в системе транзакции по каждой роли редко изменяются. Администратор только добавляет либо удаляет пользователей в определённых ролях. При приёме нового сотрудника администратор назначает ему одну или несколько ролей. При увольнении работник удаляется из всех ролей[11].

Разделение обязанностей

Разделение или сепарация обязанностей (SoD, англ. Separation of duties) — это принцип, согласно которому пользователь не может осуществить транзакцию без участия других пользователей (например, пользователь не может добавить нового поставщика, выписать чек или оплатить поставщику самостоятельно)[12], что значительно снижает риск мошенничества[13]. Этот принцип реализуется с помощью механизмов RBAC — вводятся взаимно исключающие роли. Например, для оплаты поставщику один пользователь инициирует операцию, другой — подтверждает[14]. Инициирование оплаты и её подтверждение становятся взаимоисключающими ролями. Разделение обязанностей бывает статическим и динамическим. При статическом (SSoD) пользователь не может быть назначен на две взаимно исключающие роли; при динамическом (DSoD) — может, но не вправе выполнять их в одной транзакции. Статическое SoD проще, динамическое — гибче[15]. Принцип SoD отражается в SoD-матрице, где строки и столбцы соответствуют системным ролям, а признак взаимной исключаемости отмечается специальным флагом в пересечении.

Меры безопасности для ERP-систем

Безопасность ERP помогает обеспечить нормальную работу компании и защитить конфиденциальную информацию от утечек. Поскольку ERP-системы обычно содержат важные персональные и финансовые данные, меры безопасности должны учитывать угрозы, такие как утечка данных и несанкционированный доступ. К ним относятся механизмы и правила — шифрование данных, управление правами доступа и мониторинг, защищающие от внутренних и внешних угроз[16]. В целом, организации должны реализовать эти механизмы для обеспечения безопасности своих ERP-систем.

Сканеры безопасности ERP

Сканер безопасности ERP — это программное обеспечение для поиска уязвимостей в ERP-системах. Сканер анализирует конфигурацию ERP-системы, выявляет ошибки настройки, конфликты доступа, проблемы с шифрованием, небезопасные компоненты, а также проверяет наличие актуальных обновлений. Сканер оценивает параметры системы на соответствие рекомендациям производителей и аудиторов, например, ISACA. Итоговый отчёт ранжирует обнаруженные уязвимости по их критичности.

Примечания