Infrastruttura di sicurezza: controllo e registrazione | Soluzioni di riduzioneSecurity Frame: Auditing and Logging | Mitigations

Prodotto o servizioProduct/Service ArticoloArticle
Dynamics CRMDynamics CRM
Applicazione WebWeb Application
DatabaseDatabase
Archiviazione di AzureAzure Storage
WCFWCF
API WebWeb API
Gateway IoT sul campoIoT Field Gateway
Gateway IoT cloudIoT Cloud Gateway

Identificare le entità sensibili nella soluzione e implementare il controllo delle modificheIdentify sensitive entities in your solution and implement change auditing

TitoloTitle DettagliDetails
ComponenteComponent Dynamics CRMDynamics CRM
Fase SDLSDL Phase CompilareBuild
Tecnologie applicabiliApplicable Technologies GenericoGeneric
Attributes (Attributi) (Attributi)Attributes N/DN/A
RiferimentiReferences N/DN/A
PassaggiSteps Identificare le entità nella soluzione che contengono dati sensibili e implementare il controllo delle modifiche in tali entità e campiIdentify entities in your solution containing sensitive data and implement change auditing on those entities and fields

Assicurarsi che la funzionalità di controllo e registrazione venga applicata nell'applicazioneEnsure that auditing and logging is enforced on the application

TitoloTitle DettagliDetails
ComponenteComponent Applicazione Web.Web Application
Fase SDLSDL Phase CompilareBuild
Tecnologie applicabiliApplicable Technologies GenericoGeneric
Attributes (Attributi) (Attributi)Attributes N/DN/A
RiferimentiReferences N/DN/A
PassaggiSteps Abilitare il controllo e la registrazione su tutti i componenti.Enable auditing and logging on all components. I log di controllo devono acquisire il contesto utente.Audit logs should capture user context. Identificare tutti gli eventi importanti e registrarli nel log.Identify all important events and log those events. Implementare la registrazione centralizzataImplement centralized logging

Assicurarsi che la rotazione e la separazione dei log siano abilitateEnsure that log rotation and separation are in place

TitoloTitle DettagliDetails
ComponenteComponent Applicazione Web.Web Application
Fase SDLSDL Phase CompilareBuild
Tecnologie applicabiliApplicable Technologies GenericoGeneric
Attributes (Attributi) (Attributi)Attributes N/DN/A
RiferimentiReferences N/DN/A
PassaggiSteps

La rotazione dei log è un processo automatizzato usato nell'amministrazione di sistema che prevede l'archiviazione dei file di log datati.Log rotation is an automated process used in system administration in which dated log files are archived. 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.Servers which run large applications often log every request: in the face of bulky logs, log rotation is a way to limit the total size of the logs while still allowing analysis of recent events.

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'applicazioneLog separation basically means that you have to store your log files on a different partition as where your OS/application is running on in order to avert a Denial of service attack or the downgrading of your application its performance

Assicurarsi che l'applicazione non registri nel log i dati sensibili degli utentiEnsure that the application does not log sensitive user data

TitoloTitle DettagliDetails
ComponenteComponent Applicazione Web.Web Application
Fase SDLSDL Phase CompilareBuild
Tecnologie applicabiliApplicable Technologies GenericoGeneric
Attributes (Attributi) (Attributi)Attributes N/DN/A
RiferimentiReferences N/DN/A
PassaggiSteps

Verificare di non registrare nei log i dati sensibili che un utente invia al sito.Check that you do not log any sensitive data that a user submits to your site. Verificare la registrazione intenzionale, nonché gli effetti collaterali causati da problemi di progettazione.Check for intentional logging as well as side effects caused by design issues. Esempi di dati sensibili:Examples of sensitive data include:

  • Credenziali dell'utenteUser Credentials
  • Codice fiscale o altre informazioni di identificazioneSocial Security number or other identifying information
  • Numeri di carta di credito o altre informazioni finanziarieCredit card numbers or other financial information
  • Informazioni sulla saluteHealth information
  • Chiavi private o altri dati che potrebbero essere usati per decrittografare le informazioni crittografatePrivate keys or other data that could be used to decrypt encrypted information
  • Informazioni sul sistema o sull'applicazione che possono essere usate per attaccare l'applicazione in modo più efficaceSystem or application information that can be used to more effectively attack the application

Assicurarsi che l'accesso ai file di log e di controllo sia limitatoEnsure that Audit and Log Files have Restricted Access

