Non so se questa è la risposta giusta, ma dopo un po 'di ricerche, ho trovato questa' soluzione '. Prima di tutto, assicurati di avere una catena di avvio sicura, che possa garantire che nessun firmware rootkit sia installato sul tuo dispositivo, fino al livello del kernel. Ciò garantisce che l'integrità del sistema sia affidabile all'avvio. Quindi ora dobbiamo preoccuparci che un malware di runtime si verifichi dopo la catena di avvio. Prima di tutto, abbiamo bisogno di un'applicazione sandbox per ridurre al minimo la superficie di attacco e sappiamo che se un utente malintenzionato sfrutta un'altra applicazione in esecuzione sul dispositivo, non sarà in grado di visualizzare / toccare la nostra applicazione.
E lasciamo dire, sfortunatamente, che sono stati in grado di sfruttare il Sistema Operativo, speriamo di poter in qualche modo rilevare alcuni artefatti prima che raggiungano questo punto, e il nostro server può considerare questo dispositivo come compromesso / non affidabile.
In MacOS, c'è qualcosa chiamato SIP ( link ), che dovrebbe essere in grado di proteggere il processo anche se ottengono l'accesso come root. Per favore correggimi se questo non è corretto. Penso che l'idea è che ora spostiamo la fiducia nel kernel, quindi a meno che l'attaccante non abbia ottenuto l'accesso al kernel, non dovrebbero essere in grado di toccare il nostro processo di registrazione.
Bene .. e diciamo che hanno uno sfruttamento del kernel di 0 giorni, significa che dobbiamo arrenderci? Questa è un'altra possibilità per noi di catturarli prima che raggiungano il kernel. Devono sfruttare alcune API del kernel ed eseguire codice arbitrario come kernel. Ci sono alcune protezioni per il kernel in fase di esecuzione come Linux Kernel Runtime Protection, Windows VMS, Android KNOX ecc. Quello che fanno è fondamentalmente tenere traccia di un altro elenco di task list e collegarsi a syscall. Fanno check di integrità quando tornano da syscall. Non sono sicuro al 100% su come questo sia stato fatto, ma immagino che potrebbe essere una buona occasione per catturarli prima che il nostro agente di registrazione sia compromesso.
Ci sono molte ricerche in corso su questo argomento, un gruppo chiamato trusted computing group sta lavorando su questo problema. Tuttavia, ci sono molte difficoltà a causa della progettazione del sistema operativo. Quando sono usciti per la prima volta, non sono progettati con controllo di accesso obbligatorio. Un superutente è in grado di fare qualsiasi cosa sul sistema. Stanno lentamente progredendo da Windows Vista, livello di integrità sui processi, selinux su linux ecc ...
Non penso che la mia risposta sia perfetta, ma questa è la mia comprensione dopo aver fatto un po 'di ricerche. Sarebbe bello se qualcuno potesse chiarire i punti che ho menzionato sopra