Google ha rilasciato la versione 102 del browser web Chrome. È disponibile anche la versione stabile del progetto open source Chromium, che funge da base per Chrome. Chrome si distingue da Chromium per l'uso dei loghi Google, la presenza di un sistema di invio notifiche in caso di crash, moduli per la riproduzione di contenuti video protetti (DRM), un sistema di aggiornamenti automatici, l'abilitazione della Sandbox e la fornitura di chiavi per le API di Google, oltre alla trasmissione di parametri RLZ durante le ricerche. Per coloro che necessitano di più tempo per aggiornare, è supportato un ramo Extended Stable, disponibile per 8 settimane. Il prossimo rilascio di Chrome 103 è programmato per il 21 giugno.
Principali novità in Chrome 102:
- Per prevenire sfruttamenti delle vulnerabilità causate dall'accesso a blocchi di memoria già liberati (use-after-free), è stato introdotto l'uso del tipo MiraclePtr (raw_ptr) al posto dei puntatori usuali. MiraclePtr fornisce un incapsulamento dei puntatori, eseguendo controlli addizionali sugli accessi a aree di memoria liberate e terminando l'esecuzione in caso di accessi errati. L'impatto di questo nuovo metodo di protezione sulle prestazioni e sul consumo di memoria è ritenuto minimo. Il meccanismo MiraclePtr non è applicabile a tutti i processi, in particolare non è utilizzato nei processi di rendering, ma può aumentare significativamente la sicurezza. Ad esempio, in questa versione sono state corrette 32 vulnerabilità, di cui 12 causate da problemi di tipo use-after-free.
- È stata modificata l'interfaccia di caricamento. Al posto della barra inferiore con le informazioni sul caricamento, è stato aggiunto un nuovo indicatore alla barra degli indirizzi, cliccando sul quale si può visualizzare il progresso del caricamento dei file e la cronologia con l'elenco dei file già scaricati. A differenza della barra inferiore, il pulsante viene sempre visualizzato sulla barra e consente di accedere rapidamente alla cronologia dei download. La nuova interfaccia è attualmente proposta di default solo a un gruppo di utenti e sarà distribuita a tutti in assenza di problemi. Per tornare alla vecchia interfaccia o attivare la nuova è disponibile l'impostazione "chrome://flags#download-bubble".

- Quando si cerca immagini tramite il menu contestuale ("Search image with Google Lens" o "Найти через Google Объектив"), i risultati ora vengono visualizzati non su una pagina separata, ma nella barra laterale accanto al contenuto della pagina originale (allo stesso tempo è possibile vedere sia il contenuto della pagina sia il risultato della ricerca).

- Nelle impostazioni, nella sezione "Privacy e sicurezza", è stata aggiunta una sezione "Guida alla privacy" ("Privacy Guide"), che offre una panoramica delle principali impostazioni che influenzano la privacy con dettagli su come ciascuna impostazione influisce. Ad esempio, in questa sezione è possibile definire la politica di invio dei dati ai servizi Google, gestire la sincronizzazione, la gestione dei cookie e la conservazione della cronologia. La funzione è offerta a un gruppo di utenti, può essere attivata utilizzando l'impostazione "chrome://flags#privacy-guide".

- È stata strutturata la cronologia delle ricerche e delle pagine visitate. Quando si prova a ripetere una ricerca nella barra degli indirizzi, viene visualizzato il suggerimento "Continua a cercare nella cronologia" ("Resume your journey"), che consente di riprendere la ricerca da dove era stata interrotta l'ultima volta.

