2. Цели злоумышленника
Получение информации
Получение материальных благ
Нарушение работы бизнеса
Формирование плацдарма для
дальнейших атак
3. Методы достижения цели
Формирование цели для атаки
Обнаружение
Сбор информации
Поиск уязвимостей
Эксплуатация уязвимостей
Получение профита
4. Основные цели атаки
Бизнес приложения
Платежные системы
Базы данных
АСУ ТП
Рабочие станции
5. Особенности архитектуры бизнес приложений
Различные технологические платформы, СУБД,
серверы приложений ,клиентское ПО
Большое количество связей между
компонентами
Разные протоколы взаимодействия
Большие объемы данных
Распределенная архитектура
Множество технологий разработки
6. Особенность архитектуры со стороны ИБ
Большая поверхность атак
Сложность администрирования
Длительное тестирование обновлений и
внесение изменений
Часть компонентов бизнес приложения
самодостаточны (отдельные пользователи,
сервисы, группы настроек)
9. Особенности OEBS
OEBS – сложное для анализа и очень массивное
приложение (миллионы строк кода,
многочисленные языки программирования)
Использование разных технологий в
технологическом стеке (часто устаревших)
Интеграция с другими бизнес системами
Большое количество функциональных модулей
10. Особенности системы
Использование пользователя БД – APPS
Наличие пользователей БД APPLSYSPUB и GUEST
Учетные записи с паролями по умолчанию
Конфигурация профилей OEBS не безопасна
11. Пароли по умолчанию в СУБД
SYSTEM/MANAGER
DBSNMP/DBSNMP
APPS/APPS
APPLSYSPUB/PUB
+ много паролей бизнес модулей типа HR/HR
(не все из этих учетных записей имеют права на
подключение к СУБД)
12. Пользователи GUEST и APPLSYSPUB
Пользователь GUEST – пользователь уровня
приложений, используется OEBS для служебных
целей.Пароль по умолчанию – ORACLE.
Пользователь APPLSYSPUB – пользователь БД,
используемый приложением для начальной
аутентификации пользователя приложения
13. Учетная запись APPS
Используется сервером приложений для работы
с СУБД
Является привилегированной учетной записью
Пароль учетной записи используется для
восстановления мастер пароля (которым
шифруются учетные записи бизнес
приложения)
Хранится в открытом виде на сервере
приложений
14. Хранение паролей OEBS
Таблица APPLSYS.FND_USER
Столбец Значение Ключ шифрования
ENCRYPTED_FOUNDATION_PASSWORD Пароль APPS Имя
пользователя/пароль
ENCRYPTED_USER_PASSWORD Пароль Пароль APPS
пользователя
18. Сценарий
Цель – получить учетные записи всех
пользователей бизнес приложения
В наличии доступ к сетевым сервисам сервера
приложений и СУБД
Учетные записи у злоумышленника отсутствуют
22. Возможные варианты атаки
Получить данные из таблиц APPLSYS.FND_USER
и APPLSYS.FND_PROFILE путем SQL инъекций в
сервере приложений(веб сервисах)
Получить доступ к конфигурационным файлам
сервера приложений через уязвимости веб
сервисов
Получить прямой доступ к таблицам через СУБД
23. Варианты нейтрализации проблемы
Смена всех паролей учетных записей СУБД и
сервера приложений
Разграничение доступа к файлам
Ограничение доступа к СУБД только с адресов
сервера приложений
Применение патча (Metalink Note 457166.1 ),
позволяющего использовать необратимые хеши
паролей для хранения учетных данных в
таблице fnd_users
26. Цели атаки
Получение привилегированного доступа к
системе
• DBA в СУБД
• SAP_ALL в приложении SAP
• Root или Администратор в ОС
Получение неограниченного доступа к данным
бизнес модулей
Проведение несанкционированных действий
связанных с получением материальной выгоды
27. Проблемы безопасности SAP в части аутентификации
Учетные записи по умолчанию
Хранение паролей
Инициализационные пароли
Перехват паролей
Подбор учетных записей и паролей
Массовое блокирование учетных записей
29. Хранение паролей
Пароли ABAP пользователей хранятся в
таблицах USR02, USH02, USRPWDHISTORY
Различные алгоритмы хеширования:
A,B,D,E,F,G,H,I
Наличие уязвимостей в алгоритмах
хеширования
Наличие автоматизированных средств анализа
стойкости паролей
30. Уязвимости алгоритмов хеширования
CODVN A – устаревший алгоритм разработанный
SAP – длина пароля <=8, символы в UPPERCASE
CODVN B – устаревший алгоритм на базе MD5,
длина пароля <=8 остальная часть пароля
обрезается, все символы в UPPERCASE,
спецсимволы заменяются на символ ^
31. Уязвимости алгоритмов хеширования
CODVN D – также устаревший алгоритм
предназначался для того чтобы исправить
ошибки алгоритма B – в части урезания паролей
и использования спец символов
CODVN E – пришел на смену паролям B и D и
был призван устранить их проблемы, работает в
версиях с 4.6x до 6.x
• SAP Note 874738 - New password hash calculation
procedure (code version E)
32. Уязвимости алгоритмов хеширования
CODVN F – наиболее часто используемый на
текущий момент алгоритм хеширования,
основан на SHA1, длина пароля до 40 символов ,
перед хешированием строки переводятся в UTF-
8, поэтому символы могут быть практически
любые, работает в версиях начиная с 7.00
33. Уязвимости алгоритмов хеширования
CODVN G = B+F – можно подобрать сначала
часть пароля размером в 8 символов по
алгоритму B а затем использовать эту часть для
подбора пароля по алгоритму G, работает в
версиях начиная с 7.00
34. Уязвимости алгоритмов хеширования
CODVN H – наиболее безопасный алгоритм
хеширования – основан на SHA1 с переменной
длиной соли, работает в версиях начиная с 7.02
CODVN I = B+F+H – проблемы аналогичные G
Скорость подбора паролей
• до 700 000 паролей в секунду для CODVN B
• до 300 000 паролей в секунду для CODVN G
35. Инициализационные пароли
Простые инициализационные пароли:
123456, 1234567, 12345678 …
Неограниченный срок действия
инициализационных пароле
• login/password_max_idle_initial=0 (deactivated by
default)
• login/password_max_idle_initial=0 (deactivated by
default)
Отсутствие требований по сложности для
паролей устанавливаемых администратором
36. Перехват паролей
Перехват паролей c использованием протокола
DIAG
• Wireshark plugin SAP DIAG Decompress (2011)
(http://www.securitylab.ru/software/409481.php)
• SApCap (2011)
(http://www.sensepost.com/labs/tools/poc/sapcap)
• Cain&Abel (2011) (http://oxid.it)
Перехват паролей с использованием протокола
RFC
• Attacking SAP by Mariano Nuñez Di Croce
(https://www.blackhat.com/presentations/bh-europe-
07/Nunez-Di-Croce/Presentation/bh-eu-07-
nunez_di_croce-apr19.pdf)
38. Перехват паролей RFC. Особенности
Не во всех соединениях RFC используется
пароль
Для скрытия пароля используется XOR
Ключ восстановления пароля
31 3e c3 60 e1 06 4e 3f 6b 48 c8 12 f5 fc 20 3c 89 61
2f f1 ef 2e af f3 bd ec 7e 25 b6 a0 71 83 a3 ea 7f ec 09
8a 40 21
Сложности автоматизации поиска маркеров
паролей в сетевом трафике
39. Сценарий атаки
Поиск SAP систем и доступных сервисов
Попытка подбора паролей
• Проверка стандартных учетных записей
• Подбор паролей с использованием списка
сотрудников компании (полученных из AD,
телефонных справочников, Email…)
Перехват паролей пользователей (MITM)
Получение и анализ хешей паролей
41. Автоматизация атаки. SAP RFCSDK
SAP RFCSDK – библиотека для разработки
приложений работающих с SAP системой по
протоколу SAP RFC
Содержит утилиту для тестирования RFC -
Startrfc.exe
Может использоваться для интеграции с PHP,
Perl, VB, С++ ….
45. Дальнейшие действия злоумышленника
Проверка авторизаций пользователя для
которого был подобран пароль
Обход проверок авторизации
Эксплуатация уязвимостей в SAP приложении
Получение прямого доступа к СУБД
Доступ к файлам и командам ОС
47. Что делать?
Настроить профили безопасности в части
парольной политики
Периодически проверять пароли пользователей
на наличие простых паролей
Использовать таблицу запрещенных паролей
USR40
Использовать шифрование между клиентами и
серверами приложений
48. STOP!!! Это еще не все!
Особенности взаимодействия сервера
приложений и СУБД
• Для связки сервера приложений и СУБД
используется учетная запись SAPSR3 и SAPSR3DB
• Информация об имени и пароле учетной записи
хранится в таблице OPS$<SID>ADM.SAPUSER
• Сервис SAP используя специальные механизмы
аутентификации Oracle (ОС аутентификация)
получает доступ к СУБД и забирает информацию
об учетной записи для последующего соединения
49. Это интересно
Данные о паролях SAPSR3 и SAPSR3DB могут
хранится в открытом и шифрованном виде
Шифрование – модифицированный DES с ключом ‘BE
HAPPY’ зашитым в код ядра системы
Пользователь OPS$<SID>ADM обладает правами
SYSDBA
По требованиям SAP на СУБД Oracle включен режим
REMOTE_OS_AUTHENT = TRUE
OS_AUTHENT_PREFIX = OPS$
50. Удаленный вход в СУБД Oracle
Cоздаем локального пользователя с именем
<sid>adm
Создаем запись в tnsnames.ora
tst=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)
(HOST=10.125.151.35)(PORT=1527)))(CONNECT_DATA=(SID=TST)))
Копируем tnsnames.ora в папку home
пользователя
Выполняем sqlplus
sqlplus /@tst
Профит!