Il-Fondazzjoni tas-Software Ħieles introduċiet il-proġett JShelter, li jiżviluppa add-on tal-browser biex jipproteġi kontra theddid li jinqala’ meta tuża JavaScript fuq websajts, inkluż identifikazzjoni moħbija, movimenti ta’ traċċar u akkumulazzjoni ta’ data tal-utent. Il-kodiċi tal-proġett huwa mqassam taħt il-liċenzja GPLv3. Iż-żieda hija ppreparata għal Firefox, Google Chrome, Opera, Brave, Microsoft Edge u browsers oħra bbażati fuq il-magna Chromium.
Il-proġett qed jiġi żviluppat bħala inizjattiva konġunta ffinanzjata mill-Fondazzjoni NLnet. Giorgio Maone, kreatur tal-add-on NoScript, kif ukoll il-fundaturi tal-proġett J++ u l-awturi tal-add-ons JS-Shield u JavaScript Restrictor, ingħaqdu wkoll mal-iżvilupp ta 'JShelter. Is-add-on JavaScript Restrictor jintuża bħala l-bażi għall-proġett il-ġdid.
JShelter jista 'jitqies bħala tip ta' firewall għal interfaces ta 'programmar JavaScript disponibbli għal websajts u applikazzjonijiet tal-web. Iż-żieda tipprovdi erba 'livelli ta' protezzjoni, kif ukoll mod ta 'konfigurazzjoni flessibbli għall-aċċess għall-API. Livell żero jippermetti kompletament aċċess għall-APIs kollha, l-ewwel jinkludi imblukkar minimu li ma jfixkilx l-operat tal-paġni, it-tieni livell jibbilanċja bejn l-imblukkar u l-kompatibilità, u r-raba 'livell jinkludi imblukkar strett ta' dak kollu li mhux meħtieġ.
Is-settings tal-imblukkar tal-API jistgħu jkunu marbuta ma 'siti individwali, pereżempju, il-protezzjoni tista' tissaħħaħ għal xi siti, u diżattivata għal oħrajn. Tista 'wkoll timblokka b'mod selettiv ċerti metodi JavaScript, oġġetti, proprjetajiet u funzjonijiet, jew tibdel il-valuri ta' ritorn (pereżempju, tipproduċi informazzjoni falza dwar is-sistema). Karatteristika separata hija l-mod NBS (Network boundary shield), li ma tippermettix li l-paġni jużaw il-browser bħala prokura bejn netwerks esterni u lokali (it-talbiet kollha li joħorġu huma interċettati u analizzati).
APIs imblukkati jew ristretti:
- window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp u VRFrameData.prototype.timestamp - l-output tal-ħin eżatt jista 'jintuża biex jidentifika u jwettaq attakki fuq kanali sekondarji .
- HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - użat biex jiddetermina l-karatteristiċi tas-subsistema tal-grafika meta jiġi identifikat utent.
- AudioBuffer u AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyData() u AnalyserNode.
- WebGLRenderingContext - identifikazzjoni permezz ta' analiżi tal-karatteristiċi tal-munzell tal-grafika u l-GPU.
- MediaDevices.prototype.enumerateDevices - identifikazzjoni billi jinkisbu parametri u ismijiet tal-kamera u mikrofonu.
- navigator.deviceMemory, navigator.hardwareConcurrency - il-ksib ta' informazzjoni dwar il-ħardwer.
- XMLHttpRequest (XHR) - tittrasferixxi l-informazzjoni tas-sistema miġbura lil server estern wara li titgħabba l-paġna.
- ArrayBuffer - iwettaq attakki Spectre mikroarkitettoniċi.
- WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - iwettaq attakki li jevalwaw id-dewmien meta jaċċessaw id-dejta.
- Geolocation API (navigator.geolocation) - aċċess għall-informazzjoni dwar il-post (iż-żieda tippermettilek tgħawweġ id-dejta rritornata).
- Gamepad API (navigator.getGamepads()) huwa wieħed mis-sinjali ta 'identifikazzjoni li jqis il-preżenza ta' gamepad fis-sistema.
- Virtual Reality API, Mixed Reality API - użu ta 'parametri ta' apparat tar-realtà virtwali għall-identifikazzjoni.
- window.name - tnixxijiet bejn is-sit.
- navigator.sendBeacon - użat għall-analiżi tal-web.
Sors: opennet.ru