Как очистить Linux от вирусов?

В предыдущей статье мы начали рассматривать методы поиска и удаления вирусов в Linux, в этой статье будут перечислены оставшиеся приемы борьбы с вредоносным ПО в системе Linux.

Найдите и очистите систему от самозапускающихся вредоносных программ

Самый простой способ для злоумышленника продолжать контролировать атакуемую цель — позволить вредоносной программе запуститься вместе с системой. В системе Linux в основном существует два типа настроек программы запуска, а именно сценарий запуска в виде SysV и механизм управления системой systemd.

Места запуска SysV:

/etc/init

/etc/init.d

/etc/rc.d

/etc/rc[0-6].d

/etc/rc.local

/etc/inittab

Места запуска systemd:

/etc/systemd

~/.config/systemd/user

SysV и systemd не являются взаимоисключающими. Проверка должна проверять каждый файл в каждом подкаталоге соответствующего местоположения одновременно, а также проверять, вводит ли системный сценарий другие местоположения запуска в соответствии с версией дистрибутива, и выполнять рекурсивную проверку.

Давайте рассмотрим другие стартовые локации.

Место запуска Xserver:

/etc/xdg/autostart

~/.config/autostart

Командная строка запуска системы также может вводить внешние параметры запуска, которые можно просмотреть с помощью следующей команды:

cat /proc/cmdline

Откажитесь от этих действий:

1. Если место запуска системы Linux огромно и сложно, и оно отличается в зависимости от разных версий выпуска, а некоторые сценарии чрезвычайно сложны. Все это определяет, что ручная проверка и поиск проблем нерентабельны;

2. Установка других программ также может привести к появлению новых точек загрузки при запуске, что еще больше усложнит расследование;

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

4. Вышеупомянутые места проверки не охватывают все элементы проверки запуска. Конкретные имена и расположение элементов запуска полностью определяются личными привычками и предпочтениями разработчиков используемой версии выпуска. Если они не очень хорошо знакомы с конкретной системой, обычные люди могут пропустить это при проверке;

Найдите и удалите вредоносные программы, которые регулярно запускаются

Задачи синхронизации Linux также часто используются злоумышленниками для внедрения вредоносных файлов. Обычные из них включают cron, systemd-timers, at и самодельные резидентные процессы.

Общие места для задач cron:

/etc/crontab

/etc/cron.*

/var/spool/cron/

Вы также можете просмотреть список задач cron для текущего пользователя с помощью следующей команды:

crontab -l

Расположение systemd-timers находится в подкаталоге /etc/systemd, который можно просмотреть с помощью следующей команды:

systemctl list-unit-files | grep timer

Список команд планирования at можно просмотреть с помощью следующей команды:

$ at -l

Запланированные задачи резидентных процессов определяются проектировщиком процессов и не могут быть проверены единообразно, поэтому такие проблемы могут быть решены только с помощью Live CD для запуска системы с последующей очисткой всех подозрительных самозапускающихся файлов.

Откажитесь от этих действий:

1. Сама задача синхронизации относительно проста, но при проверке необходимо различать, какие идут в комплекте с системой, а какие были изменены или добавлены. Если это определено неправильно, то сама система может работать некорректно;

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

Найдите и удалите измененные или добавленные системные файлы

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

Система Redhat может использовать следующие команды:

rpm -Va

Системы Debian/Ubuntu могут использовать следующие команды:

dpkg -l | awk '/^ii/ { print $2 }' | xargs debsums | grep -vE 'OK$'

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

Откажитесь от этих действий:

1. Встроенный в систему инструмент проверки не хранит информацию обо всех установочных файлах, поэтому процесс проверки не является полностью надежным;

2. Сам встроенный инструмент проверки системы также может быть взломан, и проверка может быть бессмысленной;

3. Если вредоносная программа заражает файл, установленный пользователем, проверка вообще не может обнаружить аномалию в файле;

Найдите и восстановите общие файлы конфигурации и параметры системы

Хитрый охотник прячется там, где меньше всего его ожидают. Переменные среды оболочки чаще всего упускают из виду пользователи. Подделка PATH/LD_LIBRARY_PATH/LD_PRELOAD/LD_AUDIT/alias может активно запускать выполнение вредоносного кода, когда пользователи выполняют команды.

Переменная PATH - эта переменная определяет, как система находит целевую программу, когда пользователь запускает программу. По умолчанию обычные пользователи включают /bin, /usr/bin, /usr/local/bin и т. д. Пользователи root дополнительно имеют /sbin, /usr/sbin, /usr/local/sbin и так далее. Если злоумышленник подменяет содержимое переменной PATH, пользователь может запустить неожиданную вредоносную программу.

Вы можете использовать следующую команду для просмотра текущего содержимого PATH:

env | grep PATH

Переменные LD_LIBRARY_PATH/LD_PRELOAD/LD_AUDIT и другие подобные переменные влияют на фактический зависимый код, связанный динамическим компоновщиком во время выполнения, и по умолчанию должны быть пустыми. Если злоумышленник подменяет содержимое переменной, пользователь по незнанию загрузит и запустит вредоносный код во время работы программы.

Вы можете просмотреть содержимое подобных переменных с помощью следующей команды:

