Антивирусная система Яндекса ежедневно обнаруживает тысячи взломанных сайтов. Периодически среди них встречаются крупные и известные интернет-ресурсы.
Администраторы сайтов часто оказываются не готовы к тому, что злоумышленник может пробраться через внешний периметр и исполнить произвольный код на стороне сервера. В результате перед ними встаёт нелегкая задача: обнаружить последствия и предотвратить дальнейшие проблемы.
Доклад посвящён практикам и инструментам, которые могут существенно повысить эффективность противодействия вредоносной активности, и профилактике её возникновения.
1 of 34
More Related Content
Опенсорс-инструменты на страже безопасности бэкенда — Петр Волков
1. Open-source инструменты
на страже безопасности
бэкенда
Пётр Волков
Я.Субботник, Нижний Новгород, 13.12.2014
13. Virustotal Public API
• HTTPS API, ответ в json
• Готовые клиенты на 10 ЯП
• Сканирует файлы, URL, ip
…"
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"},
…
14. chkrootkit
• Сигнатурная проверка
• Поиск модификаций логов utmp, wtmp, ...
• Проверка ошибок конфигурации
• …
…
Checking `amd'... not found
Checking `basename'... not infected
Checking `chsh'... not infected
Checking `cron'... not infected
Checking `dirname'... not infected
Checking `gpm'... not found
Checking `grep'... not infected
…
15. Rootkit Hunter
• Проверка модификации
некоторых файлов
• Поиск по сигнатурам
• Проверка ld_preload
• Проверка ошибок конфигурации
• …
[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
16. Lynis
Расширяемая проверка ошибок конфигурации
[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]
…
18. Проверка целостности средствами ПМ
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
19. Tripwire
Контроль целостности файловой системы
• Шлет отчеты по почте
• Выбор алгоритма хэширования
• Гибкие политики контроля целостности: append и т.д.
Проблемы:
• /tmp
• изменения между проверками
Аналоги: AIDE, TAMU, ATP, Hobgoblin, sXid, L5,
Gog&Magog
25. Типичные ошибки конфигурации OS
• 0777 везде
• Зачем обновлять серверное ПО, в том числе ядро ОС?
• Понаставим на продакшн-сервер всего побольше!
И без пакетов!
• Даешь ssh root с паролем 123!
26. Типичные ошибки конфигурации веб-
сервера
• Оставить phpmyadmin-образную штуку в веб-доступе
• Держать .git/.svn, backup.tgz, config.php_ в web_root
• Зачем проверять ipv6?
27. Что делать с типовыми заражениями простых
сайтов?
31. Манул – простой инструмент для поиска и
удаления вредоносного кода на сайтах
https://github.com/antimalware/manul
32. Что почитать:
Расследование об информационной безопасности в Яндексе. 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
33. Полезные ссылки:
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 – Форма жалоб на спам/вредоносный код/фишинг
34. Open-source инструменты
на страже безопасности
бэкенда
Пётр Волков
Руководитель группы анализа вредоносного кода
peevo@yandex-team.ru
Я.Субботник, Нижний Новгород, 13.12.2014