Το Open Source Foundation παρουσίασε το πρόσθετο του προγράμματος περιήγησης JShelter για να περιορίσει το JavaScript API

Το Ίδρυμα Ελεύθερου Λογισμικού παρουσίασε το έργο JShelter, το οποίο αναπτύσσει ένα πρόσθετο προγράμματος περιήγησης για την προστασία από απειλές που προκύπτουν κατά τη χρήση JavaScript σε ιστότοπους, συμπεριλαμβανομένης της κρυφής αναγνώρισης, της παρακολούθησης κινήσεων και της συσσώρευσης δεδομένων χρήστη. Ο κώδικας του έργου διανέμεται με την άδεια GPLv3. Το πρόσθετο έχει προετοιμαστεί για Firefox, Google Chrome, Opera, Brave, Microsoft Edge και άλλα προγράμματα περιήγησης που βασίζονται στη μηχανή Chromium.

Το έργο αναπτύσσεται ως κοινή πρωτοβουλία που χρηματοδοτείται από το Ίδρυμα NLnet. Ο Giorgio Maone, δημιουργός του πρόσθετου NoScript, καθώς και οι ιδρυτές του έργου J++ και οι δημιουργοί των πρόσθετων JS-Shield και JavaScript Restrictor, συμμετείχαν επίσης στην ανάπτυξη του JShelter. Το πρόσθετο JavaScript Restrictor χρησιμοποιείται ως βάση για το νέο έργο.

Το JShelter μπορεί να θεωρηθεί ως ένα είδος τείχους προστασίας για διεπαφές προγραμματισμού 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.getByteFrequencyFromChannel() και -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()) είναι ένα από τα σημάδια αναγνώρισης που λαμβάνει υπόψη την παρουσία ενός gamepad στο σύστημα.
  • Virtual Reality API, Mixed Reality API - χρήση παραμέτρων συσκευής εικονικής πραγματικότητας για αναγνώριση.
  • window.name - διαρροές μεταξύ τοποθεσιών.
  • navigator.sendBeacon - χρησιμοποιείται για αναλυτικά στοιχεία ιστού.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο