Herramientas para escanear el código de Magento en busca de contenido malicioso

8

Tenemos un cliente que está muy preocupado con la introducción de código malicioso en módulos de terceros, especialmente los módulos que provienen de Magento Connect (o cualquier módulo gratuito). Quisieran usar uno de estos módulos pero quieren estar seguros de que el módulo sí lo hace. no contiene código que permita a un hacker obtener acceso a diferentes partes de su sitio Magento.

Mi pregunta es esta: ¿Existe alguna herramienta que podamos usar para escanear el código en busca de contenido? Algo como esto pero tal vez más en profundidad.

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;
        }
}

Incluso un servicio que se puede ejecutar en el servidor web.

Idealmente, si hubiera un servicio que escaneara cada confirmación antes de que el código ingresara al repositorio, sería ideal.

brentwpeterson
fuente
Gran pregunta Soy paranoico por naturaleza y cuando instalo un nuevo módulo, voy y verifico el código para ver si hay algo sospechoso. Supongo que el problema es para aquellos que no saben lo que están buscando. Algo así como todas esas aplicaciones de linterna que acceden a la cámara y / o al micrófono de su teléfono. No lo sabrá hasta que sea demasiado tarde o analice seriamente lo que está instalando. Dicho esto, espero que alguien pueda encontrar una solución O que Magento Connect se vuelva mucho más agotador en los módulos que permiten.
SR_Magento
1
¿No pueden simplemente pagarle para descargar y luego revisar el código antes de subirlo al sitio comercial sin usar Connect?
Kristof en Fooman

Respuestas:

3

¿Había pensado en ejecutar clamav? - https://www.clamav.net/index.html - Ejecuté esto recientemente en un servidor Ubuntu de clientes que ejecutaba magento y regresó con dos archivos infectados - la velocidad del escaneo fue impresionante y se ejecuta fácilmente si tiene acceso SSH - También puedes correr regularmente a través de un trabajo de Cron.

Para ejecutar clam AV en Ubuntu

Para instalar ClamAV ejecuta el siguiente comando

apt-get update
apt-get install clamav

Actualizar manualmente las bases de datos de virus

freshclam

Verá que comienza el proceso de actualización de ClamAV. Para escanear manualmente archivos / carpetas en busca de virus

clamscan -r --bell -i /

Para aquellos que no están en Ubuntu, las instrucciones completas se pueden encontrar aquí https://www.clamav.net/doc/install.html

David Allsop
fuente
Agregue eso a Linux Malware Detect, que realiza un nivel de escaneo y luego se vincula con ClamAV para finalizar el intento de eliminar las aplicaciones de php.
Fiasco Labs
FYI Clam no detecta la mayoría del último malware de Magento. Además, la mayoría del malware está oculto en la base de datos, específicamente en estas tablas: core_config_data, cms_blocks, cms_pages. Por lo tanto, debe volcarlos en un archivo y escanear eso.
Willem
3

Hay muchas formas de ofuscar el código, por lo que una solución tan simple no es una solución en absoluto para la OMI. Si realmente desea bloquear su sistema y evitar códigos maliciosos, le recomendaría:

  1. No permita la instalación de módulos a través de Connect. Utilice un repositorio de git e instálelo primero en un servidor provisional y solo actualice la producción a través de git después de una exhaustiva prueba e inspección.

  2. Nunca permita el uso de módulos con código ofuscado, sin importar quién sea el desarrollador. Solicite una copia no ofuscada o simplemente busque en otro lado. Simpatizo con los desarrolladores de extensiones que desean evitar la piratería, pero si le preocupa la seguridad, es un factor decisivo.

  3. Si es posible, restrinja el tráfico saliente a través de iptables. Esto es difícil ya que hay tantas API de terceros para integrar y pueden cambiar sus IP en cualquier momento, pero es la forma más segura de evitar que el código malicioso (Magento o de otro modo) llegue.

  4. Instale una herramienta que supervise su raíz web para detectar cambios de archivos. Por ejemplo, ConfigServer Firewall y OSSEC tienen componentes que lo hacen bien, después de una configuración adecuada, por supuesto.

Si conoce un sistema que actualizará las entradas de iptables o los grupos de seguridad de AWS cuando se actualicen los registros DNS, avíseme ya que todavía no he encontrado ni creado uno.

ColinM
fuente
Gracias a Colin, eso en realidad no responde la pregunta: hacemos 1 y 2. El número tres está detrás del hecho y no se ocupa del escaneo del código. # 4 es solo una comparación del código existente. Tenemos clamAV y Sophus, pero faltaron dos archivos.
brentwpeterson
2

Pruebe el Magento Malware Scanner , que contiene la mayor colección de firmas de malware que está disponible públicamente. Descarga las últimas firmas, maneja las listas blancas y mantiene el estado.

Es recomendado por Magento , utilizado por Magento Marketplace , Homeland Security, VISA y muchos otros.

Willem
fuente
1

Creé un módulo llamado MB_ Callinghome para hacer exactamente eso. La extensión es bastante simple, observa el evento de inicio de sesión de administrador y busca una cadena configurable con find y grep. La extensión usa exec (), lo que lo hace solo utilizable en un entorno provisional, ya que podría exponer el sitio a un ataque si se usa en prod.

mbalparda
fuente
1

Quizás podría considerar el uso de PHP_CodeSniffer o una herramienta estándar de codificación similar. Por supuesto, necesitará tener una sólida comprensión del funcionamiento interno de lo que se debe considerar seguro, pero puede configurarlo de tal manera que el rastreador de código marque los archivos problemáticos.

Recuerdo que aquí había una pregunta sobre por qué los estándares utilizados por el módulo aquí https://github.com/magento-ecg/coding-standard son tan sensibles sobre thigs como fopen y otras operaciones de E / S de archivos.

Al usarlo, al menos podría identificar lo que desea considerar código peligroso. Sin embargo, en última instancia, aún requeriría una revisión de la base del código. Cualquier cosa que se marque allí podría ser un código legítimo para los propósitos de la operación de los módulos. Por lo tanto, desafortunadamente no puede confiar únicamente en las pruebas automáticas para algo de esta naturaleza.

John Cuthbert
fuente
0

Existen herramientas gratuitas en línea que puede usar para escanear su instalación de Magento de forma remota. Estos pueden ayudarlo a identificar swipers de tarjetas de crédito, cargas maliciosas, dominios intermedios y otros problemas de seguridad.

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/

Mohamed El Mrabet
fuente