Руководство по интеграция единого входа azure active directory с sap netweaver

Введение

SAP — это разработчик программного обеспечения для автоматизации бизнес-процессов, выпускающий огромное множество одноименных продуктов. Наиболее популярна из них SAP ERP (Enterprise Resource Planning) — система управления ресурсами предприятия, которая хранит и обрабатывает все критически важные данные о компании, например информацию о поставщиках, зарплатные данные, финансовую отчетность и прочее. Такая автоматизированная система позволяет эффективно решать комплексные задачи, включая оптимальное распределение бизнес-ресурсов, обеспечение быстрой и эффективной доставки товаров и услуг потребителю. В отличие от, например, бухгалтерских программ, которые позволяют только вести бизнес-учет, ERP обеспечивает информационную поддержку принятия управленческих решений. Стоит отметить, что ERP позволяет оптимизировать не только внутренние процессы предприятия, но и бизнес-процессы деловых партнеров и клиентов.

Существует миф о том, что SAP ERP — это безопасная система и единственная проблема безопасности в этой системе — матрица SOD (матрица разграничения полномочий), то есть матрица, где описывается, какие наборы привилегий в системе не стоит давать одному пользователю. К примеру, если пользователь может создать платежное поручение на какую-нибудь фирму, а также проапрувить это поручение, то он может совершать различные мошеннические операции. Таких пересечений существует больше двухсот, в зависимости от области бизнеса

Естественно, данная матрица очень важна, и ее создание и соблюдение крайне сложная задача, но еще более важно, чтобы лица, которые вообще не имеют никакого доступа в SAP, не смогли стать там администраторами

За последние пять лет появилось много исследований в области безопасности SAP (по недавним подсчетам, около ста уникальных работ), начиная от атак на SAP GUI и SAP Router и заканчивая архитектурными уязвимостями в протоколе RFC и уязвимостями программ, написанных на ABAP. SAP, в свою очередь, тоже не дремлет и расширяет отдел Security Response Team, который отвечает за контакты с внешними исследователями. С ними мы постоянно сотрудничаем, консультируя о новых способах взлома и возможных вариантах защиты. Кроме того, компания SAP выпускает стандарты по техническим вопросам безопасности SAP, подтверждая существование проблемы, связанной с отсутствием единой базы требований к безопасности, а также покупает компании разработчиков систем безопасности, таких как, например, поставщик решений по шифрованию трафика Secude.

Разглашение информации

Средняя критичность. Зачастую не позволяет атаковать компанию напрямую, но помогает для дальнейших атак. Были обнаружены следующие уязвимости:

Наверное, самый интересный пример — это последний. В одном из веб-сервисов была обнаружена интересная деталь. В качестве входных данных можно передать IP-адрес и порт сервера для просмотра неких данных. Нам же гораздо интереснее с помощью данной уязвимости просканировать внутреннюю сеть компании на предмет открытых портов и запущенных сервисов. Скрипт вызывается следующим образом. В качестве server и port указываем произвольные данные для сканирования и по ответу сервера узнаем, открыт порт или нет.

Экспериментируем с входными данными 

Настройка и проверка единого входа Azure AD для SAP NetWeaver

Настройте и проверьте единый вход AAD в SAP NetWeaver с помощью тестового пользователя B.Simon. Для обеспечения работы единого входа необходимо установить связь между пользователем Azure AD и соответствующим пользователем в SAP NetWeaver.

Чтобы настроить и проверить единый вход Azure AD в SAP NetWeaver, выполните действия из следующих стандартных блоков.

  1. необходима, чтобы пользователи могли использовать эту функцию.
    1. требуется для проверки работы единого входа Azure AD от имени пользователя B.Simon.
    2. необходимо, чтобы позволить B.Simon использовать единый вход Azure AD.
  2. необходима, чтобы настроить параметры единого входа на стороне приложения.
    1. требуется для создания пользователя B.Simon в SAP NetWeaver, связанного с соответствующим пользователем в AAD.
  3. необходима, чтобы убедиться в корректной работе конфигурации.
  4. необходима, чтобы настроить параметры OAuth на стороне приложения.

Зачем нужна интеграция API?

Возможность подключения к API помогает приложениям обмениваться данными и взаимодействовать друг с другом без вмешательства человека. Вы обеспечиваете связь между двумя веб-инструментами или приложениями через их API. Это позволяет организациям автоматизировать системы, улучшить беспрепятственный обмен данными и интегрировать текущие приложения.

