У процессов Linux есть переменные окружения, к которым можно получить доступ через файл
/proc/<pid>/environ или обработку структур памяти процесса. Переменные окружения устанавливаются системными вызовами setenv() или putenv() и наследуются дочерними процессами. Переменные окружения — это ценные источники данных, потому что в них могут быть аномалии, указывающие на атаку.Вот некоторые переменные окружения, на которые стоит обращать внимание.
• HISTSIZE — максимальный размер истории команд в памяти текущей сессии оболочки.
• HISTFILE — путь к файлу, в который будет записываться история команд, обычно <user_home>/.bash_history.
• HISTFILESIZE — максимальное количество команд, которое может записаться в файл HISTFILE.
• HISTIGNORE — команды, которые следует исключить из логирования.
• HISTCONTROL — указание на то, какие команды логировать.
• HOME — абсолютный путь к домашней директории пользователя.
• PATH — при запуске файла только по его имени система будет искать файл в указанных директориях в порядке приоритета.
• MYSQL_HISTORY, PSQL_HISTORY — путь к файлу, в который будет записываться история команд в консоли соответствующей БД.
• PWD — текущая директория процесса.
• OLDPWD — PWD родительского процесса.
• SUDO_USER — пользователь, запустивший процесс через команду sudo.
• SHLVL — глубина вложенности текущего процесса оболочки.
• _ — полный путь первой команды при запуске процесса из оболочки. Если исполняемый файл был запущен через лаунчер, например, nohup или screen, в переменной будет путь к лаунчеру.
• LD_PRELOAD — путь к файлу, из которого приоритетно подгружаются определения символов для программы. Может использоваться вредоносным ПО класса rootkit.
У процессов SSH-сессий можно обнаружить следующие переменные окружения.
• SSH_CONNECTION — адрес и порт SSH-клиента, адрес и порт сервера (обычно текущей системы). Переменная может содержать значения, даже если сессия уже завершилась.
• SSH_CLIENT — адрес и порт SSH-клиента из SSH_CONNECTION.
• SSH_ORIGINAL_COMMAND — команда, переданная при инициации SSH-соединения.
Наличие в переменных окружения процесса нетипичных значений может помочь вам обнаружить вредоносное ПО в системе. Например, наличие переменных оболочки в системном процессе может указывать на мимикрию — читайте статью о GoblinRAT. Кроме того, вредоносное ПО может использовать кастомные переменные, например:
• gsocket;
• Bulldog Backdoor (GoRed);
• бэкдор Vasilek;
• бэкдор IDFKA.
В новой статье — подробнее о переменных окружения и способах детектирования подозрительных процессов.
Сохраняйте пост, чтобы не потерять переменные окружения 😬