Проводить исследования по безопасности SAP — одна из основных моих задач в Positive Technologies. Кроме того, мне нужно было придумать — с чем выступать перед слушателями на нашем форуме PHDays III.
Проводить исследования по безопасности SAP — одна из основных моих задач в Positive Technologies. Кроме того, мне нужно было придумать — с чем выступать перед слушателями на нашем форуме PHDays III. Так была найдена тема для исследований: как в SAP-системе можно скрыть наличие профиля SAP_ALL у пользователя (то есть, всех возможных авторизаций). Если злоумышленнику удалось проникнуть в систему, получить права на создание пользователей и присвоение им привилегий, то скорее всего следующим шагом для закрепления в системе будет создание для себя новой учетной записи, разумеется со всеми необходимыми правами. Но такой пользователь будет отображаться в результатах внутренних проверок, внешних аудитов, и трудно рассчитывать, что пользователь с правами SAP_ALL останется незамеченным.
Итак, приступим. Я наметил два вектора проведения работ:
По первому вектору заинтересовавшимся предлагаю посмотреть материалы моего выступления, о втором же речь пойдет ниже.
Обратимся к логике работы отчета. Логика простая: берется список всех пользователей системы, и каждый пользователь пошагово проверяется на наличие искомых полномочий. Если пользователь не соответствует условиям поиска — он удаляется из списка. Все вроде бы просто... Но при анализе внимание привлекает следующая строка:
Из списка вывода удаляется пользователь с загадочным именем ‘…………’ (12 точек). Проверим наше предположение на практике: создадим пользователя с именем из 12 точек, назначим ему различные роли и профили — и посмотрим на результаты анализа отчета. Как и ожидалось, в результатах отчета пользователь с таким именем отсутствует!
Не правда ли, интересно: зачем такое могло понадобиться производителю SAP? На этот вопрос я, конечно, не могу дать ответа. Может, этот пользователь создавался при генерации отчетов EARLYWATCH и что-то «делал» в системе?..
Для уязвимости определили следующий CVSS-вектор:
CVSS Base Score: 4.6
CVSS Base Vector: AV:N/AC:H/AU:S/C:P/I:P/A:P
Рейтинг, вроде бы, невысокий, но согласитесь: неприятно осознавать тот факт, что производитель системы, в которой у нас хранится и обрабатывается вся критическая бизнес-информация, оставил подобные лазейки для сокрытия каких-то специально заведенных пользователей. Собственно, для чего это могло быть нужно?
Однако, не так уж все и плохо. В июне 2013 года обновление, закрывающее эту уязвимость, уже вышло: SAP Note 1844202. Скачав выпущенное обновление, вы избавитесь от подобной проблемы на своих системах.
Как видно из таблицы ниже, исправление было выпущено для всех существующих версий SAP_BASIS, начиная с версии 4.6B. Иначе говоря, если вы еще не успели обновиться, то данная закладка со стопроцентной вероятностью будет и у вас.
Вот и все, собственно, что я хотел рассказать. Рекомендую применить «ноту», инициатором которой является ваш покорный слуга :)
SAP Security note 1844202: https://service.sap.com/sap/support/notes/1844202