11 лекция, петр волков
TRANSCRIPT
![Page 1: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/1.jpg)
Сайт Школы
Канал на YouTube
![Page 2: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/2.jpg)
Как защитить свой сайт
Пётр Волков
Школа вебмастеров
![Page 3: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/3.jpg)
Типы атак на сайты
Массовые:
• По большей части автоматизированы
• Постэксплуатация вне контекста сайта
• Подвержены в основном сайты с распространенными инструментами,
либо пренебрежением базовой гигиены
(словарные/стандартные пароли и т.п.)
Целевые:
• Выполняются человеком
• Максимально возможный ущерб в случае успеха атаки
• Подвержены крупные сайты
![Page 4: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/4.jpg)
Схема получения несанкционированного доступа
Поисковые «дорки»
Сканирование ( порты + web )
Загрузка шелла
Укрепление
Эксплуатация
![Page 5: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/5.jpg)
![Page 6: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/6.jpg)
![Page 7: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/7.jpg)
![Page 8: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/8.jpg)
![Page 9: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/9.jpg)
Места естественного обитания вредоносного кода
• Серверные скрипты
• Конфиги веб-сервера
• БД
• Статика
• Исполняемый файл/процесс веб-сервера,
модули веб-сервера, модифицированный sshd
![Page 10: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/10.jpg)
Монетизация
Целевые атаки:
• Похищение клиентской базы
• Похищение коммерчески значимых кода и данных
• Дискредитация конкурентов
Массовые атаки:
• Чёрная поисковая оптимизация
• Заражение посетителей
• DDoS-платформа
• Вымогательство
• Рассылка спама
• Серверные ресурсы (проксирование и т.п.)
![Page 11: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/11.jpg)
Атака на посетителей: drive-by download
![Page 12: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/12.jpg)
Отказ в обслуживании, он же DDoS
DoS/DDoS - Атака с целью вывода сервиса из строя
Основные мотивы: Конкуренция и вымогательство
Атака на приложение
Атака на транспортном уровне
Пример атаки на TCP: syn flood
Атака на канал
Пример: (DNS/NTP/*)-amplification атака
![Page 13: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/13.jpg)
Управление рисками
14
![Page 14: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/14.jpg)
Управление рисками
Расчёт бюджета: сколько ресурсов потратить
на снижение рисков?
Распределение бюджета:
• Снижение вероятности проведения успешной атаки
• Снижение потенциального ущерба от последствий атаки
![Page 15: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/15.jpg)
Управление рисками
Снижение вероятности нежелательного события:
• Обновления безопасности для CMS
и остальных программ на сервере
• Парольная гигиена
• Отсутствие отладочных артефактов на сервере
• Минимизация точек входа (443 порта хватит всем)
• …
![Page 16: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/16.jpg)
Управление рисками
Снижение возможного ущерба от наступления
нежелательного события:
• Хеширование (с солью) паролей пользователей
• Процесс резервного копирования
• Контроль целостности
• Минимизация привилегий
• Система обнаружения вторжений
• Виртуализация/контейнеризация
• …
![Page 17: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/17.jpg)
Доступный инструментарий и
методики для обеспечения
безопасности
18
![Page 18: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/18.jpg)
Чек-листы и методологии
Топ-10 проблем безопасности вебсайтов по версии OWASP:
•A1 Внедрение постороннего кода на серверной стороне
•A2 Ошибки системы аутентификации и управления сессиями
•A3 Внедрение постороннего кода на клиентской стороне (XSS)
•A4 Прямой доступ к критичным объектам
•A5 Ошибки конфигурации
•A6 Открытие критичных данных
•A7 Проблемы авторизации операций
•A8 Межсайтовая подделка запросов (CSRF)
•A9 Использование компонентов с известными уязвимостями
•A10 Открытые редиректы
![Page 19: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/19.jpg)
w3af: сканер веб-уязвимостей с открытым кодом
![Page 20: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/20.jpg)
WebGoat: дырявое веб-приложение для тренировок
![Page 21: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/21.jpg)
Web application firewall
Заплатка для случая, когда на аудит кода ресурсов нет
или код закрыт
Пример: mod_security (плагин для Apache, Nginx, IIS)
Набор регулярок для типичных шаблонов эксплуатации
уязвимостей веб-приложения.
Возвращает HTTP 406 в случае, если запрос попал
под одно из правил.
![Page 22: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/22.jpg)
Использование уязвимых компонентов
https://exploit-db.com/
![Page 23: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/23.jpg)
Использование уязвимых компонентов
![Page 24: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/24.jpg)
Борьба с перебором
Мониторит логи и обновляет правила межсетевого экрана
![Page 25: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/25.jpg)
Защита от DDoS
Наращивание ресурсов – может оказаться
экономически неэффективным
Переезд к «облачному» хостеру – см. первый пункт
Защита от атаки на уровне приложения – поиск аномалий,
бан по ip, региону, капча
Защита от атаки на TCP – syn cookies, бан по ip
Защита от атаки на канал – переезд под защиту
анти-DDoS сервиса
![Page 26: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/26.jpg)
Аудит безопасности
• Whitebox
Аудиторы исследуют исходные тексты веб-приложения и
конфигурацию серверного окружения
• Blackbox
Аудиторы проводят исследование безопасности, не имея
исходных текстов, не зная конфигурации
• BugBounty
Программа поощрения сообщений о найденных уязвимостях
![Page 27: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/27.jpg)
[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
Расширяемая проверка ошибок конфигурации
Дополнительно: Rootkit Hunter, chkrootkit
![Page 28: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/28.jpg)
Проверка целостности средствами ПМ
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)
![Page 29: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/29.jpg)
Проверка целостности средствами ПМ
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
![Page 30: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/30.jpg)
Tripwire
Контроль целостности файловой системы
• Шлет отчеты по почте
• Выбор алгоритма хэширования
• Гибкие политики контроля целостности: append и т.д.
Проблемы:
• /tmp
• изменения между проверками
Аналоги: AIDE, TAMU, ATP, Hobgoblin, sXid, L5,
Gog&Magog
![Page 31: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/31.jpg)
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
Логирует выполняемые в терминале команды
![Page 32: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/32.jpg)
#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
auiditd
![Page 33: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/33.jpg)
OSSEC
• Анализ логов
• Контроль целостности
• Мониторинг конфигурации
• Поиск руткитов
• Готовое SIEM решение
https://github.com/ossec/ossec-hids
![Page 34: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/34.jpg)
OSSEC
![Page 35: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/35.jpg)
Устранение последствий
Поменять пароли и ключи к ftp- и ssh-сервисам сайта
Поменять пароли к базе данных сайта (phpmyadmin)
Поменять пароли к панели администратора сайта
Установить обновления CMS и плагинов
Установить обновления / обновления безопасности
ключевых сервисов сайта и ОС
![Page 36: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/36.jpg)
YARA
![Page 37: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/37.jpg)
YARA
import "elf"
rule single_section {
condition: elf.number_of_sections == 1
}
rule elf_64 {
condition: elf.machine == elf.EM_X86_64
}
![Page 38: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/38.jpg)
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
Формат сигнатур:
![Page 39: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/39.jpg)
…
"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
![Page 40: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/40.jpg)
Манул: сканер
![Page 41: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/41.jpg)
Манул: анализатор логов
![Page 42: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/42.jpg)
Манул: лечение сайта
![Page 43: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/43.jpg)
Манул – простой инструмент для поиска и удаления вредоносного кода на сайтах https://yandex.ru/promo/manul
![Page 44: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/44.jpg)
Подмена содержимого на стороне пользователя
![Page 45: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/45.jpg)
Подмена содержимого на стороне пользователя
![Page 46: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/46.jpg)
Подмена содержимого на стороне пользователя
Content Security Policy – технология для затруднения эксплуатации XSS,
по факту, на данный момент, помогает справляться и с внедрением
постороннего контента со стороны клиента. (Хотя не должна)
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval'
https://yastatic.net *.yandex.ru *.yandex.net yandex.st
*.yastatic.net wss://portal-xiva.yandex.net wss://push.yandex.ru;
img-src data: 'self' https://yastatic.net *.yandex.ru *.tns-counter.ru
*.gemius.pl yandex.st *.yandex.net *.yastatic.net;
report-uri https://csp.yandex.net/csp?from=big.ru&showid=22863
![Page 47: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/47.jpg)
Подмена содержимого на стороне пользователя
![Page 48: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/48.jpg)
Используйте Вебмастер,
чтобы:
Вовремя узнавать о
заражении сайта
Посмотреть примеры
кода, которые
актуальны для вердикта
Отправить сайт на
перепроверку, и
связаться с поддержкой
Раздел безопасности Яндекс.Вебмастер
![Page 49: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/49.jpg)
Раздел безопасности Яндекс.Вебмастер
![Page 51: 11 лекция, петр волков](https://reader034.vdocument.in/reader034/viewer/2022042517/587c2f251a28aba0118b61b1/html5/thumbnails/51.jpg)
Сайт Школы
Канал на YouTube