Upload
revisium
View
300
Download
3
Embed Size (px)
Citation preview
Безопасность Joomla теория и практика
Григорий Земсков, компания «Ревизиум»
04/08/2016
[Не]безопасность Joomla
Нужно ли защищать Joomla?— Суперпопулярная
— Опенсорсная
— Огромное число плагинов, часть из которых уязвимы
— CMS и плагины хорошо изучены хакерами, многие инструменты для взлома/заражения «заточены» под Joomla, Wordpress и Drupal
— Около 30% сайтов наших клиентов - на Joomla
Специализированные «зловреды»
Мифы и отговорки— “Мой сайт не интересен хакерам…”
— “Мой сайт не содержит уязвимостей…”
— “Зачем защищать, если есть бэкап?...”
— “Мои программисты уже все защитили…”
— “Я регулярно меняю пароли…”
— “Сайт нормально работал три года, никто не ломал…”
- Хьюстон,у нас проблемы…
Статистика Imperva Incapsula
7 m / 6
Тренды 2015-2016— полная автоматизация разведки, взлома и эксплуатации
— активная эксплуатация публичных уязвимостей, 0-day
— динамические payload’ы
— активный спам и фишинг
— больше заражений в базе данных (инжекты напрямую без шеллов через уязвимости)
— обфусцированные шеллы и большое число бэкдоров
— сложные клиентские скрипты, обходящие детекты
— взломы для SEO: “японские” дорвеи
После нецелевого взлома — рассылка спама
— атаки на другие ресурсы
— хостинг фишинговый страниц
— мобильные редиректы на тизерные и wap-click«партнерки»
— редиректы на сплойты
— спам-ссылки или дорвеи
После целевого взлома — сайт уничтожен (бэкапы, домен, аккаунт хостинга, …)
— шпионаж
— раскрытие конфиденциальных данных, «слив» клиентской базы
— подмена информации на страницах и в базе
— «черное» SEO
— хулиганство
Варианты взлома сайтов
Веб-атаки на сайт
Как атакуют сайты «Разведка», сбор информации:
— Поиск уязвимых скриптов
— Поиск системных, служебных файлов (бэкапы, конфиги), субдоменов
— Поиск ошибок на сайте
— Определение версий СMS, плагиновАтака:
— Брутфорс аккаунтов (админ-панели CMS, FTP, SSH, панели управления хостингом)
— Эксплуатация обнаруженных уязвимостей (Joomla < 3.4.7, уязвимости CVE-2015-7297, CVE-2015-7857, CVE-2015-7858)
15 m / 12
Нецелевые атаки— начинаются, как только сайт появился в SERP
— идут постоянно
— выборка на основе GHDB
— два вида атак: «разведка» и эксплуатация уязвимостей
Поиск уязвимых расширений
Поиск уязвимых сайтов
«Разведка»сайта на Joomla
Атака сайта на Joomla
Брутфорс «админки»
Защита Joomla
22 m / 19
Популярные векторы атак— Подбор пароля от «админки»
— Исполнение произвольного кода на сайте (RCE)
— Несанкционированная загрузка файлов (в т.ч. через «админку»)
— SQL инъекции («слив» базы, внедрение кода, внедрение админа)
— Кража/перехват пароля админа или сессионных ключей + несанкционированные операции (через XSS+XSRF)
Комплексная безопасность
Технические средства
Организационные меры
+
Типы проектов
Динамичные
vs
Статичные
Технические средства
Памятка по тех. средствам— Выбираем безопасное окружение, изолируем сайты
— Обновляем ОС, CMS и плагины
— Выполняем Server Hardening
— Активируем проактивную защиту (внутренний WAF)
— Выполняем CMS Hardening («цементирование»)
— Устанавливаем двухфакторную аутентификацию на все аккаунты
— Встаем под сервисы WAF и ANTI-DDOS сервисы
— Настраиваем грамотное резервное копирование
— Запускаем мониторинг (веб, файловой системы, бизнес-показателей)
Безопасное окружение— Безопасный и надежный хостинг / сервер: отказоустойчивость, SLA, резервное копирование, динамика развития, встроенные средства защиты, меры безопасности.
— Техническая изоляция сайтов внутри аккаунта / сервера
— Безопасные настройки сервера и PHP
30 m / 24
Server Hardening— Обновляем ядро, сервисы и ПО сервера
— Отключаем или удаляем все ненужные компоненты и сервисы
— Закрываем или меняем порты, ограничиваем исходящие/входящие подключения на нестандартных портах
— Настраиваем изолированную виртуальную среду для сервисов или сайтов (VM, docker, cagefs, chroot)
— Переходим на защищенные соединения (FTP -> SFTP, HTTP -> HTTPS)
— Устанавливаем сервисы, расширения безопасности (naxsi, mod_security, mod_evasive, suhosin, fail2ban, ids/ips систему…)
— меняем настройки логгирования, параметры аккаунтов, квоты
Программное обеспечение— Обновление ядра CMS
— Обновление плагинов
Аутентификация— Отключаем root по SSH
— Двухфакторная на панель хостинга/сервера
— fail2ban
— Защита от брутфорса: плагины jSecure, kSecure, Security Authentication, …
— «Спрятать» админку
«Цементирование» сайта— Настраиваем безопасные права на файлы и каталоги
— Блокируем доступ к скриптам через веб в открытых на запись каталогах
— Закрываем доступ к «чувствительным» файлам
— Отключаем для сайта неиспользуемые системные функции (включая chmod)
— Отключаем perl/python/др. cgi
— Ограничиваем «свободы» (open_basedir, устанавливаем лимиты)
Детали «цементирования»
37 m / 30
Детали «цементирования»
Проактивная защита ?
— RS Firewall
— Admin Tools
— jHackGuard
— Centrora Security (ex. OSE Anti-Hacker)
— Incapsula for Joomla
HTTPS, CSP, и доп. защита
Защита внешнего периметра ?
— Проксирование трафика (внешний WAF)
— Защита от DOS / DDOS
Бэкапы— Вырабатываем стратегию резервного копирования: периодичность, интервал, количество, автоматизация
— Выбираем место для хранения (не на сервере)
— Проверяем резервные копии
Мониторинг— Выбор показателей мониторинга: технические, бизнес-параметры
— Доступность и «200 OK» не гарантирует нормальную работу сайта
— Не забываем про сроки домена и SSL сертификата
— Диагностика на вирусы и взлом: файлы, база, страницы
Если Joomla неуязвима— взломают сайт через соседний по аккаунту
— перехватят доступы через WI-FI в кафе, украдет троян на компьютере или в роутере, уведут через «фишинг» или взломанный email
— «сбрутят» пароль от FTP/SSH/панели хостинга
— внедрят вирусный код через phpmyadmin в базу данных
— сам веб-мастер установит зараженный компонент
— «рутанут» сервер VPS/хостинга
45 m / 37
Организационные меры
Памятка по орг. мерам— Делаем безопасным рабочее место
— Защищаем каналы передачи данных
— Управляем доступами к домену, сайту и хостингу
— Выбираем надежных подрядчиков, работа по договору
— Инструктируем сотрудников и подрядчиков
— Разрабатываем памятку безопасности и контролируем исполнение предписаний
— Выполняем регулярный аудит безопасности
Безопасность рабочего места— Выбираем операционную систему
— Регулярно обновляем компоненты ОС (браузер, плагины браузера, софт для работы с сайтом)
— Устанавливаем антивирусное ПО
— Регулярно выполняем полную проверку антивирусом
— Используем менеджеры паролей
— Отдельный рабочий компьютер или терминал
— Устанавливаем мониторинговые (например, антифишинговые) расширения
Защищаем свое подключение— Выбираем безопасное подключение (домашний роутер, 3G/LTE)
— Используем VPN для открытых сетей
Управляем доступами— Регулярно меняем пароли от панели хостинга, FTP, SSH, админ-панели сайта, базы данных
— Устанавливаем сложные и разные пароли
— Включаем логгирование операций в панелях и логи сервисов
— Выдаем подрядчикам минимально необходимые доступы с минимальным сроком валидности
— Меняем / деактивируем доступы сразу после завершения работы
— Включаем двухфакторную аутентификацию, где возможно
— Используем SSH ключи для подключения
— Не используем FTP (используем SFTP, крайний случай FTPS)
Беда от подрядчиков— Раскрывают доступы
— Небезопасное рабочее место
— Небезопасный сетевой канал
— Не учитывают элементы защиты на сайте
— Вносят новые уязвимости
— Размещают вредоносный код
— Оставляют инструменты для работы с БД, файловые менеджеры, чувствительные файлы на хостинге
— Объекты социальной инженерии
52 m / 43
Сотрудникам и подрядчикам— Разрабатываем политику безопасности для сотрудников и подрядчиков в виде инструкции
— Знакомим подрядчиков с предписаниями и памяткой по безопасной работе с сайтом
— Проверяем выполнение предписаний
— Работаем по договору
Аудит безопасности— Проводим аудит перед публичным анонсом проекта
— Выполняем регулярные проверки на вирусы, взлом в процессе работы
— Проводим аудит после работы подрядчиков
— Своими силами или привлекая ИБ специалистов
Безопасность и комфорт— Безопасность - это ограничения и запреты
— Безопасность - это неудобно
— Задача - найти соотношение между безопасностью и удобством работы
— Автоматизация рутины, мониторинг, готовые предписания и безопасность как аутсорс
Как делать диагностику— Сканирование файлов: https://revisium.com/ai/
— Сканирование страниц сайта: https://rescan.pro
— Проверка базы данных
Спасибо! Вопросы?Григорий Земсков
Компания «Ревизиум»
http://revisium.com
http://vk.com/siteprotect
http://facebook.com/Revisium
http://twitter.com/revisium
Telegram - @sitesecurity
revisium.com/ai/
rescan.pro