Infrastruttura di sicurezza: controllo e registrazione | Soluzioni di riduzione
Prodotto o servizio | Articolo |
---|---|
Dynamics CRM | |
Applicazione Web |
|
Database | |
Archiviazione di Azure | |
WCF | |
API Web | |
Gateway IoT sul campo | |
Gateway IoT cloud |
Identificare le entità sensibili nella soluzione e implementare il controllo delle modifiche
Titolo | Dettagli |
---|---|
Componente | Dynamics CRM |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | N/D |
Passaggi | Identificare le entità nella soluzione che contengono dati sensibili e implementare il controllo delle modifiche in tali entità e campi |
Assicurarsi che vengano eseguiti il controllo e la registrazione sull'applicazione
Titolo | Dettagli |
---|---|
Componente | Applicazione Web |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | N/D |
Passaggi | Abilitare il controllo e la registrazione su tutti i componenti. I log di controllo devono acquisire il contesto utente. Identificare tutti gli eventi importanti e registrarli nel log. Implementare la registrazione centralizzata |
Assicurarsi che vengano applicate la rotazione e la separazione dei log
Titolo | Dettagli |
---|---|
Componente | Applicazione Web |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | N/D |
Passaggi | La rotazione dei log è un processo automatizzato usato nell'amministrazione di sistema che prevede l'archiviazione dei file di log datati. I server che eseguono applicazioni di grandi dimensioni spesso registrano ogni richiesta. A fronte di log ingombranti, la rotazione rappresenta un modo per limitarne le dimensioni totali mantenendo comunque l'analisi degli eventi recenti. La separazione dei log si basa sulla necessità di archiviare i file di log in una partizione diversa da quella in cui viene eseguito il sistema operativo o l'applicazione al fine di evitare un attacco Denial of Service o il downgrade delle prestazioni dell'applicazione |
Assicurarsi che non vengano registrati i dati sensibili degli utenti
Titolo | Dettagli |
---|---|
Componente | Applicazione Web |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | N/D |
Passaggi | Verificare di non registrare nei log i dati sensibili che un utente invia al sito. Verificare la registrazione intenzionale, nonché gli effetti collaterali causati da problemi di progettazione. Esempi di dati sensibili:
|
Assicurarsi che l'accesso ai file di log e di controllo sia limitato
Titolo | Dettagli |
---|---|
Componente | Applicazione Web |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | N/D |
Passaggi | Verificare che i diritti di accesso ai file di log siano impostati in modo appropriato. Gli account dell'applicazione devono avere l'accesso in sola scrittura, mentre gli operatori e il personale di supporto devono disporre dell'accesso in sola lettura a seconda delle esigenze. Gli account degli amministratori sono gli unici che devono avere accesso completo. Controllare l'ACL di Windows nei file di log per verificare che l'accesso sia limitato nel modo appropriato:
|
Assicurarsi che gli eventi di Gestione utenti vengano registrati nel log
Titolo | Dettagli |
---|---|
Componente | Applicazione Web |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | N/D |
Passaggi | Assicurarsi che l'applicazione monitori gli eventi di gestione degli utenti, quali gli accessi utente riusciti e non riusciti, le reimpostazioni e le modifiche delle password, il blocco degli account e la registrazione degli utenti. Questo monitoraggio consente di rilevare comportamenti potenzialmente sospetti e di reagire con azioni appropriate. Consente inoltre di raccogliere dati operativi, ad esempio per tenere traccia di chi accede all'applicazione. |
Assicurarsi che il sistema disponga di difese integrate contro l'utilizzo improprio
Titolo | Dettagli |
---|---|
Componente | Applicazione Web |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | N/D |
Passaggi | È necessario impostare dei controlli che generino un'eccezione di sicurezza in caso di utilizzo improprio dell'applicazione. Ad esempio, se la convalida dell'input è attiva e un utente malintenzionato tenta di inserire codice dannoso che non corrisponde all'espressione regolare, il sistema può generare un'eccezione di sicurezza che può essere indicativa di un utilizzo improprio. È consigliabile ad esempio registrare le eccezioni di sicurezza e le azioni intraprese per i seguenti problemi:
|
Abilitare la registrazione diagnostica per le app Web nel servizio app di Azure
Titolo | Dettagli |
---|---|
Componente | Applicazione Web |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | Tipo di ambiente: Azure |
Riferimenti | N/D |
Passaggi | Azure offre funzionalità di diagnostica integrate per facilitare il debug di un'app Web del servizio app. La diagnostica viene applicata anche alle app per le API e alle app per dispositivi mobili. App Web del servizio app offre funzionalità diagnostiche per la registrazione di informazioni sia dal server Web sia dall'applicazione Web, logicamente separate in diagnostica server Web e diagnostica applicazioni. |
Verificare che il controllo degli accessi sia abilitato in SQL Server
Titolo | Dettagli |
---|---|
Componente | Database |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | Configurare il controllo accessi |
Passaggi | Il controllo degli accessi al server di database deve essere abilitato per rilevare/confermare eventuali attacchi mirati a determinare le password di accesso. È importante acquisire i tentativi di accesso non riusciti. L'acquisizione dei tentativi di accesso riusciti e non offre vantaggi aggiuntivi nelle indagini forensi |
Abilitare il rilevamento delle minacce in SQL Azure
Titolo | Dettagli |
---|---|
Componente | Database |
Fase SDL | Compilare |
Tecnologie applicabili | SQL Azure |
Attributes (Attributi) | Versione SQL: 12 |
Riferimenti | Introduzione al rilevamento delle minacce database SQL |
Passaggi | La funzionalità di rilevamento delle minacce individua le attività di database che indicano la presenza di potenziali minacce alla sicurezza nel database. Tale funzionalità offre un nuovo livello di protezione che consente ai clienti di rilevare e di rispondere alle minacce potenziali non appena si verificano, fornendo avvisi di sicurezza sulle attività anomale. Gli utenti possono esaminare gli eventi sospetti tramite il servizio di controllo del database SQL di Azure per determinare se sono il risultato di un tentativo di accesso, una violazione o un exploit dei dati nel database. Il rilevamento delle minacce consente di affrontare le minacce potenziali al database senza dover essere esperti della sicurezza o gestire sistemi di controllo di sicurezza avanzati. |
Usare la funzionalità di analisi di Archiviazione di Azure per controllare gli accessi di Archiviazione di Azure
Titolo | Dettagli |
---|---|
Componente | Archiviazione di Azure |
Fase SDL | Distribuzione |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | Uso di Analisi archiviazione per monitorare il tipo di autorizzazione |
Passaggi | Per ogni account di archiviazione è possibile abilitare la funzionalità di analisi di Archiviazione di Azure per eseguire la registrazione e archiviare i dati di metrica. I log di analisi dell'archiviazione rendono disponibili informazioni importanti, quali il metodo di autenticazione usato dagli utenti per accedere alla risorsa di archiviazione. Queste informazioni possono essere molto utili se l'accesso alla risorsa di archiviazione e strettamente protetto. Ad esempio, nell'archivio BLOB è possibile impostare tutti i contenitori su privato e implementare l'uso di un servizio di firma di accesso condiviso per tutte le applicazioni. È quindi possibile controllare i log regolarmente per verificare se l'accesso ai BLOB viene eseguito con chiavi dell'account di archiviazione, cosa che può indicare una violazione della sicurezza, o se i BLOB sono pubblici ma non dovrebbero esserlo. |
Implementare un livello di registrazione sufficiente
Titolo | Dettagli |
---|---|
Componente | WCF |
Fase SDL | Compilare |
Tecnologie applicabili | .NET Framework |
Attributes (Attributi) | N/D |
Riferimenti | MSDN, Fortify Kingdom |
Passaggi | La mancanza di un'audit trail adeguata dopo un attacco può compromettere le indagini forensi. Windows Communication Foundation (WCF) offre la possibilità di registrare i tentativi di autenticazione riusciti e/o non riusciti. La registrazione dei tentativi di autenticazione non riusciti può avvisare gli amministratori di potenziali attacchi di forza bruta. Analogamente, la registrazione di eventi di autenticazione riusciti può offrire una utile audit trail in presenza di compromissioni dei account validi. Abilitare la funzionalità di controllo di sicurezza del servizio di WCF |
Esempio
Di seguito è riportato un esempio di configurazione con la funzionalità di controllo abilitata
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior name=""NewBehavior"">
<serviceSecurityAudit auditLogLocation=""Default""
suppressAuditFailure=""false""
serviceAuthorizationAuditLevel=""SuccessAndFailure""
messageAuthenticationAuditLevel=""SuccessAndFailure"" />
...
</behavior>
</servicebehaviors>
</behaviors>
</system.serviceModel>
Implementare un livello di gestione degli errori di controllo sufficiente
Titolo | Dettagli |
---|---|
Componente | WCF |
Fase SDL | Compilare |
Tecnologie applicabili | .NET Framework |
Attributes (Attributi) | N/D |
Riferimenti | MSDN, Fortify Kingdom |
Passaggi | La soluzione sviluppata è configurata in modo da non generare eccezioni quando non riesce a scrivere in un log di controllo. Se WCF è configurato per non generare un'eccezione quando non è in grado di scrivere un log di controllo, il programma non viene avvisato dell'errore ed è possibile che il controllo degli eventi critici della protezione non avvenga. |
Esempio
L'elemento <behavior/>
seguente del file di configurazione WCF indica a WCF di non notificare all'applicazione quando WCF non riesce a scrivere in un log di controllo.
<behaviors>
<serviceBehaviors>
<behavior name="NewBehavior">
<serviceSecurityAudit auditLogLocation="Application"
suppressAuditFailure="true"
serviceAuthorizationAuditLevel="Success"
messageAuthenticationAuditLevel="Success" />
</behavior>
</serviceBehaviors>
</behaviors>
Configurare WCF in modo da notificare al programma ogni volta che non riesce a scrivere in un log di controllo. Il programma deve disporre di uno schema di notifica alternativo per avvisare l'organizzazione che le audit trail non vengono mantenute.
Assicurarsi che vengano eseguiti il controllo e la registrazione sull'API Web
Titolo | Dettagli |
---|---|
Componente | API Web |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | N/D |
Passaggi | Abilitare il controllo e la registrazione su tutte le API Web. I log di controllo devono acquisire il contesto utente. Identificare tutti gli eventi importanti e registrarli nel log. Implementare la registrazione centralizzata |
Assicurarsi che la funzionalità di controllo e registrazione appropriata venga applicata nel gateway sul campo
Titolo | Dettagli |
---|---|
Componente | Gateway IoT sul campo |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | N/D |
Passaggi | Quando più dispositivi si connettono a un gateway sul campo, assicurarsi che i tentativi di connessione e lo stato di autenticazione (esito positivo o negativo) per i singoli dispositivi vengano registrati e conservati nel gateway sul campo. Nei casi in cui il gateway sul campo gestisca le credenziali IoT Hub per i singoli dispositivi, assicurarsi anche che il controllo venga eseguito durante il recupero di queste credenziali. Sviluppare un processo per caricare periodicamente i log nella risorsa di archiviazione Azure/IoT Hub per la conservazione a lungo termine. |
Assicurarsi che vengano applicati il controllo e la registrazione appropriati nel gateway cloud
Titolo | Dettagli |
---|---|
Componente | Gateway IoT cloud |
Fase SDL | Compilare |
Tecnologie applicabili | Generico |
Attributes (Attributi) | N/D |
Riferimenti | Introduzione al monitoraggio delle operazioni IoT Hub |
Passaggi | Progettare la raccolta e l'archiviazione dei dati di controllo raccolti tramite il monitoraggio delle operazioni IoT Hub. Abilitare le categorie di monitoraggio seguenti:
|