Raccomandazioni per la protezione avanzata delle risorse
Si applica a questa raccomandazione dell'elenco di controllo per la sicurezza di Azure Well-Architected Framework:
SE:08 | Rafforzare la protezione avanzata di tutti i componenti del carico di lavoro riducendo la superficie di attacco estranea e restringendo le configurazioni per aumentare i costi degli utenti malintenzionati. |
---|
Questa guida descrive le raccomandazioni per la protezione avanzata delle risorse sviluppando controlli localizzati all'interno di un carico di lavoro e mantenendoli per resistere a attacchi ripetuti.
La protezione avanzata della sicurezza è un esercizio intenzionale di auto-conservazione. L'obiettivo è ridurre una superficie di attacco e aumentare i costi degli utenti malintenzionati in altre aree, che limita le opportunità per gli attori malintenzionati di sfruttare le vulnerabilità. Per proteggere il carico di lavoro, implementare le procedure consigliate e le configurazioni per la sicurezza.
La protezione avanzata della sicurezza è un processo in corso che richiede il monitoraggio continuo e l'adattamento alle minacce e alle vulnerabilità in continua evoluzione.
Definizioni
Termine | Definizione |
---|---|
Protezione avanzata | La pratica di ridurre una superficie di attacco rimuovendo risorse estranee o modificando le configurazioni. |
Workstation con accesso con privilegi (PAW) | Un computer dedicato e sicuro usato per eseguire attività sensibili, riducendo così il rischio di compromissione. |
Workstation amministrativa sicura (SAW) | Workstation PAW specializzata usata dagli account di impatto critici. |
Superficie | Footprint logico di un carico di lavoro che contiene vulnerabilità. |
Strategie di progettazione chiave
La protezione avanzata della sicurezza è un esercizio altamente localizzato che rafforza i controlli a livello di componente, sia che si tratti di risorse o processi. Quando si restringe la sicurezza di ogni componente, migliora la garanzia di sicurezza aggregata del carico di lavoro.
La protezione avanzata della sicurezza non considera la funzionalità del carico di lavoro e non rileva le minacce o esegue l'analisi automatica. La protezione avanzata della sicurezza è incentrata sull'ottimizzazione della configurazione con una mentalità presupporre e difesa avanzata. L'obiettivo è rendere difficile per un utente malintenzionato ottenere il controllo di un sistema. La protezione avanzata non deve modificare l'utilità desiderata di un carico di lavoro o le relative operazioni.
Creare un inventario degli asset del carico di lavoro
Il primo passaggio del processo di protezione avanzata consiste nel raccogliere un inventario completo di tutti gli asset hardware, software e dati. Mantenere aggiornati i record di inventario aggiungendo nuovi asset e rimuovendo le risorse rimosse. Per tutti gli asset nell'inventario, prendere in considerazione le procedure consigliate seguenti:
Ridurre il footprint. Rimuovere l'area di superficie estranea o ridurre l'ambito. Eliminare obiettivi facili, o vettori di attacco economici e ben consolidati, ad esempio exploit software senza patch e attacchi di forza bruta. Prima della distribuzione di produzione, è necessario pulire le identità, compilare i componenti e altri asset non richiesti dall'albero di origine.
Ottimizzare le configurazioni. Valutare e restringere l'area di superficie rimanente. Quando le risorse vengono sottoposte a protezione avanzata, i metodi provati e testati usati dagli utenti malintenzionati non hanno più esito positivo. Impone agli utenti malintenzionati di acquisire e usare metodi di attacco avanzati o non verificati, aumentando i costi.
Mantenere le difese. Mantenere le misure protettive eseguendo il rilevamento continuo delle minacce per garantire che le attività di protezione avanzata siano affidabili nel tempo.
Considerare anche i fattori seguenti.
Origine attendibile. Parte dell'esercizio di protezione avanzata implica la catena di approvvigionamento software. Queste linee guida presuppongono che tutti i componenti vengano ottenuti da origini attendibili. L'organizzazione deve approvare il software acquistato da fornitori di terze parti. Questa approvazione si applica alle origini del sistema operativo, delle immagini e di altri strumenti di terze parti. Senza risorse attendibili, la protezione avanzata può essere uno svuotamento infinito di garanzie di sicurezza su origini non attendibili.
Per consigli sulla sicurezza per la supply chain, vedere Raccomandazioni per la protezione di un ciclo di vita di sviluppo.
Formazione. La protezione avanzata è una competenza specializzata. È metodico e richiede un elevato livello di competenza. È necessario comprendere la funzionalità di un componente e il modo in cui le modifiche influiscono sul componente. Un membro del team deve essere in grado di distinguere le linee guida dagli esperti del settore e dalla piattaforma per distinguerla dalle indicazioni provenienti da fonti incerte. Informare i membri del team nella creazione di una cultura basata sulla sicurezza. Assicurarsi che il team sia esperto nelle procedure consigliate per la sicurezza, abbia consapevolezza delle potenziali minacce e impari dalle analisi retrospettive post-evento imprevisto.
Documentazione. Documentare e pubblicare requisiti, decisioni e metodi definiti per la protezione avanzata. Per la trasparenza, documentare anche eccezioni o deviazioni da tali requisiti.
La protezione avanzata può essere complessa, ma è un esercizio fondamentale per la sicurezza che è necessario documentare. Rafforzare prima i componenti di base e quindi espandersi in altre aree, ad esempio processi automatizzati e processi umani, per ridurre i potenziali gap. Siate meticolosi sui cambiamenti. Ad esempio, un passaggio necessario consiste nel disabilitare le impostazioni predefinite perché le modifiche ai valori predefiniti possono influire sulla stabilità del sistema. Anche se la configurazione di sostituzione è uguale all'impostazione predefinita, deve essere definita. Le sezioni seguenti descrivono le destinazioni comuni per la protezione avanzata. Valutare le aree di progettazione chiave del carico di lavoro e seguire le strategie chiave per rafforzare la protezione avanzata a livello di componente.
Protezione avanzata dei componenti di rete
Dividere la rete in segmenti per isolare gli asset critici e i dati sensibili da asset meno sicuri, riducendo così gli spostamenti laterali da parte degli utenti malintenzionati. In questi segmenti applicare un approccio deny per impostazione predefinita . Aggiungere l'accesso all'elenco consenti solo se è giustificato.
Disabilitare porte e protocolli non usati attivamente. Ad esempio, nel servizio app Azure, se non è necessario eseguire la distribuzione tramite FTP, è possibile disabilitarla. In alternativa, se si eseguono operazioni di gestione tramite una rete interna, è possibile disabilitare l'accesso amministrativo da Internet.
Rimuovere o disabilitare i protocolli legacy. Gli utenti malintenzionati sfruttano sistemi che usano versioni precedenti. Usare un servizio di rilevamento di Azure per esaminare i log e determinare l'utilizzo del protocollo. Potrebbe essere difficile rimuovere i protocolli perché può interrompere la funzionalità del sistema. Testare tutte le modifiche prima dell'implementazione per ridurre il rischio di interruzione operativa.
Trattare gli indirizzi IP pubblici (PIP) come asset ad alto rischio perché sono facili da accedere e avere una vasta portata in tutto il mondo. Per ridurre l'esposizione, rimuovere l'accesso Internet non necessario al carico di lavoro. Usare indirizzi IP pubblici condivisi che servizi Microsoft, ad esempio Frontdoor di Azure, fornire. Questi servizi sono progettati per essere con connessione Internet e bloccano l'accesso ai protocolli non consentiti. Molti di questi servizi eseguono controlli iniziali sulle richieste in ingresso nella rete perimetrale. Con un PIP dedicato, si è responsabili della gestione dei relativi aspetti di sicurezza, della possibilità o del blocco delle porte e dell'analisi delle richieste in ingresso per garantire la validità.
Per le applicazioni con connessione Internet, limitare l'accesso aggiungendo un servizio di livello 7 che può filtrare il traffico non valido. Esplorare i servizi nativi che applicano la protezione DDoS (Distributed Denial of Service), disporre di web application firewall e fornire protezione ai dispositivi perimetrali prima che il traffico raggiunga il livello applicazione.
La protezione avanzata DNS (Domain Name System) è un'altra procedura di sicurezza di rete. Per assicurarsi che l'infrastruttura DNS sia sicura, è consigliabile usare resolver DNS attendibili. Per convalidare le informazioni dai resolver DNS e fornire un ulteriore livello di sicurezza, quando possibile, usare un protocollo di sicurezza DNS per le zone DNS altamente sensibili. Per evitare attacchi come l'avvelenamento da cache DNS, gli attacchi DDoS e gli attacchi di amplificazione, esplorare altri controlli di sicurezza correlati a DNS, ad esempio la limitazione della frequenza di query, la limitazione della frequenza di risposta e i cookie DNS.
Rafforzare i controlli di accesso alle identità
Rimuovere gli account non usati o predefiniti. Disabilitare i metodi di autenticazione e autorizzazione inutilizzati.
Disabilitare i metodi di autenticazione legacy perché sono spesso vettori di attacco. I protocolli precedenti spesso non dispongono di misure di contatore degli attacchi, ad esempio blocchi dell'account. Esternalizzare i requisiti di autenticazione al provider di identità (IdP), ad esempio Microsoft Entra ID.
Preferisce la federazione rispetto alla creazione di identità duplicate. Se un'identità viene compromessa, è più facile revocarne l'accesso quando viene gestita centralmente.
Comprendere le funzionalità della piattaforma per l'autenticazione avanzata e l'autorizzazione. Rafforzare i controlli di accesso sfruttando l'autenticazione a più fattori, l'autenticazione senza password, l'accesso condizionale e altre funzionalità offerte da Microsoft Entra ID per verificare l'identità. È possibile aggiungere una protezione aggiuntiva per gli eventi di accesso e ridurre l'ambito in cui un utente malintenzionato può effettuare una richiesta.
Usare identità gestite e identità del carico di lavoro senza credenziali laddove possibile. Le credenziali possono essere perse. Per altre informazioni, vedere Raccomandazioni per la protezione dei segreti dell'applicazione.
Usare l'approccio con privilegi minimi per i processi di gestione. Rimuovere le assegnazioni di ruolo non necessarie ed eseguire verifiche di accesso regolari di Microsoft Entra. Usare le descrizioni delle assegnazioni di ruolo per mantenere una traccia cartacea delle giustificazioni, che è fondamentale per i controlli.
Rafforzare le configurazioni delle risorse cloud
Le raccomandazioni di protezione avanzata precedenti per la rete e l'identità si applicano ai singoli servizi cloud. Per la rete, prestare particolare attenzione ai firewall a livello di servizio e valutare le regole in ingresso.
Individuare e disabilitare funzionalità o funzionalità inutilizzate , ad esempio l'accesso al piano dati inutilizzato e le funzionalità del prodotto, che altri componenti potrebbero coprire. Ad esempio, servizio app supporta Kudu, che fornisce distribuzioni FTP, debug remoto e altre funzionalità. Se queste funzionalità non sono necessarie, disattivarle.
Tenere sempre il passo con la roadmap di Azure e la roadmap del carico di lavoro. Applicare aggiornamenti di applicazione di patch e controllo delle versioni offerti dai servizi di Azure. Consentire gli aggiornamenti forniti dalla piattaforma e sottoscrivere i canali di aggiornamento automatizzati.
Rischio: le risorse cloud spesso hanno requisiti per le quote o devono essere eseguite in configurazioni documentate da considerare supportate. Alcune tecniche di protezione avanzata, ad esempio il blocco aggressivo del traffico in uscita, possono causare l'interruzione di un servizio all'esterno di una configurazione supportata, anche se il servizio funziona normalmente. Comprendere i requisiti di runtime di ogni risorsa cloud dalla piattaforma per assicurarsi di mantenere il supporto per tale risorsa.
Rafforzare gli asset di codice
Valutare le aree in cui l'applicazione potrebbe inavvertitamente perdere informazioni. Si supponga, ad esempio, di avere un'API che recupera le informazioni utente. Una richiesta potrebbe avere un ID utente valido e l'applicazione restituisce un errore 403. Ma con un ID cliente non valido, la richiesta restituisce un errore 404. Si stanno perdendo informazioni sugli ID utente in modo efficace.
Potrebbero esserci casi più sottili. Ad esempio, la latenza di risposta con un ID utente valido è superiore a un ID cliente non valido.
Valutare la possibilità di implementare la protezione avanzata delle applicazioni nelle aree seguenti:
Convalida e purificazione degli input: impedisce attacchi injection, ad esempio SQL injection e scripting intersito (XSS) convalidando e sanificando tutti gli input dell'utente. Automatizzare la purificazione dell'input usando librerie e framework di convalida di input.
Gestione delle sessioni: proteggere gli identificatori e i token di sessione da attacchi di furto o correzione di sessione usando tecniche di gestione delle sessioni sicure. Implementare i timeout della sessione e applicare la riautenticazione per le azioni sensibili.
Gestione degli errori: implementare la gestione degli errori personalizzata per ridurre al minimo l'esposizione di informazioni riservate agli utenti malintenzionati. Registrare in modo sicuro gli errori e monitorare questi log per individuare attività sospette.
Intestazioni di sicurezza HTTP: attenuare le vulnerabilità Web comuni usando le intestazioni di sicurezza nelle risposte HTTP, ad esempio i criteri di sicurezza del contenuto (CSP), X-Content-Type-Options e X-Frame-Options.
Sicurezza api: proteggere le API con meccanismi di autenticazione e autorizzazione appropriati. Per migliorare ulteriormente la sicurezza, implementare la limitazione della frequenza, la convalida delle richieste e i controlli di accesso per gli endpoint API.
Seguire le procedure di codifica sicure quando si sviluppano e si mantengono le applicazioni. Eseguire regolarmente revisioni del codice e analizzare le applicazioni per individuare le vulnerabilità. Per altre informazioni, vedere Raccomandazioni per la protezione di un ciclo di vita di sviluppo.
Protezione avanzata delle operazioni di gestione
Protezione avanzata anche di altre risorse non di runtime. Ad esempio, ridurre il footprint delle operazioni di compilazione prendendo un inventario di tutti gli asset e rimuovendo gli asset inutilizzati dalla pipeline. Quindi, eseguire il pull delle attività pubblicate da origini attendibili ed eseguire solo attività convalidate.
Determinare se sono necessari agenti di compilazione ospitati da Microsoft o self-hosted. Gli agenti di compilazione self-hosted richiedono una gestione aggiuntiva e devono essere rafforzati.
Dal punto di vista dell'osservabilità, implementare un processo per esaminare i log per potenziali violazioni. Esaminare e aggiornare regolarmente le regole di controllo di accesso in base ai log di accesso. Collaborare con i team centrali per analizzare i log di gestione degli eventi delle informazioni di sicurezza (SIEM) e soAR (Security Orchestration Automated Response) per rilevare le anomalie.
Prendere in considerazione la necessità di workstation PAW o WORKSTATION di sicurezza per le operazioni di gestione con privilegi. Le workstation PAW e le workstation PAW sono dispositivi fisici con protezione avanzata che offrono vantaggi significativi per la sicurezza, ma la loro implementazione richiede un'attenta pianificazione e gestione. Per altre informazioni, vedere Protezione dei dispositivi come parte della storia di accesso con privilegi.
Facilitazione di Azure
Microsoft Defender per il cloud offre diverse funzionalità di protezione avanzata:
- Protezione avanzata del server
- Protezione avanzata adattiva della rete
- Protezione avanzata dell'host Docker
Il Centro per la sicurezza Internet (CIS) offre immagini con protezione avanzata in Azure Marketplace.
È possibile usare Image Builder di macchine virtuali di Azure per creare un processo ripetibile per le immagini del sistema operativo con protezione avanzata. Common Base Linux-Mariner è una distribuzione Linux avanzata sviluppata da Microsoft che segue gli standard di sicurezza e le certificazioni del settore. È possibile usarlo con i prodotti dell'infrastruttura di Azure per creare implementazioni del carico di lavoro.
Esempio
La procedura seguente è un esempio di come rafforzare la protezione avanzata di un sistema operativo:
Ridurre il footprint. Rimuovere i componenti non necessari in un'immagine. Installare solo ciò di cui hai bisogno.
Ottimizzare le configurazioni. Disabilitare gli account inutilizzati. La configurazione predefinita dei sistemi operativi include account aggiuntivi collegati ai gruppi di sicurezza. Se non si usano questi account, disabilitarli o rimuoverli dal sistema. Le identità aggiuntive sono vettori di minaccia che possono essere usati per ottenere l'accesso al server.
Disabilitare l'accesso non necessario al file system. Crittografare il file system e ottimizzare i controlli di accesso per identità e rete.
Eseguire solo ciò che è necessario. Bloccare le applicazioni e i servizi eseguiti per impostazione predefinita. Approvare solo le applicazioni e i servizi necessari per la funzionalità del carico di lavoro.
Mantenere le difese. Aggiornare regolarmente i componenti del sistema operativo con gli aggiornamenti e le patch di sicurezza più recenti per attenuare le vulnerabilità note.
Collegamenti correlati
- Protezione avanzata adattiva della rete
- Raccomandazioni per la protezione dei segreti dell'applicazione
- Suggerimenti per la protezione di un ciclo di vita di sviluppo
- Protezione dei dispositivi come parte della storia di accesso con privilegi
- Protezione avanzata del server
Collegamenti della community
Elenco di controllo relativo alla sicurezza
Fare riferimento al set completo di raccomandazioni.