Хроники пентестера #2: безопасность ERP-систем

Существует довольно известная во всем мире ERP-система под брендом SAP, которая еще с конца прошлого века получила широкое распространение в крупных компаниях. Но при всей своей популяризации, разработчики SAP сделали все возможное, чтобы максимально усложнить архитектуру безопасности своего детища.

История, которая произошла совсем недавно, берет свое начало с использования пароля по умолчанию к учетной записи SAP* в 066 манданте. Вполне стандартная проблема с дефолтами в системах SAP. Указанный (типовой) недостаток встречается в 9 случаях из 10 (и в половине случаев, если рассматривать исключительно продуктивные системы). В таблице ниже приведены известные идентификаторы и пароли по умолчанию.


Идентификатор Пароль Мандант Примечание
SAP* 06071992, PASS 000, 001, 066 все новые клиенты Привилегированный пользователь системы SAP
DDIC 19920706 000, 001 Привилегированный пользователь словаря ABAP и логистики программного обеспечения
EARLYWATCH SUPPORT 066 Диалоговый пользователь для сервиса Early Watch в клиенте 066
SAPCPIC ADMIN 000, 001, 066, все новые клиенты Коммуникационный пользователь RFC с правами администратора
TMSADM 000, 001 Пользователь транспортной системы управления

Использование дополнительных модулей
admin axis2 Axis2
ctb_admin sap123 Visual Composer
Administrator manage Business Connector
Developer isdev Business Connector
Replicator iscopy Business Connector
itsadmin init ITS
xmi_demo sap123 xMII
SAPR3 SAP SAP Content Server
control control SAP Content Server
superdba admin SAP Content Server
domain domain SAP Content Server


Особое внимание хочется обратить на идентификатор привилегированного пользователя системы SAP*, у которого может встречаться пароль "PASS". Это происходит при создании нового манданта, а также после того, как администратор системы SAP удаляет указанный идентификатор и при этом забывает про параметр системного профиля "login/no_automatic_user_sapstar", который будучи установленным в ноль позволяет успешно войти в систему с известным именем и паролем. Указанная особенность системы SAP яркое подтверждение тому, что разработчики от всей души пошутили над администраторами своего творения.

Но вернемся к нашей истории. Несмотря на то, что был получен доступ к системе SAP под идентификатором SAP* в 066 манданте, права пользователя были шибко ограничены, т.к. администратор предусмотрительно удалил профиль "SAP_ALL" у дефолтового привилегированного пользователя. Но при этом, администратор совершенно забыл про профиль "S_USER_ALL", который также назначен пользователю SAP* по умолчанию.


Таким образом, развитие атаки сводилось к классическому созданию нового пользователя (транзакция su01), назначение этому пользователю профиля "SAP_ALL" и повторный вход в систему с использованием нового идентификатора. А после? Следующим этапом было выполнение команд (транзакции sm49, sm69) и развитие атаки на уровне операционной системы, но это уже совсем другая история.

Как избежать подобных проблем?

- В первую очередь (и это касается любых информационных систем) избавиться от дефолтов.
- Контролировать, что доступ к интерфейсам (транзакциям) администрирования/разработки предоставлен ограниченному числу действующих идентификаторов.

3 комментария :

  1. Дим, а когда нету прав на su01, бери se93 и оттуда пускай ее, или что хочешь. Кстати, мог бы сразу sm49 из отладки запустить и не париться так с переназначением прав, которое палиться );

    ОтветитьУдалить
  2. Еще чтото новое будет, или все будут копипасть?

    ОтветитьУдалить