SlideShare a Scribd company logo
1 of 51
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 = TRUE
       OS_AUTHENT_PREFIX = OPS$
Удаленный вход в СУБД 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

       Профит!
Спасибо за внимание!
Юдин Алексей

ayudin@ptsecurity.ru

More Related Content

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

Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-AccessSerghei Urban
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровYandex
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волковkarina krew
 
Intel Security Endpoint Protection 2015
Intel Security Endpoint Protection 2015Intel Security Endpoint Protection 2015
Intel Security Endpoint Protection 2015Vladyslav Radetsky
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPmikhailshurgulaya
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NETPositive Hack Days
 
Василий Суханов — SAP — ICBDA 2015
Василий Суханов — SAP — ICBDA 2015Василий Суханов — SAP — ICBDA 2015
Василий Суханов — SAP — ICBDA 2015rusbase
 
Профстандарт "Системный программист"
Профстандарт "Системный программист"Профстандарт "Системный программист"
Профстандарт "Системный программист"Денис Ефремов
 
Макс Патрол - Система комплексного мониторинга информационной безопасности
Макс Патрол - Система комплексного мониторинга информационной безопасностиМакс Патрол - Система комплексного мониторинга информационной безопасности
Макс Патрол - Система комплексного мониторинга информационной безопасностиNatasha Zaverukha
 
Oracle Application Management and Testing Suites for Siebel CRM
Oracle Application Management and Testing Suites for Siebel CRMOracle Application Management and Testing Suites for Siebel CRM
Oracle Application Management and Testing Suites for Siebel CRMАлексей Распопов
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesAliaksandr Ikhelis
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовSQALab
 
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Ontico
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Fwdays
 
Вебинар компании Ёлва - Возможности Scribe Insight
Вебинар компании Ёлва - Возможности Scribe InsightВебинар компании Ёлва - Возможности Scribe Insight
Вебинар компании Ёлва - Возможности Scribe InsightЁлва
 
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)Ontico
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Igor Miniailo
 

Similar to ERP Глазами Злоумышленника (20)

Embarcadero All-Access
Embarcadero All-AccessEmbarcadero All-Access
Embarcadero All-Access
 
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеровКак защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
Как защитить свой сайт, Пётр Волков, лекция в Школе вебмастеров
 
11 лекция, петр волков
11 лекция, петр волков11 лекция, петр волков
11 лекция, петр волков
 
Intel Security Endpoint Protection 2015
Intel Security Endpoint Protection 2015Intel Security Endpoint Protection 2015
Intel Security Endpoint Protection 2015
 
Database security
Database securityDatabase security
Database security
 
McAfee Encryption 2015
McAfee Encryption 2015McAfee Encryption 2015
McAfee Encryption 2015
 
Inroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAPInroducing SAP ABAP - Presentation with basics SAP ABAP
Inroducing SAP ABAP - Presentation with basics SAP ABAP
 
Взломать сайт на ASP.NET
Взломать сайт на ASP.NETВзломать сайт на ASP.NET
Взломать сайт на ASP.NET
 
Василий Суханов — SAP — ICBDA 2015
Василий Суханов — SAP — ICBDA 2015Василий Суханов — SAP — ICBDA 2015
Василий Суханов — SAP — ICBDA 2015
 
Профстандарт "Системный программист"
Профстандарт "Системный программист"Профстандарт "Системный программист"
Профстандарт "Системный программист"
 
Макс Патрол - Система комплексного мониторинга информационной безопасности
Макс Патрол - Система комплексного мониторинга информационной безопасностиМакс Патрол - Система комплексного мониторинга информационной безопасности
Макс Патрол - Система комплексного мониторинга информационной безопасности
 
Oracle Application Management and Testing Suites for Siebel CRM
Oracle Application Management and Testing Suites for Siebel CRMOracle Application Management and Testing Suites for Siebel CRM
Oracle Application Management and Testing Suites for Siebel CRM
 