- Nel catalogo del Chrome Web Store è stata proposta la pagina "Extensions Starter Kit" con una selezione iniziale di estensioni consigliate.
- In modalità di test è stata attivata l'invio al server del sito principale della richiesta di conferma delle autorizzazioni CORS (Cross-Origin Resource Sharing) con l'intestazione "Access-Control-Request-Private-Network: true", nel caso di richiesta da una pagina a una risorsa nella rete interna (192.168.x.x, 10.x.x.x, 172.16.x.x) o a localhost (128.x.x.x). In caso di conferma dell'operazione come risposta a questa richiesta, il server deve restituire l'intestazione "Access-Control-Allow-Private-Network: true". Nella versione Chrome 102 il risultato della conferma non influisce ancora sull'elaborazione della richiesta: se manca la conferma, nella web console viene visualizzato un avviso, ma la richiesta della sottorisorsa non viene bloccata. L'attivazione del blocco in assenza di conferma da parte del server è prevista non prima della versione Chrome 105. Per attivare il blocco in versioni precedenti è possibile attivare l'impostazione "chrome://flags/#private-network-access-respect-preflight-results".
Conferma delle autorizzazioni server è stato inserito per migliorare la protezione contro attacchi volti all'accesso a risorse nella rete locale o sul computer dell'utente (localhost) tramite script caricati all'apertura del sito. Tali richieste vengono utilizzate da malintenzionati per eseguire attacchi CSRF su 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 sotto-risorsa nella rete interna, il browser invierà una richiesta esplicita di autorizzazione per il caricamento di queste sotto-risorse.
- Quando si aprono link in modalità incognito tramite il menu contestuale, viene automaticamente rimossa dall'URL alcuni parametri che influenzano la privacy.
- È stata cambiata la strategia di consegna degli aggiornamenti per Windows e Android. Per un confronto più completo tra il comportamento della nuova e della vecchia versione, ora vengono generate diverse build della nuova versione per il download.
- È stata stabilizzata la tecnologia di partizione della rete per proteggere da metodi di tracciamento degli spostamenti dell'utente tra i siti, basati sul salvataggio di identificativi in aree non destinate alla memorizzazione permanente delle informazioni ("Supercookies"). Poiché le risorse memorizzate nella cache sono conservate in uno spazio dei nomi condiviso, indipendentemente dal dominio di origine, un sito può determinare il caricamento delle risorse da un altro sito controllando la presenza di tale risorsa nella cache. La protezione si basa sull'uso della partizione della rete (Network Partitioning), il cui principio è quello di aggiungere legami supplementari per le voci in cache condivise. dominio, da cui è stata aperta la pagina principale, limitando l'ambito della cache per gli script di tracciamento dei movimenti solo al sito attuale (uno script in iframe non sarà in grado di verificare se una 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, la configurazione, i caricamenti e le informazioni nel’intestazione Expect-CT.
- Per le web app isolate installabili (PWA, Progressive Web App) è stata fornita la possibilità di modificare l'aspetto dell'intestazione della finestra utilizzando i componenti Window Controls Overlay, che ampliano l'area della web app a tutta la finestra. La web app può gestire il rendering e l'elaborazione dell'input in tutta la finestra, ad eccezione del blocco sovrapposto con i classici pulsanti di controllo della finestra (chiudere, ridurre, espandere), per dare alla web app l'aspetto di una normale applicazione desktop.

