Scriverò partendo dal presupposto che 2FA sia utilizzato con due dispositivi separati. Un singolo dispositivo con 2FA non ha alcun senso per me considerando i rischi associati al malware.
È possibile ingannare 2FA?
Now, wouldn’t a malware residing on the user’s phone simply be able to generate the “Yes” tap?
Sì, questo è possibile.
Praticamente niente è al riparo da malware che consente l'accesso root a un dispositivo. Se hai attivato 2FA e disponi di un keylogger o di qualche forma di strumento di amministrazione remota sul dispositivo, potresti facilmente aggirare quasi tutte le forme di 2FA utilizzando vari metodi.
Tuttavia, 2FA attenua notevolmente questo rischio. Mentre è possibile che il malware lo faccia, è anche molto meno probabile che un utente malintenzionato abbia il controllo di ogni dispositivo in suo possesso.
How can the 2FA app even be sure the user inputs are coming from the user and not from a malware.
Nella maggior parte dei casi, questo è assunto.
Come ho detto, è molto improbabile che un utente malintenzionato abbia violato tutti i tuoi dispositivi. Inoltre, se un utente malintenzionato ha accesso al tuo dispositivo, non è necessario "generare un rubinetto"; devono solo fare clic con il mouse fantasma sui limiti " X
" e " Y
" della schermata del dispositivo in cui verrà visualizzato il pulsante dell'immagine.
Ecco come potrebbe funzionare:
- Ottieni la risoluzione del dispositivo dell'utente tramite il sistema o da un elenco di dispositivi noti e relative risoluzioni.
- Eseguire un calcolo della risoluzione del dispositivo rispetto alla posizione prevista del pulsante Push 2FA. Sai che sarà all'interno di un certo
%
dello schermo. In effetti, questo è il modo in cui i videogiochi solitamente posizionano gli elementi dell'interfaccia utente.
- Il malware avvia un "clic" ovunque sulle regioni previste del pulsante.
- ???
- Profit.
Aspetta, come puoi forzare un clic? Beh, un pezzo di malware su Android potrebbe fare qualcosa di simile:
dispatchTouchEvent(
MotionEvent.obtain(downTime, eventTime, action, x, y, pressure, size,
metaState, xPrecision, yPrecision, deviceId, edgeFlags));
Quindi, a che serve l'autenticazione a due fattori?
2FA offre una protezione tremenda contro qualcuno che è riuscito a ottenere la tua password, ma che non ha accesso al tuo computer o al tuo cellulare.
O forse hanno accesso al tuo computer, ma non al tuo telefono. Se hanno accesso al tuo computer, non Push-2FA può essere bypassato rapidamente nelle giuste circostanze. Un keylogger, per esempio.
Forse hai trovato il malware sul tuo dispositivo e lo hai rimosso. Potrebbero ancora avere la tua password, ma non possono realmente fare nulla a meno che non abbiano anche accesso al tuo metodo di autenticazione secondario.
Aiuta a prevenire l'accesso non autorizzato da persone che potrebbero aver trovato o persino indovinato la tua password. Inoltre impedisce alle persone di dirottare le tue sessioni.
2FA non è una soluzione valida per tutti: è solo un altro livello di protezione. Consiglierei di usarlo.
I keep hearing that app sandboxing, as in Android, prevents one app from interacting from another. Does this mean a malware can’t generate spurious inputs that mimic user inputs to the 2FA app
Questo dipende davvero. Se si dispone dell'accesso root a un dispositivo tramite un exploit, è molto probabile che si abbia accesso anche a qualsiasi sandboxing. È relativamente facile "fare clic" programmaticamente sulla regione dello schermo di un telefono.