Il n'y a probablement pas d'attaque MITM viable ici. En supposant Ubuntu et Django, il y a deux grands facteurs qui conspirent contre un attaquant:
-
Les hôtes par défaut d'Ubuntu et la configuration DNS résoudront localhost
en utilisant un paramètre codé en dur. Il n'effectuera même pas de requête DNS. Vous pouvez changer cela ... Mais ne le faites pas à la place :)
-
Django se lie à 127.0.0.1:8000
par défaut. Pour vous MitM pleinement, l'attaquant aurait besoin d'intercepter le trafic servi par Django mais il n'y a pas accès.
Cela dit, la sécurité Web est compliquée. Il se peut qu'un attaquant puisse exploiter certaines choses que vous faites pour avoir un effet sur vous.
Les ressources externes doivent être sécurisées
Nous sommes nombreux à intégrer des tiers , Fichiers hébergés sur CDN. Jquery, Bootstrap, etc. S'il s'agit de http: //
ou //
(rappelez-vous que le serveur de développement n'utilise pas TLS), cela pourrait donner à un attaquant l'occasion de MITM ces fichiers et injecter un script en direct dans vos pages.
Pour le développement local loin d'une connexion Internet, il peut être préférable à tout point de vue d'héberger tout le contenu vous-même.
Techniques de prise de clic et iframe
Ce n'est pas parce qu'ils ne peuvent pas accéder à votre serveur local, qu'ils n'ont pas pu dire à votre navigateur d'y accéder. La sécurité d'origine croisée les empêchera (probablement) de faire des choses directement avec elle, mais ils pourraient la coller dans une iframe. C'est une sorte de détournement de clic.
Pour l'utilisateur, cela ressemblerait à votre site Web. Ils pourraient même capturer toutes les URL à leur extrémité et les transmettre au cadre. S'il s'agissait d'un site Web public, ils pourraient également déterminer sur quoi vous avez cliqué.
Mais bien sûr, vous utilisez déjà django-secure
, n'est-ce pas? Je le recommande. Un paramètre et vous commencerez à envoyer des en-têtes X-Frame-Options: DENY
avec chaque requête Django. Il existe également une option intégrée à Django qui fait la même chose. Je recommande django-secure
car il fait beaucoup plus.
Votre sécurité sur un réseau hostile est plus qu'un serveur Web
Vous avez probablement d'autres démons en cours d'exécution, en plus de choses comme PostgreSQL que vous utilisez pour le développement. Vous utilisez peut-être des serveurs SSH, des serveurs de partage de fichiers, etc., et si vous êtes habitué à un environnement domestique, vous avez peut-être passé la journée avec une sécurité plus faible pour plus de commodité.
Le La chose la plus simple à faire est de bloquer tout le trafic entrant. En supposant que vous n'ayez aucune configuration UFW existante, c'est aussi simple que:
sudo ufw enabledudo ufw default deny incomingsudo ufw default allow outgoing
Cela persistera les redémarrages. Si vous rentrez chez vous et que vous voulez accéder à quelque chose, vous pouvez soit le désactiver avec sudo ufw disable
soit changer la valeur par défaut et ouvrir certains ports explicitement.
Si vous allez quitter un port SSH exposé, j'ai écrit un article sur le durcissement des configurations SSH. Sauf si vous êtes dans la cantine NSA, cela devrait empêcher la plupart des gens d'entrer dans votre système.