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.
php
magento-connect
extensions
security
brentwpeterson
fuente
fuente
Respuestas:
¿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
Actualizar manualmente las bases de datos de virus
Verá que comienza el proceso de actualización de ClamAV. Para escanear manualmente archivos / carpetas en busca de virus
Para aquellos que no están en Ubuntu, las instrucciones completas se pueden encontrar aquí https://www.clamav.net/doc/install.html
fuente
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:
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.
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.
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.
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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/
fuente