Dudo que lleguemos a conocer los detalles exactos de cómo que pudieron poner el JavaScript malicioso en newegg.com. Para que eso suceda, es posible que newegg.com deba proporcionar al público información no divulgada sobre su infraestructura privada.
Hablando en términos generales, la respuesta es que ... algo era inseguro en su servidor o en su software. Hay posibilidades prácticamente ilimitadas de cómo esto puede haber sucedido.
El siguiente detalle es interesante:
Una fecha clave en los ataques de Magecart contra Newegg provienen de
Datos de registro del dominio neweggstats.com
Esto implica que el equipo forense de Volexity no pudo determinar cuándo comenzó el ataque utilizando datos encontrados en el servidor de newegg.com. Por ejemplo, los archivos que han sido tocados pueden tener sus marcas de tiempo revertidas a sus fechas pre-modificadas. Su estimación de cuándo comenzó el compromiso se basa en la fecha de registro del dominio ... pero tal vez el atacante haya estado usando un dominio menos convincente durante mucho tiempo antes de decidir cambiar a neweggstats.com.
Algunas posibilidades comunes están debajo.
Inyección SQL
Un atacante puede descubrir lo suficiente sobre el esquema de su base de datos para saber que el contenido de una tabla / columna dada se inserta en cada página sin desinfección. El atacante puede entonces descubrir un punto de inyección de SQL y poder INSERTAR una etiqueta de script en la tabla / columna dada. El software incluiría felizmente el JavaScript malintencionado del atacante en la página.
Phishing para credenciales de administrador
La parte administrativa del sitio web puede permitir abiertamente que las etiquetas de script se incluyan de alguna manera en el diseño del sitio. Esto podría incluir la edición de plantillas generales (la capacidad de realizar cambios en el HTML del sitio web mediante un editor) o podría ser algo así como una herramienta de administración que le permite cargar imágenes de pago para las páginas de pago (técnicamente, esto es lo mismo que el primer ejemplo) ).
El software podría incluso permitir que un administrador simplemente cargue un archivo JavaScript que se incluiría automáticamente en el sitio web.
Haciéndose pasar por un tercero
Cualquier JavaScript de terceros que incluyas en tu sitio web tiene la capacidad de ser malicioso. Uno podría simplemente anunciar un servicio de análisis de comercio electrónico avanzado para incluir su código malicioso en su sitio. Entonces el propietario del sitio hará el trabajo duro por ti.
Subidas de imagen no seguras
Las imágenes pueden contener código ejecutable. Algunos sitios permiten a los usuarios subir fotos con sus reseñas de productos. Si newegg.com lo permitiera, pero no desinfectaba las imágenes, un atacante podría obtener su código ejecutable en el servidor fácilmente. Una vez en el servidor, el atacante deberá hacer que el servidor "ejecute" la imagen como código. Esto se puede hacer si su servidor está mal configurado o si su software tiene un agujero de seguridad que permitiría incluir la imagen como código. El ejecutable malintencionado se ejecutaría con los mismos permisos que el servidor web (o peor). En ese momento, el software podría agregar código a un archivo JavaScript ya incluido en el servidor.
Resumen
Escribir software y hacerlo seguro son tareas muy diferentes. A veces, una empresa pone énfasis en agregar características porque las personas que dirigen la empresa están principalmente interesadas en sus ganancias. La idea de que debería invertirse mano de obra para asegurar su software nunca se les pasa por la cabeza hasta que después de se haya producido una violación.
A menudo, los empleados que podrían ser responsables de proteger su software carecen de experiencia, reciben un salario insuficiente, trabajan demasiado o heredan sistemas inseguros de empleados anteriores. Cuando nadie tiene la tarea de proteger su servidor / software, las vulnerabilidades encuentran su camino hacia adentro.
El (los) método (s) que un atacante puede usar para comprometer un sitio suele ser multifacético y puede que no se entienda completamente incluso después de que se descubre el compromiso. La contratación de una empresa forense puede ser útil, pero sus capacidades pueden verse limitadas debido a la configuración del servidor (por ejemplo, los registros solo pueden almacenarse durante un corto período de tiempo).