Non sopravvalutiamo la scoperta del consulente per la sicurezza perché alcuni di loro non sanno veramente cosa fanno. Certo che non conosco il vero rapporto e posso basare la mia opinione solo su ciò che hai scritto. Ma una volta ho avuto a che fare con un rapporto in cui il consulente si è lamentato del fatto che il virus EICAR non è stato trovato da un firewall quando è stato utilizzato come oggetto di posta, anche se l'uso previsto per il virus di test EICAR lo dice esplicitamente:
Any anti-virus product that supports the EICAR test file should detect it in any file providing that the file starts with the following 68 characters, and is exactly 68 bytes long...
Quindi, il rilevamento del codice all'interno di un flusso di byte all'interno di un'applicazione o di un database non copre affatto l'utilizzo perché non è un file. E forse non si adatta nemmeno agli altri requisiti su inizio e lunghezza. Ma sarebbe male se il flusso di byte viene effettivamente salvato da qualche parte come un file, come quando scaricato dal browser.
C'è una ragione per questa limitazione di utilizzo del virus di test: il flusso di byte di un virus non è pericoloso da solo. È solo un problema quando viene utilizzato in un contesto in cui può essere eseguito, in genere quando viene salvato come file con un'estensione specifica come .exe, .com, .scr, .dll ecc.
Ma è vero che se il codice dannoso è già caricato all'interno di un'applicazione può anche essere eseguito in altro modo, deliberatamente o a causa di un bug come un buffer overflow. L'esecuzione deliberata sarebbe anche possibile se il codice fosse nascosto con la crittografia ad esempio, quindi non importa. E l'overflow del buffer non eseguirà direttamente il codice dannoso ma ci sarà prima del codice che sfrutta l'overflow del buffer per poi eseguire il codice specifico. E anche questo codice di exploit potrebbe includere alcuni semplici XOR per decodificare il vero codice dannoso.
Ciò significa che cercare la firma del malware da qualche parte all'interno di un flusso di byte che può essere o non essere mai utilizzato direttamente nell'esecuzione potrebbe causare più falsi allarmi che essere di uso reale. Pertanto assicurati di non eseguire alcun codice tu stesso nel database e di non inviare a nessuno i dati contenuti in un download o di salvarli come file singolo.
A parte i prodotti antivirus aziendali, spesso hanno un'API (o offrono ICAP) in modo da poter inviare qualsiasi flusso di byte che desideri all'analisi antivirus. Questo dovrebbe essere fatto all'interno della tua applicazione in qualsiasi luogo tu ritenga necessario. E ovviamente dovresti sapere che questo è solo un virus di prova e che l'antivirus non troverà tutti i possibili malware, quindi non potrai mai offrire una protezione completa.