Oppdatert varsel om alvorlige sårbarheter i prosessorarkitektur

Publisert: 04.01.2018

Dette er et oppdatert varsel med mer informasjon om de tre sårbarhetene og oppdateringsinformasjon.

Dette er et oppdatert varsel om alvorlige sårbarheter i prosessorarkitektur, og bør leses i sammenheng med dette.

Flere er bekymret for om oppdateringer vil føre til betydelig ytelsestap. Intel mener at dette er avhengig av arbeidsbyrden og at det ikke skal være betydelig for den gjennomsnittlige brukeren. AMD mener også at ytelsestapet vil være ubetydelig  [1]. Likevel er det enkelte systemer, som for eksempel Google, som advarer om at  oppdateringene vil føre til problemer. RedHat har også gjort ytelsestester som  tyder på at noen operasjoner tar merkbart lengre tid [2]. 

Vi i NSM NorCERT anbefaler at hver enkelt virksomhet vurderer sine krav til prosessorkapasiteten og hvilket ytelsestap de eventuelt vil tåle. Dersom mindre  ytelsestap er akseptabelt anbefales det at systemene oppdateres så fort som mulig.

Videre vil varselet ta for seg teknisk informasjon, patchenivå på enkelte systemer
og kilder.

Teknisk informasjon:
Totalt dreier det seg altså om tre forskjellige sårbarheter:

CVE-2017-5754 - Rouge Data Cache Load

Baserer seg på at tilgangskontroll ikke blir gjort under spekulativ henting av minne. Data som ligger i cache kan hentes ved å utnytte side-channel angrep for å utlede innholdet i minne [3].

CVE-2017-5753 - Bounds-Check Bypass

Linux har støtte for en eBPF JIT/interpreter hvor kode kjøres i kontekst av kernelen. Dette utnyttes ved å kjøre to programmer, ett i brukerkontekst og ett i en begrenset kernelkontekst, men hvor bruk av teknikkene beskrevet i de tekniske rapportene gjør at man kan lekke innhold fra kernelen sitt minneområde til brukerkontekst [3].

CVE-2017-5715 - Branch Target Injection

Baserer seg på at kode som kjøres i kernel-kontekst gjør indirekte funksjonskall på en minneadresse. Den vil så bli cachet av prosessoren. Teknikkene beskrevet i de tekniske rapportene blir så brukt for å lese priviligert minne basert på minneadressen [3].

Disse sårbarhetene kan utnyttes i to forskjellige angrep:

Meltdown (utnytter første CVE-2017-5754)

Meltdown bryter ned den mest fundamentale isolasjonen mellom brukerapplikasjoner og operativsystemet. Angrepet lar et program aksessere minne og data som ligger der, også de som tilhører andre programmer og operativsystemer. 

Spectre (utnytter de to resterende CVE-ene: 2017-5715 og 2017-5753)

Spectre bryter ned isolasjonen mellom forskjellige applikasjoner, og lar en angriper lure feilfrie programmer til å lekke informasjon som følge av "best practices".

Mer om hvert angrep kan leses i kilde [3].

Sårbarhetene ligger i prosessorenes arkitektur og skyldes såkalt "spekulativ eksekvering". Spekulativ eksekvering er en optimaliseringsteknikk som blir benyttet av de fleste moderne prosessorer [4]. 

Spekulativ eksekvering

Det overordnede prinsippet for prosessorer er at instruksjoner blir eksekvert sekvensielt, men for at prosessorer skal kunne utnytte ressursene sine så effektivt som mulig eksekverer moderne superskalare prosessorer instruksjoner i parallell. I noen tilfeller vil instruksjoner være avhengig av resultatet fra andre tidligere instruksjoner eller "sjekker" for å kunne kjøre (tenk "if statement" i programmering). I de tilfellene vil prosessoren gjette på utfallet av sjekken eller instruksjonen og kjøre instruksjonen uansett dersom den gjetter på at sjekkene går gjennom. Om prosessoren har rett vil den ha tjent tid, om den tar feil vil den stoppe instruksjonen og gjenopprette tilstanden sin til slik den var før instruksjonen ble kjørt. Dette kalles "spekulativ eksekvering".

