Безопасность как искусство
120,46
рейтинг
23 мая 2012 в 15:11

Разработка → Как я учил арабских шейхов ломать SAP

Женщины в паранджах, мужчины в традиционных арабских одеяниях, резные стены и много-много позолоты, и всё это внутри огромного деревянного корабля. Именно так выглядит конференция по информационной безопасности в Кувейте – Kuwait Info Security 2012.



По долгу службы в Digital Security продвигая в массы безопасность SAP, да и вообще ради ярких моментов и новых знакомств, я периодически выступаю на различных международных конференциях по безопасности… хотя точнее всё же было бы называть их конференциями по опасности, так как на них ведущие исследователи рассказывают о новых интересных способах взлома информационных систем. Несмотря на два десятка выступлений на таких ивентах, как BlackHat и HITB, конференция в Кувейте всё-таки запомнилась мне как одна из самых необычных.




اهتمام!
Кому интересно почитать только технические подробности уязвимостей SAP – для вас данная информация любезно выделена курсивом и очищена от душевных переживаний автора во время поездки. Пример видео со взломом SAP доступен в конце статьи.

Признаться, изначально я мало себе представлял, куда я вписался, и шутил, что поеду обучать арабов кибертерроризму. Как оказалось позднее, Кувейт хоть и арабская страна, но вполне себе небедная, если не сказать наоборот. Имея порядка 10% мирового запаса нефти, страна существует за счёт её добычи, что составляет, по разным данным, от 90 до 98 % экспорта (кстати, для меня огромный вопрос, что же оставшиеся 2 %).



В стране порядка 1 млн коренных жителей, на которых, собственно, и распространяется это богатство. Кроме коренного населения, в Кувейте также порядка 3,5 миллионов эмигрантов – это в основном индусы и азиаты. Так что общаться в магазинах, гостиницах, ресторанах и вообще везде, как правило, приходится с индусами: у арабов жизнь удалась, и работать они не стремятся.

Итак, майские праздники мне предстояло провести в стране, где алкоголя нет даже в Duty Free, что для многих было бы смертельным ударом, но меня ни чуточку не расстраивало. Промотавшись 2 дня по Кувейту и объездив его от Саудовской Аравии до самой границы с Ираком (я пока ещё не настолько крут, как Тёма, чтобы соваться туда),


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

Сначала показалось, что отель даже не достроен и всё это какая-то шутка – в самом деле, ну откуда здесь, посреди пустыни, будет конференция?.. Тем не менее, слегка поодаль виднелся огромный деревянный корабль, пришвартованный к берегу (кстати, этот корабль занесён в книгу рекордов Гиннесса как самое большое в мире деревянное судно). Он-то и являлся гостиницей, а точнее, конференц-залом, в котором проходил ивент.




Зал был оборудован не скучными рядами кресел, как на любой другой конференции, а круглыми столами, за которыми расселись местные шейхи, и отдельной скамьёй-троном на месте первых рядов. До начала оставалось минут пять, меня мучила только одна мысль:



…действительно ли это то место, где я должен рассказывать про переполнение буфера в ядерной функции приложения SAP NetWeaver с последующей эксплуатацией этого переполнения через вызов транзакции, через которую необходимо запустить уязвимый отчет, который вызывает модуль ядра и передаёт туда 108 байт для перезаписи EIP и ещё порядка 100 для шеллкода, и как это было сложно запихать, учитывая, что размер входного значения ограничен 255 байтами…

И тут мои мысли прервались всеобщей суетой, все куда-то разбежались. Я понял, что вроде как пришёл самый главный шейх, для которого было освобождено место на первой скамье. После того как все собравшиеся представители СМИ закончили его фотографировать, он вышел на сцену и… нет, не начал читать кейнот, как было бы логично предположить с учётом тематики конференции, а стал молиться.

