უკან დაბრუნება
AliExpress-ის გვერდი ფარულად ამუშავებს აუდიოს და Bluetooth multipoint-ს აფუჭებს
SiTech AI Team2 წთ. საკითხავი

AliExpress-ის გვერდი ფარულად ამუშავებს აუდიოს და Bluetooth multipoint-ს აფუჭებს

ბლოგის ავტორმა დაადგინა, რომ AliExpress-ის მთავარი გვერდი ჩუმად ქმნის WebAudio გრაფებს ფინგერპრინტინგისთვის, რაც კომპიუტერს Bluetooth აუდიო არხს უკავებს და ყურსასმენს ტელეფონზე გადართვის საშუალებას არ აძლევს.

აგვისტოში გამოქვეყნებული ბლოგის ჩანაწერი ბრაუზერის ფინგერპრინტინგის უჩვეულო გვერდით ეფექტს აღწერს: AliExpress-ის მთავარი გვერდი ჩუმად ამუშავებს აუდიოს, რის გამოც კომპიუტერის Bluetooth არხი დაკავებული რჩება და multipoint ყურსასმენი ვეღარ ბრუნდება დაკავშირებულ ტელეფონზე.

ავტორის ყურსასმენები ერთდროულად კომპიუტერთან და ტელეფონთან არის მიერთებული, პრიორიტეტი კი კომპიუტერს აქვს, სანამ ის ხმას ასხივებს. სქემა მუშაობდა მანამ, სანამ Firefox-ში ან Chrome-ში AliExpress-ის გვერდი გაიხსნა. ჩატვირთვიდან ცოტა ხანში ტელეფონიდან ხმა წყდებოდა; ტაბის დახურვა პრობლემას მყისიერად აგვარებდა, ტაბის დადუმება — არა, და არაფერი ჩანდა, რაც მუსიკას ან ვიდეოს უკრავდა.

ფარული აუდიო გრაფი მედია ელემენტის ნაცვლად

პირველი შემოწმება audio და video ელემენტებს, play()-ის გამოძახებებს, Media Session მეტამონაცემებს, მედია მოთხოვნებსა და ჩაშენებულ ჩარჩოებს ეძებდა და ვერაფერი იპოვა. მინიშნება დროში აღმოჩნდა: პრობლემა მხოლოდ მაშინ ჩნდებოდა, რაც გვერდი რამდენიმე წამი უმოქმედოდ იდგა. ამიტომ ავტორმა Web Audio API შემოახვია — AudioContext-ის კონსტრუქტორი და AudioNode.prototype.connect() — და უმოქმედო გვერდის ჩატვირთვა ჩაიწერა. გამოჩნდა ორი AudioContext ობიექტი, ორივე running მდგომარეობაში და ორივე აუდიო დანიშნულების წერტილთან დაკავშირებული.

სტეკის კვალი collina.js-სა და fireyejs.js-ზე მიუთითებდა — obfuscated ფაილებზე assets.aliexpress-media.com-იდან, რომლებსაც ავტორი Alibabას ბრაუზერის უსაფრთხოებისა და ანტიფროდ სისტემების ნაწილად მიიჩნევს. თითოეული ერთსა და იმავე ჯაჭვს აგებს: ხერხისებრი ოსცილატორი, ანალიზატორი, პროცესორის კვანძი, ნულზე დაყენებული gain და დანიშნულების წერტილი. სკრიპტი ანალიზატორის სიხშირის მონაცემებს კითხულობს. ნულოვანი gain-ის გამო ხმა არ ისმის, მაგრამ კავშირი სისტემის დანიშნულების წერტილთან ღია რჩება, აუდიო რეალურად მუშავდება და ტაბის დადუმების ღილაკს გასაჩერებელი მედია ელემენტი არ აქვს.

ერთი სიგნალი მრავალს შორის

აუდიო შემოწმება უფრო ფართო ფინგერპრინტის ერთი ნაწილია: პაკეტები კითხულობენ canvas-ისა და WebGL-ის მონაცემებს, ეკრანისა და ტექნიკის დეტალებს, WebRTC-ის ქცევასა და მომხმარებლის ქმედებებს, შემდეგ კი შედეგებს შიფრავენ და Alibabას ტელემეტრიაზე აგზავნიან.

ბლოკვა და მისი ფასი

ავტორი ანტიფროდ ლოგიკას იზიარებს — მომხმარებლის ავტომატიზაციისგან გარჩევა ეხმარება ანგარიშების მიტაცებასთან, ყალბ ანგარიშებთან, სქრაპინგთან და გადახდების თაღლითობასთან ბრძოლაში — თუმცა შენიშვნა იმპლემენტაციას ეხება: ის ჩვეულებრივ სავაჭრო გვერდზე მუშაობს ჯერ კიდევ მანამ, სანამ მომხმარებელი რამე მგრძნობიარეს გააკეთებს, განზრახ ძნელად შესამოწმებელია და არაფერს ამცნობს, როცა ცოცხალი აუდიო გრაფი ამუშავდება.

ორი სკრიპტის ვიწრო uBlock Origin წესებით დაბლოკვამ აუდიო კონტექსტები აღარ შექმნა, გვერდი კი ჩვეულებრივ გამოჩნდა. ჯერ უკვე გახსნილი ტაბები უნდა დაიხუროს, რადგან სკრიპტის დაბლოკვა უკვე შექმნილ აუდიო კონტექსტს არ აჩერებს. ანტიფროდ სისტემებთან კავშირის გამო შესაძლოა დამატებითი CAPTCHA გამოჩნდეს.

SSiTech

SiTech — AI-გაძლიერებული ვებ დეველოპმენტი

ვქმნით სწრაფ, თანამედროვე ვებსაიტებს და AI-ს ვაერთიანებთ ქართული ბიზნესებისთვის. გაქვთ პროექტი ან კითხვა? სიამოვნებით დაგეხმარებით.