Предприятия не могут игнорировать важность интеграции API в современном мире. После стремительного роста количества облачных продуктов и приложений организациям необходимо создать подключенную систему, в которой данные будут автоматически передаваться между различными программными инструментами

Интеграция API делает это возможным, поскольку позволяет обмениваться данными процессов и предприятия между приложениями в данной экосистеме.

Это открывает новый уровень гибкости предоставления информации и услуг. Это также упрощает встраивание контента с разных сайтов и приложений. API действует как интерфейс, позволяющий интегрировать два приложения.

SAP в интернете

Сейчас нет ни одной статьи про какую-нибудь систему, где бы не добавляли ко всему прочему Google Dorks для поиска этих систем в интернете. Поступим так же и мы. Поместив в строку поиска несложное выражение, например inurl:/irj/portal (находит десятки тысяч систем), inurl:/wsnavigator/jsps/test.jsp (находит 2430 записей) или inurl:IciEventServicesap, inurl:IciEventService/IciEventConf, inurl:/irj/go/km/docs/, можно обнаружить SAP-серверы крупнейших мировых компаний, доступные через интернет, ну а теперь перейдем к основным уязвимостям и практике.

Google — незаменимый помощник. Запрос показывает SAP-сервера компаний 

Настройка OAuth в SAP NetWeaver

  1. Документированный процесс SAP можно получить по следующему адресу: NetWeaver Gateway Service Enabling and OAuth 2.0 Scope Creation (Включение службы шлюза NetWeaver и создание области OAuth 2.0)

  2. Перейдите к SPRO и найдите раздел Activate and Maintain services (Активация и обслуживание служб).

  3. В этом примере мы хотим подключить службу OData: к Azure AD SSO с использованием OAuth. Примените поиск имени технической службы для службы и активируйте ее, если она еще не активна (состояние на вкладке узлов ICF). Убедитесь в правильности системного псевдонима (подключенной серверной системы, где фактически работает служба).

    Затем нажмите кнопку OAuth на верхней панели кнопок и присвойте значение scope (сохраните предложенное по умолчанию имя).

  4. В нашем примере используется область , которая автоматически создается из имени службы добавлением некоторого числа. Отчет можно использовать для изменения имени области или создания области вручную.

    Примечание

    Сообщение можно спокойно игнорировать.

Создание пользователя службы для клиента OAuth 2.0

OAuth2 использует для получения маркера доступа для конечного пользователя от его имени

Важное ограничение по использованию OAuth: значение должно быть идентично значению , которое клиент OAuth 2.0 использует для входа при запросе маркера доступа. Таким образом, в нашем примере мы будем регистрировать клиент OAuth 2.0 с именем CLIENT1, а значить в системе SAP должен существовать пользователь с тем же именем (CLIENT1), который и будет настроен для использования в этом приложении.

При регистрации клиента OAuth мы используем .

Примечание
Дополнительные сведения о регистрации клиента OAuth 2.0 для типа предоставления носителя SAML см

здесь.

tcod: SU01 / Создайте пользователя CLIENT1 как и назначьте пароль, затем сохраните его для передачи учетных данных программисту API, который должен включить пароль и соответствующее имя пользователя в вызывающий код. Не следует назначать профили или роли.

Регистрация нового идентификатора клиента OAuth 2.0 с помощью мастера создания

  1. Чтобы зарегистрировать новый клиент OAuth 2.0, запустите транзакцию SOAUTH2. Эта транзакция отобразит обзорные сведения об уже зарегистрированных клиентах OAuth 2.0. Щелкните Создать, чтобы запустить мастер для создания клиента OAuth с именем CLIENT1 для нашего примера.

  2. Перейдите к коду T-Code: SOAUTH2 и предоставьте описание, а затем щелкните Далее.

  3. Выберите уже добавленный элемент SAML2 IdP – Azure AD из раскрывающегося списка и сохраните изменения.

  4. Щелкните Добавить в разделе назначения области, чтобы добавить созданную ранее область .

  5. Щелкните Готово.

Начнем, пожалуй

Все основные продукты SAP используют одну из трех платформ: NetWeaver ABAP, NetWeaver JAVA и Business Objects. Платформа NetWeaver JAVA используется во множестве продуктов SAP, обеспечивающих интеграцию и контроль над бизнес-приложениями. Это такие продукты, как SAP Portal, SAP Mobile Infrastructure, SAP XI и Solution Manager, а также ряд менее популярных решений. Критичность данных систем нельзя недооценить, так как они обеспечивают интеграцию с другими системами и, например, взломав SAP Portal предприятия через интернет, можно получить доступ к другим ресурсам компании через Single Sign-On или, например, через уязвимый SAP Solution Manager (аналог контроллера домена и сервера обновлений в Windows-среде) можно внедрить злонамеренный код во все подключенные к нему SAP-системы.

