Безопасен ли текстовый файл?

Обычно файлы с расширением TXT считаются безопасными. Так ли это на самом деле?

Сотрудникам, получающим электронную почту извне компании, обычно объясняют, какие файлы можно открывать, не беспокоясь за безопасность компьютера, а какие потенциально опасны. Скажем, исполняемые файлы EXE по умолчанию считаются небезопасными вложениями, как и офисные документы DOCX или XLSX, в которых могут быть зловредные макросы. А вот файлы с расширением TXT обычно считают безвредными по определению, ведь они не могут содержать ничего, кроме чистого текста. Однако всегда ли они абсолютно безопасны?

Нет, не всегда. Существует как минимум одна уязвимость (на данный момент уже закрытая), которую можно было использовать для атаки через файл TXT. Потому что важно не то, что в файле, а то, как он обрабатывается соответствующими программами.

Уязвимость в macOS CVE-2019-8761

Исследователь Паулош Йибелло (Paulos Yibelo) привлек внимание к достаточно интересному варианту атаки на компьютеры под управлением macOS через текстовый файл. Как и многие другие защитные решения, встроенная система безопасности macOS, Gatekeeper, считает файл TXT вполне доверенным — его можно скачивать и открывать встроенным редактором TextEdit без дополнительных проверок.

Однако редактор TextEdit — несколько более сложный продукт, чем привычный «Блокнот» (Notepad) из Microsoft Windows. Он умеет несколько больше — например, выделять часть текста жирным, менять цвет букв и так далее. Но сам по себе формат TXT для хранения такой информации о стилях не предназначен, так что TextEdit считывает из файлов дополнительную информацию. Например, если файл начинается со строки <!DOCTYPE HTML><html><head></head><body>, TextEdit по какой-то причине начинает обрабатывать HTML-теги, даже если это на самом деле TXT-файл.

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

Какие атаки возможны при помощи TXT-файлов

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

  • Организовать DoS-атаку. Защитные механизмы системы не препятствуют открытию из объекта с расширением TXT локальных файлов. Поэтому, заставив пользователя кликнуть на вредоносный TXT-файл, его компьютер можно перегрузить — например, если из HTML-кода обратиться к файлу /dev/zero, представляющему собой бесконечный источник нулевых байтов. Впрочем, это не единственный пример.
  • Узнать реальный IP-адрес пользователя. Из TXT-файла можно вызвать AutoFS — штатную программу для монтирования файловой системы. С ее помощью можно попытаться подключить внешний накопитель. Особого вреда это не принесет, вот только процесс автоматического монтирования заставляет ядро системы посылать TCP-запрос, даже если пользователь сидит за прокси-сервером. Таким образом автор вредоносного текстового файла узнает точное время его открытия и зарегистрирует настоящий IP-адрес.
  • Похитить файлы с компьютера жертвы. Атрибут <iframedoc> позволяет вставлять в текстовый файл содержимое других файлов. Поэтому вредоносный TXT-файл может при открытии получить доступ к любому файлу, а потом передать его содержимое при помощи атаки типа Dangling Markup.

Об уязвимости Apple уведомили еще в декабре 2019, и она получила номер CVE-2019-8761. Больше информации об эксплуатации этой уязвимости можно узнать в посте Паулоша Йибелло.

Как оставаться в безопасности

Уязвимость CVE-2019-8761 была успешно закрыта в одном из обновлений 2020 года. Но гарантий, что это единственный недочет в ПО для работы с TXT-файлами, нет. Возможно, есть и другие, просто пока никто не придумал, как их эксплуатировать. Поэтому правильный ответ на вопрос «безопасен ли текстовый файл?» будет звучать примерно так: «На данный момент вроде бы да… но это не повод относиться к нему как к доверенному».

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

Советы

Как отключить слежку в iOS?

У вас есть iPhone, iPad или iPod? Потратьте несколько минут на настройку служб геолокации, чтобы сэкономить заряд батареи и сохранить конфиденциальность перемещений.