Progettare l’architettura per proteggere la disponibilità

Completato
Impedire o ridurre al minimo i tempi di inattività e la riduzione delle prestazioni del sistema e dei carichi di lavoro in caso di incidente di sicurezza usando controlli di sicurezza avanzati. È necessario mantenere l'integrità dei dati durante l'incidente e dopo il ripristino del sistema.

È necessario bilanciare le scelte relative all'architettura della disponibilità con quelle relative all'architettura della sicurezza. Il sistema deve avere garanzie di disponibilità per assicurare che gli utenti abbiano accesso ai dati e che i dati siano raggiungibili. Dal punto di vista della sicurezza, gli utenti devono operare nell'ambito dell’accesso consentito e i dati devono essere attendibili. I controlli di sicurezza devono bloccare gli utenti malintenzionati, ma non devono impedire agli utenti legittimi di accedere al sistema e ai dati.

Scenario di esempio

Contoso Concierge gestisce un sistema software di gestione degli hotel usato in oltre 50 brand di hotel negli Stati Uniti. Il sistema è responsabile delle prenotazioni, del check-in degli ospiti, del monitoraggio dei servizi agli ospiti e del personale di pulizia. È un sistema basato su cloud che funziona in due aree degli Stati Uniti. È ospitato principalmente in set di scalabilità di macchine virtuali. I client degli hotel sono basati su browser.

Migliorare l'affidabilità con solide misure di sicurezza

Usare controlli di sicurezza e criteri di progettazione per impedire ad attacchi e difetti del codice di causare l'esaurimento delle risorse e bloccare l'accesso.

L'adozione di questo approccio consente di garantire che il sistema non subisca tempi di inattività causati da azioni dannose, come gli attacchi DDoS (Distributed Denial of Service).

Sfida di Contoso

  • Il team responsabile del carico di lavoro e i relativi stakeholder considerano l'affidabilità di questo sistema della massima importanza, dal momento che molti ospiti dell'hotel dipendono da questo sistema per i viaggi di lavoro e di piacere. Deve funzionare al meglio affinché gli hotel possano gestire la loro attività.
  • Il team ha investito notevoli risorse nel test dei requisiti funzionali e non funzionali per garantire che l'affidabilità rimanga elevata, prevedendo anche l'uso di procedure di distribuzione sicure per rilasciare in modo affidabile gli aggiornamenti delle applicazioni.
  • Essendosi concentrato principalmente sull'affidabilità, il team è stato meno attento alla sicurezza. Recentemente è stato rilasciato un aggiornamento che conteneva una falla nel codice che è stata sfruttata da un utente malintenzionato per mandare in tilt l'intero sistema per molti hotel. L'attacco ha sovraccaricato i server applicazioni in un'area per oltre quattro ore nell’arco di una sera, causando problemi per i clienti e gli ospiti degli hotel.
  • L'utente malintenzionato ha usato i server applicazioni Contoso per inviare richieste tramite proxy a un account di archiviazione locale per ricevere informazioni pregenerate sui folio. È stato generato un folio dannoso di dimensioni spropositate che ha causato l'esaurimento delle risorse del server applicazioni mentre veniva caricato in memoria, mentre i tentativi dei clienti hanno diffuso il problema su tutti i server applicazioni.

Applicazione dell'approccio e risultati

  • Il team ha studiato uno schema progettuale per rimuovere i server applicazioni dal flusso di richieste del folio, optando invece per un approccio basato su passepartout. Questo approccio non avrebbe impedito il problema, ma ne avrebbe isolato l'impatto.
  • Il team ha anche incrementato la convalida dell'input nel sistema per bonificare l'input, misura che contribuirà a evitare tentativi dannosi come questo in futuro.
  • Ora con la bonifica dell'input e una progettazione rafforzata, un tipo di rischio è stato mitigato.

Limitare in modo proattivo i vettori di attacco

Implementare misure preventive per i vettori di attacco che sfruttano le vulnerabilità di codice applicazione, protocolli di rete, sistemi di gestione delle identità, protezione da malware e altre aree.

