Лекция Петра Волкова в Школе вебмастеров: «Как защитить свой сайт».
https://academy.yandex.ru/events/webmasters_school/yawebm2015/
Актуальные типы угроз и динамика их развития
Компрометация сервера и её последствия. Распределённые атаки типа «отказ в обслуживании». Подмена или добавление рекламы на стороне клиента. Атаки, направленные на пользователей. Проблемы, связанные со внешним содержимым.
Управление рисками безопасности веб-сайтов
Разные типы сайтов подвержены разным типам рисков информационной безопасности. Понимание целей и подходов злоумылшенников как ключ к эффективному снижению рисков. Методы монетизации атак на сайты.
Доступный инструментарий и методики для обеспечения безопасности
Открытые инструменты форензики для типовых и сложных проектов. Системы обнаружения вторжений, подходы к проектированию безопасности в архитектуре и процессах.
3. Типы атак на сайты
Массовые:
• По большей части автоматизированы
• Постэксплуатация вне контекста сайта
• Подвержены в основном сайты с распространенными инструментами,
либо пренебрежением базовой гигиены
(словарные/стандартные пароли и т.п.)
Целевые:
• Выполняются человеком
• Максимально возможный ущерб в случае успеха атаки
• Подвержены крупные сайты
12. Отказ в обслуживании, он же DDoS
DoS/DDoS - Атака с целью вывода сервиса из строя
Основные мотивы: Конкуренция и вымогательство
Атака на приложение
Атака на транспортном уровне
Пример атаки на TCP: syn flood
Атака на канал
Пример: (DNS/NTP/*)-amplification атака
14. Управление рисками
Расчёт бюджета: сколько ресурсов потратить
на снижение рисков?
Распределение бюджета:
• Снижение вероятности проведения успешной атаки
• Снижение потенциального ущерба от последствий атаки
15. Управление рисками
Снижение вероятности нежелательного события:
• Обновления безопасности для CMS
и остальных программ на сервере
• Парольная гигиена
• Отсутствие отладочных артефактов на сервере
• Минимизация точек входа (443 порта хватит всем)
• …
16. Управление рисками
Снижение возможного ущерба от наступления
нежелательного события:
• Хеширование (с солью) паролей пользователей
• Процесс резервного копирования
• Контроль целостности
• Минимизация привилегий
• Система обнаружения вторжений
• Виртуализация/контейнеризация
• …
18. Чек-листы и методологии
Топ-10 проблем безопасности вебсайтов по версии OWASP:
•A1 Внедрение постороннего кода на серверной стороне
•A2 Ошибки системы аутентификации и управления сессиями
•A3 Внедрение постороннего кода на клиентской стороне (XSS)
•A4 Прямой доступ к критичным объектам
•A5 Ошибки конфигурации
•A6 Открытие критичных данных
•A7 Проблемы авторизации операций
•A8 Межсайтовая подделка запросов (CSRF)
•A9 Использование компонентов с известными уязвимостями
•A10 Открытые редиректы
21. Web application firewall
Заплатка для случая, когда на аудит кода ресурсов нет
или код закрыт
Пример: mod_security (плагин для Apache, Nginx, IIS)
Набор регулярок для типичных шаблонов эксплуатации
уязвимостей веб-приложения.
Возвращает HTTP 406 в случае, если запрос попал
под одно из правил.
25. Защита от DDoS
Наращивание ресурсов – может оказаться
экономически неэффективным
Переезд к «облачному» хостеру – см. первый пункт
Защита от атаки на уровне приложения – поиск аномалий,
бан по ip, региону, капча
Защита от атаки на TCP – syn cookies, бан по ip
Защита от атаки на канал – переезд под защиту
анти-DDoS сервиса
26. Аудит безопасности
• Whitebox
Аудиторы исследуют исходные тексты веб-приложения и
конфигурацию серверного окружения
• Blackbox
Аудиторы проводят исследование безопасности, не имея
исходных текстов, не зная конфигурации
• BugBounty
Программа поощрения сообщений о найденных уязвимостях
27. [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
29. Проверка целостности средствами ПМ
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
30. Tripwire
Контроль целостности файловой системы
• Шлет отчеты по почте
• Выбор алгоритма хэширования
• Гибкие политики контроля целостности: append и т.д.
Проблемы:
• /tmp
• изменения между проверками
Аналоги: AIDE, TAMU, ATP, Hobgoblin, sXid, L5,
Gog&Magog
35. Устранение последствий
Поменять пароли и ключи к ftp- и ssh-сервисам сайта
Поменять пароли к базе данных сайта (phpmyadmin)
Поменять пароли к панели администратора сайта
Установить обновления CMS и плагинов
Установить обновления / обновления безопасности
ключевых сервисов сайта и ОС
46. Подмена содержимого на стороне пользователя
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
48. Используйте Вебмастер,
чтобы:
Вовремя узнавать о
заражении сайта
Посмотреть примеры
кода, которые
актуальны для вердикта
Отправить сайт на
перепроверку, и
связаться с поддержкой
Раздел безопасности Яндекс.Вебмастер