Prefazione
Con il recente aggiornamento dell’home page di lobsec.com, ho introdotto un nuovo servizio pensato per aiutare chiunque voglia migliorare le proprie regole di detection. L’idea alla base è quella di creare oggetti a partire da feed pubblici che metto a disposizione, per poi utilizzarli in regole specifiche con l’obiettivo di intercettare il traffico in ingresso. In questo modo, è possibile registrare l’attività e identificare il dispositivo che ha generato quel traffico, facilitando così eventuali indagini successive.
Configurazione
La prima cosa da fare è creare un connettore esterno che raccolga le informazioni necessarie ad alimentare il feed degli hash. Per poterlo fare fare click su “External Connectors” > “Create New”
Spostarsi in fondo alla pagina e cliccare su “Malware Hash”
Compilare i campi necessari come mostrato
NOTA: nel caso di fortigate il limite massimo delle entry per ogni file è limitato a 10MB o 131072 linee per file.
Tip #1 – Certificate validation
Per migliorare la sicurezza delle connessioni è consigliato abilitare la server certificate validation (server-identity-check) in quanto di default non è impostata. Per farlo da CLI
config system external-resource
edit "MALWARE_HASH_COLLECTION_0"
set type malware
set resource "https://security.lobsec.com/fgt_000.txt"
set server-identity-check {none | basic | full}
next
end
Al termine di questa fase bisogna andare ad editare o a creare nei Security Profiles un profilo antivirus ed abilitarne la lettura dei feed impostati. Per fare questo si va su Security Profiles > AntiVirus, si edita / crea un nuovo oggetto dove, in fondo, è necessario spuntare la voce “Use External Malware Block List” come mostrato
Tip #2 – La deep packet inspection
In questo genere di regole, per lo scopo che stiamo cercando di seguire, abilitare la DPI aumenta enormemente le possibilità di rilevamento.
Test
Come già scritto in passato, tutti i firewall da me gestiti inoltrano i log ad uno stack ELK per la gestione e la ricerca dei file di log.
In questo caso vado a filtrare su ELK la direttiva fortinet.firewall.subtype contenente la stringa “virus” e mostro in tabella i dati quali:
- observer.name: per mostrare su quale firewall l’evento s’è presentato
- source.ip: l’ip sorgente
- source.user.name: il nome utente legato a quella sessione
- destination.ip: l’ip di destinazione dove il virus è stato scaricato
- destination.port: la porta TCP sul server di destinazione
- fortinet.firewall.action: l’azione che ha intrapreso il firewall (blocked)
- message: il tipo di messaggio che il firewall ha processato riguardo la segnalazione
- file.name: il nome del file
- url.domain: se presente il dominio relativo all’ip di destinazione
- fortinet.firewall.virus: la tipologia di virus riscontrata dal firewall
Ovviamente i campi da mostrare sono a vostra discrezione, un esempio di log raw potrebbe essere questo.
date=2024-10-11 time=10:06:46 eventtime=1616195207055607417 tz="-0700" logid="0208008217" type="utm" subtype="virus" eventtype="MALWARE_HASH_COLLECIOTN_0" level="notice" vd="vd1" policyid=1 msg="Detected by EMS threat feed." action="monitored" service="HTTPS" sessionid=1005 srcip=10.1.100.24 dstip=172.16.200.214 srcport=54674 dstport=443 srcintf="port2" srcintfrole="undefined" dstintf="port1" dstintfrole="undefined" proto=6 direction="incoming" filename="creditcardSSN.pdf" quarskip="Quarantine-disabled" virus="Email scan" dtype="File Hash" filehash="22466078c2d52dfd5ebbbd6c4207ddec6ac61aa82f960dc54cfbc83b8eb42ed1" filehashsrc="test" url="https://172.16.200.214/hash/creditcardSSN.pdf" profile="av" agent="curl/7.68.0" analyticssubmit="false" crscore=10 craction=2 crlevel="medium"
EOF