TitoloTitle DettagliDetails
ComponenteComponent Applicazione Web.Web Application
Fase SDLSDL Phase CompilareBuild
Tecnologie applicabiliApplicable Technologies GenericoGeneric
Attributes (Attributi) (Attributi)Attributes N/DN/A
RiferimentiReferences N/DN/A
PassaggiSteps

Verificare che i diritti di accesso ai file di log siano impostati in modo appropriato.Check to ensure access rights to log files are appropriately set. 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.Application accounts should have write-only access and operators and support personnel should have read-only access as needed.

Gli account degli amministratori sono gli unici che devono avere accesso completo.Administrators accounts are the only accounts which should have full access. Controllare l'ACL di Windows nei file di log per verificare che l'accesso sia limitato nel modo appropriato:Check Windows ACL on log files to ensure they are properly restricted:

  • Gli account dell'applicazione devono disporre dell'accesso in sola scritturaApplication accounts should have write-only access
  • Gli operatori e il personale di supporto devono disporre dell'accesso in sola lettura a seconda delle esigenzeOperators and support personnel should have read-only access as needed
  • Gli amministratori sono gli unici account che devono avere accesso completoAdministrators are the only accounts that should have full access

Assicurarsi che gli eventi di Gestione utenti vengano registrati nel logEnsure that User Management Events are Logged

TitoloTitle DettagliDetails
ComponenteComponent Applicazione Web.Web Application
Fase SDLSDL Phase CompilareBuild
Tecnologie applicabiliApplicable Technologies GenericoGeneric
Attributes (Attributi) (Attributi)Attributes N/DN/A
RiferimentiReferences N/DN/A
PassaggiSteps

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.Ensure that the application monitors user management events such as successful and failed user logins, password resets, password changes, account lockout, user registration. Questo monitoraggio consente di rilevare comportamenti potenzialmente sospetti e di reagire con azioni appropriate.Doing this helps to detect and react to potentially suspicious behavior. Consente inoltre di raccogliere dati operativi, ad esempio per tenere traccia di chi accede all'applicazione.It also enables to gather operations data; for example, to track who is accessing the application

Assicurarsi che il sistema disponga di difese integrate contro l'utilizzo improprioEnsure that the system has inbuilt defenses against misuse

TitoloTitle DettagliDetails
ComponenteComponent Applicazione Web.Web Application
Fase SDLSDL Phase CompilareBuild
Tecnologie applicabiliApplicable Technologies GenericoGeneric
Attributes (Attributi) (Attributi)Attributes N/DN/A
RiferimentiReferences N/DN/A
PassaggiSteps

È necessario impostare dei controlli che generino un'eccezione di sicurezza in caso di utilizzo improprio dell'applicazione.Controls should be in place which throw security exception in case of application misuse. 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.E.g., If input validation is in place and an attacker attempts to inject malicious code that does not match the regex, a security exception can be thrown which can be an indicative of system misuse

