Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
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 
$clamscan mod_probe 
mod_probe: Linux.Flooder.Agent FOUND 
$ sigtool --md5 test.bin > test.hdb 
$ clamscan -d test.hdb test.bin 
Формат сигнатур: 
MalwareName:FileType:Offset:HexSignature
Опенсорс-инструменты на страже безопасности бэкенда — Петр Волков
Опенсорс-инструменты на страже безопасности бэкенда — Петр Волков
Опенсорс-инструменты на страже безопасности бэкенда — Петр Волков
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"}, 
…
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 
…
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
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] 
…
Проверка целостности средствами ПМ 
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
Snoopy Logger 
https://github.com/a2o/snoopy 
Логирует выполняемые в терминале команды 
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
auiditd 
#Cледить за изменениями в каталоге /servers/i/ 
auditctl -w /servers/i/ -p wa 
#Следить за обращениям к файлам в /etc 
auditctl -a exit,always -S open -F path=/etc/ 
#Cледить за модификациями /etc 
auditctl -a exit,always -S open -F path=/etc/ -F perm=aw 
#Cледить за модификациями /etc/passwd 
auditctl -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
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 инструменты 
на страже безопасности 
бэкенда 
Пётр Волков 
Руководитель группы анализа вредоносного кода 
peevo@yandex-team.ru 
Я.Субботник, Нижний Новгород, 13.12.2014

More Related Content

Опенсорс-инструменты на страже безопасности бэкенда — Петр Волков

  • 1. Open-source инструменты на страже безопасности бэкенда Пётр Волков Я.Субботник, Нижний Новгород, 13.12.2014
  • 2. Схема получения несанкционированного доступа Поисковые «дорки» Сканирование ( порты + web ) Загрузка шелла Укрепление Эксплуатация
  • 5. Эшелонированная защита Веб-приложение Пользовательский режим ОС Ядро ОС
  • 6. Места естественного обитания вредоносного кода • Серверные скрипты • Конфиги веб-сервера • БД • Статика • Исполняемый файл/процесс веб-сервера, модули веб- сервера, модифицированный sshd
  • 8. YARA import "elf" rule single_section { condition: elf.number_of_sections == 1 } rule elf_64 { condition: elf.machine == elf.EM_X86_64 }
  • 9. ClamAV $clamscan mod_probe mod_probe: Linux.Flooder.Agent FOUND $ sigtool --md5 test.bin > test.hdb $ clamscan -d test.hdb test.bin Формат сигнатур: MalwareName:FileType:Offset:HexSignature
  • 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] …
  • 17. Проверка целостности средствами ПМ 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)
  • 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
  • 20. Snoopy Logger https://github.com/a2o/snoopy Логирует выполняемые в терминале команды 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
  • 21. auiditd #Cледить за изменениями в каталоге /servers/i/ auditctl -w /servers/i/ -p wa #Следить за обращениям к файлам в /etc auditctl -a exit,always -S open -F path=/etc/ #Cледить за модификациями /etc auditctl -a exit,always -S open -F path=/etc/ -F perm=aw #Cледить за модификациями /etc/passwd auditctl -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
  • 22. OSSEC • Анализ логов • Контроль целостности • Мониторинг конфигурации • Поиск руткитов • Готовое SIEM решение https://github.com/ossec/ossec-hids
  • 23. OSSEC
  • 24. Типичные ошибки конфигурации firewall • Зачем проверять открытые порты после смены политики firewall? • Зачем проверять открытые порты регулярно? • Зачем проверять ipv6?
  • 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