SSH e forza bruta
Come InfraFence rileva gli attacchi brute force SSH con 15 pattern nei log, banna gli attaccanti con durate crescenti e protegge i login di posta, database e FTP.
Ultimo aggiornamento:
Cosa legge
Sui server con systemd l'agente legge i messaggi di autenticazione SSH dal journal (le facility auth e authpriv), quindi sono coperte anche le distribuzioni senza rsyslog. Negli altri casi, o in un container, legge /var/log/auth.log o /var/log/secure. AUTH_LOG_PATH lo indirizza a un file non standard. Il log dell'agente indica la fonte: reading authentication messages from ….
I 15 pattern
Nove pattern intercettano le autenticazioni fallite: password e chiavi errate, utenti non validi o non ammessi, errori di autenticazione PAM, maximum authentication attempts exceeded, disconnessioni per autenticazione fallita, utenti non autorizzati, login di root rifiutati, rifiuti dei TCP wrappers e disconnessioni di utenti non validi prima dell'autenticazione.
Altri sei intercettano le scansioni prima dell'autenticazione: nessuna stringa di identificazione, versione del protocollo errata, negoziazione dello scambio di chiavi fallita, errori nello scambio del banner, connessioni chiuse o resettate prima dell'autenticazione e timeout prima dell'autenticazione.
Quando un indirizzo viene bannato
Un indirizzo viene bannato quando i suoi tentativi falliti raggiungono la soglia entro la finestra: per impostazione predefinita 5 tentativi in 60 secondi, configurabili in Impostazioni › Agente (Soglia brute force, Finestra brute force). Ogni ban viene segnalato alla dashboard come evento critico brute_force.
Un indirizzo di un paese che blocchi viene bannato al primo tentativo. Un indirizzo in whitelist non viene mai bannato.
Quanto dura un ban
Impostazioni › Agente › Durata dei ban:
- Progressiva: 24 ore, 7 giorni, 30 giorni, poi permanente (l'impostazione predefinita): ogni nuovo ban dello stesso indirizzo dura di più;
- oppure sempre 1 ora, 24 ore, 7 giorni, 30 giorni o permanente.
Un ban parte subito sul server e dura 24 ore finché la dashboard non ne fissa la scadenza definitiva. I ban scadono puntuali sul server anche quando la dashboard non è raggiungibile, e sopravvivono ai riavvii.
Dalla scheda Rete del server puoi usare Cambia durata, Sblocca ora o Aggiungi alla whitelist per qualsiasi ban attivo. Con Ban su tutti i server attivo, un indirizzo bannato su un server viene bannato su tutti i server dell'organizzazione.
Come viene applicato il ban
I ban finiscono nell'ipset infrafence-bans, scartato dalla catena propria dell'agente INFRAFENCE, verso cui salta INPUT (e DOCKER-USER, per le porte dei container). Con ipset l'agente gestisce fino a 65.000 ban; senza, una regola del firewall per indirizzo, fino a 500. Al limite di capacità i ban più vecchi lasciano spazio, con un avviso.
L'agente non banna mai indirizzi di loopback, link-local e privati, gli indirizzi del server stesso, l'indirizzo della dashboard o gli indirizzi in whitelist, nemmeno se gli viene chiesto.
Posta, database e FTP
Lo stesso rilevamento copre gli altri servizi che accettano login, con una soglia fissa di 5 tentativi falliti in 5 minuti:
| Servizio | Log letti |
|---|---|
| Postfix, Dovecot, Roundcube | /var/log/mail.log, /var/log/maillog, /var/log/dovecot.log |
| MySQL, MariaDB | /var/log/mysql/error.log, /var/log/mysqld.log, /var/log/mariadb/mariadb.log |
| PostgreSQL | /var/log/postgresql/ e le directory pg_log |
| MongoDB | /var/log/mongodb/mongod.log, /var/log/mongod.log |
| vsftpd, ProFTPD, Pure-FTPd | /var/log/vsftpd.log, /var/log/proftpd/proftpd.log, il log di autenticazione di sistema per Pure-FTPd |
MAIL_LOG_PATH, DB_LOG_PATH e FTP_LOG_PATH sostituiscono i file rilevati. Un watcher che non ha nulla da leggere lo dice nel log, per esempio [mailwatcher] no mail service found — mail attack detection disabled.
Modalità monitor
Con Modalità monitor attiva, ogni tentativo viene comunque rilevato e segnalato, e nulla viene bannato.
