علیاکسپرس با صدای ناشنیدنی کاربرها رو ردیابی میکرد
خلاصهٔ کاملتر
دن گودین توی آرستکنیکا گزارش داده که علیاکسپرس داشته بازدیدکنندههاش رو با یه روش قدیمیِ انگشتنگاری صوتی شناسایی میکرده. ماجرا رو متیو کالاهان، یه محقق امنیتی، کاملاً اتفاقی لو داد: هدفون بلوتوث multipoint اون (یعنی هدفونی که همزمان به چند دستگاه وصل میشه) هر بار که صفحهٔ اصلی علیاکسپرس باز میشد پخش صدای گوشی رو قطع میکرد، و با بستن اون تب دوباره صدا برمیگشت.
به گفتهٔ کالاهان، ته ماجرا دوتا اسکریپت بهشدت obfuscate شده بود که یه گراف WebAudio (یعنی همون API صوتی مرورگر) میساختن. یه oscillator موج شناختهشدهٔ sawtooth تولید میکنه و یه analyser دادهٔ فرکانسی خروجی رو بعد از عبور از پیادهسازی صوتی مرورگر میخونه. مقدار gain رو صفر میذارن که کاربر هیچی نشنوه، ولی چون گراف هنوز به خروجی صوتی سیستم وصله، مرورگر پردازشش میکنه و نتیجه برای علیاکسپرس فرستاده میشه.
چیزی که این روش رو کار میانداخت، تفاوت کتابخونههای ریاضی سیستمعامل بود؛ همین تفاوتها کنار CPU و بقیهٔ مشخصات دستگاه، امضاهای یکتای خیلی زیادی میساخت. فایرفاکس از نسخهٔ ۱۱۸ (سال ۲۰۲۳) کتابخونههای خودش رو جایگزین کرد و به گفتهٔ تام ریتر، توسعهدهندهٔ فایرفاکس، همین کار آنتروپی رو اونقدر پایین آورد که ترفند دیگه از کار بیفته. کروم هم چون کتابخونههای خودشو داره ایمنه و به احتمال زیاد سافاری هم همینطور.
پس چرا هنوز اونجاست؟ نویسنده میگه احتمالاً یه بازموندهٔ سالهای قبله که کسی حواسش بهش نبوده، چون علیاکسپرس بیشتر از دوازده روش انگشتنگاری دیگه هم داره: از canvas و اطلاعات WebGL گرفته تا device memory، رفتار WebRTC، رویدادهای موس و اسکرول و نشونههای اتوماسیون مرورگر. نویسنده اضافه میکنه هنوز معلوم نیست بقیهٔ این روشها چقدر مؤثرن، ولی تقریباً حتمیه که هزاران سایت دیگه هم سراغ ترفندهای مشابه رفتن.
نکات کلیدی:
- متیو کالاهان با قطعشدن صدای هدفون multipointش متوجه انگشتنگاری صوتی علیاکسپرس شد.
- روش کار: یه oscillator با موج sawtooth و یه analyser روی WebAudio، با gain صفر تا کاربر چیزی نشنوه.
- فایرفاکس از نسخهٔ ۱۱۸ (۲۰۲۳) با کتابخونههای ریاضی خودش این ترفند رو بیاثر کرد؛ کروم هم به همین دلیل ایمنه.
- علیاکسپرس بیشتر از دوازده روش انگشتنگاری دیگه مثل canvas، WebGL و WebRTC هم بهکار میبره.




