M
[Mops]
Original poster
Мой перевод статьи выложенной
Теперь файл можно запустить в браузере двумя разными способами
1<img src = "polyglot.jpg" /> покажет пользователю изображение и проигнорирует JavaScript 2 <script src = "polyglot.jpg"> </ script> выполнит допустимый JavaScript и проигнорирует данные изображения.

DEVCON следит за группой злоумышленников, которые переходят к более изощренным атакам, чтобы скрыть свои payloads
Исследовательская группа DEVCON обнаружила, как минимум, одну группу, распространяющую вредоносную полезную нагрузку AD с помощью полиглотов. Определение изображений полиглота и стеганографических изображений может быть легко перепутано, однако между этими двумя атаками есть некоторые ключевые различия.
Стеганографические эксплойты используют данные, скрытые в изображении, изменяя пиксели здесь и там. Изменяя несколько пикселей на изображении, человеческий глаз не может обнаружить очень маленькое ухудшение качества изображения. Этот эксплойт также требует некоторого дополнительного javascript (не на изображении), чтобы узнать шаблоны и смещения, так же чтобы найти эксплуатируемые пиксели и собрать их в исполняемый javascript.
Эксплойты Polyglot уникальны тем, что файл может быть изображением и JavaScript'ом одновременно!
Также не требуется внешний скрипт для извлечения полезной нагрузки. Как файл может быть JavaScript'ом и изображением?
Ну, он опирается на некоторые очень хитрые уловки того, как компьютер интерпретирует эти два совершенно разных файла.
Ниже показано, что компьютер видит, когда читает в обычном файле BMP. Нам нужно понять, что происходит , чтобы знать, как злоумышленник превратит это в полиглот атаку и использует браузер.
Первые два байта (красный квадрат) представляют собой шестнадцатеричное представление символов BM для изображения BMP. Следующие 4 байта (8A C0 A8 00) - это размер файла изображения. Далее следуют 4 нулевых байта (00 00 00 00) и смещения данных (8A 00 00 00). Это дает компьютеру большую часть информации, которую он должен знать, чтобы правильно выполнить этот файл.
Теперь вот заголовок для файла изображения Polyglot BMP:
Они выглядят примерно одинаково. Размер и смещение данных все еще там.
Уловка заключается в том, что злоумышленник может контролировать размер изображения, а шестнадцатеричные символами можно
манипулировать,чтобы они интерпретировались компьютером как нечто другое.
Злоумышленник здесь изменил размер байтов изображения, чтобы они также были кодами символов для / **. Эта комбинация символов создает комментарий на JavaScript.
Комментарии JavaScript используются для того, чтобы интерпретатор игнорировал все, что находится между этими символами. т.е.
/ * ignore me* /.
Давайте посмотрим на более позднюю часть эксплойта, которая происходит в конце файла.
Как и ожидалось, комментарий JavaScript заканчивается на * /. Затем атакующий добавляет characters = and `
Что злоумышленник сделал здесь, так это превратил тип файла BM в переменную JavaScript и установил для нее другую запутанную полезную нагрузку.
Приведенный ниже пример объясняет, как это будет выглядеть для интерпретатора JavaScript.Исследовательская группа DEVCON обнаружила, как минимум, одну группу, распространяющую вредоносную полезную нагрузку AD с помощью полиглотов. Определение изображений полиглота и стеганографических изображений может быть легко перепутано, однако между этими двумя атаками есть некоторые ключевые различия.
Стеганографические эксплойты используют данные, скрытые в изображении, изменяя пиксели здесь и там. Изменяя несколько пикселей на изображении, человеческий глаз не может обнаружить очень маленькое ухудшение качества изображения. Этот эксплойт также требует некоторого дополнительного javascript (не на изображении), чтобы узнать шаблоны и смещения, так же чтобы найти эксплуатируемые пиксели и собрать их в исполняемый javascript.
Эксплойты Polyglot уникальны тем, что файл может быть изображением и JavaScript'ом одновременно!
Также не требуется внешний скрипт для извлечения полезной нагрузки. Как файл может быть JavaScript'ом и изображением?
Ну, он опирается на некоторые очень хитрые уловки того, как компьютер интерпретирует эти два совершенно разных файла.
Ниже показано, что компьютер видит, когда читает в обычном файле BMP. Нам нужно понять, что происходит , чтобы знать, как злоумышленник превратит это в полиглот атаку и использует браузер.

Первые два байта (красный квадрат) представляют собой шестнадцатеричное представление символов BM для изображения BMP. Следующие 4 байта (8A C0 A8 00) - это размер файла изображения. Далее следуют 4 нулевых байта (00 00 00 00) и смещения данных (8A 00 00 00). Это дает компьютеру большую часть информации, которую он должен знать, чтобы правильно выполнить этот файл.
Теперь вот заголовок для файла изображения Polyglot BMP:

Они выглядят примерно одинаково. Размер и смещение данных все еще там.
Уловка заключается в том, что злоумышленник может контролировать размер изображения, а шестнадцатеричные символами можно
манипулировать,чтобы они интерпретировались компьютером как нечто другое.
Злоумышленник здесь изменил размер байтов изображения, чтобы они также были кодами символов для / **. Эта комбинация символов создает комментарий на JavaScript.
Комментарии JavaScript используются для того, чтобы интерпретатор игнорировал все, что находится между этими символами. т.е.
/ * ignore me* /.
Давайте посмотрим на более позднюю часть эксплойта, которая происходит в конце файла.

Как и ожидалось, комментарий JavaScript заканчивается на * /. Затем атакующий добавляет characters = and `
Что злоумышленник сделал здесь, так это превратил тип файла BM в переменную JavaScript и установил для нее другую запутанную полезную нагрузку.

