Supponiamo di avere un computer con un processore Intel pre-Skylake che non abbia un microcodice che attenua l'attacco Spectre V2. Quindi, a mio avviso, se il kernel e tutte le applicazioni dello spazio utente sono compilati con retpoline, sono protetti, giusto?
Ma la ricompilazione di tutti i programmi spazio utente con retpoline è un lavoro ingrato, quindi fondamentalmente voglio sapere su quali concentrarmi e perché.
Che cosa può fare un "attacco Specter V2" contro una particolare applicazione nello spazio utente? Un simile attacco può ottenere informazioni da tutto ciò che è nel sistema, o solo informazioni "in" quell'applicazione nello spazio utente? Se quest'ultimo è vero, allora solo le applicazioni con informazioni sensibili devono essere compilate con retpoline, giusto?
Inoltre, come vengono attaccate le applicazioni dello spazio utente? L'attacco viene eseguito facendo in modo che eseguano un codice dannoso? In tal caso, solo le applicazioni in grado di eseguire codice devono essere riparate? Inoltre, è per questo che Firefox, nonostante non sia stato compilato con retpoline, non può essere attaccato grazie a la loro correzione riduce la risoluzione dei timer ?
Lo chiedo in un contesto Linux poiché, per quanto ne so, nessuno di Microsoft e Apple usa retpoline.
Modifica Una domanda simile è: Aggiornamenti del firmware / microcodice Intel che rendono i processori" immuni "sia a Spectre che a Meltdown? ma questa domanda è diversa. Questa domanda riguarda quali applicazioni dello spazio utente devono essere compilate con retpoline e come Spectre V2 attacca su di esse mentre l'altra riguarda il modo in cui Spectre e Meltdown sono mitigate in generale.
Modifica 2 un commento ha suggerito questa domanda e la risposta: Meltdown and Spectre Attacks sta rispondendo alla mia domanda qui. Ho copiato le parti rilevanti (che penso) di seguito
How does Spectre work?
Spectre works on a different level and does not allow access to kernel-space data from user-space. In this attack, the attacker tricks the speculative execution to predictively execute instructions erroneously. In a nutshell, the predictor is coerced to predict a specific branch result (if -> true), that results in asking for an out-of-bound memory access that the victim process would not normally have requested, resulting in incorrect speculative execution. Then by the side-channel, retrieves the value of this memory. In this way, memory belonging to the victim process is leaked to the malicious process.
Are these attacks a remote code execution vulnerability?
No they aren't.
To be able to apply this attack, the attacker need to be able to execute code on the target host. Note however that if these are combined with other attack vectors, for example file upload or cross-site-scripting exploits, then there is a possibility of executing them remotely.
Can I be affected while visiting a website?
Yes, there's already a proof of concept of a Javascript exploit for Spectre (only).
Ma non capisco come rispondano alla mia domanda. Quindi suppongo che questa domanda si riduce a come questa altra risposta risponde alla mia domanda.