Selv om tilstanden gjenopprettes vil det ligge igjen artefakter fra instruksjonen som ble forsøkt kjørt, som for eksempel endringer i lister med oppslåtte minneadresser (TLB) og cache som ikke blir rullet tilbake. Disse artefaktene kan så detekteres av en angriper og brukes til å oppdage hva som skjedde under den spekulative eksekveringen. Dersom en angriper kan spekulativt eksekvere 
instruksjoner som leser sensitive minneområder, kan angriperen bruke teknikker for å utlede hva minneområdet inneholdt.

Antagelsene prosessoren gjør kan også manipuleres slik at den gjetter det utfallet angriper ønsker.

Berørte Windows-produkter:

Alle operativsystemer som kjører på Intel-, AMD- eller ARM-prosessor.

Berørte Red Hat-produkter:

  • Red Hat Enterprise Linux 5
  • Red Hat Enterprise Linux 6
  • Red Hat Enterprise Linux 7
  • Red Hat Atomic Host
  • Red Hat Enterprise MRG 2
  • Red Hat OpenShift Online v2
  • Red Hat OpenShift Online v3
  • Red Hat Virtualization (RHEV-H/RHV-H)
  • Red Hat OpenStack (OSP) 6
  • Red Hat OpenStack (OSP) 7
  • Red Hat OpenStack (OSP) 8
  • Red Hat OpenStack (OSP) 9
  • Red Hat OpenStack (OSP) 10
  • Red Hat OpenStack (OSP) 11
  • Red Hat OpenStack (OSP) 12


Berørte Google-produkter:

  • ARM-baserte Google Android-enheter
  • Google Chrome
  • Google Chrome OS før versjon 63
  • Google Cloud Platform


Publiserte sikkerhetsoppdateringer:

Microsoft

Microsoft publiserte en sikkerhetsoppdatering 3. januar 2018 som tok for seg de tre sårbarhetene i tillegg til flere andre [5]. Oppdateringene vil i tillegg bli med i kommende tirsdags sikkerhetsoppdateringer. Windows 10 vil bli oppdatert automatisk, men andre versjoner av Windows vil måtte ha manuell oppdatering. Microsoft jobber med med en løsning for skytjenestene deres, men den største delen av Azuresystemet har allerede blitt oppdatert [6]. Microsoft opplyser at det er viktig at oppdateringene både installeres på operativsystemnivå og på programvarenivå. Microsoft er ikke kjent med vellykket utnyttelse av sårbarhetene.

Red Hat

Red Hat anbefaler at de som kjører berørte versjoner av Red Hat produkter oppdaterer så snart det foreligger en sikkerhetsoppdatering [7]. Alle de påvirkede produktene skal gjelde for CVE-2017-5733 (Spectre) og CVE-2017-5752 (Meltdown). CVE-2017-5715 (Spectre 2) kan utnyttes både lokalt (syscall) og ved virtualisering (virtualization guest/host boundary). Kerneloppdateringer for Red Hat Enterprise Linux versjon 7.2 eller høyere vil ikke være tilgjengelig grunnet omfanget for å 
få kernelen oppdatert. Red Hat er ikke kjent med vellykket utnyttelse av sårbarhetene.

Google

Android:
Unyttelsespotensialet av sårbarheten på Android-enheter har vært begrenset hos flertallet av enhetene [8][9]. En sikkerhetsoppdatering utgitt i desember 2017 reduserte tilgangen til høypresisjonstimere som igjen begrenset angrep på alle kjente varianter av ARM-prosessorer. Fremtide sikkerhetsoppdateringer for Android vil inneholde ytterligere begrensninger, og tar også for seg deler som benytter kernelen. Brukere av Google-støttede Android-enheter oppfordres allikevel av Google til å godta de månedelige oppdateringene for januar 2018 dersom man ikke 
benytter automatisk oppdatering (A/B systemoppdateringer).


Chrome:
Nåværende stabile versjoner av Chrome inkluderer en valgfri funksjon som kalles "Site Isolation" [10]. Denne funksjonen kan aktiveres for å isolere nettsider i separate adresseplasser. Dette vil redusere muligheten for utnyttelsen av sårbarhetene. Oppdateringen til Chrome 64 som vil bli publisert 23. januar, vil inneholde begrensninger for utnyttelsen. I tillegg er ytterligere 
begrensninger i Chrome planlagt i framtide oppdateringer. 

Ved bruk av Chrome som skrivebordsfunksjon på alle plattformer med versjon Chrome 63, kan man aktivere et flagg under chrome://flags/#enable-site-per-process. Virksomheter kan aktivere flagget for alle eller utvalgte sider.

