Комплекс шкідливого ПЗ «Дроворуб» заражає ОС Linux

Агентство національної безпеки та Федеральне бюро розслідувань США опублікували звіт, згідно з яким 85-м головним центром спеціальної служби ГУ ГШ ЗС РФ (85 ГЦСС ГРУ) використовується комплекс шкідливого ПЗ під назвою «Дроворуб». До складу «Дроворуба» входять руткіт у вигляді модуля ядра Linux, інструмент для пересилання файлів та перенаправлення мережевих портів та керуючий сервер. Клієнтська частина може завантажувати та вивантажувати файли, виконувати довільні команди від імені користувача root та перенаправляти мережні порти на інші вузли мережі.

Керуючий центр «Дроворуба» аргументом командного рядка отримує шлях до файлу конфігурації у форматі JSON:

{
"db_host" : " »,
"db_port" : " »,
"db_db" : " »,
"db_user" : " »,
"db_password" : " »,

"lport" : " »,
"lhost" : " »,
"ping_sec" : " »,

«priv_key_file» : « »,
"phrase" : " »
}

Як бекенд використовується СУБД MySQL. Для підключення клієнтів використовується протокол WebSocket.

Клієнт має вбудовану конфігурацію, у тому числі URL-сервера, його публічний ключ RSA, ім'я користувача та пароль. Після встановлення руткіта конфігурація зберігається у вигляді текстового файлу у форматі JSON, який ховається від системи модулем ядра «Дроворуба»:

{
«id» : «cbcf6abc-466b-11e9-853b-000c29cb9f6f»,
"key": "Y2xpZW50a2V5"
}

Тут "id" - унікальний ідентифікатор, виданий сервером, в якому останні 48 біт відповідають MAC-адресу мережного інтерфейсу сервера. Параметр "key" за замовчуванням - закодований у форматі base64 рядок "clientkey", який використовується сервером при первинному рукостисканні. Крім цього, конфігураційний файл може містити інформацію про приховані файли, модулі та мережні порти:

{
«id» : «6fa41616-aff1-11ea-acd5-000c29283bbc»,
"key": "Y2xpZW50a2V5",
"monitor" : {
"file" : [
{
"active" : "true",
«id» : «d9dc492b-5a32-8e5f-0724-845aa13fff98»,
"mask" : "testfile1"
}
],
"module" : [
{
"active" : "true",
«id» : «48a5e9d0-74c7-cc17-2966-0ea17a1d997a»,
"mask" : "testmodule1"
}
],
"net" : [
{
"active" : "true",
«id» : «4f355d5d-9753-76c7-161e-7ef051654a2b»,
port : 12345,
"protocol" : "tcp"
}
] }
}

Ще один компонент "Дроворуба" - агент, його конфігураційний файл містить інформацію для підключення до сервера:

{
"client_login" : "user123",
"client_pass" : "pass4567",
"clientid" : "e391847c-bae7-11ea-b4bc-000c29130b71",
«clientkey_base64» : «Y2xpZW50a2V5»,
"pub_key_file" :"public_key",
"server_host" : "192.168.57.100",
"server_port" :"45122",
"server_uri" :"/ws"
}

Поля "clientid" та "clientkey_base64" спочатку відсутні, вони додаються після первинної реєстрації на сервері.

Після встановлення виконуються такі операції:

  • завантажується модуль ядра, що реєструє хуки для системних викликів;
  • клієнт виконує реєстрацію у модулі ядра;
  • модуль ядра приховує працюючий процес клієнта та його файл на диску.

Для взаємодії клієнта з модулем ядра використовується псевдобудівництво, наприклад, /dev/zero. Модуль ядра виконує розбір всіх даних, що записуються в пристрій, а для передачі у зворотному напрямку посилає клієнту сигнал SIGUSR1, після чого той зчитує дані з цього ж пристрою.

Для виявлення «Дроворуба» можна використовувати аналіз мережного трафіку засобами NIDS (шкідливу мережну активність у самій зараженій системі виявити не вдається, оскільки модуль ядра приховує мережні сокети, що використовуються, правила netfilter і пакети, які могли б перехопитися raw-сокетами). У системі, де встановлений «Дроворуб», можна виявити модуль ядра, відправивши йому команду приховування файлу:

touch testfile
echo “ASDFZXCV:hf:testfile” > /dev/zero
ls

Створений файл "testfile" стає невидимим.

Інші методи виявлення включають аналіз пам'яті та вмісту диска. Для запобігання зараженню рекомендується використовувати обов'язкову перевірку підпису ядра та модулів, доступну починаючи з версії ядра linux 3.7.

Звіт містить правила Snort для виявлення мережевої активності «Дроворуба» і правила Yara для детектування його компонентів.

Нагадаємо, що 85 ГЦСС ГРУ (в/ч 26165) асоціюється з групою APT28 (Fancy Bear), відповідальний за численні кібератаки.

Джерело: opennet.ru