La seguridad siempre es un equilibrio entre la facilidad de uso y la protección. El sistema más seguro que puedo imaginar es una computadora apagada que se encuentra en una caja fuerte del banco. Desafortunadamente, también es difícil de usar ... Eliminar los compiladores o, peor aún, restringirlos a la raíz en una prueba o en un sistema dev sería una tontería: o ya no puede usarlo o siempre iniciará sesión como root. Las cosas son diferentes en un servidor de producción único donde normalmente se pueden eliminar.
Pero casi no puedo imaginar cómo eliminar un compilador podría asegurar un servidor Ubuntu. En cuanto a cualquier sistema similar a Debian, los paquetes generalmente se instalan en forma binaria, lo que significa que si un atacante tiene acceso de escritura a una carpeta, puede depositar un programa construido en su propia máquina y usarlo allí. Y si no tiene acceso de escritura, tampoco podrá crear un archivo ejecutable.
Este consejo, como muchos otros sobre seguridad por ofuscación , se parece a aceite de serpiente . Eso no debería causar muchos daños, pero tampoco protegerá realmente nada ... Pero es algo que es fácil de implementar en una herramienta de auditoría automática y se puede vender
Si realmente desea asegurar un servidor de producción, no se centre en los compiladores, sino que elimine con cuidado todas las herramientas de red (y genéricas) que no se usan allí, y configure los cortafuegos para bloquear la cantidad de y salientes entrantes conexiones posibles: si un servidor se vio comprometido, será realmente más difícil para el atacante rebotar en otro. Pero esto no puede hacerse con una herramienta automática, ya que debe adaptarse al entorno real y al caso de uso preciso del servidor. Una vez hecho esto, es posible que los compiladores ya se hayan ido pero honestamente no me importaría. Si desea ir un paso más allá, también compile un kernel personalizado que contenga solo los controladores utilizados en su entorno. De acuerdo, no puede compilar un kernel si ha eliminado compiladores, pero debería estar construido y probado en El sistema de desarrollo o pre-prod. De esa forma, los chavales que intentan utilizar las direcciones del kernel habituales no podrán encontrarlas.
TL / DR: mi consejo es que no sabes qué compilador se puede eliminar de forma segura o cómo puedes restringirlo a la raíz, ni siquiera intentes hacerlo . Simplemente siga las mejores prácticas comunes:
- nunca use la cuenta de root para nada que no lo requiera
- solo sudo comandos individuales o por un corto tiempo
- nunca permita que un servidor se ejecute como root (a excepción de su tiempo de inicialización ...) y asegúrese de que deja todos los privilegios innecesarios antes de aceptar solicitudes
- asegure su firewall lo mejor que pueda y prohíba todos los accesos innecesarios
- no instale software innecesario o no controlado
Y no confíe en las herramientas de auditoría automática para más de lo que pueden hacer. Una auditoría de seguridad seria realmente cuesta tiempo y dinero ...