- Nel sistema di completamento automatico dei moduli è stata aggiunta la supporto per la generazione di numeri virtuali di carte di credito nei campi delle informazioni di pagamento nei negozi online. L'uso di una carta virtuale, il cui numero viene generato per ogni pagamento, consente di non trasferire dati sulla carta di credito reale, ma richiede la fornitura del servizio necessario da parte della banca. Attualmente, la funzione può essere utilizzata solo dai clienti di alcune banche degli Stati Uniti. Per gestire l'attivazione della funzione è disponibile l'impostazione "chrome://flags/#autofill-enable-virtual-card".
- È stato attivato per impostazione predefinita il meccanismo "Capture Handle", che consente di trasferire informazioni alle applicazioni che catturano video. L'API consente di organizzare l'interazione tra le applicazioni il cui contenuto viene registrato e le applicazioni che registrano. Ad esempio, un'app per videoconferenze che cattura video per la trasmissione di una presentazione può ricevere informazioni sui controlli della presentazione e mostrarle nella finestra del video.
- È stata abilitata per impostazione predefinita la supporto per le regole speculative (Speculation rules), che offrono una sintassi flessibile per definire la possibilità di pre-caricare dati collegati al link, effettuata prima che l'utente faccia clic sul link.
- È stato stabilizzato il meccanismo di impacchettamento delle risorse in pacchetti nel formato Web Bundle, che consente 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 accumula il pacchetto stesso, ma le sue parti; la compilazione e l'esecuzione di JavaScript inizia senza attendere il caricamento completo del pacchetto; è consentito includere risorse aggiuntive come CSS e immagini, che in webpack dovevano essere codificate come 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 collegamento attraverso il campo file_handlers nel manifesto, l'app riceverà un evento speciale quando l'utente cerca di aprire un file associato all'app.
- È stato aggiunto un nuovo attributo inert, che consente di contrassegnare parte dell'albero DOM come "inattiva". Per i nodi DOM in questo stato, vengono disabilitati i gestori di selezione del testo e di puntamento, ovvero le proprietà CSS pointer-events e user-select sono sempre impostate su 'none'. Se un nodo era editabile, in modalità inert diventa non modificabile.
- È stata aggiunta l'API Navigation, che consente alle web app di intercettare le operazioni di navigazione nella finestra, avviare un passaggio e analizzare la cronologia delle azioni con l'app. L'API fornisce un'alternativa alle proprietà window.history e window.location, ottimizzata per le web app a pagina singola.
- Per l'attributo «hidden» è stato proposto un nuovo flag «until-found» che rende l'elemento disponibile per la ricerca nella pagina e per lo scorrimento tramite una maschera di testo. Ad esempio, si può aggiungere un testo nascosto alla pagina, il cui contenuto sarà trovato durante una ricerca locale.
- Nell'API WebHID, progettato per l'accesso a basso livello ai dispositivi HID (dispositivo di interfaccia umana, tastiere, mouse, joystick, pannelli tattili) e per l'organizzazione del lavoro senza la necessità di driver specifici nel sistema, è stata aggiunta alla funzione requestDevice() la proprietà exclusionFilters, che consente di escludere determinati dispositivi dalla visualizzazione da parte del browser della lista dei dispositivi disponibili. Ad esempio, è possibile escludere gli identificatori dei dispositivi noti per avere problemi.
- Non è consentito visualizzare il modulo di pagamento tramite la chiamata PaymentRequest.show() senza un'azione esplicita dell'utente, come ad esempio un clic su un elemento collegato al gestore.
- È stata interrotta la supporto per l'implementazione alternativa del protocollo SDP (Session Description Protocol) utilizzato per stabilire sessioni in WebRTC. In Chrome erano stati proposti due varianti di SDP: una unificata con gli altri browser e una specifica per Chrome. Ora rimane solo la versione portabile.
- Sono stati apportati miglioramenti agli strumenti per gli sviluppatori web. Nella scheda Stili sono stati aggiunti pulsanti per simulare l'applicazione di temi scuri e chiari. È stata potenziata la sicurezza della scheda Anteprima nella modalità di ispezione della rete (è stato attivato l'uso della Content Security Policy). Nel debugger è stata implementata la funzione di completamento dell'esecuzione dello script per il riavvio dei punti di interruzione. È stata proposta una realizzazione preliminare di un nuovo pannello "Performance insights", che consente di analizzare le prestazioni dell'esecuzione di determinate operazioni sulla pagina.

Oltre alle novità e alle correzioni di errori, la nuova versione ha eliminato 32 vulnerabilità. Molte di queste vulnerabilità sono state individuate grazie a test automatizzati effettuati 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 di questa vulnerabilità non sono ancora divulgati, si sa solo che è causata dall'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 conferito 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). L'importo di 7 premi non è ancora stato determinato.
Fonte: opennet.ru






