La regla general para los sistemas es: si no la necesita, no la instale. Tal vez deberíamos modificarlo para: si ya no lo necesita, desinstálelo.
¿Por qué? Para reducir la "superficie de ataque" disponible en el sistema, es decir, programas y utilidades que se pueden comprometer o usar como parte de un compromiso. Esa es la justificación general.
El riesgo específico para las herramientas de desarrollo es que si un atacante obtiene acceso a un usuario sin privilegios, es posible que pueda usar, por ejemplo, gcc
para compilar código arbitrario en su casilla. Dicho esto, es probable que también esté ejecutando un intérprete como python, o tenga javac
para aplicaciones web o similares, por lo que el impacto real del material podría no ser muy diferente.
Personalmente no veo nada de malo en instalar las herramientas de desarrollo (las jalaría manualmente con yum install <tool>
para que luego puedan ser yum remove
'd) y luego eliminarlas una vez que se cumpla su propósito. Después de todo, toda esta charla de compilación de código abitrario en usuarios no privilegiados en realidad pierde el sentido: en esa etapa, alguien ya se ha posicionado en su sistema y eso es lo que quiere evitar.
En lo que respecta a las políticas, el hecho de no tener herramientas de desarrollo en un servidor web es una buena idea, ya que desalienta a los desarrolladores a "hacerlo en vivo". No es que lo haríamos, pero bueno ... probablemente lo haríamos :)