SlideShare a Scribd company logo
1 of 24
Особенности транспортной
системы SAP
Ключников Олег
ведущий эксперт отдела безопасности баз данных и бизнес
приложений
Positive Technologies
Стандартная схема транспортной
системы SAP
DEV QUA PRD
Путь транспортного запроса
sapmnt
2 4 6
3 5
CHANGES CHANGES CHANGES
FILE
1
DEV QUA PRD
Описание пути транспортного запроса
1. Создание изменений в системе (ABAP код)
2. Деблокирование запроса (генерация файла запроса)
3. Процедура утверждения переноса запроса
4. Перенос запроса в тестовую систему
5. Процедура утверждения переноса запроса
6. Перенос запроса в продуктивную систему
Особенности транспортной системы с
точки зрения ИБ
― Все транспортные запросы находятся в общих папках
― Доступ к общим папкам, как правило, открыт для всех с
правом на изменение
― Контроль за исходным кодом запроса при переносе из
QUA в продуктив в большинстве случаев не
осуществляется
― Количество запросов ОЧЕНЬ большое, затруднён ручной
контроль
Недостатки транспортной системы
― Возможность подмены исходного кода в транспортном
запросе при передаче через общие папки (изменение
файла запроса)
― Алгоритм шифрования файлов запросов недостаточно
стойкий
• ключи статические
• алгоритм шифрования собственный
• защита алгоритма шифрования обеспечивается только
через обфускацию
― Механизм контроля целостности/подписи файлов
запросов отсутствует
1. Ищем транспортные директории (общие папки с
запросами )
2. Выбираем файл запроса
3. Изменяем содержимое файла
4. Ожидаем переноса запроса в продуктив
5. Профит !!!
Сценарий атаки
1. Поиск директории sapmnt.
Допустим транспортная система расположена на системе
разработки
Ищем общие папки с названием sapmnt
2. Нас интересует содержимое папки, расположенной по
пути SAPDEVsapmnttransdata
Если файлы в этой директории доступны на запись, находим
файл запроса с актуальной датой. Предполагаем, что запрос
ещё не переносился.
3. Изменение файла запроса
― формируем ABAP код на другой системе
― учитываем исполнение кода на целевой системе (когда и
где он сработает )
― в ABAP коде сформирована программа позволяющая
создать пользователя с профилем SAP_ALL
― Скрываем код/программу в запросе
• Через механизм include
• Через обфускацию собственного кода
• Разделяем свой код на несколько запросов (для наиболее
терпеливых)
Распаковываем запрос в текстовый файл
Получаем файл, выглядящий так
― Добавляем в файл запроса свой код
― Запаковываем файл обратно
― Переписываем файл обратно в транспортную директорию,
по возможности сохранив время и даты создания файла
sapmnt
2 4
1 3
CHANGES CHANGES CHANGES
FILE
DEV QUA PRD
Путь изменённого файла запроса
Описание пути изменённого файла
запроса
1. Процедура утверждения переноса запроса
2. Перенос запроса в тестовую систему
3. Процедура утверждения переноса запроса
4. Перенос запроса в продуктивную систему
sapmnt
CHANGES CHANGES
FILE
QUA PRD
4.Ждем переноса транспортного запроса
sapmnt
CHANGES CHANGES
FILE
QUA PRD
5.Наш код в продуктиве !!!
― Срабатывает автоматически (JOB, системная программа) и
присылает уведомление об успешном запуске
― Срабатывает при запуске транзакции или отчёта любым
пользователем системы
― Выгружает и отправляет данные в другую систему или
файловую папку
― Можете заходить в систему с полномочиями SAP_ALL
Варианты использования измененного
кода
Варианты модификации кода
― Бэкдор от имени скрытого пользователя
― Обычный пользователь с правами SAP_ALL
― Временное отключение проверок авторизации
― Создание/разблокирование/смена пароля пользователям
в центральной системе управления пользователями (CUA)
― Программа или транзакция для чтения произвольных
таблиц
― RFC программа , выполняющая любую транзакцию без
проверки авторизации
Import request via the CLI (Command
Line Interface)
It is possible to add transport requests to the buffer, and even
import them via the CLI (Command Line Interface). Keep in
mind, whenever working on an instance at the OS level, you
should be logged in as [sid]adm.
To add transports to the buffer:
tp addtobuffer [transport number] [SID] Client=[client number]
pf=/usr/sap/trans/bin/TP_DOMAIN_[DOMAIN_SID].PFL
tp addtobuffer DEVK900072QAS Client=800
pf=/usr/sap/trans/bin/TP_DOMAIN_DEV.PFL
To import transports via CLI:
tp pf=/usr/sap/trans/bin/TP_DOMAIN_[DOMAIN_SID].PFL
import [transport number] [SID] U128 client=400
Since I’ve added DEVK900072 to the buffer, I can now import it
with this string:
tp pf=/usr/sap/trans/bin/TP_DOMAIN_DEV.PFL import
DEVK900072 QAS U128 client=800
Конец рассказа
Спасибо за внимание
Ключников Олег
oklyuchnikov@ptsecurity.ru
ведущий эксперт отдела безопасности баз данных и бизнес
приложений
Positive Technologies
24may 1600 valday особенности транспортной системы sap 'особенности транспортной системы sap'

