L'azienda Google ha presentato il rilascio del browser web Chrome 102. Contestualmente, è disponibile la versione stabile del progetto open-source Chromium, che costituisce la base di Chrome. Il browser Chrome si differenzia da Chromium per l'uso dei loghi Google, per un sistema di invio notifiche in caso di crash, moduli per la riproduzione di contenuti video protetti (DRM), un sistema di aggiornamenti automatici, l'isolamento Sandbox sempre attivo, la fornitura di chiavi per le API Google e il passaggio di parametri RLZ durante le ricerche. Per coloro che necessitano di più tempo per l'aggiornamento, è supportata separatamente la versione Extended Stable, che viene supportata per 8 settimane. Il prossimo rilascio di Chrome 103 è previsto per il 21 giugno.
Principali novità in Chrome 102:
- Per bloccare l'utilizzo delle vulnerabilità causate dall'accesso a blocchi di memoria già liberati (use-after-free), è iniziato l'uso del tipo MiraclePtr (raw_ptr) al posto dei normali puntatori. MiraclePtr fornisce un wrapper intorno ai puntatori, eseguendo controlli aggiuntivi per l'accesso alle aree di memoria liberate e terminando in modo anomalo l'esecuzione in caso di accessi di questo tipo. L'impatto del nuovo metodo di protezione sulle prestazioni e sul consumo di memoria è valutato come marginale. Il meccanismo MiraclePtr non è applicabile in tutti i processi, in particolare non è usato nei processi di rendering, ma può migliorare significativamente la sicurezza. Ad esempio, nell'attuale rilascio, su 32 vulnerabilità corrette, 12 erano causate da problemi di tipo use-after-free.
- È stata modificata l'interfaccia per le informazioni sui download. Al posto della barra inferiore con i dati sullo stato del download, è stato aggiunto un nuovo indicatore nella barra degli indirizzi, cliccando sul quale si visualizza il progresso dei download e la cronologia con l'elenco dei file già scaricati. A differenza della barra inferiore, il pulsante è sempre visibile nella barra e consente di accedere rapidamente alla cronologia dei download. La nuova interfaccia è attualmente proposta come opzione predefinita solo per alcuni utenti e sarà estesa a tutti in assenza di problemi. Per tornare alla vecchia interfaccia o attivare la nuova, è disponibile l'impostazione "chrome://flags#download-bubble".

- Nella ricerca di immagini tramite il menu contestuale («Search image with Google Lens» o «Trova tramite Google Lens»), i risultati ora vengono mostrati non in una pagina separata, ma in un pannello laterale accanto ai contenuti della pagina originale (nella stessa finestra si possono visualizzare sia i contenuti della pagina che i risultati della ricerca).

- Nelle impostazioni, nella sezione «Privacy e sicurezza», è stata aggiunta la voce «Guida alla privacy» («Privacy Guide»), che fornisce una panoramica generale delle impostazioni principali che influenzano la privacy, con spiegazioni dettagliate sull'impatto di ciascuna impostazione. Ad esempio, nella sezione è possibile definire la politica di invio dei dati ai servizi Google, gestire la sincronizzazione, il trattamento dei cookie e la memorizzazione della cronologia. La funzione è proposta a un gruppo ridotto di utenti; per attivarla, è possibile utilizzare l'impostazione «chrome://flags#privacy-guide».

- È stata strutturata la cronologia delle ricerche e delle pagine visualizzate. Quando si tenta di effettuare una nuova ricerca nella barra degli indirizzi, viene visualizzato un suggerimento «Continua la ricerca nella cronologia» («Resume your journey»), che consente di riprendere la ricerca dal punto in cui era stata interrotta l'ultima volta.

- Nel catalogo Chrome Web Store è stata proposta una pagina «Extensions Starter Kit» con una selezione iniziale di estensioni raccomandate.
- In modalità di test è stata abilitata l'invio al server principale del sito di una richiesta di conferma delle autorizzazioni CORS (Cross-Origin Resource Sharing) con l'intestazione «Access-Control-Request-Private-Network: true», nel caso di accesso di una pagina a risorse nella rete interna (192.168.x.x, 10.x.x.x, 172.16.x.x) o a localhost (128.x.x.x). Se l'operazione viene confermata, il server deve restituire l'intestazione «Access-Control-Allow-Private-Network: true» in risposta a questa richiesta. Nella versione Chrome 102, il risultato della conferma non influenza ancora il trattamento della richiesta: in assenza di conferma viene visualizzato un avviso nella console web, ma la richiesta del sottorisorsa non viene bloccata. Si prevede che l'attivazione della blocco in assenza di conferma da parte del server non avverrà prima della versione Chrome 105. Per attivare il blocco in versioni precedenti, si può attivare l'impostazione «chrome://flags/#private-network-access-respect-preflight-results».
Conferma delle autorizzazioni server introdotto per migliorare la protezione contro attacchi legati all'accesso alle risorse nella rete locale o sul computer dell'utente (localhost) da script caricati durante l'apertura del sito. Tali richieste vengono utilizzate da malintenzionati per effettuare attacchi CSRF a router, punti di accesso, stampanti, interfacce web aziendali e altri dispositivi e servizi che accettano richieste solo dalla rete locale. Per proteggere da tali attacchi, nel caso di accesso a qualsiasi sottorisorsa nella rete interna, il browser invierà una richiesta esplicita di autorizzazione al caricamento di queste sottorisorse.
- Aprendo link in modalità incognito tramite il menu contestuale, è garantita la rimozione automatica di alcuni parametri dall'URL che influenzano la riservatezza.
- Modificata la strategia di distribuzione degli aggiornamenti per Windows e Android. Per un confronto più completo del comportamento della nuova e della vecchia versione per il download, ora vengono generate diverse build della nuova versione.
- Stabilizzata la tecnologia di segmentazione della rete per proteggere dai metodi di tracciamento del movimento dell'utente tra i siti, basati sulla memorizzazione di identificatori in aree non destinate alla conservazione permanente delle informazioni («Supercookie»). Poiché le risorse nella cache sono memorizzate in uno spazio dei nomi condiviso, indipendentemente dal dominio di origine, un sito può determinare il caricamento di risorse da un altro sito verificando la presenza di questa risorsa nella cache. La protezione si basa sull'uso della segmentazione della rete (Network Partitioning), il cui scopo è aggiungere nel cache condivisi un ulteriore legame delle registrazioni al dominio, da cui è stata aperta la pagina principale, limitando l'ambito di copertura della cache per gli script di tracciamento del movimento solo al sito corrente (lo script in iframe non potrà verificare se la risorsa è stata caricata da un altro sito). La separazione dello stato copre le connessioni di rete (HTTP/1, HTTP/2, HTTP/3, websocket), la cache DNS, i dati ALPN/HTTP2, TLS/HTTP3, configurazioni, caricamenti e informazioni nell'intestazione Expect-CT.
- Per le applicazioni web installate e separate (PWA, Progressive Web App) è stata fornita la possibilità di modificare l'aspetto dell'area della finestra del titolo utilizzando i componenti Window Controls Overlay, che estendono l'area dello schermo dell'applicazione web a tutta la finestra. L'applicazione web può gestire il rendering e l'elaborazione dell'input su tutta la finestra, tranne che per la sovrapposizione delle normali barre dei pulsanti di controllo della finestra (chiusura, minimizzazione, massimizzazione), conferendo all'applicazione web l'aspetto di un'applicazione desktop tradizionale.

