С 13 февраля Gmail будет фильтровать вложения в формате .js

в 12:29, , рубрики: Deflate, javascript, PNG, zip-бомба, архивная бомба, информационная безопасность, рекурсивный архив

С 13 февраля Gmail будет фильтровать вложения в формате .js - 1
Вложения .js стали самым популярным способом распространения криптовымогателей в 2016 году. Статистика: Proofpoint

Gmail запрещает передавать с почтой вложения в следующих форматах: ADE, ADP, BAT, CHM, CMD, COM, CPL, EXE, HTA, INS, ISP, JAR, JSE, LIB, LNK, MDE, MSC, MSP, MST, PIF, SCR, SCT, SHB, SYS, VB, VBE, VBS, VXD, WSC, WSF, WSH. Вчера в официальном блоге G Suite опубликовано сообщение, что с 13 февраля 2017 года список запрещённых форматов файлов для передачи через Gmail пополнит формат .js (JavaScript).

Дело в том, что в операционной системе Windows такие файлы по умолчанию запускаются на исполнение с помощью системного компонента Windows Script Host, так что можно внедрить в .js бинарник с криптовымогателем — и отправить его пользователям под Windows. За пределами браузера Windows Script Host позволяет сохранять файлы и запускать их на исполнение, устанавливать сетевые соединения с любым сервером, запрашивать веб-контент.

С 13 февраля Gmail будет фильтровать вложения в формате .js - 2

Встроенные фильтры Gmail блокируют сообщения с исполняемыми файлами, чтобы предотвратить распространение вирусов. Сжатие в GZ/BZ2 или ZIP/TGZ не помогает. Фильтры Gmail автоматически разархивируют и декомпрессируют все вложения ко всем письмам — и проверяют их содержимое (вероятно, на сервере реализована защита от ZIP-бомб, о них ниже).

Защита архива паролем тоже не спасает — в Gmail запрещена пересылка запароленных архивов. Кроме того, запрещена пересылка архивов со вложенными архивами, которые защищены паролем. Таким образом, для передачи исполняемого файла приходится искать другие способы. Например, архивировать и переименовывать в JPG.

В феврале в веб-интерфейсе Gmail при попытке загрузки вложения .js появится сообщение «Заблокировано в целях безопасности» с объяснением причин.

С 13 февраля Gmail будет фильтровать вложения в формате .js - 3

Фильтры у Gmail продвинутые, так что передача картинки JPG со встроенным вирусом тоже может быть заблокирована, как и ссылки на вредоносные страницы. Сама компания Google рекомендует для обмена файлами загружать их на Google Drive, Google Could Storage или другой хостинг — и делиться ссылкой. Если в файле не найдут вирус, то письмо со ссылкой пройдёт через фильтр.

Защита от архивных бомб

Чтобы реализовать проверку архивов на сервере для фильтрации спама и вирусов, компании Google наверняка пришлось внедрить защиту от ZIP-бомб, иначе серверы компании стали бы жертвой DoS-атаки.

Самый популярный формат ZIP-бомбы известен со стародавних времён. Это рекурсивный архив типа 42.zip, который распаковывается сам в себя. Если начать его распаковку, то процесс будет идти до тех пор, пока набор данных не достигнет верхнего предела распаковки в 4,3 гигабайта. При этом процесс займет более 4,5 петабайт в оперативной памяти (4 503 599 626 321 920 байт).

Похожий вариант применяется в варианте DoS-атаки с помощью PNG, которую впервые описал в 2015 году программист и хакер Дэвид Фифилд (David Fifield). Как известно, в графическом формате PNG используется алгоритм сжатия DEFLATE в библиотеке zlib. Программист рассчитал, каков может быть максимальный размер картинки с минимальным размером файла. Идея в том, чтобы файл можно было быстро передать по сети, но при этом он не поместился в оперативную память на сервере.

В результате разных экспериментов автор пришёл к наиболее оптимальному соотношению размера файла и занимаемой памяти. Архив spark.png.bz2 размером всего 420 байт занимает в памяти 141,4 ГБ.

Реализовано это следующим образом. Сначала алгоритм DEFLATE заменяет повторяющиеся строки указателями (LZ77), при этом каждая пара бит кодирует 258 одинаковых байтов с нулями. Степень компрессии составляет 1032 к 1. Затем за дело берётся bzip2, который сжимает длинный набор одинаковых значений в максимально компактный вид. В архиве на 420 байт — файл PNG размером 6 132 534 байт (5,8 МБ) и изображением 225 000 × 225 000 пикселей (50,625 гигапикселей). В пиксельном буфере с тремя байтами на пиксель картинка займёт примерно 141,4 ГБ. Картинка почти полностью состоит из нулей, с секретным сообщением в центре. Для лучшего сжатия используется однобитное цветовое пространство, хотя большинство программ для рендеринга графики всё равно резервируют по три бита на пиксель и разворачивают картинку в 141,4 гигабайта.

В Gmail, Habrastorage и других веб-приложениях, разумеется, реализована защита против архивных бомб PNG (более подробно см. статью «Защита приложений Libpng от архивных бомб»). Сканирование файлов на сервере выполняется в изолированной песочнице, и если вложение в вашем письме «повалит» песочницу, то это никак не скажется на работе остальных серверов Google.

Впрочем, применение сжатия в графических форматах позволяет проявить креативность и применить другие трюки, например, со сжатием GIF.

Распространение зловредов через файлы .js

В последнее время злоумышленники часто распространяли вредоносное ПО, прикрепляя скрипты JavaScript к письмам. Например, таким способом авторы криптовымогателя Locky распространяли загрузчик криптовымогателя.

С 13 февраля Gmail будет фильтровать вложения в формате .js - 4
Вложение к письму содержит скрипт, который скачивает исполняемый файл Locky

С 13 февраля Gmail будет фильтровать вложения в формате .js - 5
Код скрипта со ссылкой на исполняемый файл

Позже авторы Locky обнаглели и начали сразу внедрять бинарник в .js.

Кроме Locky, через вложения .js давно распространяются другие криптовымогатели (Ransom32, RAA), а также другой вредоносный софт.

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

Автор: alizar

Источник

Поделиться

* - обязательные к заполнению поля