Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
mr.save

Эксплоиты в десятку. Обзор самых интересных докладов с мировых ИБ-конференций

Recommended Posts

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

 

Обходим всю современную киберзащиту майкрософтовского Edge

Henry Li, Jack Tang. Cross the Wall — Bypass All Modern Mi10tigations of Microsoft Edge // Black Hat. 2017

В Windows 10 по умолчанию активированы такие защитные механизмы, как ASLR (Address Space Layout Randomization — рандомизация распределения адресного пространства), DEP (Data Execution Prevention — предотвращение выполнения кода, размещенного в сегменте данных) и CFG (Control Flow Guard — охрана потока управления). Благодаря им киберзлодею значительно сложнее манипулировать памятью операционной системы. Самый перспективный из этих защитных механизмов — CFG. Если атакуемое приложение защищено механизмом CFG, то руки взломщика остаются связанными, даже если у него есть произвольный доступ (на запись и на чтение) ко всему адресному пространству оперативной памяти.

Цитата

Что такое CFG

CFG представляет собой механизм безопасности, призванный предотвращать ситуации, когда «косвенные переходы» (косвенные call/jmp) перенаправляют поток управления в неожиданные места адресного пространства. Впервые появившийся в Windows 8.1, CFG на данный момент реализован в Windows 10 в качестве расширенной функции безопасности.

Суть работы CFG в следующем: во время компиляции перед каждым критичным «косвенным переходом» вставляется специальная функция, контролирующая корректность потока управления. Затем эта специальная функция проверяет, уже в рантайме, целевые адреса перехода при помощи заранее предопределенной CFG-карты (CFG bitmap).

Однако хакеры не сидят на месте и постоянно придумывают все новые и новые трюки для обхода непрерывно совершенствующихся механизмов киберзащиты. В этой презентации докладчик (инженер из Trend Micro) делится некоторыми из разработанных им трюков. В том числе:

  • Трюк, при помощи которого можно обойти CFG и DEP и обеспечить себе возможность произвольного выполнения кода. На примере браузера Edge этот трюк эксплуатирует темную сторону системного механизма «прокладок» и не требует применения традиционной техники ROP.
  • Трюк, при помощи которого можно обойти ASLR. Эксплуатируя логические недоработки в механизме «сборщика мусора», который используется в языках программирования для управления памятью при работе с динамическими переменными (в частности, в таких популярных JS-движках, как jscript9 и chakra), злодей может обойти ASLR без необходимости эксплуатировать какую-либо уязвимость.

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

Цитата

Что такое shims («прокладки»)

Shims представляют собой небольшие фрагменты кода, которые перехватывают API-вызовы приложений — для их согласования между различными версиями ОС. Иначе говоря, прокладки предназначены для «исправления совместимости»: чтобы приложения, разработанные для более ранних версий ОС и ее API, могли корректно выполняться и в текущей версии ОС. «Прокладка» может либо какую-то возможность отключать в текущей версии ОС, либо эмулировать определенное поведение старой версии API.

Новый тренд в разработке эксплоитов: атаки, ориентированные на данные

Bing Sun, Chong Xu, Stanley Zhu. The Power of Data-Oriented Attacks: Bypassing Memory Mitigation Using Data-Only Exploitation Technique // Black Hat. 2017

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

Оказывается — нет, о хакерской пенсии речь пока не идет. Взломщики начали искать способ эксплуатировать уязвимости, не затрагивая потока управления... и нашли его. Они придумали атаку, ориентированную на данные (DOA, data-oriented attack), принципиальное отличие которой в том, что она направлена на фальсификацию в приложении критических данных, а не на то, чтобы изменить поток управления.

DOA-атаки позволяют злодею в числе прочего подключать к приложению нежелательные или отключенные модули (и затем эксплуатировать уязвимости, содержащиеся в коде этих модулей) и изменять атрибуты у некоторых страниц оперативной памяти. Первый вариант для киберзлодеев в особенности интересен, потому что современные приложения, как правило, тянут за собой прицепом большие куски невостребованного бинарного кода, который вроде бы к программе отношения не имеет, но волочится за ней мертвым грузом. Порой для DOA-атаки достаточно изменить лишь несколько битов данных. В докладе продемонстрировано на примере браузера Edge (Windows 10), как при помощи DOA-атаки можно обходить защитные механизмы CFG/DEP.

 

Windows отдувается за уязвимости Linux: увеличиваем привилегии через WSL

Saar Amar. Linux Vulnerabilities, Windows Exploits: Escalating Privileges with WSL // BlueHat. 2018

WSL (Windows Subsystem for Linux) — довольно-таки изящный механизм, недавно интегрированный в ядро Windows 10. Эта подсистема позволяет запускать под Windows исполняемые файлы Linux без какой-либо их предварительной адаптации. WSL позволяет бинарникам Linux использовать свои родные системные вызовы и привычный макет файловой системы. Как и любое другое большое (по объему бинарного кода) новшество, WSL представляет собой непаханое поле для охотников за уязвимостями. Массивный .sys-файл, реализующий WSL-подсистему, как будто бы сам просится, чтобы его отреверсили.