È consigliabile ad esempio registrare le eccezioni di sicurezza e le azioni intraprese per i seguenti problemi:For example, it is recommended to have security exceptions logged and actions taken for the following issues:

  • Convalida dell'inputInput validation
  • Violazioni di richiesta intersito falsaCSRF violations
  • Attacchi di forza bruta (limite massimo del numero di richieste per utente per risorsa)Brute force (upper limit for number of requests per user per resource)
  • Violazioni di caricamento fileFile upload violations

    Abilitare la registrazione diagnostica per le app Web nel servizio app di AzureEnable diagnostics logging for web apps in Azure App Service

    TitoloTitle DettagliDetails
    ComponenteComponent Applicazione Web.Web Application
    Fase SDLSDL Phase CompilareBuild
    Tecnologie applicabiliApplicable Technologies GenericoGeneric
    Attributes (Attributi) (Attributi)Attributes Tipo di ambiente: AzureEnvironmentType - Azure
    RiferimentiReferences N/DN/A
    PassaggiSteps

    Azure offre funzionalità di diagnostica integrate per facilitare il debug di un'app Web del servizio app.Azure provides built-in diagnostics to assist with debugging an App Service web app. La diagnostica viene applicata anche alle app per le API e alle app per dispositivi mobili.It also applies to API apps and mobile apps. App Web del servizio app offre funzionalità diagnostiche per la registrazione di informazioni sia dal server Web sia dall'applicazione Web,App Service web apps provide diagnostic functionality for logging information from both the web server and the web application.

    logicamente separate in diagnostica server Web e diagnostica applicazioni.These are logically separated into web server diagnostics and application diagnostics

    Verificare che il controllo degli accessi sia abilitato in SQL ServerEnsure that login auditing is enabled on SQL Server

    TitoloTitle DettagliDetails
    ComponenteComponent DatabaseDatabase
    Fase SDLSDL Phase CompilareBuild
    Tecnologie applicabiliApplicable Technologies GenericoGeneric
    Attributes (Attributi) (Attributi)Attributes N/DN/A
    RiferimentiReferences Configurare il controllo degli accessiConfigure Login Auditing
    PassaggiSteps

    Il controllo degli accessi al server di database deve essere abilitato per rilevare/confermare eventuali attacchi mirati a determinare le password di accesso.Database Server login auditing must be enabled to detect/confirm password guessing attacks. È importante acquisire i tentativi di accesso non riusciti.It is important to capture failed login attempts. L'acquisizione dei tentativi di accesso riusciti e non offre vantaggi aggiuntivi nelle indagini forensiCapturing both successful and failed login attempts provides additional benefit during forensic investigations

    Abilitare il rilevamento delle minacce in SQL AzureEnable Threat detection on Azure SQL

    TitoloTitle DettagliDetails
    ComponenteComponent DatabaseDatabase
    Fase SDLSDL Phase CompilareBuild
    Tecnologie applicabiliApplicable Technologies SQL AzureSQL Azure
    Attributes (Attributi) (Attributi)Attributes Versione SQL: 12SQL Version - V12
    RiferimentiReferences Introduzione al rilevamento delle minacce nel database SQLGet Started with SQL Database Threat Detection
    PassaggiSteps

    La funzionalità di rilevamento delle minacce individua le attività di database che indicano la presenza di potenziali minacce alla sicurezza nel database.Threat Detection detects anomalous database activities indicating potential security threats to the 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.It provides a new layer of security, which enables customers to detect and respond to potential threats as they occur by providing security alerts on anomalous activities.

    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.Users can explore the suspicious events using Azure SQL Database Auditing to determine if they result from an attempt to access, breach or exploit data in the 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.Threat Detection makes it simple to address potential threats to the database without the need to be a security expert or manage advanced security monitoring systems

    Usare la funzionalità di analisi di Archiviazione di Azure per controllare gli accessi di Archiviazione di AzureUse Azure Storage Analytics to audit access of Azure Storage

    TitoloTitle DettagliDetails
    ComponenteComponent Archiviazione di AzureAzure Storage
    Fase SDLSDL Phase DistribuzioneDeployment
    Tecnologie applicabiliApplicable Technologies GenericoGeneric
    Attributes (Attributi) (Attributi)Attributes N/DN/A
    RiferimentiReferences Uso di Analisi archiviazione per monitorare il tipo di autorizzazioneUsing Storage Analytics to monitor authorization type
    PassaggiSteps

    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.For each storage account, one can enable Azure Storage Analytics to perform logging and store metrics data. I log di analisi dell'archiviazione rendono disponibili informazioni importanti, quali il metodo di autenticazione usato dagli utenti per accedere alla risorsa di archiviazione.The storage analytics logs provide important information such as authentication method used by someone when they access storage.

    Queste informazioni possono essere molto utili se l'accesso alla risorsa di archiviazione e strettamente protetto.This can be really helpful if you are tightly guarding access to storage. 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.For example, in Blob Storage you can set all of the containers to private and implement the use of an SAS service throughout your applications. È 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.Then you can check the logs regularly to see if your blobs are accessed using the storage account keys, which may indicate a breach of security, or if the blobs are public but they shouldn’t be.

    Implementare un livello di registrazione sufficienteImplement sufficient Logging

    TitoloTitle DettagliDetails
    ComponenteComponent WCFWCF
    Fase SDLSDL Phase CompilareBuild
    Tecnologie applicabiliApplicable Technologies .NET Framework.NET Framework
    Attributes (Attributi) (Attributi)Attributes N/DN/A
    RiferimentiReferences MSDN, Fortify KingdomMSDN, Fortify Kingdom
    PassaggiSteps

    La mancanza di un'audit trail adeguata dopo un attacco può compromettere le indagini forensi.The lack of a proper audit trail after a security incident can hamper forensic efforts. Windows Communication Foundation (WCF) offre la possibilità di registrare i tentativi di autenticazione riusciti e/o non riusciti.Windows Communication Foundation (WCF) offers the ability to log successful and/or failed authentication attempts.

    La registrazione dei tentativi di autenticazione non riusciti può avvisare gli amministratori di potenziali attacchi di forza bruta.Logging failed authentication attempts can warn administrators of potential brute-force attacks. Analogamente, la registrazione di eventi di autenticazione riusciti può offrire una utile audit trail in presenza di compromissioni dei account validi.Similarly, logging successful authentication events can provide a useful audit trail when a legitimate account is compromised. Abilitare la funzionalità di controllo di sicurezza del servizio di WCFEnable WCF's service security audit feature

    EsempioExample

    Di seguito è riportato un esempio di configurazione con la funzionalità di controllo abilitataThe following is an example configuration with auditing enabled

    <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 sufficienteImplement sufficient Audit Failure Handling

    TitoloTitle DettagliDetails
    ComponenteComponent WCFWCF
    Fase SDLSDL Phase CompilareBuild
    Tecnologie applicabiliApplicable Technologies .NET Framework.NET Framework
    Attributes (Attributi) (Attributi)Attributes N/DN/A
    RiferimentiReferences MSDN, Fortify KingdomMSDN, Fortify Kingdom
    PassaggiSteps

    La soluzione sviluppata è configurata in modo da non generare eccezioni quando non riesce a scrivere in un log di controllo.Developed solution is configured not to generate an exception when it fails to write to an audit log. 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.If WCF is configured not to throw an exception when it is unable to write to an audit log, the program will not be notified of the failure and auditing of critical security events may not occur.

    EsempioExample

    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.The <behavior/> element of the WCF configuration file below instructs WCF to not notify the application when WCF fails to write to an audit log.

    <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.Configure WCF to notify the program whenever it is unable to write to an audit log. Il programma deve disporre di uno schema di notifica alternativo per avvisare l'organizzazione che le audit trail non vengono mantenute.The program should have an alternative notification scheme in place to alert the organization that audit trails are not being maintained.

    Assicurarsi che la funzionalità di controllo e registrazione venga applicata nell'API WebEnsure that auditing and logging is enforced on Web API

    TitoloTitle DettagliDetails
    ComponenteComponent API WebWeb API
    Fase SDLSDL Phase CompilareBuild
    Tecnologie applicabiliApplicable Technologies GenericoGeneric
    Attributes (Attributi) (Attributi)Attributes N/DN/A
    RiferimentiReferences N/DN/A
    PassaggiSteps Abilitare il controllo e la registrazione su tutte le API Web.Enable auditing and logging on Web APIs. I log di controllo devono acquisire il contesto utente.Audit logs should capture user context. Identificare tutti gli eventi importanti e registrarli nel log.Identify all important events and log those events. Implementare la registrazione centralizzataImplement centralized logging

    Assicurarsi che la funzionalità di controllo e registrazione appropriata venga applicata nel gateway sul campoEnsure that appropriate auditing and logging is enforced on Field Gateway

    TitoloTitle DettagliDetails
    ComponenteComponent Gateway IoT sul campoIoT Field Gateway
    Fase SDLSDL Phase CompilareBuild
    Tecnologie applicabiliApplicable Technologies GenericoGeneric
    Attributes (Attributi) (Attributi)Attributes N/DN/A
    RiferimentiReferences N/DN/A
    PassaggiSteps

    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.When multiple devices connect to a Field Gateway, ensure that connection attempts and authentication status (success or failure) for individual devices are logged and maintained on the Field Gateway.

    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.Also, in cases where Field Gateway is maintaining the IoT Hub credentials for individual devices, ensure that auditing is performed when these credentials are retrieved.Develop a process to periodically upload the logs to Azure IoT Hub/storage for long term retention.

    Assicurarsi che la funzionalità di controllo e registrazione appropriata venga applicata nel gateway nel cloudEnsure that appropriate auditing and logging is enforced on Cloud Gateway

    TitoloTitle DettagliDetails
    ComponenteComponent Gateway IoT cloudIoT Cloud Gateway
    Fase SDLSDL Phase CompilareBuild
    Tecnologie applicabiliApplicable Technologies GenericoGeneric
    Attributes (Attributi) (Attributi)Attributes N/DN/A
    RiferimentiReferences Introduzione al monitoraggio delle operazioni IoT HubIntroduction to IoT Hub operations monitoring
    PassaggiSteps

    Progettare la raccolta e l'archiviazione dei dati di controllo raccolti tramite il monitoraggio delle operazioni IoT Hub.Design for collecting and storing audit data gathered through IoT Hub Operations Monitoring. Abilitare le categorie di monitoraggio seguenti:Enable the following monitoring categories:

    • Operazioni relative alle identità dei dispositiviDevice identity operations
    • Comunicazioni da dispositivo a cloudDevice-to-cloud communications
    • Comunicazioni da cloud a dispositivoCloud-to-device communications
    • ConnessioniConnections
    • Caricamenti di fileFile uploads