Client VPN: livello di sicurezza aggiuntivo o funzione inutile

1

Possiedo un portale Web aziendale che viene utilizzato per la collaborazione dello staff, tra cui un'interfaccia di posta basata sul Web, collegata al database MySQL, al calendario aziendale, all'archiviazione di file, ai dati dei contatti dei clienti con numeri di telefono ed e-mail e a tutti i tipi di altri dati. Ovviamente alcuni di questi dati sono sensibili in quanto riguardano questioni aziendali interne e privacy dei clienti.

L'intero sito è scritto su PHP + JavaScript con database MySQL su Ubuntu (Apache). Ho inseguito tutto il codice e sostituire tutte le istruzioni SQL su istruzioni preparate per evitare le iniezioni SQL. Nessuno dei moduli Web ha consentito agli utenti di inviare dati HTML, solo il testo del dolore, inoltre non memorizzo l'HTML nelle tabelle MySQL per impedire la creazione di cross-site scripting. Metto una difesa a forza bruta ritardando il prossimo tentativo per un utente dopo aver digitato una password errata. L'autorizzazione viene eseguita in due passaggi con l'utente che digita prima il suo nome e la sua password e quindi il sistema invia SMS a quell'utente con un codice di autorizzazione. L'intero sito funziona solo su HTTPS e connesso a Internet tramite un firewall che consente solo 443 porte per le connessioni in ingresso, vale a dire nessun FTP, samba, nessuna connessione MySQL esterna o altri servizi disponibili. La pagina principale del sito è vuota e i motori di ricerca non riescono nemmeno a trovare una pagina di accesso da indicizzare, quindi se uno non conosce l'indirizzo esatto non potrebbe nemmeno avviare un processo di autorizzazione. Non conosco altri modi per modificarlo.

Tuttavia, stavo cercando di ottenere una consulenza da uno specialista della sicurezza e nonostante tutte le misure adottate egli insiste a collegare qualsiasi client esterno su client VPN (L2TP IPSec) che è integrato in qualsiasi moderno sistema operativo Windows o Linux. Poiché non si tratta di un sito pubblico, potrei farlo, ma ciò richiederà un ulteriore lavoro con i clienti per spiegare ciascuno su come connettersi e dare loro un'altra coppia di login-password. Mi è stato anche detto che il PHP originariamente era un linguaggio di Home Page personale senza alcuna attenzione alla sicurezza, ma potrebbe avere vulnerabilità e violazioni della sicurezza. Non poteva dare alcun esempio. Mi chiedo se quelli siano davvero esistiti e cosa sono? Potrei davvero aumentare la sicurezza passando i client all'accesso VPN invece che al HTTPS diretto altrimenti li infastidirebbe inutilmente?

UPDATE (un mese più tardi)

Dopo aver giocato con i client VPN tunnel e VPN non penso che sia una buona idea creare un tunnel VPN su HTTPS perché quello che ho appena è un server WEB con HTTPS dietro NAT Ho tutte le porte bloccate tranne 443 quindi il solo pensare che un utente possa fare è accedervi.

Se creo un canale VPN, permetto agli utenti di accedere alla mia rete locale in modo che abbiano accesso al router NAT dall'interno (dalle porte LAN) e abbiano accesso all'intero server che svolge il ruolo del server WEB. Quindi un utente malintenzionato che ha hackerato login / password VPN e ottenuto all'interno della LAN, ha ottenuto il NAT e ora può iniziare a hackerare non solo il server su tutte le porte ma anche il router. Per evitare che abbia bisogno di un altro firewall e probabilmente di un altro dispositivo per creare LAN virutali.

Ne vale davvero la pena?

Altro sul diagramma di rete

Per quanto riguarda il diagramma della rete, il server locale ha due interfacce di rete: una per la rete interna e un'altra per la connessione Internet.

Internet che entra in quel server locale attraverso due punti NAT:

1) La connessione Internet passa dall'IP esterno a Windows Server 2008. Quel server Windows condivide la connessione Internet con le persone in ufficio e ha anche RRAS impostato per inoltrare la porta 443 a uno degli indirizzi locali (diciamo che va a 192.168.0.100). C'è anche un firewall di terze parti che consente le connessioni in entrata solo sulla porta 443.

2) Poi ho un router su quell'indirizzo locale (192.168.0.100) che può gestire i tunnel VPN di solo port forward futher. Per ora, inoltra solo la porta 443 alla sua LAN a cui è connesso il server locale. Ciò rende il server locale separato da tutti gli altri computer che ottengono internet da Win Server 2008.

Separatamente da ciò c'è un'intera rete indipendente senza connessione internet. Il server locale è parte di esso che utilizza la seconda interfaccia di rete. Non ci sono router lì, solo un interruttore.

    
posta user164863 18.02.2014 - 11:51
fonte

2 risposte

1

Mi scuso in anticipo, il layout descritto è un po 'difficile da seguire senza un diagramma di rete.

Riesco a capire le preoccupazioni del personale della sicurezza con questo sito esposto a Internet.

Anche se sembra che tu abbia fatto di tutto per assicurarti che il tuo codice sia sicuro, il server web e il sistema operativo stesso sono ancora a rischio di essere sfruttati in caso di scoperta di una vulnerabilità.

Sembra anche che questo sito abbia accesso ad alcune parti chiave di dati e infrastrutture.

Ho difficoltà a discernere se uno di questi server si trova in una DMZ o se i server risiedono tutti nella rete interna?

Se i componenti risiedono sulla rete interna, non è possibile esporre questo sito a Internet.

Suggerirei una soluzione VPN che utilizza l'autenticazione a due fattori per gli accessi alla VPN. (preferibilmente un token duro)

Inoltre, il fatto che il tuo sito web non contenga una pagina predefinita non dovrebbe essere considerato una funzione di sicurezza. Saresti sorpreso di ciò che un web crawler può trovare. :)

Ad esempio, il prossimo sito che qualsiasi utente accede direttamente dopo aver visitato il tuo sito ne sarà a conoscenza tramite l'intestazione del referrer.

    
risposta data 18.02.2014 - 17:07
fonte
1

Nel tuo caso, consiglierei un server VPN. Questo sembra essere un sito molto sicuro, e hai rafforzato molto bene il lato server. L'utilizzo di un'infrastruttura VPN metterà un'altra barriera tra il server e gli attacchi.

Se hai già gli utenti che ricevono e inseriscono il codice di autorizzazione, saranno in grado di connettersi a una VPN senza troppi problemi. Nel mio negozio abbiamo FortiGate VPN, e c'è anche un client basato su browser. Se implementi qualcosa del genere, i tuoi clienti avranno solo bisogno di accedere a un sito Web prima di connettersi al server sicuro.

Come nota esplicativa, PHP è un acronimo ricorsivo e significa Preprocessore PHP HTML, non Personal Home Page. Prendono sul serio la sicurezza, ma ogni software ha i suoi bug.

    
risposta data 17.10.2014 - 14:57
fonte

Leggi altre domande sui tag