….В это время в моей голове опять суетились мысли: не пойти ли в номер и не переделать ли презентацию, выкинув оттуда всё и оставив только 3 картинки а-ля: нефть, террорист, ERPScan … Нет, уж, наверное, что такое отказ в обслуживании, они себе представляют, причём, пожалуй, лучше, чем я, a значит, уязвимость отказа в обслуживании в WEB-интерфейсе SAP NetWeaver ABAP, которая возникает при обработке кривого XML-запроса на сервис WEBRFC, объяснить можно. Ну, по сути, там же всё просто: есть интерфейс веб-приложения, доступ к которому имеет любой пользователь системы, а также злоумышленник, который не поленился поискать в Интернете список пользователей и паролей SAP по умолчанию. Есть множество RFC-функций, которые позволяют делать различные действия в системе, но требуют дополнительных прав, а есть функция RFC_PING, которая никаких прав не требует. Парсер XML-пакетов, в свою очередь, как обнаружил ещё давно мой коллега d00kie, написан индусами, в смысле, имеет уязвимость, называемую XML Entity Expansion и XML Blowup (примеры ниже). Заключается она в том, что внутри XML-пакета мы формируем множество рекурсивных обращений к определённым в теге ENTITY переменным, что заставляет XML-парсер безжалостно поедать ресурсы системы. Таким образом, послав сотню запросов, можно с лёгкостью «положить» сервер с SAP, и все бизнес-процессы компании накроются медным тазом на время атаки….

<?xml version="1.0"?>
<!DOCTYPE root [
<!ENTITY ha "Ha !">
<!ENTITY ha2 "&ha; &ha;">
<!ENTITY ha3 "&ha2; &ha2;">
<!ENTITY ha4 "&ha3; &ha3;">
<!ENTITY ha5 "&ha4; &ha4;">
...
<!ENTITY ha128 "&ha127; &ha127;">
]>
<root>&ha128;</root>



<?xml version="1.0"?>
<!DOCTYPE foobar [<!ENTITY x "AAAAA… [100KB of them] … AAAA">]>
<root>
<hi>&x;&x;….[30000 of them] … &x;&x;</hi>
</root>


Вступительное слово закончилось, и начались доклады от Qualys и Symantec про безопасность этих ваших клаудов и тренды в ИБ, которые традиционно включали в себя мобильность, cloud и промышленные сети, чего я уже порядком наслушался, а посему побрёл в выставочный зал, где встретил коллег из компании ELCOMSOFT, которые тоже решили принять участие в этой конференции. Отдельное им спасибо за приятную компанию и фотки.



Вскоре как раз должен был начаться доклад Андрея Беленко – его я решил послушать и посмотреть на реакцию зала, так как у него традиционно доклады достаточно технические, и была отличная возможность понять, как выстраивать выступление и на чём заострить внимание.

…Отлично, подумал я: доклад Андрея был про пароли и алгоритмы шифрования, а это то, что надо, у меня как раз одна из уязвимостей в SAP посвящена шифрованию. Фишка в том, что приложение SAP GUI – собственно, основная клиентская утилита для подключения к SAP – позволяет хранить пароли в ярлыках. Функция эта по умолчанию запрещена в новых версиях, но вы же сами понимаете: когда бухгалтеру НАДО, чтобы было удобно, зачастую пароли прописывают-таки в этих ярлыках, что я не раз обнаруживал на аудитах. Естественно, пароли там хранятся не в открытом виде – они зашифрованы. Хотя «зашифрованы» – это громко сказано: за такое шифрование Диффи с Хельманом наградили бы автора орденом Facepalm в кубе. Не то чтобы шифр Цезаря, но, в общем, практически он. Для шифрования использовался XOR. Со статическим ключом. Ключом, одинаковым для всех инсталляций всех версий… В общем, знатный FAIL, а что самое главное, исправлять это никто не будет, так как SAP посчитала, что это не уязвимость. Ну, раз не баг, значит фича, так что пусть все знают, если вдруг понадобится расшифровать «забытый» пароль. Кстати, получить доступ к самой рабочей станции тоже труда не составляет, и это можно реализовать через ActiveX-уязвимости SAP GUI, о чём я рассказывал давно, или при помощи, например, Teensy USB, почитать о которой можно в статье моего коллеги.

