AliExpress хэрэглэгчдийг сэм мөрдөхдөө чихэвчний Bluetooth холболтыг гацааж байжээ: WebAudio Fingerprinting-ийн нууц
Вэб хөгжүүлэлтийн ертөнцөд хэрэглэгчийг мөрдөх (tracking), төхөөрөмжийг таних (device fingerprinting) аргачлалууд улам бүр нарийссаар байна. Сүүлийн 24 цагийн хугацаанд Hacker News болон кибер аюулгүй байдлын хүрээнийхний дунд хамгийн их хэлэлцэгдсэн нэгэн хачирхалтай, гэхдээ маш сонирхолтой кейс нь AliExpress платформын далд скрипт хэрэглэгчдийн чихэвчний бодит ажиллагаанд саад учруулж байсан явдал болов.
Энэхүү жишээ нь вэб технологи хэрхэн системийн физик түвшинд (hardware & OS) нөлөөлж болдгийг, мөн WebAudio Fingerprinting хэмээх техникийн дотоод механизмыг хөгжүүлэгчдэд тод харууллаа.
Асуудал хаанаас эхлэв?
Нэгэн программ хангамжийн инженер компьютер дээрээ ажиллаж байхдаа утсаараа хөгжим сонсож байжээ. Түүний чихэвч нь Bluetooth Multipoint дэмждэг тул компьютер болон гар утастайгаа зэрэг холбогдож, дуу гарсан төхөөрөмж рүүгээ автоматаар шилждэг тохиргоотой байв.
Гэтэл тэрээр хөтөч дээрээ aliexpress.com руу орох төдийд гар утаснаас нь тоглуулагдаж байсан хөгжим шууд тасарч, AliExpress-ийн таб-ийг хаахад л эргэн хэвийн ажиллаж байжээ. Сайтад ямар нэгэн видео, аудио зар сурталчилгаа харагдаагүй бөгөөд хөтөч дээр дуу гарч байгааг илтгэх спикерийн икон ч анивчаагүй байна.
Кодын шинжилгээ хийсний дараа тэрээр вэб хуудас ачаалагдах үед цаанаа Web Audio API ашиглан хэрэглэгчийн техник хангамжийн хурууны хээг (hardware fingerprint) авдаг далд скрипт ажиллаж байгааг илрүүлсэн юм.
WebAudio Fingerprinting гэж юу вэ, хэрхэн ажилладаг вэ?
Орчин үеийн хөтчүүд Third-party Cookie болон бусад энгийн хянах аргуудыг блоколдог болсноос үүдэн маркетплейс, зар сурталчилгааны акулууд хэрэглэгчийн тоног төхөөрөмжийн физик өгөгдлийг цуглуулж “хурууны хээ” үүсгэдэг болсон. Үүний нэг нарийн арга нь WebAudio Fingerprinting юм.
Энэ техникийн ажиллах логик нь маш энгийн хэрнээ овжин:
- Аудио график үүсгэх: Скрипт нь хөтчийн
AudioContextобъектийг үүсгэж,OscillatorNodeашиглан тодорхой давтамжтай (жишээ нь 1000Hz синус долгион) үл сонсогдох дууны долгион үүсгэнэ. - DSP боловсруулалт: Энэ долгионыг компрессор (
DynamicsCompressorNode), шүүлтүүр (BiquadFilterNode) болон бусад математик боловсруулалтаар дамжуулна. - Хөвөгч таслалтай тооцоолол (Float Math): Компьютер бүрийн CPU, GPU, Sound Driver, OS-ийн аудио стекийн математик нарийвчлал болон DSP архитектур хоорондоо ялимгүй зөрүүтэй (subtle floating-point math differences) байдаг.
- Хурууны хээ гарган авах: Үүссэн аудио буферийн өгөгдлийг
AnalyserNodeэсвэл шуудFloat32Arrayруу хөрвүүлж, FFT (Fast Fourier Transform) хийн нийлбэр дүнгээр нь SHA/MD5 хэш үүсгэдэг. Энэ хэш нь тухайн төхөөрөмжийн хувьд цор ганц ID болж үлдэнэ.
Яагаад Bluetooth холболт гацаж байв?
Энэ нь вэбийн хийсвэр технологи бодит төхөөрөмжтэй хэрхэн мөргөлдөж байгаагийн сонгодог жишээ юм.
- Скрипт дууны долгион боловсруулахын тулд
AudioContext-ийг нээх үед хөтөч үйлдлийн систем рүү (Windows/macOS/Linux) аудио гаралтын сесс (Audio Stream) идэвхтэй байгаа тухай дохио илгээнэ. - Үйлдлийн систем нь холбогдсон Bluetooth чихэвч рүү A2DP протоколоор хоосон буюу чимээгүй (silent stream) өгөгдөл тасралтгүй цацаж эхэлнэ.
- Bluetooth Multipoint технологи нь хоёр төхөөрөмжөөс аудио дохио ирж байгаа эсэхийг ажиглаж, хамгийн сүүлд идэвхжсэн сувгийг тэргүүн ээлжинд сонгодог. Компьютерээс "дуу гарч байна" гэсэн төлөв тасралтгүй очсон тул чихэвч гар утасны бодит хөгжмийг тасалж, компьютерын чимээгүй урсгалыг сонсоод гацчихсан хэрэг юм.
Салбарын хариу үйлдэл ба Mozilla-гийн байр суурь
Уг хэрэг олон нийтэд цацагдсаны дараа Mozilla Firefox-ийн нууцлалын ахлах инженер Том Риттер (Tom Ritter) уг кодод дүн шинжилгээ хийсэн бөгөөд Firefox-ийн суурилсан privacy.fingerprintingProtection тохиргоо нь ийм төрлийн аудио графикт санамсаргүй чимээ (noise injection) нэмж, fingerprinting-ийг үр дүнгүй болгодог болохыг баталлаа.
Гэсэн хэдий ч Chrome болон бусад Chromium суурьтай хөтчүүд дээр эдгээр скрипт ямар нэг хэрэглэгчийн зөвшөөрөлгүйгээр цаанаа ажиллаж, төхөөрөмжийн нөөц болон аудио дамжуулалтад саад учруулсаар байна.
Хөгжүүлэгчид үүнээс юу сурах ёстой вэ?
- Телеметри ба Anti-Fraud скриптүүдийн нөлөө: Томоохон e-commerce системүүд залилангийн эсрэг төхөөрөмж таних скриптүүд суулгадаг ч тэдгээр нь хэрэглэгчийн UX болон техник хангамжид ямар нөлөө үзүүлж байгааг байнга хянах ёстой.
- Web Audio-г чөлөөлөх: Хэрэв та өөрийн системд Web Audio API ашиглаж байгаа бол тооцоолол хийж дуусмагц
audioContext.close()функцээр сессийг заавал хааж байх нь системийн нөөц болон аудио драйверуудыг чөлөөлнө. - Хурууны хээний эсрэг хамгаалалт: Веб стандартууд улам чангарч байгаа тул далд fingerprinting-д найдах бус, ил тод OAuth болон аюулгүй байдлын нээлттэй протоколууд руу шилжих нь найдвартай шийдэл болж байна.
Эх сурвалж: Hacker News (laserphile analysis), CyberInsider
Сэтгэгдэл
Ачаалж байна...