Comunicazione stenopeica con rete air gap

0

Molto tempo fa ho lavorato per una piccola banca. Abbiamo utilizzato una rete fisicamente separata per ospitare i nostri server interni che gestivano tutte le transazioni, nonché le workstation che accedevano al sistema.

Un giorno arrivò qualcuno che voleva creare un'interfaccia web basata su perl, e praticamente provò a mettere un server connesso a internet nella nostra area server sicura e collegarlo direttamente al server di banca con cat5. Questo, naturalmente, è stato prontamente negato.

Ma questo mi ha fatto pensare; e ora, molti anni dopo, ci sto ancora pensando. Come puoi "intercettare" in modo efficiente una rete e fornire servizi a un mondo esterno?

La mia idea era la seguente.

  • Configura una rete fisicamente separata con un server che ospita dati critici ( conti bancari, transazioni, servizi di rete elettrica, record di voto, ecc. ). Garantire tutte le normali procedure di sicurezza per reti air gap, ecc. Ecc.
  • Configura una rete connessa ad internet un po 'meno sensibile (ma comunque molto sicura) per ospitare server di applicazioni e oltre, da qualche parte verso il perimetro, i veri server web, load balancer, firewall e così via.
  • Esegui un cavo seriale tra due host sulle due reti.
  • Qualsiasi comunicazione tra le reti, ad esempio per chiedere informazioni su un saldo, pubblicare una transazione e così via, deve avvenire tramite il cavo seriale. Ogni richiesta dovrebbe anche essere firmata in modo crittografico, quindi l'autorizzazione definitiva spetta ai server sicuri della rete air gap: non si fida di nulla che arrivi sul cavo seriale a meno che non sia crittografato e autorizzato.

Il mio ragionamento qui è che una volta collegato un cavo cat5 a un server, ci sono così tanti diversi tipi di traffico che si possono verificare su quel cavo (anche con i firewall appropriati). Puoi fare in modo che gli intrusi si muovano lateralmente attraverso la rete, firewall configurati in modo errato, ci sono 65000 porte possibili e ne stai utilizzando 1 - utilizzando un cavo seriale stai riducendo drasticamente i vettori di attacco. Ovviamente è ancora necessario proteggere lo stack del software dietro il cavo seriale, e qui ci sono molti altri attacchi possibili, ma mi limito a limitarmi a limitare il traffico a un protocollo personalizzato tramite un cavo seriale stupido - un po 'come il ponte su Khazad-dûm, se lo sai.

Lo svantaggio è che un cavo seriale non è particolarmente efficace . A 115 kbit / s, sarà difficile rispetto a un normale collegamento da 1 Gbit / s. Suppongo che potresti usare più cavi seriali ...

...

  1. È una buona idea?
  2. Ci sono idee migliori?
  3. Esiste un'alternativa pratica a un cavo seriale che ancora non porta con sé un intero stack di rete?
posta mgefvert 15.08.2018 - 15:14
fonte

1 risposta

1

Un air-gap viene utilizzato come separazione completa tra reti con requisiti di sicurezza diversi. Non vuoi questo tipo di separazione completa dal momento che rende impossibile lo scambio di dati. Invece vuoi avere la separazione più possibile. Soprattutto vuoi assicurarti che nessun dato proveniente dalla rete di sicurezza inferiore, forse già compromessa, possa danneggiare la rete di sicurezza più elevata.

Nel caso più semplice, i dati non dovrebbero mai passare dalla rete a bassa sicurezza alla rete di sicurezza superiore, ma solo nella direzione opposta. Un caso d'uso per questo è ad esempio il trasferimento dei dati di registro e di stato da una rete industriale alla rete di monitoraggio per l'aggregazione, la visualizzazione e l'analisi dei registri. Le tecnologie in questo settore sono diodi di dati che garantiscono che i dati possano fluire solo in una direzione, a volte garantita dall'hardware e, a volte, da stack software minimi e facili da controllare come i microkernel.

Il caso più complesso è una comunicazione bidirezionale limitata. In questo caso, gli attacchi provenienti dalla rete di sicurezza inferiore potrebbero verificarsi a vari livelli: dal livello di rete fino al livello dell'applicazione. L'idea di utilizzare una linea seriale tenta di ridurre gli attacchi a livello di rete sostituendo la grande superficie di attacco di uno stack di rete completo e complesso con la superficie di attacco sperabilmente più piccola di un'interfaccia di linea seriale più semplice.

Prova anche ad affrontare gli attacchi ai livelli superiori accettando solo pacchetti firmati dalla rete di sicurezza inferiore. Ma dal momento che la rete di sicurezza inferiore potrebbe essere stata compromessa, l'hacker potrebbe anche avere accesso ai segreti necessari per la firma ed è quindi in grado di firmare qualsiasi tipo di payload che desidera. Questo significa che non devi fidarti di nulla proveniente dalla rete a bassa sicurezza, anche se è stato firmato.

Invece è necessario assicurarsi che solo i payload vengano inviati dalla rete di sicurezza bassa a quella alta, che sono pienamente previsti nella rete di sicurezza elevata e quindi non causeranno danni. Nella forma più semplice questa potrebbe essere una serie fissa di messaggi consentiti. Più complessi sono un insieme fisso di messaggi che può essere leggermente parametrizzato, nel qual caso è necessario verificare che i parametri corrispondano alle aspettative. A seconda dei requisiti effettivi relativi al trasferimento dei dati e dei costi di fallimento, tale convalida e forse sanificazione o trasformazione del carico utile possono essere davvero complessi. E, naturalmente, potrebbe contenere anche bug sfruttabili, quindi è anche necessario proteggere la convalida stessa. In ambienti di sicurezza più elevati (come il governo, le banche o il settore energetico) si potrebbe optare per dispositivi gateway dedicati con un sistema operativo rigido e minimale che ha solo questo compito di convalidare, disinfettare e trasferire i carichi utili in protocolli specifici e che possono essere controllati più facilmente perché della minore complessità.

    
risposta data 15.08.2018 - 21:18
fonte

Leggi altre domande sui tag