Open Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practicesOpen Source Testing Framework: real project example and best practices
Open Source Testing Framework: real project example and best practices
 
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментовРеализация тестового фреймворка на основе OPEN-SOURCE инструментов
Реализация тестового фреймворка на основе OPEN-SOURCE инструментов
 
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
Application Security - ответы на ежедневные вопросы / Сергей Белов (Mail.Ru G...
 
Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"Андрей Чебукин "Построение успешных API"
Андрей Чебукин "Построение успешных API"
 
Вебинар компании Ёлва - Возможности Scribe Insight
Вебинар компании Ёлва - Возможности Scribe InsightВебинар компании Ёлва - Возможности Scribe Insight
Вебинар компании Ёлва - Возможности Scribe Insight
 
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
 
Maleev
MaleevMaleev
Maleev
 
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
Мониторинг веб приложений на PHP в режиме реального времени с помощью Pinba. ...
 

More from Positive Hack Days

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesPositive Hack Days
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerPositive Hack Days
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesPositive Hack Days
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikPositive Hack Days
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQubePositive Hack Days
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityPositive Hack Days
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Positive Hack Days
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Hack Days
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Positive Hack Days
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложенийPositive Hack Days
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложенийPositive Hack Days
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application SecurityPositive Hack Days
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летPositive Hack Days
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиPositive Hack Days
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОPositive Hack Days
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке СиPositive Hack Days
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CorePositive Hack Days
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опытPositive Hack Days
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterPositive Hack Days
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиPositive Hack Days
 

More from Positive Hack Days (20)

Инструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release NotesИнструмент ChangelogBuilder для автоматической подготовки Release Notes
Инструмент ChangelogBuilder для автоматической подготовки Release Notes
 
Как мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows DockerКак мы собираем проекты в выделенном окружении в Windows Docker
Как мы собираем проекты в выделенном окружении в Windows Docker
 
Типовая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive TechnologiesТиповая сборка и деплой продуктов в Positive Technologies
Типовая сборка и деплой продуктов в Positive Technologies
 
Аналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + QlikАналитика в проектах: TFS + Qlik
Аналитика в проектах: TFS + Qlik
 
Использование анализатора кода SonarQube
Использование анализатора кода SonarQubeИспользование анализатора кода SonarQube
Использование анализатора кода SonarQube
 
Развитие сообщества Open DevOps Community
Развитие сообщества Open DevOps CommunityРазвитие сообщества Open DevOps Community
Развитие сообщества Open DevOps Community
 
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
Методика определения неиспользуемых ресурсов виртуальных машин и автоматизаци...
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»Мастер-класс «Трущобы Application Security»
Мастер-класс «Трущобы Application Security»
 
Формальные методы защиты приложений
Формальные методы защиты приложенийФормальные методы защиты приложений
Формальные методы защиты приложений
 
Эвристические методы защиты приложений
Эвристические методы защиты приложенийЭвристические методы защиты приложений
Эвристические методы защиты приложений
 
Теоретические основы Application Security
Теоретические основы Application SecurityТеоретические основы Application Security
Теоретические основы Application Security
 
От экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 летОт экспериментального программирования к промышленному: путь длиной в 10 лет
От экспериментального программирования к промышленному: путь длиной в 10 лет
 
Уязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на граблиУязвимое Android-приложение: N проверенных способов наступить на грабли
Уязвимое Android-приложение: N проверенных способов наступить на грабли
 
Требования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПОТребования по безопасности в архитектуре ПО
Требования по безопасности в архитектуре ПО
 
Формальная верификация кода на языке Си
Формальная верификация кода на языке СиФормальная верификация кода на языке Си
Формальная верификация кода на языке Си
 
Механизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET CoreМеханизмы предотвращения атак в ASP.NET Core
Механизмы предотвращения атак в ASP.NET Core
 
SOC для КИИ: израильский опыт
SOC для КИИ: израильский опытSOC для КИИ: израильский опыт
SOC для КИИ: израильский опыт
 
Honeywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services CenterHoneywell Industrial Cyber Security Lab & Services Center
Honeywell Industrial Cyber Security Lab & Services Center
 
Credential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атакиCredential stuffing и брутфорс-атаки
Credential stuffing и брутфорс-атаки
 

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

  • 1. ERP ГЛАЗАМИ ЗЛОУМЫШЛЕННИКА Юдин Алексей Positive Technologies
  • 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 пользователя
  • 15. Хранение паролей Таблица APPLSYS.FND_USER
  • 16. Хранение паролей Таблица APPLSYS.FND_ORACLE_USERID Столбец Значение Ключ шифрования ENCRYPTED_ORACLE_PASSWORD Пароль пользователя БД Пароль APPS
  • 17. Хранение паролей Таблица APPLSYS.FND_ORACLE_USERID
  • 18. Сценарий Цель – получить учетные записи всех пользователей бизнес приложения В наличии доступ к сетевым сервисам сервера приложений и СУБД Учетные записи у злоумышленника отсутствуют
  • 19. Схема восстановления паролей Получение пароля пользователя Guest
  • 20. Схема восстановления паролей Получение пароля пользователя APPS
  • 21. Схема восстановления паролей Получение паролей остальных пользователей
  • 22. Возможные варианты атаки Получить данные из таблиц APPLSYS.FND_USER и APPLSYS.FND_PROFILE путем SQL инъекций в сервере приложений(веб сервисах) Получить доступ к конфигурационным файлам сервера приложений через уязвимости веб сервисов Получить прямой доступ к таблицам через СУБД
  • 23. Варианты нейтрализации проблемы Смена всех паролей учетных записей СУБД и сервера приложений Разграничение доступа к файлам Ограничение доступа к СУБД только с адресов сервера приложений Применение патча (Metalink Note 457166.1 ), позволяющего использовать необратимые хеши паролей для хранения учетных данных в таблице fnd_users
  • 26. Цели атаки Получение привилегированного доступа к системе • DBA в СУБД • SAP_ALL в приложении SAP • Root или Администратор в ОС Получение неограниченного доступа к данным бизнес модулей Проведение несанкционированных действий связанных с получением материальной выгоды
  • 27. Проблемы безопасности SAP в части аутентификации Учетные записи по умолчанию Хранение паролей Инициализационные пароли Перехват паролей Подбор учетных записей и паролей Массовое блокирование учетных записей
  • 28. Стандартные учетные записи SAP* - 06071992 SAP* - PASS DDIC – 19920706 SAPCPIC – ADMIN EARLYWATCH - SUPPORT TMSADM – PASSWORD
  • 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, С++ ….
  • 43. StartRFC.exe – получение информации Подбор клиентов Перебор паролей и пользователей
  • 44. StartRFC.exe – успешное подключение
  • 45. Дальнейшие действия злоумышленника Проверка авторизаций пользователя для которого был подобран пароль Обход проверок авторизации Эксплуатация уязвимостей в SAP приложении Получение прямого доступа к СУБД Доступ к файлам и командам ОС
  • 46. Инструментарий доступный злоумышленнику Nmap Sapyto/Bizploit Wireshark+DIAG plugin Cain&Abel John The Ripper Утилиты для анализа защищенности ОС и СУБД
  • 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 Профит!
  • 51. Спасибо за внимание! Юдин Алексей ayudin@ptsecurity.ru