Теперь файл можно запустить в браузере двумя разными способами
1<img src = "polyglot.jpg" /> покажет пользователю изображение и проигнорирует JavaScript
Наша исследовательская группа обнаружила, что это метод используется в дикой природе, чтобы скрыть вредоносную нагрузку. Мы обнаружили атаку в следующих креативных изображениях:
Найденная нами полезная нагрузка загружает то, что выглядит как обычный файл BMP, но при загрузке в bowser как javascript она загружает переменную BM в память, как показано на следующем снимке экрана.
Более поздние части файла изображения содержат сценарий декодера, который также является запутанным javascript. Эта атака имеет много слоев и новых техник, чтобы попытаться скрыть ее истинную природу и помешать реверс-инженерам понять, как она работает.
Весь приведенный выше сценарий расшифровывается до следующего очень простого сценария. Это, наконец, расшифрует данные, скрываемые в переменной BM.
Ниже приведены декодированные данные BM. Этот окончательно раскодированный скрипт не похож на многие другие вредоносные эксплойты, которые мы видим. Он добавляет URL-адрес облачного фронта в браузер, который будет перенаправлять жертву со страницы, которую он посещал, и в серию других перенаправлений, пока пользователь не попадет в игру типа «Вращай колесо» в надежде выиграть подарочную карту.
Пример перенаправления:
Что интересно в этом новом векторе атаки, так это то, что он не такой новый. Эти методы хорошо известны исследователям безопасности.
Полиглоты JS / GIF являются известным способом обхода политики безопасности содержимого сервера для выполнения XSS-атак.
Это может указывать на то, что более продвинутые группы в настоящее время перемещаются в пространство мошенничества с рекламой, чтобы использовать пользователей сети.

Найденная нами полезная нагрузка загружает то, что выглядит как обычный файл BMP, но при загрузке в bowser как javascript она загружает переменную BM в память, как показано на следующем снимке экрана.

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

Весь приведенный выше сценарий расшифровывается до следующего очень простого сценария. Это, наконец, расшифрует данные, скрываемые в переменной BM.

Ниже приведены декодированные данные BM. Этот окончательно раскодированный скрипт не похож на многие другие вредоносные эксплойты, которые мы видим. Он добавляет URL-адрес облачного фронта в браузер, который будет перенаправлять жертву со страницы, которую он посещал, и в серию других перенаправлений, пока пользователь не попадет в игру типа «Вращай колесо» в надежде выиграть подарочную карту.

Пример перенаправления:

Что интересно в этом новом векторе атаки, так это то, что он не такой новый. Эти методы хорошо известны исследователям безопасности.
Полиглоты JS / GIF являются известным способом обхода политики безопасности содержимого сервера для выполнения XSS-атак.
Это может указывать на то, что более продвинутые группы в настоящее время перемещаются в пространство мошенничества с рекламой, чтобы использовать пользователей сети.
Ссылки: