Простой эксплойт даёт злоумышленникам возможность изменить содержимое письма после отправки

Автор оригинала: Matthew Gardiner
  • Перевод


Считаете ли вы, что содержимое письма электронной почты нельзя изменить после доставки? Если вас интересует вопрос информационной безопасности, вам следует узнать о методе атаки, который исследователи из Mimecast назвали ROPEMAKER.

Акроним ROPEMAKER расшифровывается как «Remotely Originated Post-delivery Email
Manipulation Attacks Keeping Email Risky». В действительности ROPEMAKER — это тип хакерской атаки через электронную почту, обнаруженный Франциско Рибейро (@blackthorne) из Mimecast. Этот эксплойт может дать злоумышленнику возможность удаленно изменять контент письма электронной почты в любое время после доставки. Является ли ROPEMAKER уязвимостью, которую необходимо исправить, чтобы защитить обычных пользователей? Мы надеемся, что эта статья поможет ответить на этот вопрос.

По происхождению ROPEMAKER лежит на пересечении электронной почты и веб-технологий, таких как HTML и CSS. Хотя использование этих веб-технологий сделало электронную почту визуально более привлекательной и динамичной по сравнению с ее предшественником, основанным исключительно на тексте, это также привело к появлению нового для email вектора атаки. Люди обычно ожидают, что содержимое веб-страниц будет динамичным и может меняться мгновенно, но не ожидают этого от писем. Таким образом, ROPEMAKER представляют собой еще один потенциальный вектор атаки, который может быть использован злоумышленниками для распространения, например, вирусов-вымогателей.

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

CSS — это краеугольная технология, используемая большинством веб-сайтов для создания визуально привлекательных веб-страниц. ROPEMAKER использует тот факт, что CSS позволяет разделить оформление внешнего вида и сам контент. Важно отметить, что при определённых настройках безопасности множество почтовых клиентов могут использовать файл CSS локально или удаленно через сеть. И, конечно же, ключ к этому эксплойту с точки зрения безопасности состоит в том, что часть используемых элементов системы находится в ненадежной зоне. И вместо того, чтобы контролировать только внешний вид электронной почты, удаленный CSS может фактически изменить содержимое письма.

Как злоумышленники могут использовать ROPEMAKER в кибер-атаках?


Представьте, что кибер-преступник со злым умыслом отправляет своей предполагаемой жертве электронное письмо на основе HTML с CSS, расположенном на удалённом сервере. ROPEMAKER будет работать до тех пор, пока клиент электронной почты автоматически подключается к удаленному серверу для получения желаемого «стиля» для письма.

Например, злоумышленник может заменить отображение «хорошего» URL-адреса на «плохой» URL-адрес, изменив удаленный CSS-код. Также он может превратить текст в «плохой» URL-адрес или изменить контент доставленного письма, что повлияет на смысл сделки, путём замены «да» на «нет» или «1 доллар» на «1 млн долларов».

Switch Exploit


В первом примере, который исследователи называют «Switch», хороший URL-адрес в письме позже «переключается» злоумышленником в том же сообщении на плохой URL-адрес. Всё выглядит хорошо на рисунке 1. Но отредактировав удаленный CSS, письмо получает новый «стиль» (рисунок 2).


Рисунок 1


Рисунок 2


Удаленный CSS-код, который переключает стиль для отображения «плохого» URL-адреса в этом примере.


HTML-письмо с вызовом удаленного CSS.

Оба URL-адреса отправляются в исходном электронном письме и, таким образом, решение проблемы заключается в проверке «Хорошего» и «Плохого» URL-адреса до того, как будет разрешен переход по ним пользователю. Организации, не использующие блокировку вредоносных URL системами безопасности, будут подвержены подобным угрозам.

Matrix Exploit


«Matrix Exploit» более изощрен. Внутри электронного письма содержится матрица всех символов ASCII для каждой буквы. Используя правила отображения CSS, злоумышленник может выборочно изменять видимость каждой буквы и, таким образом, воссоздать желаемый текст в письме в любой момент. Например, атака может начинаться с отображения пустого письма, как показано на рисунке 5. И относительно простыми манипуляциями в удаленном CSS-файле можно изменить содержимое. В результате пользователь увидит, то что на рисунке 6.


Рисунок 5


Рисунок 6