Собственно, больше первый день ничем не запомнился, и я слегка приободрился по поводу того, что слушатели вроде как довольно подкованы в моей области, хоть и выглядят необычно. На следующий день доклады были более техническими, и из одного даже удалось почерпнуть пару интересных мыслей. Пока я сидел в зале, понял, что кувейтцы – вообще странный народ. Страсть выделиться у них развита не меньше, чем у русских, и многие выглядят и ведут себя, как дети, которым свалилось на голову бабушкино наследство, и они прямо-таки не знают, что с ним толком делать. Так, к примеру, практически у каждого уважающего себя кувейтца по 2 смартфона, зачастую это 2 айфона – чёрный и белый. Ну не могут они решить, какой круче, поэтому на всякий случай носят два.

Так незаметно пролетело время, и начался доклад, скажем так, коллег по безопасности SAP, которые рассказывали про GRC и вопросы разграничения полномочий. Собственно, к этой области, к сожалению, большинство приравнивает безопасность SAP, хотя с тех пор, как компания SAP закрыла свою двухтысячную по счёту программную уязвимость (причём 80% из этих 2000 было закрыто за последние 3 года), мнение, будто безопасность SAP – это только разграничение полномочий, выглядит особенно странно. Впрочем, думаю, на эту тему как-нибудь разражусь отдельным постом.

…После этого доклада я ещё больше приободрился, так как, во-первых, слушатели явно были, по крайней мере, в курсе, что такое SAP, и минимально знакомы с тем, из чего SAP состоит, и даже понимали, что там есть проблемы безопасности, как минимум, касающиеся разграничения полномочий. А посему можно рассказать им и о том, что есть много других проблем – вот, к примеру, внутренний язык ABAP, на котором написаны программы в системе SAP. Он, как и многие другие языки, может содержать уязвимости и действительно содержит их. Все те же SQL-инъекции, обход каталога при доступе к файловой системе, инъекции ABAP-кода, межсайтовый скриптинг, если мы говорим о BSP (это web- сценарии, написанные на смеси ABAP и HTML), и прочие проблемы, а также множество уникальных уязвимостей, присущих коду, разработанному на ABAP. Одна из интересных уязвимостей, найденных нами в SAP, которая распространена в WEB-приложениях и всем известна ещё из CGI-скриптов, называется «внедрение команд ОС». Логика тут та же: в ABAP есть вызовы ядра, позволяющие вызывать команды ОС. Иногда параметры в эти вызовы попадают от пользователя и не фильтруются. Таким образом, используя символ “&”, разделяющий команды в ОС Windows, можно добавить к вызываемой команде ещё и свою собственную, к примеру: “net user hacker QWERTY /add” – тем самым создав в ОС новую учётную запись .

Подробное демо, как зайти в систему с пользователем EARLYWATCH и паролем support и выполнить команду ОС, смотрим на видео.



В итоге, рассказав полностью свой доклад «TOP 10 наиболее интересных уязвимостей SAP», я получил довольно положительные отзывы и смех из зала над особенно забавными уязвимостями.



Другие уязвимости я более детально рассмотрю в следующих постах. Всё, что касается безопасности SAP, также доступно на сайте проекта erpscan.com /erpscan.ru в разделах исследований и публикаций.

В целом Кувейт, конечно, не туристическая страна, и народ, привыкший к экскурсиям и подобающему сервису, вряд ли оценит это место, а тем более захочет вернуться, но, тем не менее, зачатки Арабских Эмиратов и Дубая там присутствуют. Глядишь, лет через 5 Кувейт может стать вторым Дубаем, ну а пока – дома не достроены, вода грязная, еда американская, алкоголя нет даже в Duty Free, но зато очень приветливый народ, неповторимые виды пустыни, арабский колорит и просто небанальное место.
Автор: @AlexandrPolyakov
Digital Security
рейтинг 120,46
Безопасность как искусство

