T1003.007: Файловая система proc

Злоумышленники могут получить учетные данные из файловой системы proc (/proc). Это псевдофайловая система в Linux-системах, используемая в качестве интерфейса к структурам данных ядра, управляющим виртуальной памятью. Для каждого процесса файл /proc/<идентификатор процесса>/maps показывает распределение памяти в виртуальном адресном пространстве этого процесса. А файл /proc/<PID>/mem, используемый в целях отладки, предоставляет доступ к виртуальному адресному пространству процесса.

Имея привилегии root, злоумышленники могут искать в этих областях памяти все процессы системы, где присутствуют последовательности символов, характерные для учетных данных. Злоумышленники могут использовать регулярные выражения, такие как grep -E "^[0-9a-f-]* r" /proc/"$pid"/maps | cut -d' ' -f 1, для поиска фиксированных строк в структурах памяти или кэшированных хешах. При работе без привилегированного доступа процессы все равно могут просматривать собственные области виртуальной памяти. Некоторые службы или программы могут сохранять учетные данные в памяти процесса в открытом текстовом виде.

Если процесс запущен от имени или с правами веб-браузера, он может искать в файлах /maps и /mem последовательности символов, типичные для учетных данных веб-сайтов. Эти последовательности могут содержать хеши или учетные данные в открытом текстовом виде; их также можно использовать для поиска областей памяти с аналогичной структурой.

Какие продукты Positive Technologies покрывают технику

Экспертиза MaxPatrol SIEM

unix_mitre_attck_cred_access: PT-CR-1693: Unix_Mimipenguin_Cred_Dump: Использование MSF-модуля MimiPenguin для извлечения паролей пользователей в открытом виде из памяти процессов

Способы обнаружения

IDDS0022Источник и компонент данныхФайл: Доступ к файлуОписание

Отслеживайте нетипичный доступ к паролям и хешам, хранящимся в памяти. Для того чтобы начать анализ процесса, другим процессам нужно открыть его файл maps в файловой системе /proc. Этот файл хранится по пути /proc/<pid>/maps, где имя каталога <pid> соответствует уникальному PID программы, у которой запрашивают подобные данные для аутентификации. Инструмент auditd, который по умолчанию установлен во многих версиях Linux, можно настроить для отслеживания вредоносных процессов, которые открывают указанный файл в файловой системе proc — auditd может записывать идентификаторы таких процессов, их имена и аргументы.

IDDS0017Источник и компонент данныхКоманда: Выполнение командОписание

Отслеживайте выполнение команд с аргументами, которые могут использоваться для извлечения учетных данных из файловой системы Proc (/proc). Например, злоумышленники могут использовать регулярные выражения, чтобы искать в памяти процессов учетные данные или другие данные для эксфильтрации.

grep -E "^[0-9a-f-]* r" /proc/"$pid"/maps | grep -E 'heap|stack' | cut -d' ' -f 1

grep -E "^[0-9a-f-]* r" /proc/"$PID"/maps | grep heap | cut -d' ' -f 1

Меры противодействия

IDM1026НазваниеУправление привилегированными учетными записямиОписание

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

IDM1027НазваниеПарольные политикиОписание

Проследите, чтобы учетные записи root на всех системах в сети имели сложные уникальные пароли.