More Related Content

What's hot

2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays Highload2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays HighloadYehor Herasymchuk
 
Асинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, CometАсинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, CometАндрей Федоровский
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Ontico
 
Беспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLБеспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLДмитрий Васильев
 

What's hot (7)

2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays Highload2020.10.13 HA Redis is simple. FWDays Highload
2020.10.13 HA Redis is simple. FWDays Highload
 
Асинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, CometАсинхронная обработка данных: RabbitMQ, Comet
Асинхронная обработка данных: RabbitMQ, Comet
 
Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)Мой маленький уютный PaaS / Илья Беда (bro.agency)
Мой маленький уютный PaaS / Илья Беда (bro.agency)
 
Беспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQLБеспроблемная эксплуатация PostgreSQL
Беспроблемная эксплуатация PostgreSQL
 
Scaling PostgreSQL
Scaling PostgreSQLScaling PostgreSQL
Scaling PostgreSQL
 
PostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimmPostgreSQL on sas/ssd/nvme/nvdimm
PostgreSQL on sas/ssd/nvme/nvdimm
 
Управление версиями в TFS 2008
Управление версиями в TFS 2008Управление версиями в TFS 2008
Управление версиями в TFS 2008
 

Similar to 24may 1600 valday особенности транспортной системы sap 'особенности транспортной системы sap'

C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.Igor Shkulipa
 
КГТУ Лекция 7: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 7: Обеспечение Качества Программного Обеспечения КГТУ Лекция 7: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 7: Обеспечение Качества Программного Обеспечения Iosif Itkin
 
Azure web apps - designing and debugging
Azure web apps  - designing and debuggingAzure web apps  - designing and debugging
Azure web apps - designing and debuggingAlexey Bokov
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоАлександр Ежов
 
Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Alexey Lesovsky
 
Решения для мониторинга ИТ-инфраструктуры. Как правильно сделать выбор? Часть 1
Решения для мониторинга ИТ-инфраструктуры.  Как правильно сделать выбор? Часть 1Решения для мониторинга ИТ-инфраструктуры.  Как правильно сделать выбор? Часть 1
Решения для мониторинга ИТ-инфраструктуры. Как правильно сделать выбор? Часть 1СвязьКомплект
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ontico
 
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Fwdays
 
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...COMAQA.BY
 
6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительностиvyacheslavmaslov
 
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко АлексейSolit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексейsolit
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeYehor Herasymchuk
 
Подход Oracle к управлению метаданными для аналитических систем
Подход Oracle к управлению метаданными для аналитических системПодход Oracle к управлению метаданными для аналитических систем
Подход Oracle к управлению метаданными для аналитических системAndrey Akulov
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSYandex
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)Ontico
 
Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Fwdays
 
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотестыСпецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты7bits
 

Similar to 24may 1600 valday особенности транспортной системы sap 'особенности транспортной системы sap' (20)

