Инструменты для сканирования Magento-кода на наличие вредоносного контента

8

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

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

function check($contents,$file) {
        $this->scanned_files[] = $file;
        if(preg_match('/eval\((base64|eval|\$_|\$\$|\$[A-Za-z_0-9\{]*(\(|\{|\[))/i',$contents)) {
            $this->infected_files[] = $file;
        }
}

Даже сервис, который можно запустить на веб-сервере.

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

brentwpeterson
источник
Отличный вопрос Я параноик по своей природе, и при установке нового модуля я иду и проверяю код, чтобы увидеть, есть ли что-нибудь подозрительное. Проблема, я думаю, для тех, кто не знает, что они ищут. Вроде как все те приложения фонарик, которые получают доступ к вашей камере телефона и / или микрофона. Вы не знаете, пока не стало слишком поздно, или серьезно посмотрите на то, что вы устанавливаете. При этом, я надеюсь, что кто-то может найти решение ИЛИ, что Magento Connect станет намного более напряженным в модулях, которые они позволяют.
SR_Magento
1
Разве они не могут заплатить вам за загрузку и проверку кода перед загрузкой на сайт продавца без использования Connect?
Кристоф на Fooman

Ответы:

3

Вы думали о запуске Clamav? - https://www.clamav.net/index.html - я недавно запустил это на клиентском сервере Ubuntu под управлением magento, и он вернулся с двумя зараженными файлами - скорость сканирования была впечатляющей и легко запускается, если у вас есть доступ по SSH - Вы также можете регулярно бегать через работу Cron.

Для запуска clam AV на Ubuntu

Для установки ClamAV выполните следующую команду

apt-get update
apt-get install clamav

Обновление вирусных баз вручную

freshclam

Вы увидите, что процесс обновления ClamAV запущен, чтобы вручную проверять файлы / папки на наличие вирусов.

clamscan -r --bell -i /

Для тех, кто не в Ubuntu, полные инструкции можно найти здесь https://www.clamav.net/doc/install.html.

Дэвид Оллсоп
источник
Добавьте это в Linux Malware Detect, который выполняет один уровень сканирования, а затем подключается к ClamAV, чтобы завершить попытку избавиться от вредоносных программ php.
Fiasco Labs
FYI Clam не обнаруживает большинство последних вредоносных программ Magento. Кроме того, большинство вредоносных программ скрыто в базе данных, особенно в этих таблицах: core_config_data, cms_blocks, cms_pages. Таким образом, вы должны сбросить их в файл и отсканировать это.
Виллем
3

Есть много способов запутать код, поэтому такое простое решение совсем не является решением IMO. Если вы действительно хотите заблокировать свою систему и предотвратить вредоносный код, я бы порекомендовал:

  1. Не разрешайте установку модулей через Connect. Используйте репозиторий git и сначала установите его на промежуточный сервер, а обновляйте продукцию через git только после тщательного тестирования и проверки.

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

  3. По возможности ограничьте исходящий трафик через iptables. Это сложно, поскольку существует так много сторонних API для интеграции, и они могут изменить свои IP-адреса в любое время, но это самый надежный способ предотвратить проникновение вредоносного кода (Magento или иным образом).

  4. Установите инструмент, который контролирует ваш веб-корень на предмет изменений файлов. Например, ConfigServer Firewall и OSSEC имеют компоненты, которые делают это хорошо, конечно, после правильной настройки.

Если вам случится узнать о системе, которая будет обновлять записи iptables или группы безопасности AWS при обновлении DNS-записей, пожалуйста, дайте мне знать, поскольку я еще не нашел и не создал ни одну из них ...

ColinM
источник
Спасибо Колин, это на самом деле не отвечает на вопрос: мы делаем 1 и 2. Номер три после факта и не занимается сканированием кода. # 4 - это просто сравнение существующего кода. У нас есть как clamAV, так и Sophus, но там пропущено два файла.
Brentwpeterson
2

Попробуйте Magento Malware Scanner , который содержит самую большую коллекцию сигнатур вредоносных программ, которая является общедоступной. Он загружает последние подписи, обрабатывает белые списки и сохраняет состояние.

Рекомендуется Magento , используется Magento Marketplace , Homeland Security, VISA и многими другими.

Willem
источник
1

Я создал модуль , называемый MB_ Callinghome сделать именно это. Расширение довольно простое, оно наблюдает за событием входа администратора и ищет настраиваемую строку с помощью find и grep. Расширение использует exec (), что делает его пригодным для использования только в промежуточной среде, поскольку оно может подвергнуть сайт атаке при использовании в prod.

mbalparda
источник
1

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

Напомню, что здесь возник вопрос о том, почему стандарты, используемые модулем здесь https://github.com/magento-ecg/coding-standard , так чувствительны к веткам, как fopen и другим операциям ввода-вывода файлов.

Используя его, вы можете по крайней мере определить, что вы можете считать опасным кодом. Однако в конечном итоге это все еще потребует пересмотра кодовой базы. Все, что помечено там, может быть законным кодом для целей работы модулей. Так что, к сожалению, вы не можете полагаться исключительно на автоматическое тестирование чего-либо подобного.

Джон Катберт
источник
0

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

https://sitecheck.sucuri.net/

https://www.magereport.com/

http://www.unmaskparasites.com/

http://webscan.foregenix.com/

https://github.com/gwillem/magento-malware-scanner/

https://magescan.com/

https://www.virustotal.com/

Мохамед Эль Мрабет
источник