Il team di sicurezza di Android è responsabile della gestione delle vulnerabilità di sicurezza rilevate in la piattaforma Android e molte delle principali app per Android in bundle con i dispositivi Android.
Il team addetto alla sicurezza di Android individua le vulnerabilità della sicurezza tramite ricerche interne e risponde ai bug segnalati da terze parti. Le fonti dei bug esterni includono i problemi segnalati tramite modulo di vulnerabilità, ricerca accademica pubblicata e prepubblicata, gestori di progetti open source upstream le notifiche dai nostri produttori partner di dispositivi e i problemi dichiarati pubblicamente pubblicati su blog o social media.
Segnalazione di problemi di sicurezza
Qualsiasi sviluppatore, utente Android o ricercatore in materia di sicurezza può informare il team addetto alla sicurezza di Android potenziali problemi di sicurezza modulo di vulnerabilità.
I bug contrassegnati come problemi di sicurezza non sono visibili all'esterno, ma potrebbero essere segnalati. visibili dopo che il problema è stato valutato o risolto. Se prevedi di inviare una patch o test della Compatibility Test Suite (CTS) per risolvere un problema di sicurezza, allegalo al bug e attendi una risposta prima di caricare il codice su AOSP.
Valutazione degli insetti
La prima attività nella gestione di una vulnerabilità di sicurezza è identificare la gravità del bug e quale componente di Android è interessato. La gravità determina la priorità del problema, e il componente determina chi correggi il bug, chi riceve una notifica e come viene implementata la correzione agli utenti.
Tipi di contesto
Questa tabella illustra le definizioni dei contesti di sicurezza hardware e software. Il contesto può definita dalla sensibilità dei dati che generalmente elabora o dall'area in cui vengono eseguiti. No tutti i contesti di sicurezza sono applicabili a tutti i sistemi. Questa tabella è ordinata dal meno al più alto privilegiato.
Tipo di contesto | Definizione del tipo |
---|---|
Contesto vincolato |
Un ambiente di esecuzione limitato in cui viene utilizzata la quantità minima di autorizzazioni
fornito. Ad esempio, applicazioni attendibili che elaborano dati non attendibili all'interno di un ambiente completamente gestito di Google Cloud. |
Contesto senza privilegi |
Un ambiente di esecuzione tipico previsto da codice senza privilegi. Ad esempio, un'applicazione Android eseguita in un dominio SELinux con Attributo untrusted_app_all .
|
Contesto con privilegi |
Un ambiente di esecuzione con privilegi che può avere accesso ad autorizzazioni elevate, gestisce
PII di più utenti e/o mantiene l'integrità del sistema. Ad esempio, un'app per Android con funzionalità vietate dal SELinux untrusted_app o con accesso a
Autorizzazioni privileged|signature .
|
Kernel del sistema operativo |
Funzionalità che:
|
Base hardware attendibile (THB) | Componenti hardware discreti, in genere sul SoC, che forniscono funzionalità critiche ai casi d'uso principali del dispositivo (ad esempio, bande di base cellulari, DSP, GPU e processori). |
Catena per bootloader | Un componente che configura il dispositivo all'avvio e poi passa il controllo al sistema operativo Android. |
Ambiente di esecuzione affidabile (Trusted Execution Environment, TEE) | Un componente progettato per essere protetto anche da un kernel del sistema operativo ostile (ad esempio, TrustZone e hypervisor, come pKVM, che proteggono le macchine virtuali dal sistema operativo ). |
Secure Enclave / Secure Element (SE) |
Un componente hardware facoltativo progettato per essere protetto da tutti gli altri componenti del
dispositivo e da un attacco fisico, come definito
Introduzione a Secure Elements. Questo include il chip Titan-M presente in alcuni dispositivi Android. |
Gravità
La gravità di un bug generalmente riflette il potenziale danno che potrebbe verificarsi se un bug sfruttata con successo. Utilizzare i seguenti criteri per determinare la gravità.
Classificazione | Conseguenza di uno sfruttamento riuscito |
---|---|
Critica |
|
Alto |
|
Moderato |
|
Bassa |
|
Impatto trascurabile sulla sicurezza (NSI) |
|
Modificatori di valutazione
Sebbene la gravità delle vulnerabilità di sicurezza sia spesso facile da identificare, le classificazioni potrebbero cambiare in base alle circostanze.
Motivo | Effetto |
---|---|
Richiede l'esecuzione come contesto con privilegi per l'esecuzione dell'attacco (non applicabile a TEE, SE, e hypervisor come pKVM) | - Gravità 1 |
I dettagli specifici della vulnerabilità limitano l'impatto del problema | - Gravità 1 |
Bypass dell'autenticazione biometrica che richiede informazioni biometriche direttamente dal proprietario del dispositivo | - Gravità 1 |
Le configurazioni del compilatore o della piattaforma mitigano una vulnerabilità nel codice sorgente | Gravità moderata se la vulnerabilità sottostante è moderata o superiore |
Richiede l'accesso fisico ai componenti interni del dispositivo ed è comunque possibile se il dispositivo è spento o non è stato sbloccato da quando è stato acceso | - Gravità 1 |
Richiede l'accesso fisico ai componenti interni del dispositivo quando questo è acceso e in precedenza sbloccato | -2 Gravità |
Un attacco locale che richiede lo sblocco della catena del bootloader | Non superiore a Basso |
Un attacco locale che richiede la Modalità sviluppatore o qualsiasi impostazione permanente della modalità sviluppatore per sia attiva sul dispositivo (e non è un bug nella modalità sviluppatore). | Non superiore a Basso |
Se nessun dominio SELinux può eseguire l'operazione secondo il SEPolicy fornito da Google | Impatto sulla sicurezza trascurabile |
Locale, prossimale e remoto
Un vettore di attacco remoto indica che il bug può essere sfruttato senza installare un'app o senza accesso fisico a un dispositivo. Sono inclusi i bug che possono essere attivati visitando un leggere una pagina web, leggere email, ricevere SMS o connettersi a una rete ostile.
I vettori di attacco prossimali sono considerati remoti. Includono bug che possono essere sfruttati solo da un aggressore che si trova fisicamente vicino al dispositivo bersaglio, ad esempio un bug che richiede invio di pacchetti Wi-Fi o Bluetooth non corretti. Prendiamo in considerazione la banda ultralarga (UWB) e basata su NFC degli attacchi come prossimali e quindi remoti.
Gli attacchi locali richiedono all'aggressore di avere prima accesso alla vittima. In un'ottica ipotetica esempio solo software, ad esempio tramite un'app dannosa installata dalla vittima, o un App istantanea di cui dispongono acconsentito alla pubblicazione.
I dispositivi accoppiati correttamente (come i dispositivi Bluetooth associati) sono considerati locali. Me fare una distinzione tra un dispositivo accoppiato e un dispositivo che sta partecipando a un accoppiamento flusso di lavoro.
- Bug che riducono la capacità dell'utente di identificare l'altro dispositivo accoppiato (ad esempio, autenticazione) sono considerati prossimali e quindi remoti.
- I bug che si verificano durante il flusso di accoppiamento, ma prima del consenso dell'utente (ad es. l'autorizzazione), hanno sono considerati prossimali e quindi remoti.
- I bug che si verificano dopo che è stato stabilito il consenso dell'utente sono considerati locali, anche se l'accoppiamento non riesce.
I vettori di attacco fisico sono considerati locali. Includono i bug che possono essere sfruttati solo un malintenzionato che ha accesso fisico al dispositivo, ad esempio un bug in una schermata di blocco o che richiede il collegamento di un cavo USB. Poiché è comune che i dispositivi vengano sbloccati durante collegato a una porta USB, gli attacchi che richiedono una connessione USB hanno la stessa gravità indipendentemente se il dispositivo deve essere sbloccato o meno.
Sicurezza della rete
Android presuppone che tutte le reti siano ostili e potrebbero iniettare attacchi o spiare per via del traffico. Mentre la sicurezza a livello di link (ad esempio la crittografia Wi-Fi) protegge le comunicazioni tra un dispositivo e il punto di accesso a cui è connesso, non fa nulla per proteggere gli altri collegamenti della catena tra il dispositivo e i server con cui comunica.
Al contrario, HTTPS protegge l'intera comunicazione end-to-end, criptando i dati all'origine, per poi decriptarlo e verificarlo solo dopo aver raggiunto la destinazione finale. Per questo motivo, le vulnerabilità che compromettono la sicurezza di rete a livello di collegamento sono valutate meno. molto gravi delle vulnerabilità di HTTPS/TLS: la sola crittografia Wi-Fi non è sufficiente per la maggior parte la comunicazione su internet.
Autenticazione biometrica
L'autenticazione biometrica è un settore difficile e persino i sistemi migliori possono essere ingannati da un quasi (vedi Blog per sviluppatori Android: miglioramenti della schermata di blocco e dell'autenticazione in Android 11. Questi livelli di gravità fanno distinzione tra due classi di attacchi e hanno lo scopo di riflettono il rischio effettivo per l'utente finale.
La prima classe di attacchi consente di aggirare l’autenticazione biometrica in modo generalizzabile, senza dati biometrici di alta qualità del proprietario. Se, ad esempio, un utente malintenzionato può inserire un pezzo di gomma su un sensore di impronte digitali e concede l'accesso al dispositivo in base ai residui rimasti al sensore, un semplice attacco che può essere eseguito su qualsiasi dispositivo suscettibile. it non richiede alcuna conoscenza del proprietario del dispositivo. Dato che è generalizzabile ha un potenziale impatto su un maggior numero di utenti, questo attacco riceve la massima gravità (ad esempio, Alta, per un'esclusione della schermata di blocco).
L’altra classe di attacchi prevede generalmente uno strumento di attacco basato su presentazione (spoofing) del proprietario del dispositivo. A volte è relativamente facile ottenere queste informazioni biometriche (ad Ad esempio, se l'immagine del profilo di una persona sui social media è sufficiente a ingannare l'autenticazione biometrica, quindi un bypass biometrico riceverebbe la valutazione di gravità completa). Ma se un aggressore ha bisogno per acquisire dati biometrici direttamente dal proprietario del dispositivo (ad esempio, una scansione a infrarossi di il loro volto), si tratta di una barriera talmente significativa da limitare il numero di persone colpite dall'attacco, quindi c'è un modificatore -1.
SYSTEM_ALERT_WINDOW
e Tapjacking
Per informazioni sulle nostre norme relative a SYSTEM_ALERT_WINDOW
e tapjacking,
controlla la "vulnerabilità Tapjacking/overlay SYSTEM_ALERT_WINDOWS in una schermata non critica per la sicurezza" della BugHunter University
Bug senza impatto sulla sicurezza
.
Sicurezza multiutente nel sistema operativo Android Automotive
Android Automotive OS adotta un modello di sicurezza multiutente dagli altri fattori di forma. Ogni utente Android deve essere utilizzato da un persona fisica. Ad esempio, un utente ospite temporaneo può essere assegnato a un amico che prende in prestito dal proprietario dell'auto. Per rispondere a casi d'uso come questo, gli utenti hanno per impostazione predefinita Accesso ai componenti necessari all'utilizzo del veicolo, ad esempio Wi-Fi e rete mobile impostazioni.
Componente interessato
Il team di sviluppo responsabile della correzione del bug dipende dal componente in cui si trova. Potrebbe essere un componente fondamentale della piattaforma Android, un driver del kernel fornito da un il produttore di apparecchiature (OEM) o una delle app precaricate sui dispositivi Pixel.
I bug nel codice AOSP vengono corretti dal team tecnico di Android. Bug a bassa gravità, bug in alcuni componenti o bug già noti pubblicamente possono essere corretti direttamente ramo principale AOSP disponibile pubblicamente; altrimenti vengono corretti nei repository interni per prima cosa.
Il componente incide anche sul modo in cui gli utenti ricevono gli aggiornamenti. Un bug nel framework o nel kernel richiede un aggiornamento firmware over-the-air (OTA) che ogni OEM deve inviare. Un bug in un'app o libreria pubblicata in Google Play (ad esempio, Gmail, Google Play Services o WebView) può essere inviati agli utenti Android come aggiornamento da Google Play.
Invio notifica ai partner
Quando in un Bollettino sulla sicurezza di Android viene corretta una vulnerabilità di sicurezza in AOSP, inviamo una notifica I partner Android forniscono dettagli sui problemi e patch. L'elenco delle versioni supportate dal backport a ogni nuova release di Android. Contatta il produttore del tuo dispositivo per ricevere l'elenco di sui dispositivi supportati.
Rilascio del codice in AOSP
Se il bug di sicurezza si trova in un componente AOSP, la correzione viene inviata ad AOSP dopo l'invio dell'aggiornamento OTA rilasciate agli utenti. Le correzioni per i problemi di bassa gravità possono essere inviate direttamente all'AOSP principale prima che sia disponibile una correzione per i dispositivi tramite un'OTA.
Ricezione di aggiornamenti Android
In genere, gli aggiornamenti del sistema Android vengono forniti ai dispositivi tramite pacchetti di aggiornamento OTA. Questi aggiornamenti possono provenire dall'OEM che ha prodotto il dispositivo o dall'operatore che fornisce servizio al dispositivo. Gli aggiornamenti dei dispositivi Google Pixel arrivano dal team di Google Pixel attraverso una procedura di test di accettazione tecnica (TA) dell'operatore. Google pubblica anche immagini del produttore Pixel che possono essere manualmente sui dispositivi.
Aggiornamento dei servizi Google
Oltre a fornire patch per i bug di sicurezza, il team di sicurezza di Android esamina per stabilire se esistono altri modi per proteggere gli utenti. Ad esempio, Google Play analizza tutti app e rimuove tutte le app che tentano di sfruttare un bug di sicurezza. Per le app installate da al di fuori di Google Play, i dispositivi con Google Play Services potrebbero utilizzare anche Funzione Verifica app per visualizzare un avviso agli utenti di app che potrebbero essere potenzialmente dannose.
Altre risorse
Informazioni per gli sviluppatori di app per Android: https://developer.android.com
Le informazioni di sicurezza sono disponibili in tutti i siti per sviluppatori e open source Android. Corretto punti di partenza:
- https://source.android.com/docs/security
- https://developer.android.com/training/articles/security-tips
Report
A volte il team addetto alla sicurezza di Android pubblica report o white paper. Consulta: Report sulla sicurezza per ulteriori dettagli.