Наши исследования безопасности JAVA движка SAP, начатые более трех лет назад, привели к тому, что было обнаружено около двухсот уязвимостей, большая часть которых на данный момент закрывается производителем, и осталось еще много неизученных областей, над которыми ведется работа. Практически все уязвимости не являются единичными, а представляют собой целый класс проблем, примеры которого постоянно обнаруживаются. Наиболее критичные из обнаруженных уязвимостей позволяют обойти механизм аутентификации и выполнить любое действие в системе удаленно, не используя никаких пользовательских данных. В случае если система имеет доступ в интернет, то даже двухфакторная аутентификация не спасет от данной атаки и злоумышленник сможет элементарно получить доступ к сердцу компании удаленно.

Названия служб SAP и соответствующие им номера портов
Другие статьи в выпуске:

Добавление SAP NetWeaver из коллекции

Чтобы настроить интеграцию SAP NetWeaver с Azure AD, необходимо добавить SAP NetWeaver из коллекции в список управляемых приложений SaaS.

  1. Войдите на портал Azure с помощью личной учетной записи Майкрософт либо рабочей или учебной учетной записи.
  2. В области навигации слева выберите службу Azure Active Directory.
  3. Перейдите в колонку Корпоративные приложения и выберите Все приложения.
  4. Чтобы добавить новое приложение, выберите Новое приложение.
  5. В разделе Добавление из коллекции в поле поиска введите SAP NetWeaver.
  6. Выберите SAP NetWeaver в области результатов и добавьте это приложение. Подождите несколько секунд, пока приложение не будет добавлено в ваш клиент.

Кроме того, можно также использовать . В этом мастере можно добавить приложение в клиент, добавить пользователей и группы в приложение, назначить роли, а также просмотреть конфигурацию единого входа. Подробнее о мастерах Microsoft 365.

Атаки на платформу и приложения

SAP NetWeaver J2EE Engine представляет собой сервер приложений стандарта J2EE, который позволяет размещать приложения, написанные на Java. Его можно сравнить со знакомым всем Apache Tomcat, только на несколько порядков больше и сложнее, а там, где есть сложность, непременно появляются уязвимости. На данном сервере, собственно, и располагаются сами бизнес-системы (SAP Portal, SAP XI, SAP PI или, например, SolutionManager), а также приложения собственной разработки. Такие крупные системы состоят из более мелких приложений (Applications), которые по сложности зачастую сопоставимы с полноценным веб-проектом. Данных приложений по умолчанию устанавливается множество. Например, в версии NetWeaver 6.40 их около 500, а в версии 7.2 их уже 1200. На самом деле, помимо веб-сервиса с уймой приложений, движок слушает множество портов различными службами. Там тоже очень много интересного, но это тема для отдельной статьи.

Масштабы впечатляют, а если учитывать, что каждое приложение имеет, помимо общих, также и свои настройки безопасности и уязвимости, то адекватная защита всей платформы, не считая вариант отключения от сети, представляет собой крайне непростую задачу. Рассмотрим основные типы уязвимостей, которые были обнаружены нашим исследовательским центром.

Процесс интеграции API

На выбор предлагаются различные инструменты интеграции API, и после того, как вы выберете предпочтительный, вы должны выполнить определенный процесс, который состоит из трех основных частей.

Во-первых, вам нужно оценить свои цели и бизнес-процессы. После определения болевых точек вы сможете понять, как интеграция внутренней и внешней платформ может помочь устранить эти проблемы

Очень важно получить поддержку от таких лиц, как системные администраторы и аналитики программного обеспечения, которые могут поддержать ваши усилия по интеграции и помочь выявить преимущества для вашего предприятия

Когда вы определили свои цели, теперь вы можете начать процесс разработки и создать собственное приложение. Затем ваше приложение может взаимодействовать с API программной платформы для создания новых функций, которые помогут достичь ваших целей.

Наконец, вам необходимо выполнить несколько тестов в вашей системе, чтобы убедиться, что приложение интеграции соответствует поставленной задаче и не содержит ошибок.

Обход аутентификации через подделку HTTP-запросов

