Sicurezza organizzativa e operativa

Le basi delle buone pratiche di sicurezza iniziano nella tua organizzazione.

Creare un team per la sicurezza e la privacy

Crea un team dedicato alla sicurezza e alla privacy e individua un responsabile per questa organizzazione.

  • Crea un team di sicurezza.
    • Assicurati che almeno un dipendente sia responsabile di sicurezza, privacy e risposta agli incidenti.
    • Definisci una missione e un ambito per questo team.
    • Sviluppare un organigramma e descrizioni dei compiti per: Security Manager, Security Engineer, Incident Manager.
    • Assumi dipendenti o appaltatori esterni per ricoprire questi ruoli.
  • Definire un ciclo di vita di sviluppo della sicurezza (SDL). L'SDL deve coprire queste aree:
    • Requisiti di sicurezza per i prodotti.
    • Analisi del rischio e modellazione delle minacce.
    • Analisi statica e dinamica di app e codice.
    • Procedure di revisione di sicurezza finale per i prodotti.
    • Risposta agli incidenti.
  • Valuta il rischio dell'organizzazione. Crea una valutazione dei rischi e elabora piani per eliminarli o ridurli.

Procedura di verifica della compilazione

Valuta le lacune nelle procedure di verifica e approvazione della compilazione interna esistenti.

  • Identifica eventuali lacune nell'attuale procedura di verifica della build che potrebbero portare all'introduzione di un' applicazione potenzialmente dannosa (PHA) nella build.
  • Assicurati di avere una procedura di revisione e approvazione del codice, anche per le patch interne all'AOSP.
  • Migliora l'integrità della compilazione implementando controlli in queste aree:
    • Monitora le modifiche. Monitora gli ingegneri software e tieni aggiornati i log delle modifiche.
    • Valutare i rischi. Valutare le autorizzazioni utilizzate da un'app; richiedere la revisione manuale delle modifiche al codice.
    • Monitora. Valutare le modifiche apportate al codice con privilegi.

Monitoraggio delle modifiche al codice sorgente

Monitora la presenza di modifiche indesiderate al codice sorgente o alle app/ai binari/ai kit di sviluppo di terze parti.

  • Valutare le partnership. Valuta il rischio di collaborare con un partner tecnico seguendo i passaggi che seguono:
    • Stabilisci i criteri per valutare il rischio di collaborare con un fornitore specifico.
    • Crea un modulo in cui chiedi al fornitore come risolve gli incidenti e gestisce la sicurezza e la privacy.
    • Verificare le loro affermazioni con un controllo periodico.
  • Monitora le modifiche. Registra le aziende e i dipendenti che modificano il codice sorgente e conduci controlli periodici per assicurarti che vengano apportate solo modifiche appropriate.
  • Tieni traccia. Registra le aziende che aggiungono file binari di terze parti alla tua build e documenta la funzione svolta da queste app e i dati che raccolgono.
  • Pianifica gli aggiornamenti. Assicurati che i tuoi fornitori debbano fornire aggiornamenti software per l'intero ciclo di vita del prodotto. Per risolvere le vulnerabilità impreviste potrebbe essere necessario il supporto dei fornitori.

Convalida l'integrità e la provenienza del codice sorgente

Controlla e convalida il codice sorgente fornito da un produttore di dispositivi originali (ODM), da un aggiornamento over-the-air (OTA) o da un operatore.

  • Gestisci i certificati di firma.
    • Memorizza le chiavi in un modulo di sicurezza hardware (HSM) o in un servizio cloud sicuro (non condividerle).
    • Assicurati che l'accesso ai certificati di firma sia controllato e sottoposto a revisione.
    • Richiedi che tutta la firma del codice venga eseguita nel sistema di compilazione.
    • Revocare le chiavi perse.
    • Genera le chiavi seguendo le best practice.
  • Analizzare il nuovo codice. Testa il codice appena aggiunto con gli strumenti di analisi del codice per la sicurezza per verificare l'introduzione di nuove vulnerabilità. Inoltre, analizza la funzionalità complessiva per rilevare l'espressione di nuove vulnerabilità.
  • Rivedi prima di pubblicare. Cerca le vulnerabilità di sicurezza nel codice sorgente e nelle app di terze parti prima di pubblicarle in produzione. Ad esempio:
    • Richiedi alle app di utilizzare la comunicazione sicura.
    • Segui il principio del privilegio minimo e concedi l'insieme minimo di autorizzazioni necessarie per il funzionamento dell'app.
    • Assicurati che i dati vengano archiviati e trasferiti tramite canali sicuri.
    • Mantieni aggiornate le dipendenze dei servizi.
    • Applica patch di sicurezza agli SDK e alle librerie open source.

Risposta agli incidenti

Android crede nella potenza di una community di sicurezza solida per aiutare a trovare i problemi. Devi creare e pubblicizzare un modo per consentire a terze parti di contattarti in merito a problemi di sicurezza specifici del dispositivo.

  • Stabilisci un contatto. Crea un indirizzo email, ad esempio security@your-company.com o un sito web con istruzioni chiare per segnalare potenziali problemi di sicurezza associati al tuo prodotto (esempio).
  • Stabilire un programma di premi per le vulnerabilità (VRP). Incoraggia i ricercatori di sicurezza esterni a inviare segnalazioni di vulnerabilità di sicurezza che interessano i tuoi prodotti offrendo premi in denaro per i report validi (esempio). Consigliamo di premiare i ricercatori con premi competitivi del settore, ad esempio 5000 $per le vulnerabilità di gravità critica e 2500 $per le vulnerabilità di gravità elevata.
  • Contribuisci con modifiche in upstream. Se vieni a conoscenza di un problema di sicurezza che interessa la piattaforma Android o dispositivi di diversi produttori, contatta il team di sicurezza di Android inviando una segnalazione di bug di sicurezza.
  • Promuovere buone pratiche di sicurezza. Valuta in modo proattivo le pratiche di sicurezza dei fornitori di hardware e software che forniscono servizi, componenti e/o codice per i tuoi dispositivi. Ritengo i fornitori responsabili del mantenimento di una buona postura di sicurezza.