env | grep LD_

Файл конфигурации /etc/ld.so.preload может выполнять аналогичную функцию, и его нельзя игнорировать при проверке.

Команда alias — это встроенная команда оболочки, которая позволяет пользователям изменять фактическую семантику запуска команды. Злоумышленники могут использовать эту команду, чтобы создать ложную видимость, разрешить обычным пользовательским командам загружать вредоносный код для выполнения и даже скрыть или изменить результаты обычных команд.

Например, следующая команда заставит пользовательскую команду ls всегда возвращать пустые каталоги:

$ alias ls=echo

Вы можете запустить команду alias, чтобы просмотреть все текущие псевдонимы команд:

$ alias

На переменные системной среды обычно влияют файлы конфигурации системы и пользовательского каталога.

/etc/profile

/etc/profile.d

/etc/environment

/etc/bashrc

Файлы конфигурации пользовательского каталога:

~/.profile

~/.bashrc

~/.bash_profile

~/.bash_logout

~/.zshrc

Если пользователь использует службу X Window, файл конфигурации также включает:

~/.xprofile

~/.xinitrc

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

Изменение файлов /etc/modprobe* или /etc/modules* может позволить системе загрузить вредоносный код модуля ядра;

Изменение файла /etc/initcpio или /etc/initramfs может привести к записи вредоносного кода в ранний образ памяти при запуске системы;

Точно так же изменение файлов в /etc/yum или /etc/apt может позволить операции обновления вашей системы загрузить вредоносный код для злоумышленников;

Даже изменение /etc/hosts может превратить ваши часто посещаемые сайты в отравленные сайты, контролируемые хакерами.

В заключение, длина этого списка в основном зависит только от воображения злоумышленника.

Откажитесь от этих действий:

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

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

Проверьте и восстановите системные бизнес-файлы

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

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

При развертывании подтвердите, что у пользователя сервиса нет прав на запись ни в какие файлы в системе, кроме необходимого каталога загрузки пользователя. Если это обычный пользователь, после резервного копирования данных удалите все файлы, принадлежащие пользователю.

Если у злоумышленника есть разрешение на запись системных файлов, его действия могут включать, но не ограничиваться:

- Изменять файлы конфигурации сервера или файлы конфигурации каталога службы, добавлять или изменять содержимое службы и создавать лазейки.

- Изменять или добавлять программные файлы служебного каталога, внедрять троянский бэкдор из одного предложения.

- Увеличивать пакет сервисного каталога и подготовить для себя роскошный черный ход троянского коня.

- Добавлять или изменять пароль управления службой по умолчанию, например, чтобы помочь вам добавить или изменить пользователя в каталоге управления tomcat, чтобы сделать его бэкдором.

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

Когда ваш бизнес подвергается атаке, «майнинг», вероятно, является наименьшей из ваших забот. В это время бизнес-данные сервера могут быть украдены или подделаны. Также опытные хакеры могут внедрить хорошо продуманные триггеры или бэкдор-программы, сформированные хранимыми процедурами в базе данных. Даже если вы восстановите данные, хакер может вернуться в любой момент.

Откажитесь от этих действий:

1. Замораживание трех футов не происходит в одночасье. Если такая проблема возникает в системе, очень вероятно, что вся идея разработки и развертывания системы должна быть переработана и перезапущена. Не думай о том, как это исправить, сначала останови убыток;

2. При проверке необходимо различать, какие файлы были изменены или добавлены.

Проверьте и восстановите системный загрузчик и файлы ядра

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

На самом деле пресловутый CIH-вирус прошлого века был нацелен на код запуска системы и само оборудование BIOS. Согласно общедоступной информации, у хакеров есть вирусы, которые атакуют базовый код оборудования в качестве оружия. В этом случае, если коммерческое антивирусное программное обеспечение не может обнаружить вирус, вы можете только вызвать эксперта по вирусам.

Конечно, чтобы этого не произошло, можно попробовать функцию безопасной загрузки (secure boot), которая требует взаимодействия BIOS и поддерживаемой операционной системы. Конкретные технические подробности можно найти в официальной документации материнской платы и операционной системы.

Эпилог

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

Важно отметить, что не только вредоносное ПО и вирусы влияют на работу сайта, а и многие другие факторы. Но, какова бы ни была причина, по которой страница сайта не открывается, например проблемы с базой данных или сервером, DDoS-атаки или вирусы, важно контролировать доступность сайта для посетителя. Ситуация, при которой пользователь не может открыть страницу вашего сайта, отрицательно влияет на поднятие сайта в поиске (поисковой выдаче) и оставляет негативное впечатление о вашем сайте у посетителя. Вы теряете потенциальных клиентов, а значит и деньги. Используйте хороший сервис, например BAILRY для постоянного контроля (проверки) доступности сайта. Сервис предоставляет как бесплатную регулярную (периодическую) проверку доступности сайта, так и платную услугу - для постоянного контроля доступности сайта.

Компания Mainton - разработка и тестирование программного обеспечения под заказ, SEO и реклама в интернете с 2004 года.

ПЕНТЕСТ БЕЗОПАСНОСТЬ ВЗЛОМАЛИ? СТАТЬИ ВАКАНСИИ