Безопасность 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

Безопасность Joomla: теория и практика

  • 1.
    Безопасность Joomla теория ипрактика 
 
 Григорий Земсков, компания «Ревизиум»
 
 04/08/2016
  • 2.
  • 3.
    Нужно ли защищатьJoomla? — Суперпопулярная — Опенсорсная — Огромное число плагинов, часть из которых уязвимы — CMS и плагины хорошо изучены хакерами, многие инструменты для взлома/заражения «заточены» под Joomla, Wordpress и Drupal — Около 30% сайтов наших клиентов - на Joomla
  • 4.
  • 5.
    Мифы и отговорки —“Мой сайт не интересен хакерам…” — “Мой сайт не содержит уязвимостей…” — “Зачем защищать, если есть бэкап?...” — “Мои программисты уже все защитили…” — “Я регулярно меняю пароли…” — “Сайт нормально работал три года, никто не ломал…”
  • 6.
  • 7.
  • 8.
    Тренды 2015-2016 — полнаяавтоматизация разведки, взлома и эксплуатации — активная эксплуатация публичных уязвимостей, 0-day — динамические payload’ы — активный спам и фишинг — больше заражений в базе данных (инжекты напрямую без шеллов через уязвимости) — обфусцированные шеллы и большое число бэкдоров — сложные клиентские скрипты, обходящие детекты — взломы для SEO: “японские” дорвеи
  • 9.
    После нецелевого взлома —рассылка спама — атаки на другие ресурсы — хостинг фишинговый страниц — мобильные редиректы на тизерные и wap-click«партнерки» — редиректы на сплойты — спам-ссылки или дорвеи
  • 10.
    После целевого взлома —сайт уничтожен (бэкапы, домен, аккаунт хостинга, …) — шпионаж — раскрытие конфиденциальных данных, «слив» клиентской базы — подмена информации на страницах и в базе — «черное» SEO — хулиганство
  • 11.
  • 12.
  • 13.
    Как атакуют сайты «Разведка»,сбор информации: — Поиск уязвимых скриптов — Поиск системных, служебных файлов (бэкапы, конфиги), субдоменов — Поиск ошибок на сайте — Определение версий СMS, плагинов
 
 Атака: — Брутфорс аккаунтов (админ-панели CMS, FTP, SSH, панели управления хостингом) — Эксплуатация обнаруженных уязвимостей (Joomla < 3.4.7, уязвимости CVE-2015-7297, CVE-2015-7857, CVE-2015-7858) 15 m / 12
  • 14.
    Нецелевые атаки — начинаются,как только сайт появился в SERP — идут постоянно — выборка на основе GHDB — два вида атак: «разведка» и эксплуатация уязвимостей
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
    Популярные векторы атак —Подбор пароля от «админки» — Исполнение произвольного кода на сайте (RCE) — Несанкционированная загрузка файлов (в т.ч. через «админку») — SQL инъекции («слив» базы, внедрение кода, внедрение админа) — Кража/перехват пароля админа или сессионных ключей + несанкционированные операции (через XSS+XSRF)
  • 22.
  • 23.
  • 24.
  • 25.
    Памятка по тех.средствам — Выбираем безопасное окружение, изолируем сайты — Обновляем ОС, CMS и плагины — Выполняем Server Hardening — Активируем проактивную защиту (внутренний WAF) — Выполняем CMS Hardening («цементирование») — Устанавливаем двухфакторную аутентификацию на все аккаунты — Встаем под сервисы WAF и ANTI-DDOS сервисы — Настраиваем грамотное резервное копирование — Запускаем мониторинг (веб, файловой системы, бизнес-показателей)
  • 26.
    Безопасное окружение — Безопасныйи надежный хостинг / сервер: отказоустойчивость, SLA, резервное копирование, динамика развития, встроенные средства защиты, меры безопасности. — Техническая изоляция сайтов внутри аккаунта / сервера — Безопасные настройки сервера и PHP 30 m / 24
  • 27.
    Server Hardening — Обновляемядро, сервисы и ПО сервера — Отключаем или удаляем все ненужные компоненты и сервисы — Закрываем или меняем порты, ограничиваем исходящие/входящие подключения на нестандартных портах — Настраиваем изолированную виртуальную среду для сервисов или сайтов (VM, docker, cagefs, chroot) — Переходим на защищенные соединения (FTP -> SFTP, HTTP -> HTTPS) — Устанавливаем сервисы, расширения безопасности (naxsi, mod_security, mod_evasive, suhosin, fail2ban, ids/ips систему…) — меняем настройки логгирования, параметры аккаунтов, квоты
  • 28.
    Программное обеспечение — Обновлениеядра CMS — Обновление плагинов
  • 29.
    Аутентификация — Отключаем rootпо SSH — Двухфакторная на панель хостинга/сервера — fail2ban — Защита от брутфорса: плагины jSecure, kSecure, Security Authentication, … — «Спрятать» админку
  • 30.
    «Цементирование» сайта — Настраиваембезопасные права на файлы и каталоги — Блокируем доступ к скриптам через веб в открытых на запись каталогах — Закрываем доступ к «чувствительным» файлам — Отключаем для сайта неиспользуемые системные функции (включая chmod) — Отключаем perl/python/др. cgi — Ограничиваем «свободы» (open_basedir, устанавливаем лимиты)
  • 31.
  • 32.
  • 33.
    Проактивная защита ? —RS Firewall — Admin Tools — jHackGuard — Centrora Security (ex. OSE Anti-Hacker) — Incapsula for Joomla
  • 34.
    HTTPS, CSP, идоп. защита
  • 35.
    Защита внешнего периметра? — Проксирование трафика (внешний WAF) — Защита от DOS / DDOS
  • 36.
    Бэкапы — Вырабатываем стратегиюрезервного копирования: периодичность, интервал, количество, автоматизация — Выбираем место для хранения (не на сервере) — Проверяем резервные копии
  • 37.
    Мониторинг — Выбор показателеймониторинга: технические, бизнес- параметры — Доступность и «200 OK» не гарантирует нормальную работу сайта — Не забываем про сроки домена и SSL сертификата — Диагностика на вирусы и взлом: файлы, база, страницы
  • 38.
    Если Joomla неуязвима —взломают сайт через соседний по аккаунту — перехватят доступы через WI-FI в кафе, украдет троян на компьютере или в роутере, уведут через «фишинг» или взломанный email — «сбрутят» пароль от FTP/SSH/панели хостинга — внедрят вирусный код через phpmyadmin в базу данных — сам веб-мастер установит зараженный компонент — «рутанут» сервер VPS/хостинга 45 m / 37
  • 39.
  • 40.
    Памятка по орг.мерам — Делаем безопасным рабочее место — Защищаем каналы передачи данных — Управляем доступами к домену, сайту и хостингу — Выбираем надежных подрядчиков, работа по договору — Инструктируем сотрудников и подрядчиков — Разрабатываем памятку безопасности и контролируем исполнение предписаний — Выполняем регулярный аудит безопасности
  • 41.
    Безопасность рабочего места —Выбираем операционную систему — Регулярно обновляем компоненты ОС (браузер, плагины браузера, софт для работы с сайтом) — Устанавливаем антивирусное ПО — Регулярно выполняем полную проверку антивирусом — Используем менеджеры паролей — Отдельный рабочий компьютер или терминал — Устанавливаем мониторинговые (например, антифишинговые) расширения
  • 42.
    Защищаем свое подключение —Выбираем безопасное подключение (домашний роутер, 3G/LTE) — Используем VPN для открытых сетей
  • 43.
    Управляем доступами — Регулярноменяем пароли от панели хостинга, FTP, SSH, админ-панели сайта, базы данных — Устанавливаем сложные и разные пароли — Включаем логгирование операций в панелях и логи сервисов — Выдаем подрядчикам минимально необходимые доступы с минимальным сроком валидности — Меняем / деактивируем доступы сразу после завершения работы — Включаем двухфакторную аутентификацию, где возможно — Используем SSH ключи для подключения — Не используем FTP (используем SFTP, крайний случай FTPS)
  • 44.
    Беда от подрядчиков —Раскрывают доступы — Небезопасное рабочее место — Небезопасный сетевой канал — Не учитывают элементы защиты на сайте — Вносят новые уязвимости — Размещают вредоносный код — Оставляют инструменты для работы с БД, файловые менеджеры, чувствительные файлы на хостинге — Объекты социальной инженерии 52 m / 43
  • 45.
    Сотрудникам и подрядчикам —Разрабатываем политику безопасности для сотрудников и подрядчиков в виде инструкции — Знакомим подрядчиков с предписаниями и памяткой по безопасной работе с сайтом — Проверяем выполнение предписаний — Работаем по договору
  • 46.
    Аудит безопасности — Проводимаудит перед публичным анонсом проекта — Выполняем регулярные проверки на вирусы, взлом в процессе работы — Проводим аудит после работы подрядчиков — Своими силами или привлекая ИБ специалистов
  • 47.
    Безопасность и комфорт —Безопасность - это ограничения и запреты — Безопасность - это неудобно — Задача - найти соотношение между безопасностью и удобством работы — Автоматизация рутины, мониторинг, готовые предписания и безопасность как аутсорс
  • 48.
    Как делать диагностику —Сканирование файлов: https://revisium.com/ai/ 
 
 
 — Сканирование страниц сайта: https://rescan.pro 
 — Проверка базы данных
  • 49.
    Спасибо! Вопросы? Григорий Земсков Компания«Ревизиум» http://revisium.com http://vk.com/siteprotect http://facebook.com/Revisium http://twitter.com/revisium Telegram - @sitesecurity revisium.com/ai/ rescan.pro