# Spectre (vulnerabilitat)

Spectre va ser el nom donat a una vulnerabilitat de maquinari que afectava a processadors amb execució especulativa que permetia a un procés maliciós accedir al contingut de memòria d'un altre procés. Es va anunciar al sistema Common Vulnerabilities and Exposures amb els identificadors CVE-2017-5753 i CVE-2017-5715.

## Vulnerabilitat

Spectre és una vulnerabilitat que força a d'altres programes dins un mateix sistema operatiu a accedir a posicions arbitràries del seu espai de memòria.
L'article original descriu un conjunt de potencials vulnerabilitats enlloc d'una tècnica concreta. Es basen en explotar els efecte secundaris de l'execució especulativa, una tècnica de millorar la latència d'accés a la memòria i millorar la velocitat d'execució en els processadors moderns. En particular, Spectre se centra en la predicció de salts, que és part de l'execució especulativa. A diferència de la vulnerabilitat Meltdown anunciada alhora, Spectre no es basa en una característica d'un processador o família de processadors particular, si no que és més general. Es pot veure l'atac Meltdown com un cas particular i senzill d'implementar d'Spectre.

## Història

La vulnerabilitat es va descobrir de forma independent per investigadors del projecte de Google Project Zero i per investigadors de la Universitat Tecnològica de Graz.
Els investigadors van enviar informació de la vulnerabilitat a Intel abans de fer-la pública, però filtracions van fer que l'embargo pactat s'avancés del 9 al 3 de gener de 2018. L'embargo va fer que es publiquessin simultàniament les actualitzacions de software necessàries alhora que s'anunciava l'existència de la vulnerabilitat, ja que els principals fabricants de hardware i de sistemes operatius van ser informats pels descobridors a inicis de juny del mateix any.
Investigadors del Microsoft Vulnerability Research van informar que la vulnerabilitat també es donava en els motors de Javascript dels navegadors.

## Impacte

Tots els ordinadors fins a l'any 2018 estan afectats per Spectre, ja siguin ordinadors de sobretaula, portàtils o fins i tot telèfons intel·ligents, ja que s'ha confirmat la vulnerabilitat en processadors d'Intel, AMD i ARM.
El gener de 2018 s'havia pogut explotar la vulnerabilitat entre programes de l'espai d'usuari, però sembla que es podrà millorar l'atac. Encara que és més difícil d'explotar que Meltdown, és molt més complicat defensar-se d'Spectre donada la seva generalitat. L'article original dels investigadors suggereix que potser caldrà canviar certs aspectes de l'arquitectura dels processadors per corregir completament el problema.
A més, Spectre pot afectar encara més greument als proveïdors de serveis al núvol donat que no pas Meltdown. Meltdown pot permetre a un atacant accedir de forma no autoritzada a dades d'un altre procés en el mateix servidor, Spectre pot permetre a un programa maliciós a induir a un hipervisor a proporcionar dades dels seus hostes.

## Actualitzacions

Com que Spectre és més un nou tipus de vulnerabilitat que no pas un error concret, desenvolupar una protecció genèrica pot ser molt complex.
No obstant això, s'han publicat diverses tècniques per protegir ordinadors personals d'aquesta vulnerabilitat.
Com que la vulnerabilitat permetia explotar-la usant el Javascript incrustat en pàgina web, els equips de desenvolupament de navegadors van publicar actualitzacions per solucionar-ho. La versió 64 de Chrome ja incloïa mètodes per mitigar l'abast i es va publicar el procediment per activar-ho als usuaris de la versió 63. En quan al navegador Firefox, a la versió 57 es va reduir la resolució dels timers de Javascript per prevenir atacs, i està previst afegir altres tècniques per abordar el problema. A més, es pot prevenir l'execució de codi maliciós desactivant l'execució de JavaScript (per exemple amb l'extensió NoScript).
El 4 de gener de 2018, Google va publicar al seu blog sobre seguretat una nova tècnica anomenada "Retpoline" que pot resoldre la vulnerabilitat amb un sobrecost negligible. Implica canvis en els compiladors per que no es generi codi que pugui contenir l'execució especulativa fora d'ordre que provoca la vulnerabilitat. Mentre s'estava desenvolupant per la família x86, l'equip creu que la tècnica es pot aplicar a d'altres famílies de processadors.
També es va suggerir que el cost de mitigar la vulnerabilitat es podia disminuir en els processadors que tinguessin la funció de buidar la TLB de forma selectiva, anomenada "process context identifier (PCID) a l'arquitectura Intel 64 o "address space number" (ASN) a l'arquitectura Alpha. Amb aquest buidatge selectiu es pot aïllar entre diferents processos la funció de la TLB, característica principal per on sorgeix la vulnerabilitat i sense haver de buidar la TLB sencera -que provoca la gran penalització en rendiment.

