WP Security

See WP fixed vulnerabilities

WP Scan

 

How to Install Linux Malware Detect?

Linux Malware Detect (LMD) is an excellent tool for detecting malware on linux operating system.  Follow the steps below to install Linux Malware Detect –

 

  • Log into server as root and run the following command
    • cd /usr/local/src/
  • Next download the installation file
  • Extract using the following command –
    • tar -xzf maldetect-current.tar.gz
  • Change the folder:
    • cd maldetect-*
  • Run the installer:
    • sh ./install.sh
  • To configure the script, run the following command:
    • nano /usr/local/maldetect/conf.maldet

Here are some tips on using the script

  • To scan a specific user:
    • maldet -a /home/username/
  • To scan all public_html folders
    • maldet –scan-all /home?/?/public_html

==========================================

https://sysadmin.pm/maldet/

========================================

MALDET. ПОИСК ПРОБЛЕМНЫХ СКРИПТОВ НА СЕРВЕРЕ.

Материал для владельцев собственных VDS или выделенных серверов, которые озабочены вопросами безопасности своих площадок. Автор заранее предупреждает, что никакое антивирусное ПО не даёт 100% гарантии на то что сервер не будет взломан, никакое ПО не даёт 100% гарантии на то, что ложных срабатываний не случится, однако автор убеждён, что при наличии удобного и понятного инструмента защиты, его стоит использовать в работе.

Linux Malware Detect (он же LMD, он же Maldet) — это сканер, с помощью которого можно проверить сервер на наличие подозрительных и проблемных скриптов (шеллы, скрипты для спама и т. п.) в системе в принципе или, например, в файлах сайта в частности. Сканер самодостаточен, однако если в системе установлен ClamAV, то он определит это и будет использовать его для сканирования данных. В программу заложен большой функционал, имеется возможность…

  • Находить подозрительные файлы (и уведомлять об этом);
  • Находить и отправлять на карантин проблемные скрипты (и уведомлять об этом);
  • Находить и по возможности лечить обнаруженное (и уведомлять об этом);
  • Сканировать только те файлы, которые появились и были изменены за определённые промежуток времени;
  • В интерактивном режиме осуществлять мониторинг в определённой директории;
  • Работать с исключениями, добавляя в них как конкретные сигнатуры, так и пути/конкретные файлы на сервере;
  • Отправлять подозрительные файлы на анализ, на серверы Maldet’а;
  • Автоматически и вручную обновлять собственные сигнатуры и версию самого сканера;

Установка и базовая настройка maldet.

Скачиваем архив с сайта разработчиков и устанавливаем Maldet:

cd /usr/local/src/
wget http://www.rfxn.com/downloads/maldetect-current.tar.gz
tar xvfz maldetect-current.tar.gz
cd maldetect-1.6/ # Здесь имя директории может немного отличаться.
sh install.sh

Конфигурационный файл maldet находится здесь /usr/local/maldetect/conf.maldet Он хорошо прокомментирован, дублировать его целиком нет смысла, так что остановимся только на основных моментах:

# [ General Options ]
email_alert="1" Включаем уведомления от maldet’а на почту. Ведь мы сознательные администраторы и следим за происходящим на сервере.
email_addr="[email protected]" Указываем ящик, на который хотим получать уведомления.
email_ignore_clean="0" Получение уведомлений об очищенных файлах. Ставим здесь 0, если далее мы включим автоматическое «лечение» найденных проблемных скриптов. На этом вопросе остановимся отдельно.

# [ SCAN OPTIONS ]
scan_max_depth="15"  Определяем максимальную глубину сканирования.
scan_min_filesize="24"  Задаём минимальный размер файла.
scan_max_filesize="2048k" Задаём максимальный размер файла, на который будет образать внимание сканер.
scan_clamscan="1" Будет ли сканер использовать установленный на сервере ClamAV.
scan_tmpdir_paths="/tmp /var/tmp /dev/shm /var/fcgi_ipc" Директории для временных файлов, которые maldet будет проверять.
scan_user_access="0" Разрешить ли не root пользователям запускать сканирование.
scan_ignore_user="" Пользователи через запятую или пробел, которые будут игнорироваться при сканировании.
scan_ignore_group="" Группы через запятую или пробел, которые будут игнорироваться при сканировании.

