Come può una versione errata di un'app per iOS (come WhatsApp) esporsi all'intero dispositivo in crash o in acquisizione

10

Ci sono state molte notizie recenti e importanti su una vulnerabilità di sicurezza in WhatsApp che riguarda anche le versioni iOS dell'app. La volatilità è stata descritta come comportante il rischio che un utente malintenzionato blocchi il dispositivo (ad esempio citato in rapporto originale di Google Project Zero) o prendere il controllo di uno smartphone (ad es. citato da heise.de qui in tedesco ; traduzione per gentile concessione di Google Translate qui ). Il rimedio suggerito è l'aggiornamento ad almeno la versione 2.18.93 dell'app iOS; apparentemente non sono richiesti aggiornamenti per iOS.

Poiché questo è descritto come un bug in un'app (non iOS stesso) mi viene da chiedersi: in che modo un'app (legittima o meno) si blocca o prende il controllo di un dispositivo iOS in primo luogo? FWIK non ci sono chiamate SDK che concederebbero a un'app tali poteri e in effetti la relazione menziona la corruzione dell'heap. Ma in che modo il danneggiamento dell'heap all'interno di una singola app può causare un tale caos all'intero sistema? Immagino che ciò si verifichi se l'heap dell'app si sovrappone a una memoria di proprietà del sistema operativo in un modo particolare tale che (una versione difettosa di) l'app potrebbe iniettarvi del codice dannoso. Ma in questo caso mi aspetto che questo venga trattato come un bug in iOS (non solo nell'app), che non è il caso qui.

Quindi cosa sta succedendo qui? Come può una versione errata di un'app (come WhatsApp) bloccare un dispositivo iOS o permetterne il rilevamento completo?

UPDATE Questo articolo riporta i nomi di due ingegneri di Google coinvolti. Le loro maniglie di twitter sono @natashenka e @taviso . Forse qualcuno con un account Twitter potrebbe raggiungerli e attirare l'attenzione su questa domanda.

    
posta rookie099 11.10.2018 - 23:22
fonte

1 risposta

1

Immagino che ciò che potrebbe essere ipotizzabile sia che ci sia (era) un bug in una libreria che potrebbe essere usato sia dall'app WhatsApp, iOS, Android, ecc. Questo spiegherebbe perché il problema emerge in iOS e Android apparentemente a livello di root. Forse ciò che sarebbe potuto accadere in un caso del genere è che Google informi i venditori del sistema operativo, che informano il manutentore della libreria upstream e poi cosa?

Per rendere questo più concreto con un esempio, ecco un estratto da iOS 12 Settings | General | About | Legal :

Edeccounpo'ditestodal progetto di GitHub di cisco / libsrtp ( srtp_protect è anche menzionato nel rapporto originale):

  • The srtp_protect() function assumes that the buffer holding the rtp packet has enough storage allocated that the authentication tag can be written to the end of that packet. If this assumption is not valid, memory corruption will ensue.

Il progetto è almeno in qualche modo attivo (ultimo commit 7 giorni fa), ma il suo numero # 322 è apparentemente aperto da luglio 2017. Non sono un cappello bianco esperto (né un cappello nero), ma la mia stima attuale è che è giusto pubblicare un tale esempio (teorico) in questo contesto esattamente perché tutti gli ingredienti sono già allo scoperto. Forse si potrebbe anche qualificarsi come ingegnere di Google Zero semplicemente googling (non è un gioco di parole) tali cose :)

UPDATE per quello che vale, Indice Sonatype OSS (un servizio gratuito utilizzato dagli sviluppatori per identificare aperto dipendenze di origine e determinare se ci sono vulnerabilità note, divulgate pubblicamente) al momento non elenca alcuna vulnerabilità per libsrtp .

    
risposta data 16.10.2018 - 04:40
fonte

Leggi altre domande sui tag