Alcune persone sostengono che la presenza di strumenti di sviluppo su una macchina di produzione renderà la vita più facile per un aggressore. Questo tuttavia è un ostacolo così piccolo per un aggressore, che qualsiasi altro argomento che puoi trovare a favore o contro l'installazione degli strumenti di sviluppo avrà un peso maggiore.
Se un utente malintenzionato è riuscito a penetrare nel sistema finora, da poter invocare qualsiasi strumento presente sul server, allora hai già una grave violazione della sicurezza. Senza strumenti di sviluppo ci sono molti altri modi per scrivere dati binari in un file e quindi eseguire un chmod su quel file. Un utente malintenzionato che desidera utilizzare un eseguibile di build personalizzato sul sistema a questo punto potrebbe anche crearlo sul proprio computer e trasferirlo sul server.
Ci sono altre cose molto più rilevanti da cercare. Se un software installato contiene un bug di sicurezza, ci sono alcuni modi in cui potrebbe essere esposto a un utente malintenzionato:
- Il pacchetto potrebbe contenere un eseguibile suid o sgid.
- Il pacchetto potrebbe essere l'avvio di servizi sul sistema.
- Il pacchetto potrebbe installare script che vengono richiamati automaticamente in determinate circostanze (questo include processi cron, ma gli script potrebbero essere richiamati da altri eventi, ad esempio quando cambia lo stato di un'interfaccia di rete o quando un utente accede).
- Il pacchetto potrebbe installare inode dispositivo.
Non mi aspetto che gli strumenti di sviluppo corrispondano a uno dei precedenti, e come tali non è un pacchetto ad alto rischio.
Se disponi di flussi di lavoro in cui faresti uso degli strumenti di sviluppo, devi prima decidere se si tratta di flussi di lavoro ragionevoli e, se lo sono, devi installare gli strumenti di sviluppo.
Se scopri che non hai davvero bisogno di quegli strumenti sul server, dovresti evitare di installarli per diversi motivi:
- Risparmia spazio su disco, sia sul server che sui backup.
- Un software meno installato semplifica il monitoraggio delle dipendenze.
- Se non è necessario il pacchetto, non ha senso assumersi il rischio per la sicurezza aggiuntivo di averlo installato, anche se tale rischio per la sicurezza è minimo.
Se lo decidi per motivi di sicurezza, non consentirai agli utenti privi di privilegi di inserire i propri eseguibili sul server, quindi ciò che dovresti evitare non sono gli strumenti di sviluppo ma piuttosto le directory scrivibili a quegli utenti su file system montati con autorizzazioni di esecuzione. Potrebbero essere ancora utili gli strumenti di sviluppo anche in tali circostanze, ma non è molto probabile.