.NET espera archivos csv, ¿qué sucede si recibe un archivo malicioso?

2

Trabajo en un entorno empresarial en pequeñas aplicaciones personalizadas que leen archivos de datos (generalmente CSV) e integran los datos en los sistemas de software de contabilidad. Me he encontrado con una situación en la que hay un servidor con un usuario que siempre ha iniciado sesión y siempre ejecuta Outlook. Esta instancia de Outlook tiene algunos VBA que descargarán archivos adjuntos de correo electrónico, siempre que el dominio del remitente coincida con un valor predefinido. El archivo se descarga en una carpeta donde una aplicación .NET está esperando para recoger los archivos para procesarlos.

¿Cuáles son las implicaciones / riesgos de seguridad de este escenario?

Me imagino que hay algún beneficio para la seguridad a través de la oscuridad. Sin embargo, ¿qué pasa si un archivo que fue infectado fue enviado y descargado? Si la aplicación .NET solo lee archivos con la extensión .csv, ¿pueden los archivos infectados ser un CSV? ¿Puede ejecutar su carga maliciosa al ser leído por una aplicación que lo trata como un archivo delimitado por comas?

Gracias por sus pensamientos y orientación. Soy nuevo en este intercambio de pila en particular y doy la bienvenida a cualquier corrección a la etiqueta.

    
pregunta CodenameCain 22.11.2016 - 19:29
fuente

2 respuestas

1

Puede verificar el encabezado PE del archivo para asegurarse de que en realidad es text / csv como se esperaba. Hay un proyecto llamado Mime Detective para .net que hará esto por ti. También puede conectarse a un antivirus y escanear el archivo primero si su servicio de correo no lo hace de todos modos.

Dependiendo de cómo verifique el remitente del correo, existe la posibilidad de que la dirección del remitente sea falsificada.

Si le preocupa el contenido malicioso, puede buscar el archivo sql en el archivo, suponiendo que no contenga palabras clave que pueda analizar.

    
respondido por el iainpb 13.12.2016 - 23:51
fuente
1

No hay base para la "seguridad a través de la oscuridad", simplemente no funciona. Sácalo de tu mente ahora mismo.

Entonces, para responder algunas preguntas, ¿la aplicación .NET está buscando una extensión? ¿Encabezamiento? ¿Cómo determina que el archivo que está cargando es un CSV, ese es el grande? Si simplemente agarra cualquier archivo puesto en la carpeta y asume que es CSV, hay algunos problemas importantes. Si solo está buscando una extensión .CSV, puedo poner .CSV al final de cualquier archivo que haya creado y usted lo recogería, lo que llevaría a la lectura de un virus en la memoria. El código podría causar la inyección de SQL si no está protegido contra, o simplemente bloquear la aplicación, hacer que se cuelgue y detener el procesamiento de archivos, bloquear el servidor al hacer que la memoria se detenga, cualquier cantidad de cosas para interrumpir las operaciones comerciales.

Creo que el mayor peligro aquí es que tienes un script VBA descargando archivos en un servidor automáticamente. Eso es solo pedir virus, lisos y simples. El hecho de que provenga de un determinado dominio no protege nada, falsificar el correo electrónico es estúpidamente fácil y, en mi opinión, supone un riesgo igual o mayor que el de su aplicación .NET que procesa archivos CSV.

    
respondido por el Ryan Kelso 15.12.2016 - 15:43
fuente

Lea otras preguntas en las etiquetas