Конкретный ответ на ваш вопрос см. По адресу /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/
Но эти новые статьи не ссылаются на новый эксплойт, они просто указывают, как хакеры используют исторические эксплойты (или любой другой вектор атаки), чтобы иметь возможность собирать информацию о владельце карты.
источники
Я добавляю другой ответ только потому, что мой другой на самом деле не ответил на вопрос - и, конечно, больше не нужно!
Как я могу проверить, содержит ли изображение информацию CC
В конце концов, вы не можете. Иногда есть показатели, которые выделяют его,
Например.
Но может быть особенно трудно переварить содержимое двоичных файлов для определения содержимого, если содержимое не просто в виде простого текста.
Наиболее распространенный эксплойт, который я видел, не включает запись данных в виде простого текста в файл с
.jpg|png|gif|etc
расширением, они обычно включают в себя какое-то кодирование / шифрование, чтобы скрыть данные (например,base64
иmcrypt
т. Д.). Что означает, что простой grep не будет работать.Вы могли бы (и это ни в коем случае не является исчерпывающим) ...
Найти ненормально большие файлы
Найти файлы, соответствующие регулярному выражению CC
Проверьте правильность файлов изображений
Или
Как я могу проверить файлы PHP в моей установке, чтобы увидеть, были ли они изменены
Самый простой способ сравнить установочные файлы - это сравнить ядро с чистой копией. Это не относится к файлам вашей темы, но имеет большое значение для проверки нескольких тысяч файлов в вашей установке.
Процесс действительно прост,
Например. Для версии Magento 1.7.0.2
Имейте в виду, что старые выпуски Magento (досадно) не исправлены, поэтому внесение изменений в ядро приведет к отображению изменений. Чтобы избежать этого, примените патчи к только что загруженному чистому источнику, а затем снова выполните diff.
источник
Отличный пост, но, к сожалению, не все вещи созданы равными.
Файловые права
Когда общий хостинг стал популярным, считалось более важным, чтобы люди не имели права просматривать контент других на одном сервере. До появления FreeBSD jail это означало:
Это позволило модифицировать (тогда) HTML-файлы владельцем учетной записи, в то время как процесс веб-сервера и владелец учетной записи не имели доступа к другим на одном компьютере.
Это не сильно изменилось, и программные пакеты, предназначенные для общего хостинга (CPanel, DirectAdmin, Plex), используют эти принципы. Это означает, что основная точка входа (веб-сервер и / или интерпретатор сценариев) может выполнять запись в любой файл в учетной записи, что делает права доступа к файлам бесполезными.
Нет CC, чтобы украсть, если у вас его нет
Сообщите своему поставщику платежей CC, если данные CC действительно отправляются на ваш сервер, и если да, если они отправляются незашифрованными незашифрованными. В наши дни JavaScript достаточно мощный, и есть поставщики платежных услуг, которые используют движок JavScript вашего клиента для шифрования конфиденциальной информации перед передачей на сервер. Хотя этот сборщик информации может получить ключ сеанса, а также зашифрованные данные (и, следовательно, быть в состоянии расшифровать его), сборщик данных менее интересен, так как собранные данные больше, а ИИ бота намного сложнее. ,
Обнаружение модификации
Более 15 лет Unix, и это все еще вызывает ностальгическую улыбку на моем лице, когда я вижу реинкарнации TripWire . Git это тоже хороший инструмент для этого. По сравнению с известной хорошей версией, несколько меньше, так как она не учитывает дополнения и снова предоставляет хороший инструмент, поскольку локальные модификации сайта происходят чаще, чем первоначальные установки.
Загрузчик
Переместить загрузчик за пределы корня документа так же просто, как установить некоторую форму HTTP-аутентификации. Тогда только положите его обратно, когда вы его используете. Если это нецелесообразно, я предпочитаю блокировать его на основе удаленного адреса, а не другого уровня пользователя / пароля, особенно тех, которые отправляют пароли в виде простого текста.
WAF и альтернативы
Брандмауэр веб-приложений может предотвратить множество проблем уже на этапе сканирования атаки. К сожалению, это дорогие черные ящики, но существуют некоторые альтернативы:
Я думаю, что мы охватили много вещей, но позвольте мне закончить с моим любимым:
ОСТАНОВИТЬ ИСПОЛЬЗОВАНИЕ FTP
Там. Я сказал это. А вот и я: https://wiki.filezilla-project.org/Howto
источник
В этом новом взломе нет ничего определенного, вчера Бен Маркс написал, что они исследуют проблему, и эта статья тоже есть.
Лучший подход, который вы можете попробовать, - это войти через SSH и выполнить поиск во всех файлах, которые у вас есть, для определенной строки, что-то вроде
из вашей корневой папки Magento, и если вы получите совпадение, вручную проверьте файл, чтобы увидеть, что происходит. То же самое с другими строками, такими как «END PUBLIC KEY», например.
источник