## Referències

* ↑ «A Critical Intel Flaw Breaks Basic Security for Most Computers» (en anglès). WIRED.
* 1 2 3 «Meltdown and Spectre» (en anglès). [Consulta: 4 gener 2018].
* ↑ Metz, Cade; Perlroth, Nicole «Researchers Discover Two Major Flaws in the World's Computers» (en anglès). The New York Times, 2018. ISSN: 0362-4331.
* ↑ «Intel's processors have a security bug and the fix could slow down PCs». The Verge.
* ↑ Ben. «Project Zero: Reading privileged memory with a side-channel», 03-01-2018. [Consulta: 4 gener 2018].
* ↑ Paul Kocher et al «Spectre Attacks: Exploiting Speculative Execution». .
* ↑ Gibbs, Samuel «Meltdown and Spectre: ‘worst ever’ CPU bugs affect virtually all computers» (en anglès). The Guardian, 04-01-2018. ISSN: 0261-3077.
* ↑ «Speculative execution side-channel attack ("Spectre")» (en anglès). [Consulta: 7 gener 2018].
* ↑ «Meltdown and Spectre» (en anglès). [Consulta: 4 gener 2018].
* ↑ «Security flaws put virtually all phones, computers at risk». Reuters, Thu Jan 04 02:25:28 UTC 2018.
* ↑ Fox-Brewster, Thomas «Massive Intel Vulnerabilities Just Landed -- And Every PC User On The Planet May Need To Update» (en anglès). Forbes.
* ↑ Metz, Cade; Chen, Brian X. «What You Need to Do Because of Flaws in Computer Chips» (en anglès). The New York Times, 2018. ISSN: 0362-4331.
* ↑ «Why Your Web Browsers Is Incredibly Vulnerable to the New Spectre Security Attack» (en anglès). Fortune.
* ↑ «How to protect your PC from the major Meltdown and Spectre CPU flaws» (en anglès). PCWorld.
* ↑ «How to protect your PC against the Intel chip flaw» (en anglès). CNET.
* ↑ «Product Status - Ajuda — Google» (en anglès). [Consulta: 7 gener 2018].
* ↑ «Mitigations landing for new class of timing attack» (en anglès). [Consulta: 7 gener 2018].
* ↑ «More details about mitigations for the CPU Speculative Execution issue» (en anglès). Google Online Security Blog.
* ↑ «Google Says CPU Patches Cause 'Negligible Impact On Performance' With New 'Retpoline' Technique - Slashdot» (en anglès). [Consulta: 7 gener 2018].
* ↑ «Retpoline: a software construct for preventing branch-target-injection - Ajuda — Google» (en anglès). [Consulta: 7 gener 2018].
* ↑ «How Will the Meltdown and Spectre Flaws Affect My PC?» (en anglès). How to geek.

## Vegeu també

* Error de divisió del Pentium
* Meltdown
* Foreshadow

## Enllaços externs

* Pàgina web amb explicació del problema
* Explicació de la vulnerabilitat per part del projecte Google Zero
* Article tècnic dels descobridors