He estado escribiendo un honeypot de alta interacción que ha requerido algunas decisiones de diseño interesantes, por ejemplo, quiero que el honeypot sea atacado, no la infraestructura / software subyacente. Cosas divertidas.
Sin embargo, tengo un problema y buscaba consejos sobre mejores prácticas.
Básicamente, el honeypot es una aplicación web insegura que tiene la capacidad de cambiar la contraseña.
Ahora suponga que el atacante A cambia la contraseña que podría esperar que vuelva como atacante A y use la contraseña que acaba de establecer. Sin embargo, si el atacante A borra su navegador (yo había estado rastreando a través de una cookie de sesión) se convertirá en el atacante B, pero todavía esperaría ingresar la contraseña del atacante A. Al mismo tiempo, el atacante C podría intentar acceder, pero la contraseña establecida por el atacante A puede ser realmente difícil / no predeterminada y me gustaría perder la oportunidad de obtener el atacante C.
Puedo conservar todas las contraseñas y dejar que las anulen por medio de cualquiera de estas opciones, más los valores predeterminados, pero existe el riesgo de que el atacante A haya establecido una nueva contraseña escribiendo de forma predeterminada y siga funcionando. ¿Riesgo aceptable?
o acepto que es poco probable que haya dos personas al mismo tiempo y que se reinicie todo todo el tiempo, pero aceptar que el atacante A pueda volver y preguntarse por la contraseña que ya no funciona, pero los valores predeterminados sí lo hacen.
Básicamente, he escrito un código detrás del sitio web de alguien, así que realmente no quiero modificar ninguno de los JavaScript ni nada, ya que esto podría hacer que se vea diferente al real.