Нам было мало этой уязвимости, да и не комильфо как-то без шелла на Black Hat ехать. В итоге я нашел баг, который позволяет независимо от версии SAP и версии ОС, на которой работает SAP, получить права администратора в системе удаленно (причем для ее эксплуатации не требуется ничего, кроме стандартных средств ОС и минимальных знаний протокола HTTP), и, что самое главное, большинство систем в интернете действительно к ней уязвимо.

Уязвимость обнаружена все в том же WEB.XML, и потенциально к ней уязвимо около 40 приложений. На данный момент нами обнаружено три реально уязвимых приложения. Проблема заключается в том, что механизм WEB.XML позволяет ограничить доступ к ресурсу, позволив определенной роли пользователей выполнять определенные HTTP-методы.

В нашем примере в папку /admin может заходить только пользователь с ролью admin и выполнять метод GET. Как оказалось, все, что явно не запрещено, то разрешено, то есть, например, обращение методом HEAD, который делает ровно то же самое, что и GET, только не показывает результат пользователю, может быть реализовано анонимно без наличия и пользователя, и роли. То есть, если бы название метода не было указано явно, это бы значило, что всеми методами можно ходить только админу, и все бы было ОK. А раз указал один метод, то уж изволь все остальные перечислить.

Таким образом, задача заключается в том, чтобы найти все критичные приложения, которые:

поддерживают HEAD-запрос и обрабатывают его так же, как GET;
выполняют критичное действие, причем нам неважно тело ответа, поскольку это HEAD;
желательно присутствуют во всех инсталляциях, а не просто как демопример.

Одно из найденных нами приложений, которое является системным, позволяет создавать в системе пользователя и назначать ему любую роль. Также в файле WEB XML, помимо данной уязвимости, есть множество других параметров безопасности, таких как использование шифрования.

ERPScan — наш сканер безопасности SAP

В заключение можно сказать, что это далеко не весь набор проблем J2EE-движка, о ряде других я, возможно, расскажу в ближайших номерах, ну а остальные проблемы пока еще не закрыты производителем. Вот и все на сегодня. А тех, кто интересуется темой безопасности SAP или других бизнес-приложений, а также любой другой работой, связанной с безопасностью, милости просим в нашу команду. У нас много открытых вакансий, и даже если вы не нашли их на сайте, то не стесняйтесь писать напрямую.

Настройка SAML в SAP NetWeaver

Войдите в систему SAP и перейдите к коду транзакции SAML2. Откроется новое окно браузера с экраном настройки SAML.

Чтобы настроить конечные точки для доверенного поставщика удостоверений (Azure AD) перейдите на вкладку Доверенные поставщики.

Нажмите Добавить и выберите Отправить файл метаданных в контекстном меню.

Отправьте файл метаданных, который вы скачали на портале Azure.

На следующем экране введите псевдоним, например aadsts, и нажмите Далее для продолжения.

Алгоритм хэш-кода должен быть SHA-256, он не требует внесения изменений. Затем нажмите Далее.

В разделе Конечные точки единого входа укажите HTTP POST и нажмите Далее для продолжения.

В разделе Конечные точки единого выхода выберите HTTPRedirect и нажмите Далее для продолжения.

В разделе Конечные точки артефакта нажмите Далее для продолжения.

В разделе Требования к проверке подлинности нажмите Готово.

Перейдите на вкладку Надежный поставщик>Федерация удостоверений (из нижней части экрана)

Нажмите кнопку Изменить.

Нажмите Добавить на вкладке Федерация удостоверений (нижнее окно).

Во всплывающем окне выберите Не указано из списка Поддерживаемые форматы NameID и нажмите «ОК».

Обратите внимание, что значения User ID Source (Источник идентификатора пользователя) и User ID mapping mode (Режим сопоставления идентификатора пользователя) определяют связь между пользователем SAP и утверждением Azure AD.
Сценарий: сопоставление пользователя SAP и пользователя Azure AD.

Последовательно выберите Сохранить и Включить для включения поставщика удостоверений.

Нажмите ОК при появлении запроса.

В этом разделе описано, как создать пользователя B.Simon в приложении SAP NetWeaver. Совместно со штатной командой экспертов SAP или с партнером SAP организации добавьте пользователей на платформу SAP NetWeaver.

Рейтинг
( Пока оценок нет )
Editor
Editor/ автор статьи

Давно интересуюсь темой. Мне нравится писать о том, в чём разбираюсь.

Понравилась статья? Поделиться с друзьями:
Работатека
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: