Upload
positive-hack-days
View
1.493
Download
1
Embed Size (px)
Citation preview
ERP ГЛАЗАМИ ЗЛОУМЫШЛЕННИКА
Юдин Алексей
Positive Technologies
Цели злоумышленника
Получение информации
Получение материальных благ
Нарушение работы бизнеса
Формирование плацдарма для дальнейших атак
Методы достижения цели
Формирование цели для атаки
Обнаружение
Сбор информации
Поиск уязвимостей
Эксплуатация уязвимостей
Получение профита
Основные цели атаки
Бизнес приложения
Платежные системы
Базы данных
АСУ ТП
Рабочие станции
Особенности архитектуры бизнес приложений
Различные технологические платформы, СУБД, серверы приложений ,клиентское ПО
Большое количество связей между компонентами
Разные протоколы взаимодействия
Большие объемы данных
Распределенная архитектура
Множество технологий разработки
Особенность архитектуры со стороны ИБ
Большая поверхность атак
Сложность администрирования
Длительное тестирование обновлений и внесение изменений
Часть компонентов бизнес приложения самодостаточны (отдельные пользователи, сервисы, группы настроек)
ORACLE E-BUSINESS SUITE
Архитектура OEBS
Особенности OEBS
OEBS – сложное для анализа и очень массивное приложение (миллионы строк кода, многочисленные языки программирования)
Использование разных технологий в технологическом стеке (часто устаревших)
Интеграция с другими бизнес системами
Большое количество функциональных модулей
Особенности системы
Использование пользователя БД – APPS
Наличие пользователей БД APPLSYSPUB и GUEST
Учетные записи с паролями по умолчанию
Конфигурация профилей OEBS не безопасна
Пароли по умолчанию в СУБД
SYSTEM/MANAGER
DBSNMP/DBSNMP
APPS/APPS
APPLSYSPUB/PUB
+ много паролей бизнес модулей типа HR/HR (не все из этих учетных записей имеют права на подключение к СУБД)
Пользователи GUEST и APPLSYSPUB
Пользователь GUEST – пользователь уровня приложений, используется OEBS для служебных целей.Пароль по умолчанию – ORACLE.
Пользователь APPLSYSPUB – пользователь БД, используемый приложением для начальной аутентификации пользователя приложения
Учетная запись APPS
Используется сервером приложений для работы с СУБД
Является привилегированной учетной записью
Пароль учетной записи используется для восстановления мастер пароля (которым шифруются учетные записи бизнес приложения)
Хранится в открытом виде на сервере приложений
Хранение паролей OEBS
Таблица APPLSYS.FND_USER
Столбец Значение Ключ шифрования
ENCRYPTED_FOUNDATION_PASSWORD Пароль APPS Имя пользователя/пароль
ENCRYPTED_USER_PASSWORD Пароль пользователя
Пароль APPS
Хранение паролей
Таблица APPLSYS.FND_USER
Хранение паролей
Таблица APPLSYS.FND_ORACLE_USERID
Столбец Значение Ключ шифрования
ENCRYPTED_ORACLE_PASSWORD Пароль пользователя БД Пароль APPS
Хранение паролей
Таблица APPLSYS.FND_ORACLE_USERID
Сценарий
Цель – получить учетные записи всех пользователей бизнес приложения
В наличии доступ к сетевым сервисам сервера приложений и СУБД
Учетные записи у злоумышленника отсутствуют
Схема восстановления паролей
Получение пароля пользователя Guest
Схема восстановления паролей
Получение пароля пользователя APPS
Схема восстановления паролей
Получение паролей остальных пользователей
Возможные варианты атаки
Получить данные из таблиц APPLSYS.FND_USER и APPLSYS.FND_PROFILE путем SQL инъекций в сервере приложений(веб сервисах)
Получить доступ к конфигурационным файлам сервера приложений через уязвимости веб сервисов
Получить прямой доступ к таблицам через СУБД
Варианты нейтрализации проблемы
Смена всех паролей учетных записей СУБД и сервера приложений
Разграничение доступа к файлам
Ограничение доступа к СУБД только с адресов сервера приложений
Применение патча (Metalink Note 457166.1 ), позволяющего использовать необратимые хеши паролей для хранения учетных данных в таблице fnd_users
SAP NETWEAVER
Архитектура SAP
Цели атаки
Получение привилегированного доступа к системе
• DBA в СУБД• SAP_ALL в приложении SAP• Root или Администратор в ОС
Получение неограниченного доступа к данным бизнес модулей
Проведение несанкционированных действий связанных с получением материальной выгоды
Проблемы безопасности SAP в части аутентификации
Учетные записи по умолчанию
Хранение паролей
Инициализационные пароли
Перехват паролей
Подбор учетных записей и паролей
Массовое блокирование учетных записей
Стандартные учетные записи
SAP* - 06071992
SAP* - PASS
DDIC – 19920706
SAPCPIC – ADMIN
EARLYWATCH - SUPPORT
TMSADM – PASSWORD
Хранение паролей
Пароли ABAP пользователей хранятся в таблицах USR02, USH02, USRPWDHISTORY
Различные алгоритмы хеширования:A,B,D,E,F,G,H,I
Наличие уязвимостей в алгоритмах хеширования
Наличие автоматизированных средств анализа стойкости паролей
Уязвимости алгоритмов хеширования
CODVN A – устаревший алгоритм разработанный SAP – длина пароля <=8, символы в UPPERCASE
CODVN B – устаревший алгоритм на базе MD5, длина пароля <=8 остальная часть пароля обрезается, все символы в UPPERCASE, спецсимволы заменяются на символ ^
Уязвимости алгоритмов хеширования
CODVN D – также устаревший алгоритм предназначался для того чтобы исправить ошибки алгоритма B – в части урезания паролей и использования спец символов
CODVN E – пришел на смену паролям B и D и был призван устранить их проблемы, работает в версиях с 4.6x до 6.x
• SAP Note 874738 - New password hash calculation procedure (code version E)
Уязвимости алгоритмов хеширования
CODVN F – наиболее часто используемый на текущий момент алгоритм хеширования, основан на SHA1, длина пароля до 40 символов , перед хешированием строки переводятся в UTF-8, поэтому символы могут быть практически любые, работает в версиях начиная с 7.00
Уязвимости алгоритмов хеширования
CODVN G = B+F – можно подобрать сначала часть пароля размером в 8 символов по алгоритму B а затем использовать эту часть для подбора пароля по алгоритму G, работает в версиях начиная с 7.00
Уязвимости алгоритмов хеширования
CODVN H – наиболее безопасный алгоритм хеширования – основан на SHA1 с переменной длиной соли, работает в версиях начиная с 7.02
CODVN I = B+F+H – проблемы аналогичные G
Скорость подбора паролей • до 700 000 паролей в секунду для CODVN B• до 300 000 паролей в секунду для CODVN G
Инициализационные пароли
Простые инициализационные пароли: 123456, 1234567, 12345678 …
Неограниченный срок действия инициализационных пароле
• login/password_max_idle_initial=0 (deactivated by default)
• login/password_max_idle_initial=0 (deactivated by default)
Отсутствие требований по сложности для паролей устанавливаемых администратором
Перехват паролей
Перехват паролей 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)
Перехват паролей DIAG
Перехват паролей 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
Сложности автоматизации поиска маркеров паролей в сетевом трафике
Сценарий атаки
Поиск SAP систем и доступных сервисов
Попытка подбора паролей• Проверка стандартных учетных записей• Подбор паролей с использованием списка
сотрудников компании (полученных из AD, телефонных справочников, Email…)
Перехват паролей пользователей (MITM)
Получение и анализ хешей паролей
Схема атаки
Автоматизация атаки. SAP RFCSDK
SAP RFCSDK – библиотека для разработки приложений работающих с SAP системой по протоколу SAP RFC
Содержит утилиту для тестирования RFC - Startrfc.exe
Может использоваться для интеграции с PHP, Perl, VB, С++ ….
StartRFC.exe
StartRFC.exe – получение информации
Подбор клиентов
Перебор паролей и пользователей
StartRFC.exe – успешное подключение
Дальнейшие действия злоумышленника
Проверка авторизаций пользователя для которого был подобран пароль
Обход проверок авторизации
Эксплуатация уязвимостей в SAP приложении
Получение прямого доступа к СУБД
Доступ к файлам и командам ОС
Инструментарий доступный злоумышленнику
Nmap
Sapyto/Bizploit
Wireshark+DIAG plugin
Cain&Abel
John The Ripper
Утилиты для анализа защищенности ОС и СУБД
Что делать?
Настроить профили безопасности в части парольной политики
Периодически проверять пароли пользователей на наличие простых паролей
Использовать таблицу запрещенных паролей USR40
Использовать шифрование между клиентами и серверами приложений
STOP!!! Это еще не все!
Особенности взаимодействия сервера приложений и СУБД
• Для связки сервера приложений и СУБД используется учетная запись SAPSR3 и SAPSR3DB
• Информация об имени и пароле учетной записи хранится в таблице OPS$<SID>ADM.SAPUSER
• Сервис SAP используя специальные механизмы аутентификации Oracle (ОС аутентификация) получает доступ к СУБД и забирает информацию об учетной записи для последующего соединения
Это интересно
Данные о паролях SAPSR3 и SAPSR3DB могут хранится в открытом и шифрованном виде
Шифрование – модифицированный DES с ключом ‘BE HAPPY’ зашитым в код ядра системы
Пользователь OPS$<SID>ADM обладает правами SYSDBA
По требованиям SAP на СУБД Oracle включен режим REMOTE_OS_AUTHENT = TRUEOS_AUTHENT_PREFIX = OPS$
Удаленный вход в СУБД Oracle
Cоздаем локального пользователя с именем <sid>adm
Создаем запись в tnsnames.oratst=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP) (HOST=10.125.151.35)(PORT=1527)))(CONNECT_DATA=(SID=TST)))
Копируем tnsnames.ora в папку home пользователя
Выполняем sqlplus sqlplus /@tst
Профит!