Բաց կոդով հիմնադրամը ներկայացրեց JShelter բրաուզերի հավելումը JavaScript API-ն սահմանափակելու համար

Ազատ ծրագրաշարի հիմնադրամը ներկայացրել է JShelter նախագիծը, որը մշակում է դիտարկիչի հավելում, որը պաշտպանում է այն սպառնալիքներից, որոնք առաջանում են վեբկայքերում JavaScript-ի օգտագործման ժամանակ, ներառյալ թաքնված նույնականացումը, շարժումներին հետևելը և օգտվողի տվյալների կուտակումը: Ծրագրի կոդը բաշխվում է GPLv3 լիցենզիայի ներքո: Հավելվածը պատրաստված է Firefox, Google Chrome, Opera, Brave, Microsoft Edge և Chromium շարժիչի վրա հիմնված այլ բրաուզերների համար։

Ծրագիրը մշակվում է NLnet հիմնադրամի ֆինանսավորմամբ համատեղ նախաձեռնությամբ: Ջորջիո Մաոնեն՝ NoScript հավելման ստեղծողը, ինչպես նաև J++ նախագծի հիմնադիրները և JS-Shield և JavaScript Restrictor հավելումների հեղինակները նույնպես միացել են JShelter-ի մշակմանը։ JavaScript Restrictor հավելումը օգտագործվում է որպես նոր նախագծի հիմք:

JShelter-ը կարելի է դիտարկել որպես մի տեսակ firewall JavaScript ծրագրավորման ինտերֆեյսերի համար, որոնք հասանելի են կայքերին և վեբ հավելվածներին: Հավելվածն ապահովում է պաշտպանության չորս մակարդակ, ինչպես նաև API-ին հասանելիության ճկուն կազմաձևման ռեժիմ: Զրոյական մակարդակն ամբողջությամբ թույլ է տալիս մուտք գործել բոլոր API-ներ, առաջինը ներառում է նվազագույն արգելափակում, որը չի խաթարում էջերի աշխատանքը, երկրորդ մակարդակը հավասարակշռում է արգելափակման և համատեղելիության միջև, իսկ չորրորդ մակարդակը ներառում է ամեն անհարկի խիստ արգելափակում:

API-ի արգելափակման կարգավորումները կարող են կապված լինել առանձին կայքերի հետ, օրինակ՝ պաշտպանությունը կարող է ուժեղացվել որոշ կայքերի համար, իսկ մյուսների համար՝ անջատվել: Կարող եք նաև ընտրողաբար արգելափակել JavaScript-ի որոշ մեթոդներ, օբյեկտներ, հատկություններ և գործառույթներ կամ փոխել վերադարձվող արժեքները (օրինակ՝ կեղծ տեղեկություններ ստեղծել համակարգի մասին): Առանձին հատկանիշ է NBS (Network boundary Shield) ռեժիմը, որը թույլ չի տալիս էջերին օգտագործել զննարկիչը որպես վստահված անձի արտաքին և տեղական ցանցերի միջև (բոլոր ելքային հարցումները գաղտնալսվում և վերլուծվում են):

Արգելափակված կամ սահմանափակված API-ներ.

  • window.Date, window.performance.now(), window.PerformanceEntry, Event.prototype.timeStamp, Gamepad.prototype.timestamp և VRFrameData.prototype.timestamp - ճշգրիտ ժամանակը կարող է օգտագործվել կողային ալիքի հարձակումները հայտնաբերելու և իրականացնելու համար: .
  • HTMLCanvasElement (canvas.toDataURL(), canvas.toBlob(), CanvasRenderingContext2D.getImageData, OffscreenCanvas.convertToBlob()) - օգտագործվում է գրաֆիկական ենթահամակարգի առանձնահատկությունները որոշելու համար օգտագործողին նույնականացնելիս:
  • AudioBuffer և AnalyserNode (AudioBuffer.getChannelData(), AudioBuffer.copyFromChannel(), AnalyserNode.getByteTimeDomainData(), AnalyserNode.getFloatTimeDomainData(), AnalyserNode.getByteFrequencyDrequencyFromChannel() և AnalyserNode. աուդիո ազդանշանների.
  • WebGLRenderingContext - նույնականացում գրաֆիկական փաթեթի և GPU-ի առանձնահատկությունների վերլուծության միջոցով:
  • MediaDevices.prototype.enumerateDevices - նույնականացում՝ ստանալով տեսախցիկի և խոսափողի պարամետրերն ու անվանումները:
  • navigator.deviceMemory, navigator.hardwareConcurrency - սարքավորումների մասին տեղեկատվության ստացում:
  • XMLHttpRequest (XHR) - հավաքագրված համակարգի տեղեկատվությունը փոխանցում է արտաքին սերվերին էջը բեռնելուց հետո:
  • ArrayBuffer - միկրոճարտարապետական ​​Spectre հարձակումների իրականացում:
  • WebWorker (window.Worker), SharedArrayBuffer (window.SharedArrayBuffer) - հարձակումների իրականացում, որոնք գնահատում են ուշացումները տվյալների մուտքի ժամանակ:
  • Geolocation API (navigator.geolocation) - տեղադրության տեղեկատվության հասանելիություն (հավելումը թույլ է տալիս խեղաթյուրել վերադարձված տվյալները):
  • Gamepad API-ն (navigator.getGamepads()) նույնականացման նշաններից է, որը հաշվի է առնում համակարգում գեյմփադի առկայությունը։
  • Virtual Reality API, Mixed Reality API - նույնականացման համար վիրտուալ իրականության սարքի պարամետրերի օգտագործում:
  • window.name - խաչմերուկային արտահոսքեր:
  • navigator.sendBeacon - օգտագործվում է վեբ վերլուծության համար:

Source: opennet.ru

Добавить комментарий