# [ QUARANTINE OPTIONS ]
quarantine_hits="1" Сразу же отправляем в карантин найденные подозрительные файлы.
quarantine_clean="0" Попытаться «вылечить» обнаруженное. Стоит ли включать эту опцию, каждый администратор решает сам. Автор предпочитает держать её отключенной, при включенном автоматическом карантине и уведомлениях об этом.

Ежедневная проверка новых файлов на сервере.

При установке, maldet создаёт для планировщика файл /etc/cron.daily/maldet, если ежедневные провекри новых файлов на сервере не нужны, то файл достаточно просто удалить, либо переместить его куда-то оттуда. В самом файле уже учтены все пути, которые создаются при работе с современными панелями управления сервером, обычно, модификация этого файла не требуется, только если администратору понадобится добавить какой-то не стандартный путь для ежедневной проверки.

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

Основные команды для работы с Maldet.

Запустить проверку в определённой директории. Необходимо указывать полный путь до нужной директории от корня:

maldet -a /path/to/dir

Когда сканирование будет завершено, сканер сообщит какой SCANID был присвоен отчёту (в примере 170501-0036.29912)…

maldet(25173): {scan} scan report saved, to view run: maldet --report 170501-0036.29912

… далее с этим отчётом можно работать.

Отправить на карантин всё найденное в отчёте:

maldet -q 170501-0036.29912

Попытаться «вылечить» найденные при сканировании 170501-0036.29912 файлы. При успешном лечении, файлы будут восстановлены без проблемного кода:

maldet -n 170501-0036.29912

Восстановить отправленные на карантин файлы во время сканирования 170501-0036.29912:

maldet -s 170501-0036.29912

Важный момент — если какие-то файлы были «вылечены», восстановление по отчёту может пройти не совсем корректно. Разумеется, удалённый в процессе лечения код данной командой восстановлен быть не может.

Восстановить конкретный файл из карантина:

maldet -s /usr/local/maldetect/quarantine/config.php.12345

Показать список всех имеющихся отчётов:

maldet -e list

Открыть отчёт сканирования 170501-0036.29912:

maldet -e 170501-0036.29912

В случае, когда работа ведётся с файлами и отчётами при сканировании от имени пользователя (например когда maldet настроен в связке с modsecurity), необходимо использовать параметр -U (—user). Например восстановление файлов из карантина, при этом, будет выглядеть вот так:

maldet -U nobody -s 170430-2322.25776

Где 170430-2322.25776 — это отчёт о сканировании и обработке файла, загруженного по http скриптами от пользователя nobody.

Даст куда более подробную информацию об этих и других доступных для работы со сканером командах:

maldet -h

Мониторинг в реальном времени.

Maldet позволяет настроить мониторинг файлов в нужных администратору директориях в реальном времени. Свои параметры мониторинг берёт из конфигурационного файла, там необходимое можно найти в секции [ MONITORING OPTIONS ]. Для работы мониторинга необходимо установить inotify-tools (в CentOS можно взять из EPEL), без него мониторинг работать не будет…

maldet(31124): {mon} could not find inotifywait command, install yum package inotify-tools or download from https://github.com/rvoicilas/inotify-tools/wiki/

Сам мониторинг имеет три варианта запуска:

1. Мониторинг пользователей. В этом режиме под контролем у сканера окажутся все директории пользователей. Запускается командой:

maldet -m users

2. Мониторинг только нужных Вам директорий (включая вложенные в них). Нужные пути указыватся через запятую. Команда для запуска следующая:

maldet -m /home/vasys,/var/www/sites

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

maldet -m /root/check_this_dirs

Автивность можно проследить по логу /usr/local/maldetect/logs/inotify_log. Сам процесс в системе выглядит примерно так:

# ps aux | grep maldet
root 23580 9.3 0.0 9804 3832 pts/2 SN 22:38 0:08 /usr/bin/inotifywait -r --fromfile /usr/local/maldetect/sess/inotify.paths.23486 --exclude \(^/var/tmp/mysql.sock$|^/tmp/mysql.sock$|^/var/cache/buagent/md0.cache.data$|^/var/tmp/#sql_.*\.MYD$|^/tmp/#sql_.*\.MYD$|^/var/tmp/clamav-.*|^/tmp/clamav-.*|^/usr/local/maldetect*|^/dev/pts*|^/dev/null\) --timefmt %d %b %H:%M:%S --format %w%f %e %T -m -e create,move,modify
root 23593 0.0 0.0 119132 3012 pts/2 S 22:38 0:00 bash /usr/local/sbin/maldet -m /home/sysadmin/

Остановить мониторинг можно командой:

maldet -k

Для серверов работающих под нагрузкой и/или для серверов работающих с огромным количеством файлов, имеет смысл обратить внимание на настройки в секции MONITORING OPTIONS конфига maldet’а. В случае если мониторинг будет создавать избыточную нагрузку, с помощью опций в этой секции можно ограничить его работу до разумных пределов.

Мониторинг загрузок по http.

Maldet и ModSecurity можно настроить на совместную обработку всего что загружается на сервер по http. Это особенно актуально для сайтов, которые подвергаются частым попыткам взлома и загрузки проблемных скриптов. Для того что бы настроить проверку всего загружаемого на сайтах налету необходимо:

1. Включить опцию scan_user_access в конфигурационном файле Maldet’а.

2. Подготовить maldet к работе с файлами пользователей командой:

maldet --mkpubpaths

Эта команда создаст пользовательские директории с нужными правами в /usr/local/maldetect/pub/

3. В файл с правилами ModSecurity необходимо добавить следующее:

SecRequestBodyAccess On
SecRule FILES_TMPNAMES "@inspectFile /usr/local/maldetect/hookscan.sh" \
 "id:'999999',log,auditlog,deny,severity:2,phase:2,t:none"

ID правила (id:’999999′), при этом, должен быть уникальный. При использовании ModSecurity >=2.9, необходимо перед SecRule FILES_TMPNAMES добавить строку SecTmpSaveUploadedFiles On.

4. После сохранения изменений необходимо перезапустить apache.

Теперь, если всё сделано верно, всё что загружается на сайт по http будет попадать на проверку Maldet’у, а тот в свою очередь будет проверять загрузку и в случае обнаружения проблемного файла будет обрабатывать его в соответствии с настройками, которые указаны в последней строке файла /usr/local/maldetect/hookscan.sh после --config-option:

cd /tmp ; $inspath/maldet --hook-scan --config-option quarantine_hits=$quarantine_hits,quarantine_clean=$quarantine_clean,tmpdir=/var/tmp,scan_tmpdir_paths=$scan_tmpdir_paths,scan_clamscan=$clamd_scan -a "$file"

Здесь при необходимости можно добавить свои параметры обработки файла, указать email для уведомления ([email protected]) и т. д.

Настройка исключений.

Maldet поддерживает несколько списков исключений при сканировании и мониторинге:

/usr/local/maldetect/ignore_paths Список, в котором можно указать какие файлы и\или директории будут игнорироваться. Пример:

/home/sysadmin/public_html/blabla

/usr/local/maldetect/ignore_file_ext Список, в котором можно указать какие расширения будут игнорироваться. Пример:

.txt
.css

/usr/local/maldetect/ignore_sigs Список, в котором можно указать какие сигнатуры будут игнорироваться. Пример:

base64.inject.unclassed

/usr/local/maldetect/ignore_inotify Список, в котором регекспами можно указать, что мониторинг будет игнрировать при проверке. Пример:

^/home/user$
^/var/tmp/#sql_.*\.MYD$

 

 

More Information can be found here

Guide on Increasing WP security

https://techbear.ru/rukovodstvo-po-bezopasnosti-wordpress/

Насколько безопасен Вордпресс
Почему ваш сайт является целью для злоумышленников
Как хакеры получают доступ к сайту
Основы безопасности сайта
Как скрыть данные о Вордпресс

  1. Удалите ненужные файлы
  2. Удалите версию Вордпресс
  3. Измените структуру расположения файлов и папок
  4. Измените имя пользователя по умолчанию
  5. Ограничьте количество попыток доступа на сайт
  6. Дополнения в wp-config.php
  7. Добавьте правила в .htaccess
  8. Удалите пользователя с ID 1
  9. Измените текст ошибки при входе на сайт
  10. Отключите XML-RPC
  11. Установите пароль на доступ к wp-login.php
  12. Измените адрес входа на сайт
  13. Используйте двух-факторную авторизацию
  14. Как бороться со спамом

Плагины безопасности
Как поддерживать безопаность сайта

  1. Используйте плагин безопасности
  2. Регулярно сканируйте сайт
  3. Просматривайте логи событий
  4. Установите файрвол на сервере

Признаки взломанного сайта
Решение проблем со взломанным сайтом