C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.C++ STL & Qt. Занятие 07.
C++ STL & Qt. Занятие 07.
 
КГТУ Лекция 7: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 7: Обеспечение Качества Программного Обеспечения КГТУ Лекция 7: Обеспечение Качества Программного Обеспечения
КГТУ Лекция 7: Обеспечение Качества Программного Обеспечения
 
Jmeter
JmeterJmeter
Jmeter
 
Azure web apps - designing and debugging
Azure web apps  - designing and debuggingAzure web apps  - designing and debugging
Azure web apps - designing and debugging
 
FT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это простоFT & HA Rails приложений приложений — это просто
FT & HA Rails приложений приложений — это просто
 
Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.Highload 2014. PostgreSQL: ups, DevOps.
Highload 2014. PostgreSQL: ups, DevOps.
 
Решения для мониторинга ИТ-инфраструктуры. Как правильно сделать выбор? Часть 1
Решения для мониторинга ИТ-инфраструктуры.  Как правильно сделать выбор? Часть 1Решения для мониторинга ИТ-инфраструктуры.  Как правильно сделать выбор? Часть 1
Решения для мониторинга ИТ-инфраструктуры. Как правильно сделать выбор? Часть 1
 
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
Ускоряем и разгружаем веб-сервер, прозрачно кэшируя на SSD, Станислав Николов...
 
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
Anton Tsitou "Designing hybrid Go/PHP applications using RoadRunner"
 
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...
COMAQA.BY Conf #2: "Codeception + PHP for QA Automation", Евгений Борисик, CO...
 
SAP hands on lab_ru
SAP hands on lab_ruSAP hands on lab_ru
SAP hands on lab_ru
 
6 лекция. тестирование производительности
 6 лекция. тестирование производительности 6 лекция. тестирование производительности
6 лекция. тестирование производительности
 
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко АлексейSolit 2013, Эволюция тестирования на Selenium, Мычко Алексей
Solit 2013, Эволюция тестирования на Selenium, Мычко Алексей
 
Zero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And ForgeZero Downtime PHP Deployment with Envoyer And Forge
Zero Downtime PHP Deployment with Envoyer And Forge
 
Подход Oracle к управлению метаданными для аналитических систем
Подход Oracle к управлению метаданными для аналитических системПодход Oracle к управлению метаданными для аналитических систем
Подход Oracle к управлению метаданными для аналитических систем
 
Вячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPSВячеслав Бирюков - HTTP и HTTPS
Вячеслав Бирюков - HTTP и HTTPS
 
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
PostgreSQL - Ups, DevOps..., Алексей Лесовский (PostgreSQL-Consulting)
 
Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"
 
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотестыСпецкурс 2014, занятие 4. Конфиги, сборка, автотесты
Спецкурс 2014, занятие 4. Конфиги, сборка, автотесты
 
Sivko
SivkoSivko
Sivko
 

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 и брутфорс-атаки
 