Implementare scanner di codice, applicare le patch di sicurezza più recenti, aggiornare il software e proteggere regolarmente il sistema con programmi antimalware efficaci. In questo modo è possibile ridurre la superficie di attacco per garantire la continuità delle attività aziendali.

Sfida di Contoso

  • Le VM usate per ospitare il sistema sono immagini di Azure Marketplace con il sistema operativo Ubuntu più recente. I processi di bootstrap per una VM configurano alcuni certificati, modificano alcune configurazioni SSH e installano il codice dell'applicazione, ma non viene usato alcuno strumento antimalware.
  • Sebbene il gateway applicazione di Azure sia davanti alla soluzione, viene usato solo come gateway Internet. La funzione web application firewall (WAF) non è attualmente abilitata.
  • Entrambe queste opzioni di configurazione lasciano l'ambiente di calcolo non protetto dalle vulnerabilità insite nel codice o causate dall'installazione accidentale di malware.

Applicazione dell'approccio e risultati

  • Dopo una consultazione con il team di sicurezza in Contoso, le macchine virtuali vengono ora registrate in una soluzione antivirus gestita dall'organizzazione.
  • Il team decide anche di abilitare e ottimizzare la funzione WAF per proteggere il codice dell'applicazione eliminando le richieste rischiose note, come gli attacchi SQL injection, a livello di gateway.
  • L'applicazione e la piattaforma applicativa dispongono ora di una difesa avanzata aggiuntiva, per proteggersi da exploit che potrebbero influire negativamente sulla disponibilità del sistema.

Proteggere la strategia di ripristino

Applicare alle risorse e ai processi di ripristino un livello di sicurezza almeno pari a quello dell'ambiente principale, compresi i controlli di sicurezza e la frequenza dei backup.

È necessario disporre di uno stato di sistema sicuro conservato durante il ripristino di emergenza. Questo permette di eseguire il failover in un sistema o in una posizione secondaria sicura e di ripristinare i backup che non introducono minacce.

Un processo ben progettato può impedire a un incidente di sicurezza di ostacolare il processo di ripristino. I dati di backup danneggiati o i dati crittografati che non possono essere decifrati possono rallentare il processo di ripristino.

Sfida di Contoso

  • Sebbene il sistema funzioni come attivo-attivo in tutte le aree, il team ha predisposto un piano di ripristino di emergenza per ripristinare la continuità di business negli scenari peggiori.
  • Parte di questo piano include l’invio dei backup in una terza area negli Stati Uniti.
  • Sfortunatamente, i backup venivano archiviati in un sistema non monitorato di frequente e con controlli di sicurezza relativamente poco rigorosi. Durante un'esercitazione, il team si è accorto che tutti i backup erano stati infettati da malware. Se in quel momento si fosse verificata una situazione di emergenza reale, non sarebbe stato in grado di eseguire correttamente il ripristino.

Applicazione dell'approccio e risultati

  • Il team ha investito tempo e impegno per proteggere il percorso di backup, aggiungendo ulteriori controlli di rete e delle identità per proteggere i dati. I backup vengono ora archiviati anche nello spazio di archiviazione non modificabile per evitare manomissioni.
  • Dopo aver esaminato i controlli di sicurezza, il team rileva che durante il processo di ripristino l'applicazione viene eseguita senza un web application firewall per un certo periodo di tempo. Modifica quindi l'ordine delle operazioni per colmare questa lacuna.
  • Ora il team è sicuro che i backup e il processo di ripristino del sistema non sono più un vettore di attacco facile da sfruttare.

Verificare le conoscenze

1.

In che modo Contoso ha usato i controlli di sicurezza per rispondere a un attacco che ha sovraccaricato il sistema?

2.

Qual è un esempio di misura preventiva che può essere adottata per limitare i vettori di attacco?

3.

Vero o falso: in un ambiente di ripristino, è accettabile avere una postura di sicurezza meno rigida rispetto all'ambiente di produzione.