TL & DR
¿Cómo se quejan esos usuarios de los archivos confusos en este sitio de SE sobre sus sistemas? ¿Y después de eso, aún más interesante cómo se ejecutan? ¿Esto es causado por la forma en que funciona php? ¿O es un problema de configuraciones preinstaladas que se deben cambiar para asegurar un sistema 1 ?
He leído muchas veces aquí sobre personas que se quejan de algunos archivos en su sistema que no saben qué hacen, de dónde vienen ni cómo llegaron allí.
En realidad, tampoco lo entiendo, ¿cómo puede ser esto? ¿Está esto constituido por la mecánica de PHP 2 ?
Por ejemplo, configuré mi servidor web como fcgi-app, escrito en C simple que se está comunicando a través de CGI con nginx.
El demonio FCGI (bajo el cual se invoca el host web) está en un grupo de usuarios que tiene permisos especiales para leer / escribir en las rutas donde se almacenan los archivos. Entonces, en primer lugar, cuando un usuario está cargando algo, mi aplicación está analizando exactamente todo el paquete HTTP. Así que realmente no puedo ver cómo se puede almacenar algo que no quiero que se guarde allí. Pero está bien, es probable que no lo sepa todo (por supuesto que no), así que supongamos que alguien hizo un paquete HTTP con contenido de cuerpo malicioso a través del nginx, por lo que es la entrada de mi aplicación. Esta aplicación ahora no se da cuenta de que no es un $WhatEverUsersAreSupposedToUpLoad$
e incluso coloca este archivo malicioso ahora en el lugar donde se encuentran todos los demás archivos. Con el mismo acceso restringido, todos los demás archivos tienen (solo este grupo de demonios puede leer / escribir el archivo).
Entonces, todo lo que puedo imaginar cómo se puede usar un archivo de este tipo ahora para explotar mi sistema requiere un error importante en mi aplicación FCGI que da como resultado
- 1: De alguna manera, un usuario web puede cambiar los derechos de acceso de la aplicación a los archivos ejecutables Y de alguna manera lo ejecuta.
- 2: permite que mi aplicación web simplemente acceda al archivo como se supone y luego de alguna manera utiliza el contenido para explotar la aplicación en sí misma
O
- 3: de alguna manera hace que mi aplicación, que analiza sus datos de entrada, haga que se ejecute el archivo analizado en la propia aplicación. (Dado que el código ejecutable de C tiene que compilarse, no puedo imaginar ningún escenario en el que esto pueda suceder siempre y cuando me asegure de que no haya búferes)
como ya escribí los 3 puntos, ahora tengo que admitir que suenan sin sentido ... ¿Pero qué más?
¿Esas preocupaciones no tienen que ver con sus aplicaciones en sí, sino con las configuraciones de un sistema operativo sin protección y las aplicaciones que instalaron? esas configuraciones ?!
Si es así, ¿también debería preocuparme?
Todo lo que he configurado es deshabilitar el inicio de sesión remoto y el acceso restringido de SSH solo a la autenticación de clave.
instalado:
- postgresql (restringido al acceso local solo por el grupo de usuarios web-daemons)
- nginx (lo configuró para permitir fcgi con mi aplicación como ruta de ejecución)
- instaló el último fcgi para freeBSD compatible con nginx.
En realidad no tengo php en mi sistema.
Pero como no soy una persona de seguridad (de lo contrario, probablemente no pregunte esto),
No sé si esa es la fuente, y es lo último que me queda de imaginar que esté causando esta amenaza. ¿Hay otros archivos preconfigurados en una instalación simple que están causando este tipo de amenazas de seguridad por sí mismas?
1 Esto me permitiría suponer que una última instalación desnuda del sistema operativo se considerará explotable ?!
2 Mi suposición proviene del hecho de que esta queja cada vez está relacionada con php