Matrix Exploit опаснее, потому что само письмо в этом случае — просто текст без каких-либо URL-адресов или другого контента, который можно обнаружить при доставке (хотя относительно большое количество тегов HTML и размер сообщения может служить сигналом). Однако, как только удаленный CSS будет применён для выборочного отображения текста и URL-адресов, клиент электронной почты покажет ссылку с возможностью клика (например, Apple Mail), либо, по крайней мере, будет содержать текст с URL-адресом. Таким образом, доверчивый пользователь сможет легко его скопировать и использовать в браузере.

Microsoft Outlook, например, можно настроить для предупреждения перед автоматической загрузкой внешних ресурсов. Но сколько пользователей просто отклоняет предупреждение или отключает настройку? С точки зрения пользователей, если часть письма выглядит хорошо, почему бы не получить остальную часть сообщения?

Поскольку URL-адрес отображается после доставки, шлюз безопасности электронной почты не может найти и проверить вредоносный url, поскольку на момент доставки его нет. Для этого потребуется интерпретация CSS файлов, а это выходит за рамки функциональности существующих систем безопасности электронной почты.


Как происходит изменение отображаемого текста при использовании Matrix Exploit.

Важно отметить, что блок кода как на рисунке выше представляет возможность отобразить только одну позицию в матрице отображаемых символов и, следовательно, его необходимо повторять для всех позиций в предполагаемом письме. Таким образом, потребуется относительно большое по объёму письмо, чтобы отобразить относительно короткое сообщение.

Раскрытие информации о ROPEMAKER


В конце 2016 года Mimecast уведомил основных поставщиков почтовых клиентов, в частности Apple и Microsoft.

Совсем недавно Mimecast получил ответ от Apple:
пользователи могут отключить загрузку удаленного контента, перейдя по меню Mail > Preferences > Viewing and unchecking “Load remote content in messages”.
Решение предоставляется на уровне пользователя и таким образом, находится под его контролем, что добавляет риски. Действительно ли пользователи понимают потенциальные угрозы информационной безопасности? Кроме того, у iOS нет такой же возможности в настройках. Единственный ответ от Microsoft охарактеризовал ROPEMAKER как «not a vulnerability». А каково ваше мнение?
Cloud4Y
#1 Корпоративный облачный провайдер

