Introduzione
In questo documento viene descritto come creare rilevamenti personalizzati - Impostazioni avanzate utilizzando ClamAV sigtool.exe in Windows.
Informazioni sui rilevamenti personalizzati avanzati
I rilevamenti personalizzati avanzati sono simili alle firme antivirus tradizionali, ma vengono scritti dall'utente. Per rilevare malware e altre minacce basate su file, ClamAV si basa su firme per distinguere i file puliti da quelli dannosi/indesiderati. Le firme di ClamAV sono principalmente basate su testo e sono conformi a uno dei formati di firma specifici di ClamAV associati a un determinato metodo di rilevamento. Queste firme possono esaminare vari aspetti di un file e hanno diversi formati di firma. Alcuni dei formati di firma disponibili sono:
· Firme MD5
· Firme basate su sezioni MD5, PE
· Firme basate sul corpo del file
· Formato di firma esteso (offset, caratteri jolly, espressioni regolari)
· Firme logiche
· Firme delle icone
Il progetto ClamAV distribuisce una raccolta di firme sotto forma di file CVD (ClamAV Virus Database). Il formato di file CVD fornisce un contenitore con firma digitale che incapsula le firme e garantisce che non possano essere modificate da terze parti. Questo set di firme è gestito attivamente da Cisco Talos e può essere scaricato utilizzando l'applicazione freshclam fornita con ClamAV
Perché ClamAV
L'ACD viene utilizzato per individuare rilevamenti complessi/attributi di file che non possono essere rilevati utilizzando Hash SHA256 come quelli riportati negli esempi seguenti:
Formato contenuto firma basato sul corpo
ClamAV memorizza tutte le firme basate sul corpo (basate sul contenuto) in un formato esadecimale, ad eccezione del supporto delle regole di ClamAV YARA. Con firma esadecimale si intende un frammento del corpo del malware convertito in una stringa esadecimale che può essere ulteriormente estesa utilizzando vari caratteri jolly.
Le firme logiche consentono di combinare più firme in formato esteso utilizzando operatori logici. Possono fornire una corrispondenza dei pattern più dettagliata e flessibile.
Il formato di firma esteso è ClamAV il tipo di firma basata sul corpo più semplice dopo l'obsolescenza del formato di database .db originale.
Le firme estese consentono di specificare ulteriori informazioni oltre al contenuto esadecimale, ad esempio il "tipo di destinazione" di un file, l'offset dei virus o il livello di funzionalità del motore (FLEVEL), rendendo il rilevamento più affidabile
Firme di phishing
ClamAV è in grado di rilevare collegamenti HTML sospetti quando il testo visualizzato è un URL di dominio diverso rispetto all'URL reale. Sfortunatamente, è abbastanza comune per un'azienda di appaltare i servizi Web e di utilizzare il testo di visualizzazione del collegamento HTML per far sembrare che sia un collegamento al sito Web dell'azienda. Poiché questa pratica è comune, ClamAV esegue solo controlli di phishing per siti Web specifici che sono comunemente oggetto di campagne di phishing
Firme Bytecode
Le firme del bytecode sono il mezzo attraverso il quale è possibile eseguire una corrispondenza più complessa scrivendo codice C per analizzare il contenuto campione in varie fasi dell'estrazione del file.
Firme basate sui metadati del contenitore
ClamAV 0.96 consente la creazione di firme generiche corrispondenti ai file archiviati all'interno di diversi tipi di contenitore che soddisfano condizioni specifiche. Il formato della firma è:
VirusName:ContainerType:ContainerSize:FileNameREGEX:
FileSizeInContainer:FileSizeReal:IsEncrypted:FilePos:
Res1:Res2[:MinFL[:MaxFL]]
dove i campi corrispondenti sono:
VirusName: nome del virus da visualizzare quando la firma corrisponde.
ContainerType: il tipo di file contenente il file di destinazione. Ad esempio:
CL_TYPE_ZIP,
CL_TYPE_RAR
CL_TYPE_ARJ
CL_TYPE_MSCAB
CL_TYPE_7Z
CL_TYPE_MAIL
CL_TYPE_POSIX_TAR
CL_TYPE_OLD_TAR
CL_TYPE_CPIO_OLD
CL_TYPE_CPIO_ODC
CL_TYPE_CPIO_NEWC
CL_TYPE_CPIO_CRC
e così via.
Questo documento si concentra sulle firme hash.
Nota: il modo più semplice per creare firme per ClamAV è quello di utilizzare checksum filehash, tuttavia questo metodo può essere utilizzato solo contro malware statico.
Attenzione: le informazioni di questo documento sono soggette a modifiche con le nuove versioni di ClamAV. Correlazione e verifica sempre con la guida ufficiale di ClamAV.
Ulteriori informazioni sui formati delle firme sono disponibili sul sito Web ClamAV
Queste firme vengono compilate in un file scaricato nell'endpoint. Per creare rilevamenti personalizzati avanzati, selezionare Controllo epidemie > Avanzato. Fare clic su Crea set di firme per creare un nuovo set di rilevamento personalizzato avanzato, assegnargli un nome e fare clic su Crea.
Dopo aver creato il set di rilevamento personalizzato avanzato, fare clic su Modifica per visualizzare il collegamento Aggiungi firma. Immettere il nome della firma e fare clic su Crea.
Dopo aver elencato tutte le firme, selezionare Crea database da set di firme. Se si aggiunge accidentalmente una firma non desiderata, è possibile eliminarla facendo clic su Rimuovi.
Avviso: ogni volta che si aggiunge o si rimuove una firma, È NECESSARIO fare clic su Crea database da set di firme
Nota: quando si crea un rilevamento personalizzato avanzato per un file, questo viene memorizzato nella cache per un'ora. Se un file viene aggiunto a un set di rilevamento personalizzato avanzato, il tempo di memorizzazione nella cache deve scadere prima che il rilevamento abbia effetto. Ad esempio, se si aggiunge un rilevamento personalizzato avanzato per un file sconosciuto 5 minuti dopo che è stato memorizzato nella cache, il rilevamento non avrà effetto per altri 55 minuti.
Avviso: i rilevamenti personalizzati avanzati funzionano solo sui file di disposizione sconosciuta.
Come creare rilevamenti personalizzati - Avanzate con sigtool.exe
Fase 1: Per prima cosa dobbiamo ottenere il sigtool navigando al sito Web ClamAV download
Nel mio caso scarico il pacchetto ZIP clamav-1.1.0.win.x64.zip
Passaggio 2: Decomprimere il file nella posizione preferita. Nel mio caso ho usato C:/ClamAV
Prendere nota delle cartelle e dei file evidenziati.
clamscan.exe - è uno strumento da riga di comando utilizzato per eseguire la scansione di file e/o directory per rilevare eventuali virus. A differenza di clamdscan, clamscan non richiede un'istanza di clamd in esecuzione per funzionare. Al contrario, clamscan crea un nuovo motore e carica il database dei virus ogni volta che viene eseguito. Verrà eseguita la scansione dei file e/o delle directory specificati nella riga di comando, verrà creato un report di scansione e si uscirà.
sigtool.exe - Strumento che crea e formatta la firma e scrive nel file *.hdb. L'estensione hdb fa riferimento a firme basate su hash. sigtool esegue il pull in libclamav e fornisce collegamenti per l'esecuzione di attività in background da parte di clamscan. Queste funzionalità possono essere molto utili quando si scrive una firma o si cerca di ottenere informazioni su una firma che può causare FP o problemi di prestazioni.
VirusVault - Si tratta della cartella personale creata per eliminare i file per i quali si desidera creare una firma personalizzata.
VirusRV.hdb - Il file contiene firme formattate. Il nome del file VirusRV è stato assegnato, ma è possibile utilizzare qualsiasi nome significativo.
Passo 3a: Avviare la linea CMD e passare alla posizione in cui è stato precedentemente decompresso ClamAV.
Passaggio 3b Eseguire questa riga.
C:\ClamAV>sigtool —md5 posizione-del-file-personalizzato > nome-del-file-di-output.hdb
È possibile modificare il nome (per default sigtool utilizza il nome del file) e inserirlo in un file *.hdb. Un singolo file di database può includere un numero qualsiasi di firme. Per caricarli automaticamente ogni volta che si avvia clamscan/clamd, è sufficiente copiare i file del database nella directory locale del database dei virus (ad esempio /usr/local/share/clamav).
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRV.hdb
In questo caso, viene creata la firma per il file denominato TestVirusRV.exe, quindi la firma viene scritta nel file denominato VirusRV.hdb
Nota: se si desidera creare una firma basata sul valore SHA, il file corrispondente viene salvato come *.hsb
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\TestVirusRV.exe > VirusRVsha256.hsb
Attenzione: le firme basate su hash non devono essere utilizzate per file di testo, HTML e altri dati che vengono pre-elaborati internamente prima della corrispondenza dei pattern. Se si desidera utilizzare una firma hash in questo caso, eseguire clamscan con —debug e —leave-temps e creare una firma per un file pre-elaborato lasciato in /tmp. Tenere presente che una firma hash non corrisponderà più non appena un singolo byte viene modificato nel file di destinazione. Qui sono disponibili ulteriori informazioni
I seguenti contrassegni sigtool possono essere particolarmente utili per la scrittura di firme:
—md5 / —sha1 / —sha256: genera l'hash MD5/SHA1/SHA256 e calcola le dimensioni del file, generando entrambi come una firma .hdb/.hsb formattata correttamente
Nomi firme
Le firme ClamAV devono utilizzare solo caratteri alfanumerici, trattini (-), punti (.), caratteri di sottolineatura (_) per delimitare le parole. Non utilizzare mai spazi, apostrofi, due punti, punti e virgolette o virgolette.
I nomi delle firme ClamAV presenti nei database ufficiali di firme utilizzano in genere questo formato:
{platform}.{category}.{name}-{signature id}-{revision}
Le convenzioni di denominazione nei database di terze parti possono variare. Qui sono disponibili le linee guida di Cisco-Talos per l'assegnazione dei nomi alle firme per i database ufficiali.
Suggerimento: se si desidera creare più firme sui file che si trovano nella directory che è stata creata in precedenza in mio caso I ha chiamato il mio VirusVault è possibile eseguire il comando utilizzando i caratteri jolly. In questo caso ho gestito il mio come:
C:\ClamAV>sigtool —md5 C:\ClamAV\VirusVault\wildcard\ > VirusRV.hdb
C:\ClamAV>sigtool --md5 C:\ClamAV\VirusVault\*\ > VirusRV.hdb
Che ha creato una firma per ogni file presente nella directory VirusVault
Passaggio 4: Verificare la firma eseguendo questo comando.
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\TestVirusRV.exe
Per verificare tutte le firme, è possibile utilizzare nuovamente la maschera con caratteri jolly.
C:\ClamAV>clamscan -d VirusRV.hdb C:\ClamAV\VirusVault\*\
Passaggio 5: Aprire il file *.hdb appena creato e copiare la firma creata, quindi passare alla console dell'endpoint sicuro in Controllo epidemie > Avanzate fare clic su Modifica per visualizzare il collegamento Aggiungi firma.
Passaggio 6: assicurarsi di fare clic su Crea database da set di firme e quindi applicare i nuovi rilevamenti personalizzati al criterio.
Passaggio 7: sincronizzare i criteri sull'endpoint e verificare la nuova firma con l'analisi manuale. È possibile visualizzare risultati simili a quelli elencati di seguito.
Scansione manuale
Rilevamenti in Secure Endpoint Console
Evento espanso
Requisiti per il salvataggio della firma in Secure Endpoint Console
Se si dispone solo dell'hash MD5 e non si conoscono le dimensioni del file, è comunque possibile creare il set di firme, ma è necessario utilizzare le seguenti regole:
R: MD5 non può contenere solo lettere maiuscole
Hash MD5 corretto:
5b852928a129d63dc5c895bd62cf2ab7
Hash MD5 non corretto:
5B852928A129D63DC5C895BD62CF2AB7
Errore in Secure Endpoint Console con TUTTE le lettere maiuscole
B: Per la denominazione è necessario utilizzare lettere maiuscole, che possono corrispondere al proprio nome.
Nome corretto:
Dm-Launcher.msi
Nome non corretto:
dm-Launcher.msi
C: È possibile utilizzare caratteri jolly per le dimensioni, ma è necessario utilizzare :73 per FLEVEL minimo
Carattere jolly:
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi:73
Carattere jolly non corretto:
5b852928a129d63dc5c895bd62cf2ab7:*:dm-launcher.msi
Errore in Secure Endpoint Console per tutti i nomi in minuscolo e nessun FLEVEL specificato
Nota: firme hash con dimensioni sconosciute - ClamAV 0.98 ha aggiunto anche il supporto per le firme hash dove la dimensione non è nota ma l'hash è. L'utilizzo di firme di dimensioni specifiche consente di ottenere prestazioni molto più efficienti, pertanto è necessario prestare attenzione quando si utilizza questa funzionalità. In questi casi, è possibile utilizzare il carattere ’*’ nel campo delle dimensioni. Per garantire la compatibilità con le versioni precedenti di ClamAV, queste firme devono avere un livello funzionale minimo di 73 o superiore. Le firme che utilizzano le dimensioni con caratteri jolly senza questo livello impostato vengono rifiutate come non valide.