È un buon metodo di rilevamento, da ripetere:
- Controllo della memoria per i processi nascosti
- Controllo del traffico di rete
- Controllo del filesystem
La soluzione di cui sopra è flessibile, scalabile e sicura, tuttavia non è lo script medio se è coinvolta su larga scala, per cui questa è la soluzione migliore. Ma questo non significa che non funzionerebbe su scale più piccole, tuttavia lo sforzo potrebbe essere troppo alto. La possibile implementazione potrebbe essere eseguita nel modo seguente:
- La memoria controlla l'host di virtualizzazione integrato
- Monitoraggio del traffico di rete sul livello di rete (ad esempio netflow)
- Il filesystem verifica il livello di archiviazione di rete
Ora il problema è che, dato che è un lavoro abbastanza personalizzato, non sarà possibile fare affidamento sui risultati prima che si spenda tempo e denaro sufficienti per lo sviluppo di tale soluzione, quindi funziona, ma su larga scala, ad es. un sacco di server, diciamo, 10.000 di loro o più, avrebbe senso. Anche se questi server eseguono varie cose e non sono lo stesso tipo di server. Tuttavia, ci possono essere dei compromessi, potresti voler valutare alcuni software per farne alcuni, e quindi potrebbe essere più facile da fare, vedi sotto.
Se vuoi provare da solo, prova a configurare il monitoraggio Netflow (sflow) e con questo, puoi rilevare correttamente il traffico dannoso quando succede. L'utilizzo di software già pronti sarebbe più efficiente. Ad esempio, puoi selezionare i caratteri per i pacchetti per aumentare l'allarme. Un sacco di traffico insolito può essere rilevato con successo non solo in relazione all'hacking e questo aiuta molto. È economico, facile, multiuso ed efficace. L'unica cosa è che devi inventare i modelli appropriati (ad esempio quali pacchetti vuoi catturare), questi potrebbero essere fondamentalmente qualcosa di insolito ma permesso, ad es. connessioni TCP in uscita, che al rilevamento iniziale possono essere autorizzate se non dannose.
Un altro modo semplice sarebbe eseguire tcpdump
, poi netstat
ed eseguire il confronto. Ma questo è meno utile, rileva solo connessioni di rete nascoste, e se cerchi internet, potresti già trovare alcuni script utili.
Per quanto riguarda i filesystem, puoi anche usare lo script normale per verificare la consistenza dei binari (ad esempio, usando i comandi standard rpm
o dpkg
), e anche controllare la consistenza dei file di configurazione. Tale script può essere eseguito da un host esterno che si collega su ssh
, carica lo script generato (ad esempio con gli ultimi checksum calcolati da git
repo erano configs), esegue il controllo e restituisce il risultato. Rundeck può essere un software per aiutarti con questo. Il comando di esecuzione da un host esterno ti assicura che verrà eseguito al primo posto e alla fine è un metodo semplice ed efficace.
Riguardo la RAM, questa è la parte più difficile, e puoi saltare questa parte per il momento perché è più avanzata. Scaricare e analizzare la RAM è tutt'altro che facile.
Cerca anche chkrootkit
e rkhunter
script e simili. C'è antivirus gratuito Clamav
e soluzioni a pagamento come Kaspersky
. Questi controllano le backdoor conosciute, tuttavia, in un ambiente aziendale / di hosting medio esiste un 50/50 di probabilità se è personalizzato con patch sshd
con chiave segreta o una backdoor nota.
E non dimenticare di assicurarti che il kernel non è stato riparato o che non ci sono moduli maligni, ma è un argomento diverso. Vorrei provare a ricercarlo e ad usare lo stesso script per controllare sia il kernel che i processi nascosti. Potrebbero esserci già alcuni script su Internet.
In sintesi, Netflow (o Sflow, è la stessa cosa) ti aiuterà molto non solo con la sicurezza ma anche con la rete. Non ha nulla a che fare con i server, funziona in questo modo, quell'interruttore invia ogni n-esimo pacchetto al ricevitore netflow che viene controllato rispetto a schemi predefiniti e con le relative statistiche. Dovrebbe fornire anche rapporti. I controlli del filesystem sono facili da fare con rpm
e dpkg
, e il resto può essere controllato da git
o con build server. Si noti che i gestori di pacchetti utilizzano firme cristallografiche per cui non è necessario utilizzare LiveCD. Infine, controlla il kernel e i processi nascosti e sei ordinato. E prima di distribuire il software, digitalizzalo con "Kaspersky".
Prendi tempo, sviluppa un piano e pian piano a poco non è difficile fare tutto.