La sicurezza è sempre un equilibrio tra facilità d'uso e protezione. Il sistema più sicuro che io possa immaginare è un computer spento che giace in una cassastrong della banca. Sfortunatamente è anche difficile da usare ... Rimuovere i compilatori o peggio restringendoli a root su un sistema di test o di sviluppo sarebbe assurdo: o non si può più usarlo, o si accederà sempre come root. Le cose vanno diversamente su un server di sola produzione in cui possono essere normalmente rimosse.
Ma non riesco a immaginare come rimuovere un compilatore possa proteggere un server Ubuntu. Come per tutti i sistemi di tipo Debian, i pacchetti sono generalmente installati in formato binario, il che significa che se un utente malintenzionato ha accesso in scrittura a una cartella, può depositare un programma creato sulla propria macchina e usarlo lì. E se non ha accesso in scrittura, non sarà neanche in grado di creare un file eseguibile.
Questo consiglio, come molti altri sulla sicurezza di offuscamento , assomiglia a olio di serpente . Ciò non dovrebbe causare molti danni, ma non sarà davvero sicuro di nulla ... Ma è qualcosa che è facile da implementare in strumenti di controllo automatico e può essere venduto
Se vuoi davvero proteggere un server di produzione, non concentrarti sui compilatori, ma rimuovi con cura tutti gli strumenti di rete (e generici) che non vengono utilizzati lì e configura i firewall per bloccare il numero di in entrata e in uscita connessioni possibili: se un server è stato compromesso, sarà davvero più difficile per l'attaccante rimbalzare su un altro. Ma questo non può essere fatto da uno strumento automatico perché deve essere adattato all'ambiente reale e al caso d'uso preciso del server. Una volta fatto, è possibile che i compilatori siano già andati via, ma sinceramente non mi interessa. Se vuoi fare un ulteriore passo avanti, crea anche un kernel personalizzato contenente solo i driver usati nel tuo ambiente - ok, non puoi costruire un kernel se hai rimosso i compilatori, ma dovrebbe essere costruito e testato su il sistema dev o pre-prod. In questo modo gli script kiddies che tentano di utilizzare gli soliti indirizzi del kernel non saranno in grado di trovarli.
TL / DR: il mio consiglio è che non si sa quale compilatore può essere rimosso in modo sicuro o come si potrebbe limitare a root, non provare nemmeno a farlo . Segui semplicemente le best practice comuni:
- non utilizzare mai l'account di root per tutto ciò che non lo richiede
- solo sudo singoli comandi o per un breve periodo
- non lasciare mai un server in esecuzione come root (eccetto il tempo di inizializzazione ...) e assicurarsi che lasci tutti i privilegi non necessari prima di accettare le richieste
- proteggi il tuo firewall il meglio che puoi e proibisci tutti gli accessi non necessari
- non installare software non necessario o non controllato
E non fidarti degli strumenti di controllo automatico per più di quello che possono fare. Un serio controllo di sicurezza costa davvero tempo e denaro ...