Комментарии 21

    0
    Поскольку URL-адрес отображается после доставки, шлюз безопасности электронной почты не может найти и проверить вредоносный url, поскольку на момент доставки его нет. Для этого потребуется интерпретация CSS файлов, а это выходит за рамки функциональности существующих систем безопасности электронной почты.

    С текстом все ясно, а вот про ссылки не совсем.
    Есть возможность средствами css изменить атрибут элемента (ссылка в данном случае)?
    Насколько я понял, на момент доставки урл уже должен присутствовать в письме, только меняются его настройки видимости. Следовательно спам фильтры определят вредоносный адрес.
      0
      Вы говорите о случае с Switch Exploit, а отрывок статьи о Matrix Exploit. В случае со Switch то, о чём вы пишите работает.
        0
        я возможно упустил один абзац, либо он был добавлен

        клиент электронной почты покажет ссылку с возможностью клика

        Поскольку URL-адрес отображается после доставки, шлюз безопасности электронной почты не может найти и проверить вредоносный url, поскольку на момент доставки его нет.


        я о том, что вот эти два предложения вместе несовместимы, тут обязательно оговорка, что урл будет некликабельным(составлен из отдельных символов-элементов) и только тогда его пропустит «шлюз безопасности».
      0

      Не хватает картинки с CSS в описании преобразования HTML в методе Matrix Exploit. Из описания понятно, что в письме в HTML-коде одна позиция (один символ) представлена набором div-ов с уникальными ID, внутри которых по одному символу, в CSS, соответственно, часть этих ID'ов получает "display=inline". Трюк интересен, особенно если сервер динамически генерирует CSS, и его было бы весело использовать для какой-нибудь непрямой генерации уникальных ID, не перехватываемых одним куском (надо сопоставить два куска информации, прямо как в "Кортике").


      Также непонятен толком способ превратить порезанное на символы письмо в HTML-код "<a href="BadSite/BadURI">", вроде как чисто CSS'ом это не поменять. Или в письме стоит динамическая ссылка на какой-то элемент загружаемого CSS?

        0
        клиент электронной почты покажет ссылку с возможностью клика (например, в случае с Apple Mail), либо, по крайней мере, будет содержать текст с URL-адресом.
        пользователь копирует текст и вставит в строку браузера
          +1

          То есть серьезно, если я из дивов соберу строку "http://site.com/dir" клиент Apple Mail соберет из неё активный элемент? Ваууу, юзабилити! :D


          А копировать адрес из письма — довольно рискованная затея, на неё даже пользователи толком не попадаются уже.

            0
            тоже удивился, проверил на мобильном девайсе — действительно ссылка :/
          0
          конечно, вредоносный сайт не будет называться BadURL ;)
          –1

          Не надо использовать HTML в письмах! Электронная почта + HTML это дорога в ад!


          Во всех клиентов есть соответствующие настройки. Если письмо не конвертируется, просто стираем.

            0
            В целом согласен, но иногда хочется получить красивое письмо. За сотрудников организации выбор между красотой и безопасностью может сделать администратор, если такой имеется. В случае, с личным использованием почтовых клиентов ситуация чаще всего будет решена в пользу красоты.
              0
              Зачем нужны чисто текстовые письма? Можно и по телефону обсудить или SMS написать.

              Письма обычно пишу, когда нужно изображения приложить, цветом выделить, пошагово что-то описать с картинками, типа иди сюда, там будет то-то, сделай там это и т.п. Если просто 17 картинок к письму приложить, то непонятно получится.
                +1

                Потому что письмо это документ, а разговор это "бла-бла-бла".

                  0

                  Ну, отправите Вы мне прекрасный ХТМЛ документ, пошаговый, с картинками. А я все равно, прочитаю его как текст отдельно, а картинки отдельно. Потому что настройки клиента у меня такие. И придется вам писать текст так, чтобы понятнее был, иначе нам не понять друг друга. :)

                    0
                    > Можно и по телефону обсудить
                    Электронная почта — асинхронный способ общения, а телефон — синхронный, у них разные сценарии использования. Звонок — это способ решать вопросы _срочно_, он как минимум отрывает собеседника от его текущего занятия (если не запланирован). Не говоря уже о том, что электронная почта — основной способ доставки автоматизированных сообщений.

                    > или SMS написать
                    Не всегда. СМС дороже, не имеет многих фич e-mail (цитирование, шифрование), его сложнее вводить, контакт (номер телефона) значительно реже доступен посторонним.
                  0
                  В TheBAT как защищаться — понятно: Menu\Preferences\Viewer-Editor\HTML Viewer:
                  Use The Bat HTML viewer = Checked, Download embedded = Never.
                  И лучше Menu\Preferences\Viewer-Editor\: Plain Text Viewer везде.

                  А вот как защищаться в Mozilla Thunderbird я сообразить не могу…
                    0
                      0
                      О! Спасибо! Листал мимо, посчитал недостаточным — вдруг бы в about:config надо было пять флагов менять… :-)
                    +1
                    Насколько я знаю, даже онлайн-сервисы, предоставляющие почту, один раз скачивают весь контент и внедряют в письмо. Не говоря уже об оффлайн-клиентах, где вся подгрузка запрещена по умолчанию.

                    А иначе это приводило бы к раскрытию IP-адреса получателя письма при загрузке обычных картинок.
                      +1
                      Потенциальный риск в данном векторе сильно завышен и просто раздут журналистами. Прилепили громкое слово EXPLOIT, а по факту — банальный вектор.
                      Из более-менее опасного риска вижу обход анти-спам фильтров — когда легитимное письмо с Matrix техникой сперва вайтлистится почтовыми серверами, и потом подменяется содержимое без изменения тела письма.
                      Но опять-таки большинство режет загрузку ресурсов в внешних источников, перезакачивая их к себе.
                        0
                        Вопрос и ответ на stackoverflow, из 2010:
                        — Можно ли ссылаться на CSS-файл из письма и если да, то куда лучше вставлять линк?
                        — Можно ли? Да. Стоит ли? Нет. Вероятнее всего, почтовый клиент заблокирует внешние ссылки <...> спам-фильтры это не любят.

                        Было бы очень «здорово», например, узнавать о прочтении письма без отправки запроса на подтверждение — используя уникальные имена а-ля «styles-usertoken.css»
                        0
                        > Единственный ответ от Microsoft охарактеризовал ROPEMAKER как «not a vulnerability». А каково ваше мнение?
                        В кои-то веки я согласен с MS. Простой вопрос к Mimecast: а какого собственно поведения от аутлука <с включенной галочкой «разрешён доступ к внешнему html контенту»> по отношению к письму с таким контентом они ожидают? Клиент должен кэшировать всё внешнее содержимое и смотреть, не изменилось ли оно? А как отличить легальное изменение от нелегального?

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое