Digamos que hago una página web simple que dice "hola mundo" sin botones, sin formularios, nada más que texto sin formato. Ahora reenvío la dirección IP privada de esta computadora a mi enrutador y la envío a través del puerto 80 del servidor para que ahora un usuario pueda escribir mi dirección IP pública en cualquier parte del mundo y leer mi "hola mundo". ¿Cuáles son los riesgos de seguridad? Sé de los muchos riesgos de seguridad en la programación web, como los ataques de inclusión, los ataques de inyección SQL, los ataques de clic y los ataques target = "_ blank", pero este sitio de Hello World es solo texto sin formato. ¿Cuáles son entonces los riesgos?
-1
Respuestas:
Si escucha / enlaza en el puerto 80, entonces necesita la capacidad CAP_NET_BIND_SERVICE (para enlazar al puerto <1024). Tradicionalmente, esto solo se permite al usuario root / admin ( aquí hay un gran problema de seguridad ).
Sin embargo, en Linux moderno, puede ejecutarlo como un usuario sin privilegios y con un propósito especial y darle al servidor esta capacidad.
También puede configurar el firewall para restringir el número de conexiones / segundo. (para reducir DOS).
En Linux, podría colocarlo en un contenedor (por ejemplo, docker) para restringir los recursos del sistema que utiliza.
fuente
Al configurar ese reenvío, habilitó los hosts de Internet para conectarse directamente a su máquina.
Como tal, aumentó su superficie de ataque directo por lo que el servidor web tiene para ofrecer. Si hay un error que podría ser activado por una simple solicitud, ese error no está expuesto a ataques directos. Además, proporcionaría información adicional sobre su sistema a posibles atacantes dependiendo de la información que el servidor web envíe en otros encabezados.
Un ejemplo de dicha información podría ser el
Server
encabezado que incluiría información sobre el software del servidor utilizado o elX-Powered-By
encabezado que podría incluir información sobre la versión PHP utilizada y el posible sistema operativo.fuente