DPAPI e malware

4

Sto prendendo in considerazione l'utilizzo del DPAPI di Windows per proteggere una chiave ECDH che utilizzo per crittografare alcuni dati in un database locale in un'applicazione desktop Windows. Sono nuovo di DPAPI, ma è a conoscenza del fatto che DPAPI può utilizzare le credenziali degli utenti per proteggere le chiavi che protegge.

Non sarebbe vulnerabile al malware, che un utente installa inavvertitamente o DPAPI fornisce protezione in questa istanza?

    
posta Gene M. 27.01.2013 - 00:17
fonte

2 risposte

3

Non è necessario l'injection di processo per accedere ai dati.

Penso che sia chiaramente indicato nella documentazione DPAPI sul sito Web di Microsoft: il suo ruolo è quello di legare i dati da proteggere con l'account utente. Quindi, non appena il codice viene eseguito con lo stesso account (e non con lo stesso processo), dovrebbe essere considerato non protetto.

In effetti, se un malware viene eseguito, può recuperare tutti quei segreti senza diritti specifici. Questo è in genere il modo in cui funziona il software di recupero password!

Può anche essere decrittografato offline ma suppongo che non sia lo scenario di attacco che stai considerando qui.

    
risposta data 27.01.2013 - 19:06
fonte
4

DPAPI è progettato per proteggere la memoria in scenari in cui viene utilizzato un account limitato. L'unico modo per decodificare i dati protetti da DPAPI consiste nell'iniettare codice nel processo che ha protetto i dati. Tale operazione (in particolare l'utilizzo di WriteProcessMemory e CreateRemoteThread ) richiede privilegi amministrativi. Finché il malware non riesce a convertire i privilegi a livello amministrativo, non può iniettare un thread nel processo e quindi non può decodificare i dati DPAPI.

L'altro vantaggio di DPAPI è che non importa se le regioni di memoria crittografate vengono scritte su disco come parte di un'operazione di swapping, sospensione o di crash dump. Le chiavi DPAPI sono memorizzate in aree della memoria del kernel che non vengono copiate sul disco, quindi è impossibile recuperare i dati da tale file.

    
risposta data 27.01.2013 - 01:13
fonte

Leggi altre domande sui tag