EBPF ievainojamība ļauj apiet apiet pret Spectre uzbrukumiem

Vakar mēs šeit emuārā publicējām ziņas par Aya, bibliotēka eBPF draiveru izveidei Rust un ir tas, ka tā mērķis ir izveidot drošākus draiverus vai Prossimo projekts atmiņas nodrošināšanai no Linux kodola ar Rust (divi lieliski projekti, par kuriem nākamajos mēnešos būs daudz runājama).

Un tas īsā laikā tika ziņots par dažādām ievainojamībām kurā izmantot kļūdas eBPF un ka tas ir jautājums, kurā kodola izstrādātāji nav pārstājuši darboties un, iespējams, risinājums ir Rust.

Iemesls pieskarties šai tēmai ir tāds nesen tika izlaista ziņa, kuru viņi ir identificējuši "Cita" ievainojamība Linux kodolā (CVE-2021-33624) par apiet aizsardzību pret Spectre klases ievainojamību, tā kā tas ļauj izmantot eBPF apakšsistēmu, lai varētu noteikt atmiņas saturu, radot apstākļus dažu darbību izpildes spekulācijām.

Tiek minēts, ka ievainojamība to izraisa verificētāja kļūmes, ko izmanto kļūdu un nederīgas darbības noteikšanai BPF programmās. Verificētājs uzskaita iespējamos koda izpildes ceļus, bet ignorē visas sazarošanas opcijas, kas nav derīgas no komandu kopas arhitektūras semantikas viedokļa.

Palaižot BPF programmu, sazarošanas iespējas, kuras verificētājs nav ņēmis vērā, procesors var nepareizi paredzēt un izpildīt spekulatīvā režīmā.

Ietekmētajās sistēmās neprivilizēta BPF programma var izmantot šo ievainojamību, lai caur sānu kanālu filtrētu patvaļīgas kodola atmiņas (un līdz ar to visas fiziskās atmiņas) saturu.

Piemēram analizējot "ielādes" darbību, verificētājs pieņem, ka instrukcija izmanto reģistru ar adresi, kuras vērtība vienmēr ir noteiktajās robežās, bet uzbrucējs var radīt apstākļus saskaņā ar kuru procesors spekulatīvi mēģinās veikt tirdzniecību ar adresi, kas neatbilst verifikācijas nosacījumiem.

Spectre uzbrukums prasa, lai privileģētajā kodā būtu noteikts skripts, kas noved pie spekulatīvas instrukciju izpildes. Manipulējot ar izpildei nodotajām BPF programmām, eBPF ir iespējams ģenerēt šādas instrukcijas un caur sānu kanāliem filtrēt kodola atmiņas saturu un patvaļīgus fiziskās atmiņas apgabalus.

Turklāt, jūs varat atzīmēt piezīmi par veiktspējas ietekmi aktīvu lai pasargātu no Spectre ievainojamības klases.

Šajā piezīmē apkopoti rezultāti atkļūdotāju optimizācijas rr (ierakstīšana un atkārtošana), ko Mozilla ir izveidojusi, lai atkļūdotu grūti atkārtojamas kļūdas Firefox. Sistēmas izsaukumu kešatmiņa, ko izmanto, lai pārbaudītu direktoriju esamību, samazināja testa projekta "rr sources" darbību no 3 minūtēm 19 sekundēm līdz 36 sekundēm.

Optimizācijas autors nolēma pārbaudīt cik daudz mainīsies veiktspēju pēc Spectre aizsardzības atspējošanas. Pēc sistēmas palaišanas ar parametru "mitigations = off" "rr sources" izpildes laiks bez optimizācijas bija 2 minūtes 5 sekundes (1.6 reizes ātrāks) un ar optimizāciju 33 sekundes (par 9% ātrāk).

Interesanti, Spectre aizsardzības atspējošana ne tikai samazina izpildlaiku kodola līmeņa koda 1.4 reizes (no 2 min 9 s līdz 1 min 32 s), tas arī uz pusi samazināja izpildes laiku lietotāja telpā (no 1 min 9 s līdz 33 s), domājams, efektivitātes samazināšanās dēļ CPU kešatmiņa un TLB tiek atiestatīti, kad ir iespējota Spectre aizsardzība.

Problēma ir parādījusies kopš 4.15 kodola izlaišanas un ir fiksēts plāksteru veidā, kas pašlaik joprojām nesasniedz visus izplatījumus, tāpēc lietotājiem ieteicams šajās dienās veikt attiecīgos atjauninājumus, tiklīdz viņi saņem paziņojumus.

Si jūs vēlaties uzzināt vairāk par to, varat pārbaudīt informāciju Šajā saitē.


Atstājiet savu komentāru

Jūsu e-pasta adrese netiks publicēta. Obligātie lauki ir atzīmēti ar *

*

*

  1. Atbildīgais par datiem: AB Internet Networks 2008 SL
  2. Datu mērķis: SPAM kontrole, komentāru pārvaldība.
  3. Legitimācija: jūsu piekrišana
  4. Datu paziņošana: Dati netiks paziņoti trešām personām, izņemot juridiskus pienākumus.
  5. Datu glabāšana: datu bāze, ko mitina Occentus Networks (ES)
  6. Tiesības: jebkurā laikā varat ierobežot, atjaunot un dzēst savu informāciju.