Ved bruk av Chrome på Android er "Site Isolation" tilgjengelig i chrome://flags, men brukeren kan oppleve funksjonalitet- og ytelsesproblemer.

Ved bruk av Chrome på iOS, vil Apple stå for en eventuell oppgradering da Chrome benytter seg av Apples WKWebView og dermed arver JavaScript-kompileringer fra Apple. 

Ved bruk av Chrome på Chrome OS gjelder samme sikkerhetsoppdateringer som beskrevet over, i tillegg til "Site Isolation" [11].  


Google Chrome OS:
OS-versjoner før versjon 63 er ikke oppdatert [11]. Chrome OS fikk versjon 63 i midten av desember 2017, noe som vil si at de fleste Chrome OS ikke er sårbare fordi de kjører versjon 64. Eldre versjoner av Chrome OS vil ikke motta sikkerhetsoppdateringer. 

Intel Chrome OS-enheter på kjerne 3.18 og 4.4 er oppdatert med Kernel Page Table Isolation (KPTI) i Chrome OS 63 og høyere. Eldre kjerner vil bli oppdatert med KPTI i framtiden.

Dette er de mest benyttede tjenestene til Google. Flere av tjenestene til Google er sårbare for utnyttelsen av en eller flere av CVE-ene. For mer informasjon se kilde [12][13][14]. Google er forøvrig ikke kjent med utnyttelse av sårbarhetene på sine produkter.

Øvrige systemer som har utgitt patch:

  • Apple macOS [15]- - SUSE Linux Enterprise Server (SLES) [16]- - Amazon [17]
  • ARM [18]
  • VMware [19]

Øvrige systemer som ikke har utgitt patch(per 04.01.2018 kl 16:00):

  • CentOS
  • Debian
  • Ubuntu 

Følge leverandører har publisert uttalelser om sårbarhetene:

  • Ubuntu [20]
  • Mozilla [21]
  • XEN [22]

Følgende seksjon inkluderer kilder og andre nyttig linker:

Vedlegg: 

Microsofts slides fra telefonkonferanse 04.01.2018 om klienter og servere på Windows.

Kilder:

  1. [1]  http://www.amd.com/en/corporate/speculative-execution
  2. [2]  https://access.redhat.com/articles/3307751
  3. [3]  https://meltdownattack.com/
  4. [4]  https://security.googleblog.com/2018/01/todays-cpu-vulnerability-what-you-need.html
  5. [5]  https://portal.msrc.microsoft.com/en-us/security-guidance/summary
  6. [6]  https://azure.microsoft.com/en-us/blog/securing-azure-customers-from-cpu-vulnerability/
  7. [7]  https://access.redhat.com/security/vulnerabilities/speculativeexecution
  8. [8]  https://support.google.com/faqs/answer/7622138#android
  9. [9]  https://source.android.com/security/bulletin/2018-01-01#announcements
  10. [10] https://support.google.com/faqs/answer/7622138#chrome
  11. [11] https://support.google.com/faqs/answer/7622138#chromeos
  12. [12] https://www.chromium.org/Home/chromium-security/ssca
  13. [13] https://cloud.google.com/compute/docs/security-bulletins
  14. [14] https://blog.google/topics/google-cloud/what-google-cloud-g-suite-and-chrome-customers-need-know-about-industry-wide-cpu-vulnerability/
  15. [15] https://support.apple.com/en-us/HT201222 (publisert desember 2017)
  16. [16] https://www.suse.com/support/update/
  17. [17] https://aws.amazon.com/security/security-bulletins/AWS-2018-013/
  18. [18] https://developer.arm.com/support/security-update
  19. [19] https://www.vmware.com/security/advisories/VMSA-2018-0002.html
  20. [20] https://wiki.ubuntu.com/SecurityTeam/KnowledgeBase/SpectreAndMeltdown
  21. [21] https://blog.mozilla.org/security/2018/01/03/mitigations-landing-new-class-timing-attack/
  22. [22] https://xenbits.xen.org/xsa/advisory-254.html

Andre nyttige linker om sårbarhetene:

  1. [A] https://support.microsoft.com/en-us/help/4072698/windows-server-guidance-to-protect-against-the-speculative-execution-s
  2. [B] https://support.microsoft.com/en-us/help/4072699/important-information-regarding-the-windows-security-updates-released
  3. [C] http://www.theregister.co.uk/2018/01/04/intel_amd_arm_cpu_vulnerability/