Lì probabilmente non è un attacco MITM praticabile qui. Supponendo Ubuntu e Django, ci sono due grandi fattori che cospirano contro un aggressore:
-
La configurazione predefinita di host e dns di Ubuntu risolverà localhost
usando un'impostazione hardcoded. Non eseguirà nemmeno una query DNS. Puoi cambiare questo ... Ma non invece:)
-
Django si collega a 127.0.0.1:8000
per impostazione predefinita. Per coinvolgerti completamente, l'utente malintenzionato dovrebbe intercettare il traffico servito da Django ma non ha accesso.
Detto questo, la sicurezza Web è complicata. Potrebbero esserci cose che stai facendo che un utente malintenzionato potrebbe sfruttare per avere un qualche tipo di effetto su di te.
Le risorse esterne devono essere sicure
Molti di noi incorporano file ospitati da CDN di terze parti. Jquery, Bootstrap, ecc. Se questi sono http://
o //
(ricorda che il server di sviluppo non utilizza TLS), ciò potrebbe dare a un utente malintenzionato l'opportunità di MITM quei file e di inserire script live nelle tue pagine.
Per motivi di sviluppo locale, lontano da una connessione Internet, potrebbe essere meglio per tutti, solo per ospitare tu stesso tutte le cose.
Tecniche di click-jacking e iframe
Solo perché non possono accedere al server in esecuzione locale, non significa che non potrebbero dire al tuo browser di accedervi. La sicurezza delle origini incrociate (probabilmente) impedirà loro di fare le cose direttamente, ma potrebbero inserirle in un iframe. Questa è una specie di reverse-clickjack.
Per l'utente questo sembrerebbe solo il tuo sito web. Potrebbero anche catturare tutti gli URL alla loro estremità e inviarli al frame. Se si trattasse di un sito Web pubblico, potrebbero anche capire cosa stavi facendo clic.
Ma ovviamente stai già utilizzando django-secure
, non è vero? Lo raccomanderei. Un'impostazione e inizierai a inviare X-Frame-Options: DENY
di intestazioni con ogni richiesta Django. In alternativa c'è un'opzione incorporata su Django che fa lo stesso. Raccomando django-secure
perché fa molto di più.
La tua sicurezza su una rete nemica è più di un server web
Probabilmente hai altri demoni in esecuzione, oltre a cose come PostgreSQL che stai usando per lo sviluppo. È possibile che tu stia eseguendo server SSH, server di condivisione file, ecc. E se sei abituato a un ambiente domestico, potresti avere saltato il giorno della gamba andato con sicurezza più debole per comodità.
La cosa più semplice da fare è bloccare tutto il traffico in entrata. Supponendo che tu non abbia una configurazione UFW esistente, è semplice come:
sudo ufw enable
sudo ufw default deny incoming
sudo ufw default allow outgoing
Questo continuerà a riavviarsi. Se torni a casa e desideri accedere a qualcosa, puoi disattivarlo con sudo ufw disable
o modificare l'impostazione predefinita e aprire determinate porte in modo esplicito.
Se hai intenzione di lasciare una porta SSH esposta, ho scritto un articolo su rafforzando le configurazioni SSH . A meno che tu non sia nella mensa della NSA, questo dovrebbe tenere la maggior parte delle persone fuori dal tuo sistema.