Невозможно отучить людей изучать самые ненужные предметы.
Введение в CSS
Преимущества стилей
Добавления стилей
Типы носителей
Базовый синтаксис
Значения стилевых свойств
Селекторы тегов
Классы
CSS3
Надо знать обо всем понемножку, но все о немногом.
Идентификаторы
Контекстные селекторы
Соседние селекторы
Дочерние селекторы
Селекторы атрибутов
Универсальный селектор
Псевдоклассы
Псевдоэлементы
Кто умеет, тот делает. Кто не умеет, тот учит. Кто не умеет учить - становится деканом. (Т. Мартин)
Группирование
Наследование
Каскадирование
Валидация
Идентификаторы и классы
Написание эффективного кода
Вёрстка
Изображения
Текст
Цвет
Линии и рамки
Углы
Списки
Ссылки
Дизайны сайтов
Формы
Таблицы
CSS3
HTML5
Блог для вебмастеров
Новости мира Интернет
Сайтостроение
Ремонт и советы
Все новости
Справочник от А до Я
HTML, CSS, JavaScript
Афоризмы о учёбе
Статьи об афоризмах
Все Афоризмы
Помогли мы вам |
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 представляет собой механизм безопасности, призванный предотвращать ситуации, когда «косвенные переходы» (косвенные call/jmp) перенаправляют поток управления в неожиданные места адресного пространства. Впервые появившийся в Windows 8.1, CFG на данный момент реализован в Windows 10 в качестве расширенной функции безопасности.
Суть работы CFG в следующем: во время компиляции перед каждым критичным «косвенным переходом» вставляется специальная функция, контролирующая корректность потока управления. Затем эта специальная функция проверяет, уже в рантайме, целевые адреса перехода при помощи заранее предопределенной CFG-карты (CFG bitmap).
Однако хакеры не сидят на месте и постоянно придумывают все новые и новые трюки для обхода непрерывно совершенствующихся механизмов киберзащиты. В этой презентации докладчик (инженер из Trend Micro) делится некоторыми из разработанных им трюков. В том числе:
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.
|
|