Уязвимость MODX: факты, домыслы и выводы. Уязвимости modx


Устранение критических уязвимостей в версии MODX 2.6.5 MODX

Уязвимость MODX

Всем настоятельно рекомендую обновится до MODX Revolution 2.6.5. Он содержит исправления для двух критических уязвимостей безопасности, затрагивающих все версии до 2.6.4. Обновление до 2.6.5 должна считаться обязательной.

Файлы, которые следует проверить:

Используя уязвимость заражают в 1ую очередь файлы /index.php и /manager/index.php, в них сверху вставляется код, который редиректит на другой сайт.

Проверьте права к файлам. Для этого если у вас есть доступ ssh к серверу, выполните команду

find / -type f -perm 0777

Чтобы найти все файлы с расширением php и правами 777 выполните команду:

find . -name "*.php" -type f -perm 0777

Чтобы поменять все права к найденным файлам:

find / -type f -perm 0777 -exec chmod 640 {} \;

Обратите внимание после find ставьте точку если вы находитесь в текущей директории и слеш, если вам нужно проверить от корня файловой системы сервера

Опрееделяем какой код вставили и по куску кода проверяем все файлы. В моём случае кусок вредоносного кода содержал eval(base64. Выполним команду поиска:

grep -rnw './' -e 'eval(base64'

Если файлов много, то нужно снова использовать консоль для удаления вредоносного кода. Команда замены кода sed (от англ. Stream EDitor) — потоковый текстовый редактор:

sed -i "s/вредоносный код/на что заменить/g" {} \;

Найдём все файлы по шаблону в текущей директории и ниже и проведём замену кода во всех файлах с расширением php:

find . -name "*.php" -type f -exec sed -i "s/вредоносный код/на что заменить/g" {} \;
Благодарности

Хотел бы поблагодарить Ивана Климчука (Alroniks) и agel_nash за информирование и подтверждение этих проблем и помощь в обеспечении безопасности MODX.

modx.ws

факты, домыслы и выводы / modx.pro

Очередной вольный перевод записи из блога MODX. Ценителей английского просьба не беспокоить — язык я учил в обычной школе.

После обширного обсуждения уязвимости на modx.com, мы бы хотели осудить это происшествие, выразить уверенность в архитектуре безопасности MODX и поделиться планами на будущее. Отдельно хотим выраззить благодарность FireHost за неоценимую поддержку в анализе атаки и рекомендации по восстановлению.

Мы знаем, что этот случай причинил много беспокойства юзерам MODX, и очень об этом сожалеем (отдельным гражданам он доставил и нескрываемую радость — прим. переводчика). Уверяем всех пользователей MODX, что мы очень заботимся о безопасности наших решений и продуктов.

Подчеркиваем, что это происшествие никаким образом не связано с кодом релизов MODX Revolution. И никак не трогает MODX Cloud. Направление атаки 29 августа мы в срочном порядке остановили и почистили наш сайт, после сообщений в Twitter о том, что он выдает пустую страницу. Мы выяснили, что на сайте была уязвимость, которая позволяла загружать скрипты через старую, давно не используемую форму. Заодно удалили тестовый файл, который был уязвим для бага php, могущего напричинять всякого.

Ущерб На многих других сайтах MODX ущерб мог быть гораздо серьезнее. Однако, благодаря архитектурным решениям хранить персональные данные юзера и его закачки отдельно от хостинга сайта — мы легко отделались. Платой за это стало раскрытие критической, как думал взломщик, таблицы юзеров modx.com. То есть — пронесло.

Мы опубликовали несколько сообщений об этом происшествии, не вдаваясь в подробности. Это оттого, что мы разбирались с атакой и строили защиту.

Код системы не пострадал, никаких бэкдоров на сервере не осталось. Все расширения в репозитории чисты, и вообще, в целом — все зашибись. Как говорится — приняли удар на себя.

Что мы поняли По итогам этого происшествия, мы создали отдельную команду безопасности, которая будет изучать опыт других систем и помогать пользователям MODX. Заодно, она тепрь мониторит наш сервер на предмет всякой фигни.

На будущее, советуем всем: на MODX надейся, но сам не плошай.

P.S. От переводчика: парни расслабились и оставили всякое добро на сервере. Недобрые люди его нашли и использовали. Но благодаря тому, что сайт и важные данные хранятся в разных местах — ничего не вышло. Не оставляйте тестовое добро на продакшене, друзья!

Вот тут описано как проводятся такие мощные взломы.

modx.pro

Уязвимость в коннекторах MODX / modx.pro

Php-ниндзя Евгений Борисов откопал очередную уязвимость в MODX Revolution, что подтверждает народную мудрость: «не бывает здоровых людей, бывают плохо диагностированные».

Итак, за подробностями отправляю вас на сайт автора, а сам пока напишу мой способ борьбы с этой (и будущими) уязвимостями.

Защита по ip

В который уже раз Евгений доказал, что безопасность — дело личное, и заботится надо о ней самостоятельно, не полагаясь на используемый движок.

Честно говоря, я никогда и не полагался, поэтому у меня на всех сайтах директории core, manager и connectors закрыты по ip адресу. Делается это просто, через nginx:

location ~* ^/(core|manager|connectors)/ { allow 125.68.91.12; deny all; location ~* \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass backend-sitename; } } Смысл правила в том, что все запросы, которые идут в эти директории проверяются по ip и дальше уже никуда не уходят. Поэтому отдельно прописана обработка php.

