29 августа 2013 г.

Backdoor в SAP

В посте "User Information System" я рассказывал про встроенную систему отчетов, с помощью которой можно по различным критериям получать списки пользователей/полномочий/ролей и т.п. Недавно обнаружил, что в этой системе есть интересный, в какой-то степени даже опасный, нюанс. Заключается он в следующем:
Если мы создадим в системе пользователя с именем "............" (12 точек), то он не будет отображаться ни в одном из списков User Information System.

Для примера возьмем свеженькую систему SAP Solution Manager 7.1 SPS 08 (SAP_BASIS patch level 12). Создадим вышеуказанного пользователя с профилем SAP_ALL (рис. 1, 2).

Рис. 1. Создание пользователя "............".

Рис. 2. Добавление полномочий пользователю "............".

Под данным пользователем можно войти в систему (рис. 3).

Рис. 3. Вход в систему под пользователем "............".

А теперь попробуем этого пользователя найти. Например, с помощью отчета RSUSR002. Зададим в качестве критерия - "все пользователи с профилем SAP_ALL" (рис. 4, 5).

Рис. 4. Экран выбора отчета RSUSR002.

Рис. 5. Результат работы отчета RSUSR002.

Результаты удивительны: нашего пользователя тут нет.

Во таком поведении виноваты несколько строк в инклуде SR002F10 программы RSUSR002 (рис. 6).

Рис. 6. Код программы RSUSR002.

Данный код явно удаляет пользователя "............" из результатов работы отчета RSUSR002.

В компании SAP это назвали 'program error'. Ситуация и ее решение описываются в SAP note # 1844202 - SUIM| RSUSR002 User '............' is not found. А следы ведут нас к SAP note # 694250 - SUIM|RSUSR002: Negative multiple selection for profiles, в которой в злополучный инклуд SR002F10 вставляется кусок кода с вышеуказанными строками.

Как видно из SAP note # 1844202 данная ошибка затрагивает почти все системы с SAP_BASIS от 46B до 740. Мелочь, а неприятно.

На данную тему меня навела статья на сайте habrahabr.ru

Автор: Шиболов Вячеслав Анатольевич


Комментариев нет:

Отправить комментарий