Комментарии (40)

  • +7
    Я практически ничего не знаю о SAP и далеко не pro в информационной безопасности, но вашу статью читал с упоением до самого конца. Спасибо.

    PS: Сам как-то оказался филд инженером в ОАЭ на пару месяцев. Очень странные ощущения. ykwim :)
  • +2
    ERPScan.com/ru

    Hmm, The Page You’re Looking For Can’t Be Found.
    • +2
      имелось в виду erpscan.com или erpscan.ru, неумело сократил)
      • НЛО прилетело и опубликовало эту надпись здесь
        • 0
          ERPScan.com/.ru не?
  • 0
    Спасибо за интересную статью!
  • –13
    О_о
  • 0
    AlexandrPolyakov, скажите Вы предоставляете найденные уязвимости и баги в SAP? если да, то как они реагируют, если нет — то почему?
    • +1
      • 0
        спасибо за линк, то есть кроме благодарности на сайте никаких плюшек?
        • +1
          за баги денег не платят, если Вы про эти плюшки… Мы молодцы, что нашли, САП молодцы, что исправили — всем хорошо!
          • 0
            не обязательно деньги, я получил ответ на свой вопрос, спасибо
    • +6
      Да, мы уже четвёртый год сотрудничаем с SAP точнее с их подразделением Security Response Team получая ежемесячные благодарности и все (ну за исключением особенных случаев) узявимости перед публикацией дожидаются обновления от SAP, более того, по их просьбе детали мы не раскрываем ещё в течении 3х месяцев послед закрытия дабы пользователи успели обновиться. Реакция у них вполне нормальная, правда зачастую немало времени уходит на то чтобы разъяснить детали некоторых уязвимостей и порекомендовать адекватные меры защиты. Как то одна проблема которую я планирую освятить в этом году на BlackHat требует сложных изменений в ядре системы и для ее решения SAP попросили нас провести специализированный тренинг для разработчиков и помочь в устранении проблемы.
      • 0
        Доложить, подождать, потом еще раз подождать, да еще все разжевать и дать рекомендации? Вполне себе работа! Они хоть как-то ее оплачивают?
        • 0
          Нет :)
          • 0
            Это такая принципиальная позиция? Типа «вам самим это больше надо»? :)
            • 0
              Естественно если бы они платили за это деньги мы бы не расстроились но пока за уязвимости не платят и мы довольствуемся первым местом по количеству ), но есть и проекты с SAP на контрактной основе, но там более сложные задачи нежели просто поиск уязвимостей.

              ЗЫ Вообще в то время когда мы основали исследовательскую лабораторию DSECRG и начали заниматься поиском зависимостей и отправлением информации разработчикам никто за это не платил. Это сейчас развелось масса баунти программ которыми грех не воспользоваться потому иногда смотрится странно что люди находят уязвимости бесплатно на западе как-то это в порядке вещей
            • 0
              Скорее всего там столько дыр, что если платить за каждую — то можно разориться :)
        • 0
          но были и эксперименты с оплатой: www.zerodayinitiative.com/advisories/ZDI-10-290/
          Но тогда благодарности от САПа идут немного не туда 8)

          Но если у нас свой интерес (не хотим права передавать, хотим сами об уязвимостях и проблемах рассказывать и делится знаниями без посредников), то другим ресерчерам никто не мешает зарабатывать через ZDI, например. Если деньги так важны…
  • 0
    Простите за банальный вопрос. А что дают такие выступления? Например, лично вам.
    • +9
      Бесплатные путешествия по миру, практика публичных выступлений, обучение языку, новые знакомства. Это лишь часть того что дают они мне лично если не считать плюшек для компании, которые в свою очередь отражаются на мне же.
      • 0
        Какие-то сделки получается заключить? Или приехали, выступили, уехали. И все про вас забыли.
        Я к тому, что иногда компании готовятся ко всяким таким мероприятиям, но практической пользы от этого нет, т.е. прибыли. Разве что, потом можно сказать клиентам: «А знаете, мы выступали вот на конференции в Кувейте...»
        • +6
          мы итак постоянно заняты поиском уязвимостей и исследованием в ходе работ над продуктом такчто подготовка к конференции является заключительным этапом исследования и в целом много времени не отнимает. Что до прямой прибыли область достаточно специфичная, клиенты большие и очень долгие, прямой вот такой зависимости выступил продал конечно нет, но налаживаются контакты, информация передается через сарафанное радио, и так, как курочка по зёрнышку как говорится. Вообще российской компании идти на мировой рынок с продуктом по ИБ я уж не говорю об услугах, это вызов так как к сожалению для многих Россия это хакеры которых к себе близко подпускать не хочется и с этим довольно тяжело бороться. Компании которым удалось доказать обратное можно пересчитать по пальцам но как говорил Хэнг Муди «жизнь без вызова офигительно скучна» :)
        • +3
          рынок подобных систем, скажем так, довольно «узкий». Почти все почти всех почти знают. И рынок так же делится на ниши: кто-то обслуживает инфраструктуру, кто-то занимается поддержкой, кто-то обеспечением безопасности, кто-то аудитом. И клиент, присутствующий на конференции, запомнит: ага, вот чел вот из этой конторы грамотно выступает. И запомнит эту контору. И когда придет время — вспомнит о ней. Т.о. и генерируется прибыль.
          В итоге, все эти выступления — это работа на имя и репутацию, что в итоге ведет к получению выгоды.
  • 0
    Спасибо, интересно пишете =)
    Необычное сочетание — «шейхи» и дыры в ИТ-продуктах.
  • +3
    Вообще российской компании идти на мировой рынок с продуктом по ИБ я уж не говорю об услугах, это вызов так как к сожалению для многих Россия это хакеры

    Так ведь лучшие специалисты по ИБ — это хакеры =)

    Спасибо за статью и ответы! Удачи вам и вашей компании.
  • +4
    Паранджа — это если полностью закрыто лицо сеткой. А на фото чадра :)

    ps недавно приехал с Дубая, очень понравилось, богатый и цивилизованный город.
    • 0
      Сама паранджа не закрывает лицо. Деталь, которая закрывает лицо (сетка из волоса) называется чачван и она может дополнять паранджу. А чадра это синоним паранджи.
      • 0
        опять википедия врет блин :D
        спасибо за просвещение
        • +1
          Вообщето, это не паранджа или чачван. Это хижаб.
          • 0
            Да, паранджа не такая. Хотя в той же википедии пишут, что и хиджаб это не совсем верное, «вестернизированное» употребление термина.

            На хабре срочно требуется хороший арабист :)
        • 0
          Ну, статья википедии на русском, в общем-то, все правильно пишет. По крайней мере, если использовать узбекскую терминологию. В ней и источники указаны из истории узбекского и таджикского костюма, что логично, учитывая, что в современный русский язык «паранджа» пришла из Средней Азии.

          Однако, например, в английском языке название этого предмета заимствовано у арабов, соответственно и статья называется Burqa. Как там это называется у арабов в Кувейте и Эмиратах, я не знаю, поскольку с узбеками общался, а вот с арабами из Кувейта — не довелось.
          Вполне возможно, что и Вы окажетесь по-своему правы.
  • НЛО прилетело и опубликовало эту надпись здесь
  • +1
    Ярлычками с паролем, да, пользуюсь:) Статья очень понравилась, т.к. сам абаплю и про сап почитать интересно и особенно, как она «там»:)
    • 0
      Вы все еще пользуетесь ярлычками с паролями? Пора переходить на SECUDE Secure Login и Enterprise Single Sign-On!
  • 0
    Два айфона, черный и белый — это да! Это ход конем! :)
    • 0
      А я бы не ёрничал, мало ли зачем надо 2 телефона, семья/работа, два оператора, локальный тариф/забугорный.
      Ну не двухсимочный же айфон покупать? kekekke
      А по цвету их различать легче. Ну не по царапинам же?!
  • 0
  • +2
    вспомнились zer0nights
    «и сейчас Александр Поляков расскажет вам… догадайтесь про что!»

    очень интересная статья, спасибо
  • 0
    Я было подумал, что это Джейк Джилленхол будет про SAP рассказывать.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка