Compania Google a lansat versiunea browser-ului web Chrome 102. De asemenea, este disponibilă versiunea stabilă a proiectului open-source Chromium, care stă la baza Chrome. Browserul Chrome se deosebește de Chromium prin utilizarea logo-urilor Google, sistemul de trimitere a notificărilor în caz de blocare, modulele pentru redarea conținutului video protejat (DRM), sistemul de actualizări automate, activarea constantă a izolației Sandbox, furnizarea cheilor pentru Google API și transmiterea parametrilor RLZ în timpul căutărilor. Pentru cei care au nevoie de mai mult timp pentru actualizare, este disponibilă o ramură Extended Stable, care primește suport timp de 8 săptămâni. Următoarea versiune Chrome 103 este programată pentru 21 iunie.
Principalele modificări în Chrome 102:
- Pentru a bloca exploatarea vulnerabilităților cauzate de accesul la blocuri de memorie deja eliberate (use-after-free), s-a început utilizarea tipului MiraclePtr (raw_ptr) în locul pointerilor obișnuiți. MiraclePtr oferă un wrapper pentru pointeri, care efectuează verificări suplimentare privind accesul la zonele de memorie eliberate și finalizează brusc execuția în caz de detectare a unor astfel de accesări. Impactul noii metode de protecție asupra performanței și consumului de memorie este evaluat ca fiind nesemnificativ. Mecanismul MiraclePtr nu se aplică în toate procesele, de exemplu, nu este utilizat în procesele de redare, dar poate îmbunătăți semnificativ securitatea. De exemplu, în versiunea curentă, din cele 32 de vulnerabilități corectate, 12 au fost cauzate de probleme de tipul use-after-free.
- Aspectul interfeței cu informațiile despre descărcări a fost modificat. În locul barei inferioare cu date despre progresul descărcărilor, a fost adăugat un nou indicator în bara de adrese, la care se poate face clic pentru a arăta progresul descărcării fișierelor și istoricul cu lista fișierelor deja descărcate. Spre deosebire de bara inferioară, butonul este afișat constant pe bară și permite accesul rapid la istoricul descărcărilor. Noua interfață este propusă deocamdată implicit doar pentru o parte dintre utilizatori și va fi extinsă pentru toți în absența unor probleme. Pentru a reveni la vechea interfață sau a activa noua, este disponibilă setarea „chrome://flags#download-bubble.”

- Când căutați imagini prin intermediul meniului contextual („Căutați imaginea cu Google Lens” sau „Găsiți prin Google Lens”), rezultatele sunt acum afișate nu pe o pagină separată, ci în bara laterală lângă conținutul paginii originale (în aceeași fereastră se poate vedea atât conținutul paginii, cât și rezultatul căutării).

- În setări, în secțiunea „Confidențialitate și securitate” a fost adăugată o secțiune numită „Ghid de confidențialitate” („Privacy Guide”), care oferă o prezentare generală a principalelor setări care influențează confidențialitatea, cu explicații detaliate privind impactul fiecărei setări. De exemplu, în această secțiune se poate stabili politica de trimitere a datelor către serviciile Google, se poate gestiona sincronizarea, prelucrarea cookie-urilor și salvarea istoricului. Funcția este disponibilă pentru unii utilizatori, iar activarea se poate face prin setarea „chrome://flags#privacy-guide”.

- A fost structurat istoricul căutărilor și paginilor vizualizate. Când se încearcă o reapelare a căutării în bara de adresă, apare sugestia „Continuați căutarea în istoric” („Resume your journey”), permițând continuarea căutării de la punctul la care a fost întreruptă ultima dată.

- În catalogul Chrome Web Store a fost propusă pagina „Extensions Starter Kit” cu o selecție inițială de extensii recomandate.
- În modul de testare, a fost activată trimiterea unei solicitări de confirmare a autorizațiilor CORS (Cross-Origin Resource Sharing) către serverul site-ului principal, cu antetul „Access-Control-Request-Private-Network: true”, în cazul în care se face o solicitare de pe o pagină către o resursă din rețeaua internă (192.168.x.x, 10.x.x.x, 172.16.x.x) sau către localhost (128.x.x.x). După confirmarea operațiunii, serverul trebuie să returneze antetul „Access-Control-Allow-Private-Network: true”. În versiunea Chrome 102, rezultatul confirmării nu afectează încă procesarea solicitării — în cazul absenței confirmării, în consola web apare un avertisment, dar solicitarea sub-resursei nu este blocată. Activarea blocării în absența confirmării de la server se așteaptă nu mai devreme de lansarea Chrome 105. Pentru a activa blocarea în versiunile anterioare, se poate activa setarea „chrome://flags/#private-network-access-respect-preflight-results”.
Confirmarea autorizării serverul Introduse pentru a îmbunătăți protecția împotriva atacurilor legate de accesarea resurselor din rețeaua locală sau de pe computerul utilizatorului (localhost) din scripturi încărcate la deschiderea site-ului. Aceste solicitări sunt folosite de atacatori pentru a efectua atacuri CSRF asupra routerelor, punctelor de acces, imprimantelor, interfețelor web corporative și altor dispozitive și servicii care acceptă solicitări doar din rețeaua locală. Pentru a proteja împotriva acestor atacuri, în cazul accesării oricăror subresurse din rețeaua internă, browserul va trimite o solicitare explicită pentru a autoriza încărcarea acestor subresurse.
- Atunci când deschideți linkuri în modul incognito prin meniul contextual, se asigură eliminarea automată din URL a unor parametrii care afectează confidențialitatea.
- Strategia de livrare a actualizărilor pentru Windows și Android a fost modificată. Pentru o comparație mai completă a comportamentului noii versiuni față de cea veche, acum se generează mai multe build-uri ale noii versiuni pentru descărcare.
- Tehnologia de segmentare a rețelei a fost stabilizată pentru a proteja împotriva metodelor de monitorizare a mișcărilor utilizatorului între site-uri, bazate pe stocarea identificatorilor în zone care nu sunt destinate stocării permanente a informațiilor („Supercookies”). Deoarece resursele din cache sunt stocate într-un spațiu de nume comun, indiferent de domeniul de origine, un site poate determina încărcarea resurselor de pe alt site prin verificarea existenței acestei resurse în cache. Protecția se bazează pe aplicarea segmentării rețelei (Network Partitioning), al cărei scop este de a adăuga în cache-urile partajate o legătură suplimentară a înregistrărilor la domeniu, de pe care a fost deschis pagina principală, ceea ce limitează domeniul de aplicare al cache-ului pentru scripturile de monitorizare a mișcărilor doar la site-ul curent (scriptul din iframe nu va putea verifica dacă resursa a fost încărcată de pe un alt site). Separarea stării acoperă conexiunile de rețea (HTTP/1, HTTP/2, HTTP/3, websocket), cache-ul DNS, datele ALPN/HTTP2, TLS/HTTP3, configurația, descărcările și informațiile din antetul Expect-CT.
- Pentru aplicațiile web izolate instalate (PWA, Progressive Web App) este oferită posibilitatea de a schimba designul zonei de titlu a ferestrei prin intermediul componentelor Window Controls Overlay, care extind zona de vizualizare a aplicației web pe întreaga fereastră. Aplicația web poate gestiona redarea și procesarea inputului pe întreaga fereastră, cu excepția blocului suprapus cu butoanele standard de control al ferestrei (închidere, minimizare, maximizare), pentru a oferi aplicației web aspectul unei aplicații desktop obișnuite.

- În sistemul de completare automată a formularelor a fost adăugată suportul pentru generarea numerelor virtuale de carduri de credit în câmpurile cu detalii de plată în magazinele online. Utilizarea unui card virtual, a cărui număr este generat pentru fiecare plată, permite neprezentarea datelor despre cardul de credit real, dar necesită furnizarea serviciului necesar de către bancă. În prezent, funcția poate fi utilizată doar de clienții anumitor bănci din SUA. Pentru a gestiona activarea funcției, a fost propusă setarea „chrome://flags/#autofill-enable-virtual-card”.
- Mecanismul „Capture Handle” este activat implicit, permițând transferul informațiilor către aplicațiile care capturează video. API-ul oferă posibilitatea de a organiza interacțiunea între aplicațiile al căror conținut este înregistrat și aplicațiile care efectuează înregistrarea. De exemplu, o aplicație de conferințe video, care capturează video pentru a difuza o prezentare, poate obține informații despre elementele de control ale prezentării și le poate afișa în fereastra cu video.
- Este activată implicit suportul pentru regulile speculative (Speculation rules), care oferă o sintaxă flexibilă pentru definirea posibilității de preîncărcare a datelor legate de link, efectuată în etapa premergătoare accesării linkului de către utilizator.
- Mecanismul de ambalare a resurselor a fost stabilizat în pachete în format Web Bundle, ceea ce permite creșterea eficienței încărcării unui număr mare de fișiere asociate (CSS, JavaScript, imagini, iframe). Spre deosebire de pachetele în format Webpack, formatul Web Bundle are următoarele avantaje: în cache-ul HTTP nu se păstrează pachetul în sine, ci componentele sale; compilarea și executarea JavaScript-ului încep fără a aștepta încărcarea completă a pachetului; se permite includerea de resurse suplimentare, cum ar fi CSS și imagini, care în Webpack ar fi trebuit codificate sub formă de șiruri JavaScript.
- A fost oferită posibilitatea de a defini o aplicație PWA ca handler pentru anumite tipuri MIME și extensii de fișiere. După definirea asocierii prin câmpul file_handlers în manifest, aplicația va primi un eveniment special atunci când utilizatorul încearcă să deschidă un fișier asociat aplicației.
- A fost adăugat un nou atribut inert, care permite marcarea unei părți a arborelui DOM ca „inactivă”. Pentru nodurile DOM în acest stat, handler-ele de selecție a textului și de hover sunt dezactivate, însemnând că proprietățile CSS pointer-events și user-select sunt întotdeauna setate la valoarea 'none'. Dacă un nod permitea editare, în modul inert devine needitabil.
- A fost adăugat API-ul Navigation, care permite aplicațiilor web să intercepteze operațiile de navigare din fereastră, să inițieze tranziții și să analizeze istoricul acțiunilor cu aplicația. API-ul oferă o alternativă proprietăților window.history și window.location, optimizată pentru aplicațiile web de tip single-page.
- Pentru atributul „hidden” a fost propus un nou flag „until-found”, care face elementul accesibil pentru căutare pe pagină și derulare prin masca de text. De exemplu, se poate adăuga pe pagină un text ascuns, al cărui conținut va fi găsit prin căutarea locală.
- În API-ul WebHID, destinat accesului de nivel scăzut la dispozitivele HID (dispozitive de interfață umană, tastaturi, mouse-uri, gamepad-uri, touchpad-uri) și organizării funcționării fără a avea drivere specifice în sistem, în obiectul requestDevice() a fost adăugat proprietatea exclusionFilters, permițând excluderea anumitor dispozitive la afișarea listei de dispozitive disponibile de către browser. De exemplu, pot fi excluse identificările dispozitivelor care au probleme cunoscute.
- A fost interzisă afișarea formularului de plată prin apelul PaymentRequest.show() fără o acțiune explicită a utilizatorului, cum ar fi un clic pe un element asociat cu handler-ul.
- Asistența pentru implementarea alternativă a protocolului SDP (Session Description Protocol), folosit pentru stabilirea sesiunilor în WebRTC, a fost întreruptă. În Chrome, au fost propuse două variante SDP - una unificată cu alte browsere și una specifică pentru Chrome. De acum înainte, rămâne doar varianta portabilă.
- Au fost aduse îmbunătățiri uneltelor pentru dezvoltatorii web. În panelul Styles au fost adăugate butoane pentru simularea aplicării temelor întunecate și deschise. A fost consolidată securitatea tab-ului Preview în modul de inspectare a rețelei (s-a inclus aplicarea Content Security Policy). În debugger a fost implementată finalizarea execuției scriptului pentru reîncărcarea punctelor de oprire. A fost propusă o implementare preliminară a noii panouri „Performance insights”, care permite analizarea performanței în execuția unor operațiuni specifice pe pagină.

Pe lângă inovațiile și corectarea erorilor, noua versiune a eliminat 32 de vulnerabilități. Multe dintre vulnerabilități au fost identificate în urma testării automate cu uneltele AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer și AFL. Una dintre probleme (CVE-2022-1853) a fost clasificată cu un nivel critic de severitate, care sugerează posibilitatea de a ocoli toate nivelurile de protecție ale browserului și de a executa cod în sistem dincolo de mediul sandbox. Detaliile acestei vulnerabilități nu sunt încă dezvăluite, se știe doar că a fost cauzată de accesarea unui bloc de memorie eliberat (use-after-free) în implementarea API-ului Indexed DB.
În cadrul programului de recompense pentru descoperirea vulnerabilităților pentru versiunea curentă, compania Google a plătit 24 de premii în valoare totală de 65.600 de dolari SUA (o recompensă de 10.000 $, o recompensă de 7.500 $, două recompense de 7.000 $, trei recompense de 5.000 $, patru recompense de 3.000 $, două recompense de 2.000 $, două recompense de 1.000 $ și două recompense de 500 $). Valoarea a 7 recompense încă nu a fost stabilită.
Sursa: opennet.ro






