Исследователь показал, что Twitter не меняет картинки, что допускает возможность скрывать внутри файлы

pifg7slmlyuxlf2lwql_st-nqpa.png
Для примера разработчик опубликовал png-картинку, внутри которой размещен исходный код его проекта tweetable-polyglot-png на GitHub.

Исследователь Давид Бучанан (Dаvіd Bucһаnаn) обнаружил, что в одной прикрепленной картинке в Twitter можно разместить около 3 МБ заархивированных данных. Сервис частично удаляет ненужные данные из загружаемых пользовательских PNG, но не проверяет добавленные данные в конце потока DEFLATE (части файла, в котором хранятся сжатые данные пикселей) внутри блока IDAT, при условии, что общий файл изображения соответствует всем необходимым требованиям и его не нужно повторно пережимать. Поэтому туда можно добавлять дополнительные данные.
Бучанан рассказал в описание своего проекта tweetable-polyglot-png на GitHub, как правильно сделать обложку предварительного просмотра для такой картинки-архива. Изображение для нее не должно содержать ненужных фрагментов метаданных.

Общий размер прикрепленного файла должен быть менее 3 МБ, иначе Twitter конвертирует PNG в JPEG.

Бучанан написал скрипт на python, с помощью которого можно быстро создать картинку-архив для передачу в Twitter. По умолчанию встраиваемый файл может являться zip-архивом, также поддерживается pdf и mp3. Исходный код скрипта Бучанан опубликовал на GitHub под лицензией MIT.

Пример mp3 файла внутри картинки в Twitter по мотоду Бучанан.


Эксперты издания Bleeping Computer пояснили, что техника сокрытия архивов, например, в конце JPEG, не нова, но обычно социальные сервисы проверяют определенным образом корректность вложений (режим sanitize), чтобы не дать пользователям распространять скрытые данные (вредоносные команды, полезную нагрузку и другой контент) для управления ботнетами и в других мошеннических целях.

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

Ранее Бучанан предупредил Twitter об этой проблеме по программе bug bounty. В компании ему отказали в награде и заявили, что эта ситуация не является ошибкой или багом в системе безопасности сервиса. Соцсеть не считает это проблемой.

Фактически, единственный способ обойти распространение загрузки таких доработанных картинок с вредоносными вложениями — блокировать доступ внутри компании к домену изображений Twitter, расположенному по адресу pbs.twimg.com. Но в этом случае в этой сети пользователи не смогут полноценно работать с сервисом коротких сообщений.

Примечательно, что в конце октября 2020 года похожий метод использовали энтузиасты для распространения кода youtube-dl в виде картинок в Twitter.

© Habrahabr.ru