Защита по паролю

Понятно, что не все могут так ловко закрыть сайты, у многих динамические ip и им подойдёт другой вариант — базовая аутентификация.

Тут смысл в том, чтобы запоролить системные директории средствами web-сервера. Для этого нужно установить apache2-utils и сгенерировать пароли:

sudo apt-get install apache2-utils cd /var/www/sitename/ htpasswd -c ./.htpasswd username Первый запуск htpasswd с ключем -c создаёт файл с паролями, при добавлении новых юзеров этот ключ не нужен.

Дальше настроиваем nginx:

location ~* ^/(core|manager|connectors)/ { auth_basic "Restricted Access"; auth_basic_user_file /var/www/sitename/.htpasswd; location ~* \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass backend-sitename; } } Как видите, разница всего в двух строчках.

Заключение

Очень, очень рекомендую закрывать системные директории по ip, или, хотя бы, паролю. Сегодняшний баг, конечно, поправят, но никто не застрахован от будущих ошибок.

Эти правила должны быть повыше в конфиге, чтобы срабатывать раньше других. Регулярные выражения в nginx имеют приоритет, поэтому других регулярок выше быть не должно (например, обработки ~* \.php). То есть, сначала защитные правила, потом все остальные location.

Уязвимости были и будут в любом ПО, на 100% от них защититься нельзя, но нужно стараться.

Очевидно, что свой собственный VPS в деле обеспечения безопасности сайтов очень поможет в этом вопросе. Кто еще не смотрел — рекомендую.

Обновлено 05.06.13

Официальное объявление и ссылки на обновление\фикс размещены вот тут.

modx.pro

Защита сайта на MODX Revolution

Безопасность MODX Revolution

Команда разработчиков MODX постоянно проводит аудит кода и исправляет проблемы безопасности разрабатываемой системы управления. Тем не менее, абсолютно защищенных сайтов не существует. При их создании необходимо самому приложить определенные усилия для повышения уровня безопасности интернет-проекта.

ESET NOD32

Эффективные способы защиты

Перемещение ядра (каталог core)

Ядро приложения должно располагаться в максимально недоступном для доступа извне месте. Лучший вариант решения проблемы – перенести каталог с ядром MODX (core) за пределы корневого web-каталога, то есть выше по дереву файловой системы: к примеру «/core» вместо «/public_html/core». При этом все остальные папки должны быть доступны из Интернет.

После перенесения каталога нужно отредактировать конфигурационные файлы, указав в них новый путь до ядра MODX:

По окончании желательно перезапустить установку сайта как при обновлении.

 

Смена адреса административной панели

Второе по важности изменение – перенесение админки сайта, что помешает ботам быстро опознать сайт как созданный с помощью MODX. Возможность обнаружения, конечно, остается, но станет значительно сложнее.

Административная панель сайта на MODX по дефолту находится по адресу http://site.ru/manager. Переместить системную папку несложно – достаточно переименовать сам каталог (например, из manager в mysecuresite), а затем указать новый путь в файле конфигурации core/config/config.inc.php.

 

 

Регулярное обновление MODX

Всегда обновляйте MODX до последней стабильной версии. Это уменьшит вероятность взлома сайта через уже известные уязвимости.

Требование регулярно обновляться относится не только к самому движку, но и к дополнениям MODX. Для повышения безопасности старайтесь выбирать только проверенные временем дополнения.

 

Настройка прав доступа

В случае, если над вашим сайтом работает несколько человек одновременно (особенно это касается контент-менеджеров), стоит задуматься над установкой минимально необходимых прав доступа для них.

Маловероятно, что сотрудникам, которые занимаются информационным наполнением сайта, понадобится доступ к системным настройкам, шаблонам, чанкам и сниппетам.

 

Резервное копирование

Регулярно выполняйте резервное копирование как самого сайта, так и базы данных. Только в этом случае появится возможность быстро восстановить сайт после атаки злоумышленников или случайных некорректных действий с вашей стороны.

Архивы должны создаваться постоянно в автоматическом или ручном режиме и сохраняться на другом физическом носителе, нежели сам сайт. Таких архивов следует создавать несколько, причем держать их необходимо в разных местах.

Кстати, через месяц, 31 марта, отмечается международный день резервного копирования (День бэкапа), призванный привлечь общественное внимание к вопросам обеспечения сохранения информации, а также распространить информацию о необходимости защиты от потери данных.

Если вы только начинаете разворачивать сайт, желательно воспользоваться возможностью расширенной установки MODX Revolution. В этом случае изначально произвести перемещение ядра и смену адреса панели будет значительно проще.

Усилив систему безопасности своего сайта, не забывайте и о регулярном мониторинге: проверяйте журналы ошибок на предмет подозрительных сообщений, список пользователей, изменения критически важных файлов.

modxinfo.ru


Prostoy-Site | Все права защищены © 2018 | Карта сайта