T1562.003: Нарушение журналирования команд
Злоумышленники могут саботировать журналирование команд, чтобы скрыть команды, которые они выполняют на скомпрометированной системе. Различные интерпретаторы командной строки регистрируют команды, введенные в терминале, чтобы пользователи могли просмотреть или повторить их при необходимости.
В Linux и macOS история команд пользователя, вошедшего в систему, регистрируется в файле, на который указывает переменная окружения HISTFILE
. Когда пользователь выходит из системы, эта информация сбрасывается в файл ~/.bash_history
, расположенный в домашнем каталоге пользователя. Переменная окружения HISTCONTROL
указывает, какие команды должны выводиться командой history
и в конечном итоге записываться в файл ~/.bash_history
при выходе пользователя из системы. По умолчанию переменная HISTCONTROL
отсутствует в macOS, но если ее добавит пользователь, соответствующие настройки будут действовать.
Злоумышленники могут очистить переменную окружения, указывающую на файл истории (unset HISTFILE
), или установить нулевой размер истории команд (export HISTFILESIZE=0
), чтобы предотвратить журналирование команд. Кроме того, можно настроить переменную HISTCONTROL
так, чтобы она игнорировала команды, начинающиеся с пробела, установив ей значение ignorespace. Также при необходимости HISTCONTROL
может игнорировать дублирующиеся команды, если установить значение ignoredups. В некоторых системах Linux по умолчанию установлено значение ignoreboth, охватывающее оба приведенных примера. То есть " ls" не попадет в историю, а "ls" — сохранится. Злоумышленники могут действовать, не оставляя следов, просто добавляя пробел ко всем командам терминала.
В Windows модуль PSReadLine
отслеживает команды, выполняемые во время всех сеансов PowerShell, и записывает их в файл (по умолчанию $env:APPDATA\Microsoft\Windows\PowerShell\PSReadLine\ConsoleHost_history.txt
). Злоумышленники могут изменить место сохранения этих журналов с помощью команды Set-PSReadLineOption -HistorySavePath {путь_к_файлу}
. В результате в файле ConsoleHost_history.txt
не будут появляться новые записи. Кроме того, можно отключить запись журнала в этот файл с помощью команды PowerShell Set-PSReadlineOption -HistorySaveStyle SaveNothing
.
Злоумышленники могут также воспользоваться интерпретаторами командной строки сетевых устройств, чтобы отключить на них ведение журнала команд (например, командой no logging
).
Какие продукты Positive Technologies покрывают технику
Экспертиза MaxPatrol SIEM
eltex: PT-CR-2345: Eltex_Ros_Disable_Logging: Журналирование отключено или его настройки изменены unix_mitre_attck_defense_evasion: PT-CR-1658: Unix_Impair_Command_Logging: Изменение настроек ведения журнала истории команд
Способы обнаружения
ID | DS0013 | Источник и компонент данных | Данные о работоспособности: Состояние узла | Описание | Проверка или изменение переменных окружения |
---|
ID | DS0017 | Источник и компонент данных | Команда: Выполнение команд | Описание | Отсутствие новых записей в журнале |
---|
Меры противодействия
ID | M1039 | Название | Предотвращение изменения переменных окружения | Описание | Запретите пользователям изменять переменные окружения |
---|
ID | M1028 | Название | Изменение конфигурации ОС | Описание | Проследите, чтобы для переменной окружения |
---|