- Nel sistema di autocompletamento dei moduli è stata aggiunta la supporto per la generazione di numeri di carte di credito virtuali nei campi con i dettagli di pagamento per gli acquisti nei negozi online. L'utilizzo di una carta virtuale, il cui numero viene generato per ogni pagamento, consente di non trasmettere i dati della carta di credito reale, ma richiede la fornitura del servizio necessario da parte della banca. Attualmente, questa funzione può essere utilizzata solo dai clienti di alcune banche degli Stati Uniti. È stata proposta una configurazione per gestire l'attivazione della funzione: "chrome://flags/#autofill-enable-virtual-card".
- È stato attivato di default il meccanismo "Capture Handle", che consente di trasmettere informazioni alle applicazioni che gestiscono la cattura video. L'API consente di organizzare l'interazione tra le applicazioni il cui contenuto viene registrato e quelle che eseguono la registrazione. Ad esempio, un'applicazione per videoconferenze che cattura video per trasmettere una presentazione può ottenere informazioni sui controlli della presentazione e visualizzarli nella finestra con il video.
- È stata attivata di default la supporto per le regole speculativa (Speculation rules), che forniscono una sintassi flessibile per definire la possibilità di caricare anticipatamente i dati correlati a un link, effettuati nella fase precedente al clic dell'utente sul link.
- È stato stabilizzato il meccanismo di imballaggio delle risorse in pacchetti nel formato Web Bundle, consentendo di aumentare l'efficienza del caricamento di un gran numero di file correlati (stili CSS, JavaScript, immagini, iframe). A differenza dei pacchetti nel formato Webpack, il formato Web Bundle presenta i seguenti vantaggi: nella cache HTTP non si deposita il pacchetto stesso, ma le sue componenti; la compilazione e l'esecuzione di JavaScript iniziano senza attendere il caricamento completo del pacchetto; è possibile includere risorse aggiuntive, come CSS e immagini, che in webpack avrebbero dovuto essere codificate sotto forma di stringhe JavaScript.
- È stata fornita la possibilità di definire un'app PWA come gestore di determinati tipi MIME e estensioni di file. Dopo aver definito il legame tramite il campo file_handlers nel manifesto, l'app riceverà un evento speciale quando l'utente tenterà di aprire un file associato all'app.
- È stato aggiunto un nuovo attributo inert, che consente di contrassegnare una parte dell'albero DOM come "non attiva". Per i nodi DOM in questo stato vengono disabilitati i gestori di selezione del testo e di puntamento del mouse, ovvero le proprietà CSS pointer-events e user-select sono sempre impostate su 'none'. Se un nodo consentiva la modifica, in modalità inert diventa non modificabile.
- È stata aggiunta l'API Navigation, che consente alle applicazioni web di intercettare le operazioni di navigazione nella finestra, avviare transizioni e analizzare la cronologia delle azioni con l'app. L'API fornisce un'alternativa alle proprietà window.history e window.location, ottimizzata per le applicazioni web a pagina singola.
- Per l'attributo "hidden" è stato proposto un nuovo flag "until-found", che rende l'elemento accessibile per la ricerca nella pagina e permette lo scorrimento tramite una maschera di testo. Ad esempio, è possibile aggiungere alla pagina un testo nascosto, il cui contenuto sarà trovabile durante una ricerca locale.
- Nell'API WebHID, destinata all'accesso a basso livello ai dispositivi HID (Human Interface Device, tastiere, mouse, gamepad, touchpad) e all'organizzazione del lavoro senza la presenza di driver specifici nel sistema, nell'oggetto requestDevice() è stata aggiunta la proprietà exclusionFilters, che consente di escludere determinati dispositivi durante la visualizzazione da parte del browser dell'elenco dei dispositivi disponibili. Ad esempio, è possibile escludere identificativi di dispositivi che presentano problemi noti.
- È vietato visualizzare il modulo di pagamento tramite la chiamata PaymentRequest.show() senza un'azione esplicita da parte dell'utente, ad esempio un clic su un elemento associato a un gestore.
- È stata interrotta la supporto per l'implementazione alternativa del protocollo SDP (Session Description Protocol), utilizzato per stabilire sessioni in WebRTC. In Chrome erano state proposte due varianti di SDP: una unificata con altri browser e una specifica per Chrome. D'ora in avanti è rimasta solo la variante portatile.
- Sono stati apportati miglioramenti agli strumenti per gli sviluppatori web. Nel pannello Stili sono stati aggiunti pulsanti per simulare l'applicazione della modalità scura e chiara. È stata potenziata la protezione nella scheda Anteprima in modalità ispezione rete (incluso l'applicazione della Content Security Policy). Nel debugger è stata implementata la chiusura dell'esecuzione degli script per il riavvio dei punti di interruzione. È stata proposta una versione preliminare del nuovo pannello "Performance insights", che consente di analizzare le prestazioni dell'esecuzione di determinate operazioni sulla pagina.

Oltre alle novità e alla correzione di errori, la nuova versione ha risolto 32 vulnerabilità. Molte di queste vulnerabilità sono state scoperte tramite test automatizzati con strumenti come AddressSanitizer, MemorySanitizer, Control Flow Integrity, LibFuzzer e AFL. Una delle problematiche (CVE-2022-1853) è stata classificata come critica, implicando la possibilità di eludere tutti i livelli di protezione del browser ed eseguire codice nel sistema al di fuori dell'ambiente sandbox. I dettagli su questa vulnerabilità non sono ancora stati divulgati, è noto solo che è causata da un accesso a un'area di memoria liberata (use-after-free) nell'implementazione dell'API Indexed DB.
Nell'ambito del programma di ricompensa per la scoperta di vulnerabilità, per l'attuale rilascio, Google ha erogato 24 premi per un totale di 65.600 dollari USA (un premio di $10.000, un premio di $7.500, due premi di $7.000, tre premi di $5.000, quattro premi di $3.000, due premi di $2.000, due premi di $1.000 e due premi di $500). La dimensione di 7 premi è ancora da definire.
Fonte: opennet.ru






