Эти символы могут:
— не отображаться в терминале (zero-width символы),
— выглядеть как пробелы,
— визуально быть похожими на обычные буквы (гомоглифы),
— содержать Unicode-символы, не поддерживаемые шрифтами,
— приводить к «поломанному» отображению строки (символы перевода строки \n, табуляции \t, backspace \b, возврата каретки \r).
Недавно мы столкнулись с инцидентом компрометации Linux-инфраструктуры заказчика, в котором была использована подобная техника. Наряду с другой вредоносной активностью, атакующие создавали файл, который отображался как
/usr/lib/udisks2/ в консоли аналитика ИБ. Однако при более детальном рассмотрении оказалось, что название файла состоит из одного символа возврата каретки
\r (см. скриншот). Современные терминалы могут корректно отображать некоторые из подобных символов, экранируя нечитаемые символы: файл с названием из символа возврата каретки
\r будет выглядеть как ''$'\r'. Но, например, в контейнерах, которые используют busybox, проблема всё ещё остается. Кроме того, подобная техника может ломать автоматизацию (логирование или отображение в SIEM и EDR), усложняя детектирование и анализ. Как ловить?
Необходимо сканировать системы на наличие файлов, содержащих подобные символы. А аналитикам безопасности необходимо убедиться, что их инструменты корректно обрабатывают файлы, содержащие такие символы. Также можно создать детектирующие правила на основе регулярных выражений для поиска подобных файлов.
