Опенсорс-инструменты на страже безопасности бэкенда...
DESCRIPTION
Антивирусная система Яндекса ежедневно обнаруживает тысячи взломанных сайтов. Периодически среди них встречаются крупные и известные интернет-ресурсы. Администраторы сайтов часто оказываются не готовы к тому, что злоумышленник может пробраться через внешний периметр и исполнить произвольный код на стороне сервера. В результате перед ними встаёт нелегкая задача: обнаружить последствия и предотвратить дальнейшие проблемы. Доклад посвящён практикам и инструментам, которые могут существенно повысить эффективность противодействия вредоносной активности, и профилактике её возникновения.TRANSCRIPT
Open-source инструменты на страже безопасности бэкенда
Пётр Волков
Я.Субботник, Нижний Новгород, 13.12.2014
Схема получения несанкционированного доступа Поисковые «дорки»
Сканирование ( порты + web )
Загрузка шелла
Укрепление
Эксплуатация
Эшелонированная защита
Веб-приложение
Пользовательский режим ОС
Эшелонированная защита
Ядро ОС
Места естественного обитания вредоносного кода
• Серверные скрипты
• Конфиги веб-сервера
• БД
• Статика
• Исполняемый файл/процесс веб-сервера, модули веб-сервера, модифицированный sshd
YARA
YARA
import "elf" rule single_section {
condition: elf.number_of_sections == 1 } rule elf_64 {
condition: elf.machine == elf.EM_X86_64 }
ClamAV
MalwareName:FileType:Offset:HexSignature
$clamscan mod_probe
mod_probe: Linux.Flooder.Agent FOUND
$ sigtool --md5 test.bin > test.hdb
$ clamscan -d test.hdb test.bin
Формат сигнатур:
…"scan_date": "2011-11-08 19:44:53","permalink": "https://www.virustotal.com/url/d466...1eaf/analysis/1320781493/", …"scans": {
"nProtect": {"detected": true, "version": "2010-05-14.01", "result": "Trojan.Generic.3611249", "update": "20100514"},
"CAT-QuickHeal": {"detected": true, "version": "10.00", "result": "Trojan.VB.acgy", "update": "20100514"},
"McAfee": {"detected": true, "version": "5.400.0.1158", "result": "Generic.dx!rkx", "update": "20100515"}, …
Virustotal Public API • HTTPS API, ответ в json • Готовые клиенты на 10 ЯП • Сканирует файлы, URL, ip
…Checking `amd'... not foundChecking `basename'... not infectedChecking `chsh'... not infectedChecking `cron'... not infectedChecking `dirname'... not infectedChecking `gpm'... not foundChecking `grep'... not infected…
chkrootkit • Сигнатурная проверка • Поиск модификаций логов utmp, wtmp, ... • Проверка ошибок конфигурации • …
[05:34:26] Info: Starting test name 'shared_libs'[05:34:26] Performing 'shared libraries' checks[05:34:26] Checking for preloading variables [ None found ][05:34:26] Info: Found library preload file: /etc/ld.so.preload[05:34:26] Checking for preloaded libraries [ Warning ][05:34:26] Warning: Found preloaded shared library: /usr/local/lib/libsnoopy.so
Rootkit Hunter • Проверка модификации некоторых файлов • Поиск по сигнатурам • Проверка ld_preload • Проверка ошибок конфигурации • …
[15:27:03] Warning: No swap partion found in /etc/fstab [FILE-6332][15:27:24] Warning: Found one or more vulnerable packages. [PKGS-7392][15:27:25] Warning: Found mail_name in SMTP banner, and/or mail_name contains 'Postfix' [MAIL-8818][15:27:26] Warning: Root can directly login via SSH [SSH-7412]…[15:26:25] Suggestion: Set a password on GRUB bootloader. [BOOT-5122][15:27:01] Suggestion: Install a PAM module for password strength testing [AUTH-9262][15:27:01] Suggestion: Configure password aging limits to enforce password [AUTH-9286][15:27:25] Suggestion: Configure a firewall/packet filter to filter incoming and outgoing traffic [FIRE-4590][15:27:27] Suggestion: Enable process accounting [ACCT-9622][15:27:27] Suggestion: Enable sysstat to collect accounting (no results) [ACCT-9626][15:27:27] Suggestion: Enable auditd to collect audit information [ACCT-9628][15:27:30] Suggestion: Harden compilers like restricting access to root user only [HRDN-7222]…
Lynis Расширяемая проверка ошибок конфигурации
Проверка целостности средствами ПМ
sudo debsums -as debsums: changed file /etc/gnome/defaults.list (from desktop-file-utils package) debsums: changed file /etc/default/rcS (from initscripts package) debsums: changed file /etc/subuid (from login package) debsums: changed file /etc/subgid (from login package) debsums: changed file /etc/sudoers (from sudo package)
Проверка целостности средствами ПМ
sudo rpm -Va .M5....T /usr/X11R6/lib/X11/fonts/misc/fonts.dir missing /var/spool/at/.lockfile missing /var/spool/at/spool S.5....T /usr/lib/rhs/glint/icon.pyc ..5....T c /etc/inittab ..5..... /usr/bin/loadkeys
rpm -Vf /etc/blunder file /etc/blunder is not owned by any package
Tripwire Контроль целостности файловой системы • Шлет отчеты по почте • Выбор алгоритма хэширования • Гибкие политики контроля целостности: append и т.д. Проблемы: • /tmp • изменения между проверками Аналоги: AIDE, TAMU, ATP, Hobgoblin, sXid, L5, Gog&Magog
Apr 6 06:46:26 asterisk snoopy[12664]: [uid:0 sid:12595 tty:/dev/pts/2 cwd:/home/develop filename:/usr/bin/nano]: nano /etc/asterisk/extensions.conf
Apr 6 07:56:19 asterisk snoopy[13267]: [uid:0 sid:13166 tty:/dev/pts/3 cwd:/root filename:/sbin/ifconfig]: ifconfig
Apr 6 07:56:26 asterisk snoopy[13268]: [uid:0 sid:13166 tty:/dev/pts/3 cwd:/root filename:/bin/touch]: touch /opt/1.txt
Apr 6 07:57:56 asterisk sudo: felvis : TTY=pts/3 ; PWD=/home/felvis ; USER=root ; COMMAND=/sbin/ifconfig eth0
Apr 6 07:57:56 asterisk snoopy[13277]: [uid:0 sid:13166 tty:/dev/pts/3 cwd:/home/felvis filename:/sbin/ifconfig]: /sbin/ifconfig eth0
Snoopy Logger https://github.com/a2o/snoopy Логирует выполняемые в терминале команды
#Cледить за изменениями в каталоге /servers/i/auditctl -w /servers/i/ -p wa
#Следить за обращениям к файлам в /etcauditctl -a exit,always -S open -F path=/etc/
#Cледить за модификациями /etcauditctl -a exit,always -S open -F path=/etc/ -F perm=aw
#Cледить за модификациями /etc/passwdauditctl -w /etc/passwd -p wa
vi /etc/audit/audit.rules
#Следить веб-сервером и sshd-w /usr/local/apache/bin -p rwxa-w /etc/init.d/httpd -p rwxa-w /etc/init.d/sshd -p rwxa
#Следить за ssh-сессиями ( 1084 – Pid main sshd )-a entry,always -F arch=b64 -S fork -S vfork -S clone -F ppid=1084-a entry,always -F arch=b64 -S execve -F ppid=1084-a entry,always -F arch=b64 -S connect -S bind -F ppid=1084
auiditd
OSSEC
• Анализ логов • Контроль целостности • Мониторинг конфигурации • Поиск руткитов • Готовое SIEM решение
https://github.com/ossec/ossec-hids
OSSEC
Типичные ошибки конфигурации firewall
• Зачем проверять открытые порты после смены политики firewall?
• Зачем проверять открытые порты регулярно?
• Зачем проверять ipv6?
Типичные ошибки конфигурации OS
• 0777 везде
• Зачем обновлять серверное ПО, в том числе ядро ОС?
• Понаставим на продакшн-сервер всего побольше! И без пакетов!
• Даешь ssh root с паролем 123!
Типичные ошибки конфигурации веб-сервера
• Оставить phpmyadmin-образную штуку в веб-доступе
• Держать .git/.svn, backup.tgz, config.php_ в web_root
• Зачем проверять ipv6?
Что делать с типовыми заражениями простых сайтов?
Манул: сканер
Манул: анализатор логов
Манул: лечение сайта
Манул – простой инструмент для поиска и удаления вредоносного кода на сайтах https://github.com/antimalware/manul
Что почитать: Расследование об информационной безопасности в Яндексе. Rdomn – скрытая угроза http://habrahabr.ru/company/yandex/blog/218143/ MAYHEM — многоцелевой бот для *NIX-серверов. Расследование Яндекс.Безопасности http://habrahabr.ru/company/yandex/blog/230167/ Яндекс и безопасность. Как мы изучали и обезвреживали обёртки (агрессивные adware) http://habrahabr.ru/company/yandex/blog/226817/ Устройство системы Безопасного Поиска Яндекса http://habrahabr.ru/company/yandex/blog/195408/ Детектор сайтов, заражающих компьютеры посетителей с помощью вредоносных Java-апплетов http://habrahabr.ru/post/170921/ О детектировании атак drive-by download и новых векторах распространения через Flash-баннеры http://habrahabr.ru/post/143345/ Ebury and CDorked. Full disclosure https://www.virusbtn.com/conference/vb2014/abstracts/SidorovBureau.xml Развитие drive by download атак http://safesearch.ya.ru/replies.xml?item_no=727
Полезные ссылки:
http://safesearch.ya.ru - Блог антивирусной службы Яндекса http://dns.yandex.ru – Яндекс.DNS http://safe.yandex.ru – SafeBrowsing API http://help.yandex.ru/webmaster/security/cure.xml – Раздел «безопасность» в Яндекс.Вебмастере http://webmaster.yandex.ru/delspam.xml – Форма жалоб на спам/вредоносный код/фишинг
Open-source инструменты на страже безопасности бэкенда Пётр Волков Руководитель группы анализа вредоносного кода [email protected] Я.Субботник, Нижний Новгород, 13.12.2014