24may 1600 valday особенности транспортной системы sap 'особенности транспортной системы sap'

  • 1.
  • 2. Особенности транспортной системы SAP Ключников Олег ведущий эксперт отдела безопасности баз данных и бизнес приложений Positive Technologies
  • 4. Путь транспортного запроса sapmnt 2 4 6 3 5 CHANGES CHANGES CHANGES FILE 1 DEV QUA PRD
  • 5. Описание пути транспортного запроса 1. Создание изменений в системе (ABAP код) 2. Деблокирование запроса (генерация файла запроса) 3. Процедура утверждения переноса запроса 4. Перенос запроса в тестовую систему 5. Процедура утверждения переноса запроса 6. Перенос запроса в продуктивную систему
  • 6. Особенности транспортной системы с точки зрения ИБ ― Все транспортные запросы находятся в общих папках ― Доступ к общим папкам, как правило, открыт для всех с правом на изменение ― Контроль за исходным кодом запроса при переносе из QUA в продуктив в большинстве случаев не осуществляется ― Количество запросов ОЧЕНЬ большое, затруднён ручной контроль
  • 7. Недостатки транспортной системы ― Возможность подмены исходного кода в транспортном запросе при передаче через общие папки (изменение файла запроса) ― Алгоритм шифрования файлов запросов недостаточно стойкий • ключи статические • алгоритм шифрования собственный • защита алгоритма шифрования обеспечивается только через обфускацию ― Механизм контроля целостности/подписи файлов запросов отсутствует
  • 8. 1. Ищем транспортные директории (общие папки с запросами ) 2. Выбираем файл запроса 3. Изменяем содержимое файла 4. Ожидаем переноса запроса в продуктив 5. Профит !!! Сценарий атаки
  • 9. 1. Поиск директории sapmnt. Допустим транспортная система расположена на системе разработки Ищем общие папки с названием sapmnt
  • 10. 2. Нас интересует содержимое папки, расположенной по пути SAPDEVsapmnttransdata
  • 11. Если файлы в этой директории доступны на запись, находим файл запроса с актуальной датой. Предполагаем, что запрос ещё не переносился.
  • 12. 3. Изменение файла запроса ― формируем ABAP код на другой системе ― учитываем исполнение кода на целевой системе (когда и где он сработает ) ― в ABAP коде сформирована программа позволяющая создать пользователя с профилем SAP_ALL ― Скрываем код/программу в запросе • Через механизм include • Через обфускацию собственного кода • Разделяем свой код на несколько запросов (для наиболее терпеливых)
  • 13. Распаковываем запрос в текстовый файл Получаем файл, выглядящий так
  • 14. ― Добавляем в файл запроса свой код ― Запаковываем файл обратно ― Переписываем файл обратно в транспортную директорию, по возможности сохранив время и даты создания файла
  • 15. sapmnt 2 4 1 3 CHANGES CHANGES CHANGES FILE DEV QUA PRD Путь изменённого файла запроса
  • 16. Описание пути изменённого файла запроса 1. Процедура утверждения переноса запроса 2. Перенос запроса в тестовую систему 3. Процедура утверждения переноса запроса 4. Перенос запроса в продуктивную систему
  • 17. sapmnt CHANGES CHANGES FILE QUA PRD 4.Ждем переноса транспортного запроса
  • 18. sapmnt CHANGES CHANGES FILE QUA PRD 5.Наш код в продуктиве !!!
  • 19. ― Срабатывает автоматически (JOB, системная программа) и присылает уведомление об успешном запуске ― Срабатывает при запуске транзакции или отчёта любым пользователем системы ― Выгружает и отправляет данные в другую систему или файловую папку ― Можете заходить в систему с полномочиями SAP_ALL Варианты использования измененного кода
  • 20. Варианты модификации кода ― Бэкдор от имени скрытого пользователя ― Обычный пользователь с правами SAP_ALL ― Временное отключение проверок авторизации ― Создание/разблокирование/смена пароля пользователям в центральной системе управления пользователями (CUA) ― Программа или транзакция для чтения произвольных таблиц ― RFC программа , выполняющая любую транзакцию без проверки авторизации
  • 21. Import request via the CLI (Command Line Interface) It is possible to add transport requests to the buffer, and even import them via the CLI (Command Line Interface). Keep in mind, whenever working on an instance at the OS level, you should be logged in as [sid]adm. To add transports to the buffer: tp addtobuffer [transport number] [SID] Client=[client number] pf=/usr/sap/trans/bin/TP_DOMAIN_[DOMAIN_SID].PFL tp addtobuffer DEVK900072QAS Client=800 pf=/usr/sap/trans/bin/TP_DOMAIN_DEV.PFL
  • 22. To import transports via CLI: tp pf=/usr/sap/trans/bin/TP_DOMAIN_[DOMAIN_SID].PFL import [transport number] [SID] U128 client=400 Since I’ve added DEVK900072 to the buffer, I can now import it with this string: tp pf=/usr/sap/trans/bin/TP_DOMAIN_DEV.PFL import DEVK900072 QAS U128 client=800
  • 23. Конец рассказа Спасибо за внимание Ключников Олег oklyuchnikov@ptsecurity.ru ведущий эксперт отдела безопасности баз данных и бизнес приложений Positive Technologies