Closed vittodevit closed 3 years ago
Gli utenti devono essere istruiti per non collegarsi mai a domini non autorizzati e questo vale da LAMPSchool al sito della propria banca. C'è ampio margine di miglioramento in LAMPSchool per stringere gli Header di sicurezza ma anche impostando tutte le direttive del mondo conosciute non è possibile evitare la creazione di proxy. La premessa è questa.
Ciao Vittorio, scusa se chiuderei questa segnalazione così ricca ma purtroppo in un modo o nell'altro chiunque riuscirà a realizzare un simile proof of concept per qualsiasi altro sito web come Google.com o Facebook.com, proprio perché il protocollo HTTPS è stato pensato per essere sicuro solo e soltanto se l'utente non è vittima di social engineering e se non fa cose assolutamente sbagliate come autenticarsi in una pagina di login da un dominio non gestito dai fornitori del servizio di origine. Qualsiasi dominio terzo può sempre essere in grado di fornire un nuovo certificato SSL perfettamente valido per le proprie connessioni in ingresso, prendere il traffico in chiaro e rigirare questo traffico al vecchio server col suo vecchio certificato SSL, di fatto operando come man in the middle in maniera trasparente per l'utente (sempre se si tralascia il fatto che l'utente doveva accorgersi che il dominio non era quello ufficiale).
Invito a studiare la documentazione dei principali web server per scoprire quanto sia facile farlo con HTTPS:
L'apertura di un dominio non autorizzato è un problema di social engineering e purtroppo è irrisolvibile con del codice sorgente o con pratiche HTTP ma è mitigabile con corsi di sicurezza informatica nelle scuole, corsi che vengono spesso tenuti dalla polizia postale locale e su cui invito ad informarsi per pianificare attività nel proprio istituto. Attività che ormai sono sempre più cruciali, dato che non tutti purtroppo sanno comprendere come analizzare un URL per capire se è legittimo o meno.
Grazie Vittorio per lo sforzo di sensibilizzare ulteriormente sulla complessità della IT security della propria installazione.
In conclusione chiuderei con questa checklist per il proprio registro:
HTTP Strict Transport Security
)Uno spunto per verificare di aver messo correttamente in sicurezza il proprio server web del registro:
Concordo, al momento suggerisco di invitare tutti gli insegnati ad accedere solo dal pulsante apposito sul sito, vedo oggi di parlarne con il responsabile per creare una comunicazione quando il nuovo sito sarà terminato!
Al momento è prematuro (andrebbe riorganizzato il codice), ma si potrebbero prendere in considerazione le PSR (PSR-7 o PSR-15) per gestire il ciclo request/response http, una volta implementate ci sono svariate librerie (di framework o indipendenti) che possono gestire questo aspetto e altri relativi alla sicurezza.
Andrebbe valutato, in un secondo momento, cosa ci conviene 'delegare', senza non dover per forza usare un framework.
Già, premettendo che CORS risolve molti problemi di sicurezza ma non permette di evitare la creazione di HTTP proxy trasparenti su altri domimini (edited: cosa che non può fare nessuno purtroppo). Sottolineo ancora (che ci sta sempre bene :D) l'importanza della formazione agli utenti finali sulla sicurezza generale nel web e i rischi del social engineering.
In riferimento all'issue #4, riapro. Il bypass, dopo varie prove, risulta funzionante. LampSchool è proxato da un'origine non autorizzata (il mio dominio), così facendo, è possibile intercettare tutto il traffico se la vittima finisce sul dominio fittizio, anche se connesso in SSL.
La configurazione nginx usata sul mio server in questo esatto momento è:
Provare per credere: server originale, server a cui la vittima andrebbe a connettersi
Per informazioni sul funzionamento vedi sempre #4