Докладчик делится своими находками, которые сделал при реверсинге WSL-подсистемы. При этом он восторгается, как виртуозно разработчики Microsoft жонглируют внутренностями двух совершенно разных операционных систем. Докладчик демонстрирует исполняемый файл Linux, который может делать системные вызовы в Windows и перезаписывать память в ядре Windows. Со всеми вытекающими, приятными для лесоруба (извини, просто мы тут подсели на старые книги по хакерству и подцепили там прямой перевод слова hacker.  — Прим. ред.) последствиями.

Докладчик щедро делится трюками, которые позволяют, во-первых, реализовать WSL-эксплоит без летального исхода для операционной системы и, во-вторых, добиться возможности выполнения произвольного кода в современном ядре Windows 10.

 

Big Data на службе выявления не охраняемых CFG-подсистемой «ворот»

Never Let Your Guard Down: Finding Unguarded Gates to Bypass Control Flow Guard with Big Data // Black Hat. 2017

В недалеком прошлом уже были представлены несколько эффектных докладов с описанием приемов для обхода CFG. Среди таких докладов: «Обход CFG: системный подход», где обсуждались различные поверхности атаки и универсальный прием для обхода CFG-защиты — доступ к указателю на функцию CF_check_function переключается с «только на чтение» на «чтение и запись», используя для этого логический недочет, найденный в деструкторе CustomHeap::Heap (из класса Jscript9); «Обход CFG на Windows 8.1 Update 3», где объяснялось, как искать неохраняемые «косвенные переходы» в JIT-бинарниках, которые генерирует встроенный компилятор Adobe Flash Player.

Упомянув исследования своих предшественников и засвидетельствовав им свое почтение, докладчик затем сообщает, что, хотя «Майкрософт» уже выпустила несколько обновлений для CFG, где устранена значительная часть обнаруженных уязвимостей, группе исследователей удалось найти в CFG множество недочетов, которые позволяют обходить CFG-защиту даже тогда, когда в Windows 10 все самые свежие обновления установлены.

Все эти уязвимости обнаружены при помощи разработанной исследователями утилиты. Эта утилита опирается на функциональность PMU-модуля (Performance Monitor Unit — устройство контроля характеристик аппаратуры), чтобы собирать контекстную информацию всех косвенных вызовов, которые происходят в рантайме (активируя при каждом косвенном вызове специально подготовленное прерывание, которое журналирует все косвенные вызовы). Затем эти собранные данные анализируются посредством Big Data подхода на основе Spark. В докладе демонстрируются трюки и утилиты для поиска уязвимостей, позволяющие обходить CFG, на примере нескольких популярных приложений для Windows (в том числе IE11, Adobe Flash Player и Microsoft Edge).

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

16 байт, которые позволили обойти CFG-защиту

Andrea Biondo, Mauro Conti, Daniele Lain. Back To The Epilogue: How to Evade Windows' Control Flow Guard with Less than 16 Bytes // Black Hat. 2018

CFG в настоящее время используется во всех операционных системах семейства Windows, начиная с 8.1 и заканчивая последним обновлением Windows 10. В докладе описывается атака, которая полностью нейтрализует CFG-защиту и позволяет передавать управление на любой адрес памяти, возвращая крэкеру (опс, опять словечко из классических книг прилипло.  — Прим. ред.) возможность выполнять произвольный код.

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

В докладе приведены результаты независимого исследования системных библиотек Windows, которое группа экспертов провела, чтобы выяснить, есть ли в них такие гаджеты. Обнаружилось, что CFG-гаджеты в числе прочего присутствуют в самых востребованных системных библиотеках Windows, которые подгружаются практически всеми приложениями 32-битной подсистемы и некоторыми особо привлекательными для злодея приложениями 64-битной подсистемы (такими как Edge и Internet Explorer). Каждое приложение, которое подгружает из системной библиотеки бинарный код с гаджетом, может столкнуться с тем, что CFG-контроль не сработает.

В докладе описан алгоритм действий, благодаря которому удалось выявить эту уязвимость в дизайне CFG, и приведены технические подробности осуществления атаки. Демонстрируется ее практичность через применение RCE-эксплоита, нацеленного на Edge, который работает на 64-разрядной версии ОС Windows 10.

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

Реверсим движок Windows Defender

Alexei Bulazel. Reverse Engineering Windows Defender’s JavaScript Engine // Recon. 2018

DLL’ка, в которой хранится ядро Defender’а (MpEngine.dll), весит целых 11 мегабайт. В ней насчитывается больше 45 тысяч функций. В этой презентации докладчик приводит результаты анализа 1200 из них — тех, что реализуют функциональность проприетарного JS-движка, которым Defender пользуется для анализа потенциально вредоносного JS-кода. Этот JS-движок еще очень-очень молод и, соответственно, куда менее зрел, чем те, которые можно найти в браузерах. Так что Defender’овский JS-движок — весьма привлекательная мишень для реверсеров.

Докладчик делится своим опытом реверсинга этого движка и приводит технические подробности его работы: какие типы данных в нем используются, как организовано управление памятью, возможности JS/ECMAScript, каким образом этот движок интегрируется с антивирусной системой Defender’а. Кроме того, докладчик объясняет, как разрабатывать свои собственные утилиты, взаимодействующие с Defender’ом, раскрывает обнаруженные в JS-рантайме баги и делится трюками противодействия анализу, которыми можно пользоваться при создании вредоносных JS-скриптов.

Скрытый контент

    Дайте реакцию на этот пост, чтобы увидеть скрытый контент.

 

Share this post


Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

×
×
  • Create New...