No sobreestimemos el hallazgo del asesor de seguridad porque algunos de ellos realmente no saben lo que hacen. Por supuesto, no conozco el informe real y solo puedo basar mi opinión en lo que escribiste. Pero una vez tuve que ver con un informe en el que el consultor se quejaba de que el firewall no había detectado el virus EICAR cuando se usaba como asunto de un correo, aunque el uso previsto para el virus de prueba EICAR dice explícitamente:
Cualquier producto antivirus que admita el archivo de prueba EICAR debería detectarlo en cualquier archivo siempre que el archivo comience con los siguientes 68 caracteres, y sea exactamente 68 bytes de largo ...
Por lo tanto, detectar el código dentro de un flujo de bytes dentro de una aplicación o base de datos no cubre el uso en absoluto porque no es un archivo. Y tal vez ni siquiera cumple con los otros requisitos de inicio y longitud. Pero sería malo si el flujo de bytes se guarda realmente en algún lugar como un archivo, como cuando se descarga desde el navegador.
Hay una razón para esta restricción de uso del virus de prueba: el flujo de bytes de un virus no es peligroso por sí mismo. Solo es un problema cuando se usa en un contexto donde se puede ejecutar, generalmente cuando se guarda como un archivo con una extensión específica como .exe, .com, .scr, .dll, etc.
Pero es cierto que si el código malicioso ya está cargado dentro de una aplicación, también podría ejecutarse por otros medios, ya sea deliberadamente o debido a un error como un desbordamiento de búfer. La ejecución deliberada también sería posible si el código estuviera oculto con, por ejemplo, el cifrado, por lo que no importa. Y el desbordamiento del búfer no ejecutaría el código malicioso directamente, pero primero habría un código que explota el desbordamiento del búfer para luego ejecutar el código específico. E incluso este código de vulnerabilidad podría incluir algunos XOR simples para descodificar primero el código malicioso real.
Esto significa que buscar la firma de malware en algún lugar dentro de un flujo de bytes que puede o no ser usado directamente en la ejecución puede causar más falsas alarmas que de uso real. Por lo tanto, asegúrese de no ejecutar ningún código que tenga usted mismo en la base de datos y de no enviar a nadie los datos dentro de una descarga o de guardarlos como un solo archivo.
Aparte de eso, los productos antivirus para empresas a menudo tienen una API (u oferta ICAP) para que pueda enviar cualquier flujo de bytes que desee al antivirus para su análisis. Esto debe hacerse dentro de su aplicación en cualquier lugar que considere necesario. Y, por supuesto, debe tener en cuenta que esto solo fue un virus de prueba y que el antivirus no encontrará todo el malware posible, por lo que nunca podrá ofrecer una protección completa.