Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ERP Глазами Злоумышленника

2,481 views

Published on

Published in: Technology
  • Be the first to comment

ERP Глазами Злоумышленника

  1. 1. ERP ГЛАЗАМИ ЗЛОУМЫШЛЕННИКА Юдин Алексей Positive Technologies
  2. 2. Цели злоумышленника Получение информации Получение материальных благ Нарушение работы бизнеса Формирование плацдарма для дальнейших атак
  3. 3. Методы достижения цели Формирование цели для атаки Обнаружение Сбор информации Поиск уязвимостей Эксплуатация уязвимостей Получение профита
  4. 4. Основные цели атаки Бизнес приложения Платежные системы Базы данных АСУ ТП Рабочие станции
  5. 5. Особенности архитектуры бизнес приложений Различные технологические платформы, СУБД, серверы приложений ,клиентское ПО Большое количество связей между компонентами Разные протоколы взаимодействия Большие объемы данных Распределенная архитектура Множество технологий разработки
  6. 6. Особенность архитектуры со стороны ИБ Большая поверхность атак Сложность администрирования Длительное тестирование обновлений и внесение изменений Часть компонентов бизнес приложения самодостаточны (отдельные пользователи, сервисы, группы настроек)
  7. 7. ORACLE E-BUSINESSSUITE
  8. 8. Архитектура OEBS
  9. 9. Особенности OEBS OEBS – сложное для анализа и очень массивное приложение (миллионы строк кода, многочисленные языки программирования) Использование разных технологий в технологическом стеке (часто устаревших) Интеграция с другими бизнес системами Большое количество функциональных модулей
  10. 10. Особенности системы Использование пользователя БД – APPS Наличие пользователей БД APPLSYSPUB и GUEST Учетные записи с паролями по умолчанию Конфигурация профилей OEBS не безопасна
  11. 11. Пароли по умолчанию в СУБД SYSTEM/MANAGER DBSNMP/DBSNMP APPS/APPS APPLSYSPUB/PUB + много паролей бизнес модулей типа HR/HR (не все из этих учетных записей имеют права на подключение к СУБД)
  12. 12. Пользователи GUEST и APPLSYSPUB Пользователь GUEST – пользователь уровня приложений, используется OEBS для служебных целей.Пароль по умолчанию – ORACLE. Пользователь APPLSYSPUB – пользователь БД, используемый приложением для начальной аутентификации пользователя приложения
  13. 13. Учетная запись APPS Используется сервером приложений для работы с СУБД Является привилегированной учетной записью Пароль учетной записи используется для восстановления мастер пароля (которым шифруются учетные записи бизнес приложения) Хранится в открытом виде на сервере приложений
  14. 14. Хранение паролей OEBS Таблица APPLSYS.FND_USER Столбец Значение Ключ шифрования ENCRYPTED_FOUNDATION_PASSWORD Пароль APPS Имя пользователя/пароль ENCRYPTED_USER_PASSWORD Пароль Пароль APPS пользователя
  15. 15. Хранение паролей Таблица APPLSYS.FND_USER
  16. 16. Хранение паролей Таблица APPLSYS.FND_ORACLE_USERID Столбец Значение Ключ шифрования ENCRYPTED_ORACLE_PASSWORD Пароль пользователя БД Пароль APPS
  17. 17. Хранение паролей Таблица APPLSYS.FND_ORACLE_USERID
  18. 18. Сценарий Цель – получить учетные записи всех пользователей бизнес приложения В наличии доступ к сетевым сервисам сервера приложений и СУБД Учетные записи у злоумышленника отсутствуют
  19. 19. Схема восстановления паролей Получение пароля пользователя Guest
  20. 20. Схема восстановления паролей Получение пароля пользователя APPS
  21. 21. Схема восстановления паролей Получение паролей остальных пользователей
  22. 22. Возможные варианты атаки Получить данные из таблиц APPLSYS.FND_USER и APPLSYS.FND_PROFILE путем SQL инъекций в сервере приложений(веб сервисах) Получить доступ к конфигурационным файлам сервера приложений через уязвимости веб сервисов Получить прямой доступ к таблицам через СУБД
  23. 23. Варианты нейтрализации проблемы Смена всех паролей учетных записей СУБД и сервера приложений Разграничение доступа к файлам Ограничение доступа к СУБД только с адресов сервера приложений Применение патча (Metalink Note 457166.1 ), позволяющего использовать необратимые хеши паролей для хранения учетных данных в таблице fnd_users
  24. 24. SAP NETWEAVER
  25. 25. Архитектура SAP
  26. 26. Цели атаки Получение привилегированного доступа к системе • DBA в СУБД • SAP_ALL в приложении SAP • Root или Администратор в ОС Получение неограниченного доступа к данным бизнес модулей Проведение несанкционированных действий связанных с получением материальной выгоды
  27. 27. Проблемы безопасности SAP в части аутентификации Учетные записи по умолчанию Хранение паролей Инициализационные пароли Перехват паролей Подбор учетных записей и паролей Массовое блокирование учетных записей
  28. 28. Стандартные учетные записи SAP* - 06071992 SAP* - PASS DDIC – 19920706 SAPCPIC – ADMIN EARLYWATCH - SUPPORT TMSADM – PASSWORD
  29. 29. Хранение паролей Пароли ABAP пользователей хранятся в таблицах USR02, USH02, USRPWDHISTORY Различные алгоритмы хеширования: A,B,D,E,F,G,H,I Наличие уязвимостей в алгоритмах хеширования Наличие автоматизированных средств анализа стойкости паролей
  30. 30. Уязвимости алгоритмов хеширования CODVN A – устаревший алгоритм разработанный SAP – длина пароля <=8, символы в UPPERCASE CODVN B – устаревший алгоритм на базе MD5, длина пароля <=8 остальная часть пароля обрезается, все символы в UPPERCASE, спецсимволы заменяются на символ ^
  31. 31. Уязвимости алгоритмов хеширования CODVN D – также устаревший алгоритм предназначался для того чтобы исправить ошибки алгоритма B – в части урезания паролей и использования спец символов CODVN E – пришел на смену паролям B и D и был призван устранить их проблемы, работает в версиях с 4.6x до 6.x • SAP Note 874738 - New password hash calculation procedure (code version E)
  32. 32. Уязвимости алгоритмов хеширования CODVN F – наиболее часто используемый на текущий момент алгоритм хеширования, основан на SHA1, длина пароля до 40 символов , перед хешированием строки переводятся в UTF- 8, поэтому символы могут быть практически любые, работает в версиях начиная с 7.00
  33. 33. Уязвимости алгоритмов хеширования CODVN G = B+F – можно подобрать сначала часть пароля размером в 8 символов по алгоритму B а затем использовать эту часть для подбора пароля по алгоритму G, работает в версиях начиная с 7.00
  34. 34. Уязвимости алгоритмов хеширования CODVN H – наиболее безопасный алгоритм хеширования – основан на SHA1 с переменной длиной соли, работает в версиях начиная с 7.02 CODVN I = B+F+H – проблемы аналогичные G Скорость подбора паролей • до 700 000 паролей в секунду для CODVN B • до 300 000 паролей в секунду для CODVN G
  35. 35. Инициализационные пароли Простые инициализационные пароли: 123456, 1234567, 12345678 … Неограниченный срок действия инициализационных пароле • login/password_max_idle_initial=0 (deactivated by default) • login/password_max_idle_initial=0 (deactivated by default) Отсутствие требований по сложности для паролей устанавливаемых администратором
  36. 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)
  37. 37. Перехват паролей DIAG
  38. 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. 39. Сценарий атаки Поиск SAP систем и доступных сервисов Попытка подбора паролей • Проверка стандартных учетных записей • Подбор паролей с использованием списка сотрудников компании (полученных из AD, телефонных справочников, Email…) Перехват паролей пользователей (MITM) Получение и анализ хешей паролей
  40. 40. Схема атаки
  41. 41. Автоматизация атаки. SAP RFCSDK SAP RFCSDK – библиотека для разработки приложений работающих с SAP системой по протоколу SAP RFC Содержит утилиту для тестирования RFC - Startrfc.exe Может использоваться для интеграции с PHP, Perl, VB, С++ ….
  42. 42. StartRFC.exe
  43. 43. StartRFC.exe – получение информации Подбор клиентов Перебор паролей и пользователей
  44. 44. StartRFC.exe – успешное подключение
  45. 45. Дальнейшие действия злоумышленника Проверка авторизаций пользователя для которого был подобран пароль Обход проверок авторизации Эксплуатация уязвимостей в SAP приложении Получение прямого доступа к СУБД Доступ к файлам и командам ОС
  46. 46. Инструментарий доступный злоумышленнику Nmap Sapyto/Bizploit Wireshark+DIAG plugin Cain&Abel John The Ripper Утилиты для анализа защищенности ОС и СУБД
  47. 47. Что делать? Настроить профили безопасности в части парольной политики Периодически проверять пароли пользователей на наличие простых паролей Использовать таблицу запрещенных паролей USR40 Использовать шифрование между клиентами и серверами приложений
  48. 48. STOP!!! Это еще не все! Особенности взаимодействия сервера приложений и СУБД • Для связки сервера приложений и СУБД используется учетная запись SAPSR3 и SAPSR3DB • Информация об имени и пароле учетной записи хранится в таблице OPS$<SID>ADM.SAPUSER • Сервис SAP используя специальные механизмы аутентификации Oracle (ОС аутентификация) получает доступ к СУБД и забирает информацию об учетной записи для последующего соединения
  49. 49. Это интересно Данные о паролях SAPSR3 и SAPSR3DB могут хранится в открытом и шифрованном виде Шифрование – модифицированный DES с ключом ‘BE HAPPY’ зашитым в код ядра системы Пользователь OPS$<SID>ADM обладает правами SYSDBA По требованиям SAP на СУБД Oracle включен режим REMOTE_OS_AUTHENT = TRUE OS_AUTHENT_PREFIX = OPS$
  50. 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 Профит!
  51. 51. Спасибо за внимание!Юдин Алексейayudin@ptsecurity.ru

×