Estoy trabajando en un sandbox de PHP para un Honeypot de aplicación web. El sandbox de PHP analizará un archivo PHP que puede haber sido inyectado como parte de un ataque RFI. Debe ejecutar el archivo en un entorno seguro y devolver el resultado, incrustando la salida del script PHP. Esperamos engañar al atacante para que crea que esta es una respuesta genuina y así continuar con el siguiente paso de su ataque.
Para construir el sandbox, usamos el Depurador de PHP Avanzado (ADP). Usando rename_function
y override_function
, las funciones de PHP vulnerables se han reescrito. Algunas funciones como exec
, disk_free_space
se han reescrito para enviar respuestas falsas. Todas las demás funciones simplemente devuelven nada. Aquí hay una lista completa de las funciones que se han considerado.
Además, la secuencia de comandos de entrada se ejecuta solo durante un máximo de 10 segundos en la zona de pruebas. Después de eso, todo el proceso de la caja de arena es asesinado.
-
¿Es esta lista lo suficientemente buena? ¿Esto hace que la caja de arena sea lo suficientemente segura como para ser parte del honeypot de la aplicación web?
-
Además de bloquear llamadas a funciones como esta, ¿hay más medidas de seguridad que deberían tomarse?
-
Al final, este es un honeypot. Por lo tanto, nos gustaría que nuestra respuesta sea lo más cercana posible a una respuesta real. Por lo tanto, al bloquear las llamadas a la función DNS como
dns_check_record
ygethostbyname
estamos restringiendo el alcance de la ejecución de la secuencia de comandos innecesariamente. (No estoy seguro de por qué están presentes en primer lugar)En resumen, me gustaría saber qué elementos debo agregar / eliminar de la lista.
-
Cualquier otra sugerencia / consejo sobre cómo hacerlo será altamente apreciado.