Sono parzialmente responsabile della sicurezza e del rilevamento di malware (in generale) di un numero enorme di account di hosting. I nostri metodi si basano molto sul rilevamento basato su firme fornito da ClamAV per il quale abbiamo creato anche un database di firme abbastanza decente (oltre 500 campioni).
Riceviamo fino a 30-40 notifiche su base giornaliera per l'individuazione di codici maligni nell'account di un utente. Con il passare del tempo, gli hacker diventano più intuitivi e riescono sempre a tenere il passo con il progresso della nostra (whitehat community nel suo complesso) mentre tentiamo di interrompere i loro tentativi di sfruttare le vulnerabilità. Tuttavia, sembra che il rilevamento basato sulla firma di codice dannoso stia diventando sempre più insufficiente: continuiamo a trovare nuovi campioni di malware che la scansione non è stata in grado di rilevare inizialmente. Pertanto mi sono preso la libertà di provare e progettare un sistema per il rilevamento di anomalie severe.
Chiedo consiglio se le mie attuali pianificazioni possono essere considerate ragionevoli poiché questa è la prima volta che intraprendo questo compito.
Penso che più condizioni controllo il file, i risultati migliori che posso ottenere (eliminando i falsi positivi il più possibile). Finora ho creato il seguente elenco di condizioni:
- posizione file (5%)
- nome file (10%)
- codice ordine / allineamento (5%)
- pattern ripetuti (5%)
- nomi strani / non logici di strutture di dati (10%)
- impilamento di più funzioni (3%)
- segnalazione errori disabilitata (5%)
- soppressione dell'errore usata (2%)
- contiene hex (es. \ x73) (3%)
Dove ciascuna delle condizioni fornisce al file una certa percentuale di potenziale malintenzionato o contenuto dannoso. Le mie domande sono :
- Questo è un buon approccio per lo sviluppo di un rigoroso sistema di rilevamento basato sull'anomalia? Se no, perché?
- Puoi fornirmi degli esempi di cos'altro posso controllare un file contro? Qualche consiglio o qualche informazione utile?
Considera che:
- È indirizzato alle applicazioni web e principalmente ai file PHP;
- Molti dei nostri clienti usano CMS. Forse è meglio basare il sistema su un determinato CMS?
Grazie.