Ho un file sheller PHP (come il file c99) ma è codificato con queste funzioni:
eval(gzinflate(base64_decode("7P3rehblahblah"))
La scansione del virus Clamav non può rilevarlo. Come posso rilevare un virus e uno sheller del genere?
ClamAV potrebbe non essere il prodotto giusto per identificare le shell php. Questo perché ci sono infiniti modi per codificare la shell, e non è fatto su misura per comprendere il codice PHP.
Ci sono altre tecnologie che sono più su misura per rilevare il codice php dannoso. Emphosha è un'alternativa che comprende il preprocessore php e può generare un avviso basato su funzioni considerate usate per offuscare codice + capace per rilevare le shell conosciute.
I rilevatori di malware basati su firme possono essere validi quanto il database delle firme che hanno a disposizione. Questo rappresenta un ottimo modello di business per i fornitori di tali prodotti: il database avrà sempre bisogno di aggiornamenti per supportare nuovi malware. Scrivere scanner euristici basati sul malware è davvero difficile - quelli che ho visto in profondità forniscono una copertura aggiuntiva agli exploit zero day, ma non molto.
Un approccio alternativo al tentativo di trovare cose cattive è quello di tenere traccia delle cose buone usando un IDS basato su host. Questo deve essere incorporato nel processo di distribuzione. Inoltre, non può essere applicato a artefatti considerati dati - si consideri CVE-2014-8449 o CVE-2016-8332; la maggior parte dei servizi esegue una sorta di trasformazione o archiviazione dei dati, quindi sono progettati per l'importazione dei dati. L'IDS non può convalidare contenuti che non è stato detto è buono.
Un'estensione del concetto di tracciamento delle firme dei file sta eseguendo una piattaforma attendibile, in cui tutti gli eseguibili devono avere la firma controllata prima dell'esecuzione, tuttavia questo è computazionalmente costoso, più costoso negli sforzi per la manutenzione e i principali attori in questo mercato trattano come meccanismo per proteggere il loro monopolio - e spesso non riescono a estendere completamente la copertura a manufatti considerati dati.
Un'ulteriore considerazione è che qualsiasi componente in linea (e alcuni offline) aumentano la superficie di attacco. Purtroppo, solo perché dice "Sicurezza" sulla scatola, qualsiasi bullone sul prodotto potrebbe aggiungere vulnerabilità al tuo sistema.
La soluzione più rigorosa consiste nell'usare una combinazione di scanner firma / euristici e IDS.
Usa CXS e aggiungi regall:quaratine:\$msg\=@gzinflate\(@base64_decode\(@str_replace
al tuo cxs.xtra.
Metterà in quarantena tutto il codice con quella stringa.