Конкретный ответ на ваш вопрос см. По адресу /magento//a/72700/361.
Фон
Во-первых, особого эксплойта не существует - в настоящий момент существует ряд статей, в которых рассматриваются раунды, которые неправильно истолковали и неправильно поняли исходную статью.
Оригинал статьи просто сказал (и я перефразирую),
Если хакер был в состоянии получить доступ к вашим файлам Magento, они могли бы собирать информацию от клиента
Ключевой частью является хакер, которому нужно получить доступ к вашему серверу и изменить файлы.
Не паникуйте ... это ничего особенного для Magento
С точки зрения сбора информации, нет ничего конкретного для Magento, чем любой другой сайт / платформа. Если хакер получит доступ к вашим файлам, игра фактически закончится - они смогут захватить любую информацию, какую захотят.
Лучшее, что вы можете сделать (и, в конечном счете, минимум, который вы должны делать), это поддерживать хорошую политику безопасности, соответствующую стандартам безопасности PCI индустрии обработки платежей, список вы можете найти здесь, https://www.pcisecuritystandards.org. /documents/Prioritized_Approach_for_PCI_DSS_v3_.pdf
Укрепи свой магазин
Вы действительно можете заблокировать аспекты вашего магазина, которые значительно уменьшат площадь атаки на поверхность для хакера, или, по крайней мере, замедлят их продвижение, если им удастся проникнуть /
Блокировка разрешений
Вы можете ограничить разрешения для корня документа, чтобы разрешить запись только в основные каталоги ( /var
и /media
)
Это то, что мы делаем по умолчанию на MageStack ,
echo -n "Fixing ownership"
chown -R $SSH_USER:$WEB_GROUP $INSTALL_PATH && echo " ... OK" || echo " ... ERROR"
INSTALL_PATH="/path/to/public_html"
chmod 750 $INSTALL_PATH
find $INSTALL_PATH -type d ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing file permissions"
find $INSTALL_PATH -type f ! -perm 740 -exec chmod 740 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing cron permissions"
find $INSTALL_PATH/*/cron.sh -type f ! -perm 750 -exec chmod 750 {} \; && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var file permissions"
chmod -R 760 $INSTALL_PATH/*/media $INSTALL_PATH/*/var && echo " ... OK" || echo " ... ERROR"
echo -n "Fixing media/var directory permissions"
find $INSTALL_PATH/*/media $INSTALL_PATH/*/var -type d ! -perm 770 -exec chmod 770 {} \; && echo " ... OK" || echo " ... ERROR"
Отрегулируйте INSTALL_PATH,SSH_USER,WEB_GROUP
в соответствии с костюмом. Важно то, что вы SSH_USER
не тот пользователь, которого PHP использует для процесса веб-сервера, в противном случае вы, по сути, предоставили бы полный доступ на запись к веб-серверу (уменьшив любые преимущества).
Заблокируйте доступ администратора / загрузчика
На MageStack вы должны установить это в ___general/x.conf
set $magestack_protect_admin true;
set $magestack_protect_downloader true;
На Nginx вы можете использовать это,
location ~* ^/(index.php/)?admin{
satisfy any;
allow x.x.x.x;
auth_basic "Login";
auth_basic_user_file /microcloud/data/domains/x/domains/x/___general/.htpasswd;
deny all;
location ~* \.(php) {
include fastcgi_params;
}
try_files $uri $uri/ /admin/index.php ;
}
Там немного больше документации о том, как подготовить .htpasswd
файл здесь
Заверните cron.sh
процесс
Я сталкивался с другими хостинг-провайдерами, использующими выделенные машины для использования cron / admin - это означает, что изменение cron.sh
файла позволит удаленно выполнять код на cron / admin без необходимости доступа к нему. Завершение процесса с нужным пользователем в fakechroot может пойти еще дальше, чтобы заблокировать процесс.
Там это слишком много коды для меня пост, но есть сценарий здесь . Он специфичен для MageStack, но может быть настроен для использования на менее элегантных конфигурациях сервера :)
Аудит, ревизия, аудит
Linux - это просто фантастика с точки зрения входа и использования, что даст вам полное представление о том, что делает ваш сервер.
Отличная особенность MageStack - инструмент аудита, который ежедневно регистрирует все виды доступа и даже изменения файлов. Вы можете найти журналы здесь,
/microcloud/logs_ro
|-dh[0-9]+
|---access-YYYY-MM-DD.log.gz
|---backup-YYYY-MM-DD.log.gz
|---magescan-YYYY-MM-DD.log.gz
|---php-differential-YYYY-MM-DD.log.gz
|-acc[0-9]+
|---access-YYYY-MM-DD.log.gz
Если вы не используете MageStack, вы можете легко воспроизвести некоторые из них с вашим собственным хостинг-провайдером, rsync
являясь самым простым инструментом для этого.
Например. Если ваши резервные копии доступны локально, вы можете сделать следующее. Это позволит выполнить пробный прогон, сравнить два каталога и создать список исправлений diff.
rsync -na /path/to/public_html/ /path/to/backup/public_html/ > change.log
grep -E '\.php$' change.log | while read FILE; do
diff -wp /path/to/public_html/$FILE /path/to/backup/public_html/$FILE >> php-differential.log
done
Изменения в PHP настолько редки, что вы можете запланировать их запуск ежедневно (или несколько раз в день) и уведомлять вас по электронной почте в случае изменения файла PHP.
В итоге
- Используйте контроль версий, легче отслеживать изменения
- Просто иметь SSL-сертификат недостаточно, чтобы сделать ваш сайт безопасным
- Не ждите, чтобы взломать, чтобы рассмотреть безопасность
- То, что вы перенаправляете к своему провайдеру платежного шлюза (вместо сбора информации) - это не значит, что вы можете избежать соответствия PCI, вам все равно нужно соблюдать
- Будьте активны, будьте осторожны и будьте внимательны - проверяйте код модуля перед его установкой, ежедневно проверяйте файлы PHP, просматривайте журналы, проверяйте доступ по FTP / SSH, регулярно меняйте пароли
Ваши клиенты оказывают вам огромное доверие, когда они передают всю свою личную информацию - и если вы предадите это доверие, не ведя безопасный бизнес, вы потеряете их и все будущие обычаи.
Криминалистические расследования PCI невероятно дороги, отнимают много времени и в конечном итоге рискуют лишить вас возможности снова принимать платежи по карте. Никогда не позволяйте себе оказаться в таком положении!
Быть исправленным
В последнее время из Magento была выпущена серия патчей, исправляющих дыры, в том числе некоторые, которые позволяли выполнять удаленное выполнение кода. Вы можете получить их здесь, https://www.magentocommerce.com/products/downloads/magento/
Но эти новые статьи не ссылаются на новый эксплойт, они просто указывают, как хакеры используют исторические эксплойты (или любой другой вектор атаки), чтобы иметь возможность собирать информацию о владельце карты.
источники