Si el archivo cargado está en un formato de imagen válido, .FromStream
no lanzará una excepción, incluso si contiene un virus. Es decir, no hay ningún virus que lo controle.
Por otro lado, tampoco hay forma de que el virus se active, ya que el archivo en este punto solo se trata como bytes sin procesar.
(Es posible, si no es posible, que contenga un ataque dirigido directamente a la clase .NET Image
, por ejemplo, a través de un desbordamiento de búfer. Sin embargo, además de ser muy improbable que exista tal vulnerabilidad, es incluso más improbable que alguien lo haga. vaya a la molestia de apuntar a un vector de nicho como).
Por lo tanto, en este punto usted está perfectamente (hablando de manera realista), pero tampoco tiene idea de si el archivo está limpio o no.
La verdadera pregunta es, ¿qué pasa con este archivo después?
¿Se guarda en el disco y se usa localmente?
En este caso, debe tener algún tipo de antivirus, búsquelo, aunque sea para su beneficio. Si cree en ellos, puede hacer que el motor AV local lo analice.
¿Se devuelve más tarde a otros usuarios y, por lo tanto, puede usar su sistema para propagarse?
Definitivamente debería tener algún tipo de escaneo AV antes de guardar el archivo. Tenga en cuenta que esto puede no ser tan simple, ya que puede estar almacenando las imágenes en su base de datos (hay escáneres AV que pueden ser activados por API para un segmento de memoria, antes de que se guarden en un archivo) ... En cualquier caso, Estoy categóricamente en contra de ejecutar análisis antivirus directamente en sus sistemas reales. Sería mejor tener algún tipo de analizador AV de puerta de enlace, incluso antes de que llegue a su sistema.
Sin embargo, tenga en cuenta que cuando permite que usuarios aleatorios carguen archivos arbitrarios, la limpieza de virus no es lo más importante.
- Por un lado, puedes ser abrumado, ya sea por archivos grandes o muchos más pequeños, por lo tanto, DoSing tu servidor.
- Si el usuario puede especificar la ruta del archivo guardado, podría sobrescribir los archivos del sistema o cargar código ejecutable.
- Si los atributos del archivo se guardan y luego se muestran (esto incluye el nombre del archivo y el nombre de usuario, pero también la descripción, el tipo de archivo, la ubicación, etc.), esto puede provocar otros ataques web estándar, como XSS o Inyección de SQL.
- Haga una búsqueda aquí para GIFAR: estos son archivos que son archivos de imagen válidos y archivos JAR (archivo ejecutable de Java para el navegador) válidos. Por supuesto, estos no son un virus ...
- Dependiendo del sistema, puede estar en riesgo de daños legales, si sus usuarios suben, por ejemplo. imágenes con derechos de autor, o por ejemplo pornografia infantil. Por supuesto, consulte con su abogado, ya que no soy uno.
TL; DR
En resumen, la aceptación de subidas arbitrarias lo lleva a una gran cantidad de problemas potenciales, y el análisis de virus no es lo peor.