Progettare per proteggere l'integrità
La chiave consiste nell'implementare controlli che impediscono la manomissione della logica di business, dei flussi, dei processi di distribuzione, dei dati e persino dei componenti dello stack inferiore, come il sistema operativo e la sequenza di avvio. La mancanza di integrità può introdurre vulnerabilità che possono causare violazioni della riservatezza e della disponibilità.
Scenario di esempio
Contoso Paint Systems crea sistemi di controllo del rilevamento del vapore e ventilazione per macchinari di pitturazione a spruzzo industriali. Il sistema viene usato anche per acquisire automaticamente i dati sulla qualità dell'aria a scopo di segnalazione dell'impatto ambientale. Hanno un'applicazione basata sul cloud che esegue il backup dei dispositivi IoT distribuiti in cabine di pitturazione. I componenti locali dell'applicazione vengono eseguiti in Azure Stack HCI e dispositivi IoT personalizzati. Il sistema è in fase di prototipo iniziale e il team del carico di lavoro prevede di rilasciare la versione di produzione entro un anno.
Difendere la catena di approvvigionamento
Proteggere continuamente dalle vulnerabilità e rilevarle nella catena di approvvigionamento per impedire agli utenti malintenzionati di inserire errori software nell'infrastruttura, nel sistema di compilazione, negli strumenti, nelle librerie e in altre dipendenze. Le vulnerabilità devono essere analizzate durante la fase di compilazione e il runtime
Conoscere l'origine del software e verificarne l'autenticità durante tutto il ciclo di vita forniranno prevedibilità. Si conosceranno in anticipo le vulnerabilità in modo che sia possibile correggerle in modo proattivo e mantenere il sistema sicuro in produzione.
Sfida di Contoso
- Il team di progettazione sta implementando le pipeline di compilazione e rilascio, ma non ha ancora risolto l'integrità del sistema di compilazione.
- Hanno scelto di usare alcune soluzioni open source sia nel firmware che nei componenti cloud.
- Hanno sentito come si compromette una catena di approvvigionamento o utenti malintenzionati possono danneggiare il codice che può quindi essere usato per danneggiare i sistemi o persino esfiltrare i dati. Se la segnalazione ambientale del cliente è stata interessata in modo tale da causare un errore di segnalazione o una rappresentazione errata rilevata in un controllo, l'effetto su Contoso e sul cliente potrebbe essere catastrofico.
Applicazione dell'approccio e risultati
- Il team modifica i processi di compilazione sia per il firmware che per i sistemi cloud back-end e ora include passaggi di analisi della sicurezza per segnalare vulnerabilità ed esposizioni comuni (CVE) note nelle dipendenze. Inoltre, ora includono anche l'analisi malware del codice e dei pacchetti.
- Esaminano anche le opzioni antimalware per l'esecuzione in Azure Stack HCI, ad esempio Controllo di applicazioni di Windows Defender.
- Queste misure consentono di aumentare la certezza che il firmware e il software che vengono distribuiti come parte di questa soluzione non eseguiranno azioni impreviste impattando sull'integrità del sistema o sui requisiti di segnalazione ambientale del cliente.
Implementare meccanismi crittografici solidi
Stabilire attendibilità e verifica usando tecniche di crittografia come la firma del codice, certificati e crittografia. Proteggere questi meccanismi consentendo la decrittografia attendibile.
Adottando questo approccio, si saprà che le modifiche apportate ai dati o all'accesso al sistema vengono verificate da una fonte attendibile.
Anche se i dati crittografati vengono intercettati in transito da un attore malintenzionato, l'attore non sarà in grado di sbloccare o decifrare il contenuto. È possibile usare firme digitali per assicurarsi che i dati non siano stati manomessi durante la trasmissione.
Sfida di Contoso
- I dispositivi selezionati per il rilevamento e il trasferimento dei dati attualmente non hanno potenza di elaborazione sufficiente per supportare HTTPS o persino la crittografia personalizzata.
- Il team del carico di lavoro prevede di usare i limiti di rete come tecnica di isolamento primaria.
- Una revisione dell'analisi dei rischi ha evidenziato che la comunicazione non crittografata tra dispositivi IoT e sistemi di controllo può causare manomissioni e la segmentazione di rete non deve essere considerata sufficiente.
Applicazione dell'approccio e risultati
- Collaborando con il produttore del dispositivo IoT personalizzato, il team decide di usare un dispositivo di maggiore potenza che supporti non solo la comunicazione basata su certificati, ma anche la convalida della firma del codice su chip, in modo che venga eseguito solo il firmware firmato.
Ottimizzare la sicurezza dei backup
Assicurarsi che i dati di backup siano non modificabili e crittografati quando i dati vengono replicati o trasferiti.
Adottando questo approccio, sarà possibile recuperare i dati con la garanzia che i dati di backup non siano stati modificati inattivi, in maniera inavvertita o dannosa.
Sfida di Contoso
- Ogni mese viene generato il report sulle emissioni dell'Agenzia per la protezione dell'ambiente, ma questi report devono essere inviati solo tre volte all'anno.
- Il report viene generato e quindi archiviato in un account di archiviazione di Azure fino a quando non è necessario inviarlo. Questa operazione viene eseguita come backup nel caso in cui il sistema di report subisca un evento disastroso.
- Il report di backup stesso non viene crittografato, ma viene trasferito tramite HTTP all'account di archiviazione.
Applicazione dell'approccio e risultati
- Dopo aver eseguito un'analisi delle lacune della sicurezza, il team scopre che lasciare il backup non crittografato è un rischio da gestire. Il team gestisce il rischio crittografando il report e archiviandolo nell'opzione di archiviazione non modificabile WORM (Write One, Read Many) di Archiviazione BLOB di Azure.
- Il nuovo approccio garantisce che venga mantenuta l'integrità del backup.
- Come misura di integrità aggiuntiva, il report generato dal sistema principale ora confronta un hash SHA con il backup autorevole per rilevare eventuali manomissioni con l'origine dati primaria.