Allí probablemente no es un ataque MITM viable aquí. Suponiendo que Ubuntu y Django, hay dos grandes factores que conspiran contra un atacante:
-
Los hosts predeterminados de Ubuntu y la configuración de dns resolverán localhost
usando una configuración codificada. Ni siquiera realizará una consulta de DNS. Puedes cambiar esto ... Pero no lo hagas :)
-
Django se enlaza a 127.0.0.1:8000
de forma predeterminada. Para completar el MitM, el atacante tendría que interceptar el tráfico que atiende Django pero no tiene acceso.
Dicho esto, la seguridad web es complicada. Puede haber cosas que estés haciendo que un atacante pueda explotar para tener algún tipo de efecto en ti.
Los recursos externos deben estar seguros
Muchos de nosotros incorporamos archivos de terceros alojados en CDN. Jquery, Bootstrap, etc. Si estos son http://
o //
(recuerde que el servidor dev no usa TLS), eso podría darle a un atacante la oportunidad de MITM esos archivos e inyectar secuencias de comandos en vivo en sus páginas.
Por el bien del desarrollo local alejado de una conexión a Internet, puede ser mejor en todos los aspectos simplemente alojar todas las cosas por ti mismo.
Técnicas de extracción de clic e iframe
El hecho de que no puedan acceder a su servidor de ejecución local, no significa que no puedan decirle a su navegador que acceda a él. La seguridad de origen cruzado (probablemente) les impedirá hacer cosas con ella directamente, pero podrían pegarla en un iframe. Esto es una especie de clickjack inverso.
Para el usuario, esto se vería como su sitio web. Incluso podrían capturar todas las URL al final y enviarlas al marco. Si se tratara de un sitio web público, también podrían resolver en qué estaba haciendo clic.
Pero, por supuesto, ya estás usando django-secure
¿no es así? Yo lo recomendaria Una configuración y comenzarás a enviar X-Frame-Options: DENY
headers con cada solicitud de Django. Alternativamente, hay una una opción Django-builtin que hace lo mismo. Recomiendo django-secure
porque hace mucho más.
Su seguridad en una red hostil es más que un servidor web
Probablemente tienes otros demonios en ejecución, además de cosas como PostgreSQL que estás usando para el desarrollo. Es posible que esté ejecutando servidores SSH, servidores de intercambio de archivos, etc. y si está acostumbrado a un entorno doméstico, es posible que se haya saltado el día de las piernas con una seguridad más débil para su comodidad.
Lo más fácil de hacer es bloquear todo el tráfico entrante. Suponiendo que no tiene una configuración UFW existente, es tan simple como:
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
Eso persistirá reinicios. Si llega a casa y desea acceder a algo, puede desactivarlo con sudo ufw disable
o cambiar el valor predeterminado y abrir ciertos puertos explícitamente.
Si va a dejar un puerto SSH expuesto, he escrito un artículo sobre endurecimiento de las configuraciones de SSH . A menos que esté en la cantina de la NSA, eso debería mantener a la mayoría de las personas fuera de su sistema.