แนะนำเทคนิคใหม่สำหรับการระบุระบบและเบราว์เซอร์ที่ซ่อนอยู่

กลุ่มนักวิจัยจากมหาวิทยาลัยเทคนิคแห่งกราซ (ออสเตรีย) ซึ่งก่อนหน้านี้เป็นที่รู้จักในด้านการพัฒนาวิธีการโจมตี MDS, เน็ตสเปกตรัม и ค้อนขว้าง, เปิด ข้อมูลเกี่ยวกับเทคนิคการวิเคราะห์ช่องทางของบุคคลที่สามใหม่ที่ช่วยให้คุณสามารถระบุเวอร์ชันที่แน่นอนของเบราว์เซอร์ ระบบปฏิบัติการที่ใช้ สถาปัตยกรรม CPU และการใช้โปรแกรมเสริมเพื่อต่อสู้กับการระบุตัวตนที่ซ่อนอยู่

ในการกำหนดพารามิเตอร์เหล่านี้ การเรียกใช้โค้ด JavaScript ที่จัดทำโดยนักวิจัยในเบราว์เซอร์ก็เพียงพอแล้ว ในทางปฏิบัติ วิธีการนี้ไม่เพียงแต่ใช้เป็นแหล่งข้อมูลเพิ่มเติมสำหรับการระบุตัวตนทางอ้อมของผู้ใช้เท่านั้น แต่ยังรวมถึงการกำหนดพารามิเตอร์ของสภาพแวดล้อมระบบสำหรับการใช้ช่องโหว่ตามเป้าหมาย โดยคำนึงถึงระบบปฏิบัติการ สถาปัตยกรรม และเบราว์เซอร์ วิธีการนี้ยังมีประสิทธิภาพเมื่อใช้เบราว์เซอร์ที่ใช้กลไกการบล็อกการระบุตัวตนที่ซ่อนอยู่ เช่น Tor Browser ต้นแบบซอร์สโค้ดพร้อมการนำวิธีการไปใช้ ที่ตีพิมพ์ ภายใต้ใบอนุญาต MIT

การพิจารณาจะทำบนพื้นฐานของการระบุรูปแบบสถานะคุณสมบัติใน JavaScript ซึ่งเป็นคุณลักษณะของเบราว์เซอร์ที่แตกต่างกันและลักษณะของเวลาดำเนินการของการดำเนินการ ขึ้นอยู่กับลักษณะของ JIT, CPU และกลไกการจัดสรรหน่วยความจำ การกำหนดคุณสมบัติทำได้โดยการสร้างรายการวัตถุทั้งหมดที่สามารถเข้าถึงได้จาก JavaScript เมื่อปรากฎว่าจำนวนวัตถุมีความสัมพันธ์โดยตรงกับเอ็นจิ้นเบราว์เซอร์และเวอร์ชันของมัน

ฟังก์ชั่น getProperties (o) {
ผลลัพธ์ var = [];
ในขณะที่ (o !== null) {
ผล = result.concat (Reflect.ownKeys (o));
o = Object.getPrototypeOf(o);
}
ส่งคืนผลลัพธ์;
}

ตัวอย่างเช่น สำหรับ Firefox เอกสารระบุว่ารองรับคุณสมบัติ 2247 ในขณะที่จำนวนจริงของคุณสมบัติที่กำหนดไว้ รวมถึงคุณสมบัติที่ไม่มีเอกสารคือ 15709 (ใน Tor Browser - 15639) สำหรับคุณสมบัติ Chrome 2698 ได้รับการประกาศ แต่ในความเป็นจริงแล้ว มีการนำเสนอ 13570 (ใน Chrome สำหรับ Android - 13119) จำนวนและค่าของคุณสมบัติแตกต่างกันไปในแต่ละเวอร์ชันของเบราว์เซอร์ไปยังเวอร์ชันของเบราว์เซอร์และระบบปฏิบัติการที่แตกต่างกัน

ค่าและการมีอยู่ของคุณสมบัติบางอย่างสามารถใช้เพื่อกำหนดประเภทของระบบปฏิบัติการได้ ตัวอย่างเช่น ใน Kubuntu คุณสมบัติ window.innerWidth ตั้งค่าเป็น 1000 และใน Windows 10 ตั้งค่าเป็น 1001 คุณสมบัติ window.navigator.activeVRDisplays มีให้ใช้งานบน Windows แต่ไม่มีให้ใช้งานบน Linux สำหรับ Android มีการเรียกเฉพาะหลายรายการ แต่ window.SharedWorker ไม่มี เพื่อระบุระบบปฏิบัติการ ขอเสนอให้ใช้การวิเคราะห์พารามิเตอร์ WebGL ซึ่งสถานะขึ้นอยู่กับไดรเวอร์ นอกจากนี้ การเรียก WEBGL_debug_renderer_infoextension ยังช่วยให้คุณรับข้อมูลเกี่ยวกับกลไกการเรนเดอร์ OpenGL ซึ่งจะแตกต่างกันไปในแต่ละระบบปฏิบัติการ

ในการกำหนด CPU จะใช้การประเมินความแตกต่างในเวลาดำเนินการของบล็อกโค้ดทั่วไปต่างๆ การประมวลผลซึ่งขึ้นอยู่กับสถาปัตยกรรมของชุดคำสั่งโดยคำนึงถึงพฤติกรรม JIT (กำหนดจำนวนการลงทะเบียน CPU ที่จะใช้ และในกรณีใด JIT จะสร้างโค้ดที่มีประสิทธิภาพพร้อมการปรับให้เหมาะสมและการใช้คำแนะนำเพิ่มเติม และเมื่อไม่ ) ในการกำหนดประเภทของระบบการจัดสรรหน่วยความจำและระบบปฏิบัติการ จะมีการวัดความแตกต่างของเวลาการจัดสรรหน่วยความจำสำหรับโครงสร้างต่างๆ ด้วย ซึ่งสามารถใช้เพื่อตัดสินขนาดของบล็อกหน่วยความจำ

พารามิเตอร์ที่กำหนดระหว่างการดำเนินการสคริปต์จะถูกเปรียบเทียบกับค่าอ้างอิงทั่วไปสำหรับสภาพแวดล้อมที่ทดสอบก่อนหน้านี้ ในระหว่างการทดสอบ เทคนิคที่พัฒนาขึ้นทำให้สามารถระบุสภาพแวดล้อมการทดสอบที่แตกต่างกัน 40 รายการได้อย่างแม่นยำ ระบุเวอร์ชันของเบราว์เซอร์ที่ใช้ ผู้ผลิต CPU ระบบปฏิบัติการที่ใช้ และข้อเท็จจริงที่ว่ามันทำงานบนฮาร์ดแวร์จริงหรือในเครื่องเสมือน

นอกจากนี้ ยังมีข้อสังเกตอีกว่ามีความเป็นไปได้ที่จะกำหนดส่วนเสริมของเบราว์เซอร์และแม้แต่การตั้งค่าส่วนเสริมแต่ละรายการ รวมถึงส่วนเสริมที่ออกแบบมาเพื่อบล็อกวิธีการระบุตัวตนที่ซ่อนอยู่หรือกิจกรรมโหมดการเรียกดูแบบส่วนตัว ในบริบทของวิธีการที่เสนอ การเพิ่มเติมดังกล่าวกลายเป็นแหล่งข้อมูลในการระบุตัวตนอีกแหล่งหนึ่ง การเพิ่มจะถูกกำหนดโดยการประเมินการบิดเบือนของพารามิเตอร์ของสภาพแวดล้อมดั้งเดิมที่เกิดจากการเพิ่ม

วิธีการระบุตัวตนอื่น ๆ รวมถึงการคำนึงถึงข้อมูลทางอ้อมเช่น ความละเอียดหน้าจอ, รายการประเภท MIME ที่รองรับ, พารามิเตอร์เฉพาะในส่วนหัว (HTTP / 2 и HTTPS) การวิเคราะห์การติดตั้ง ปลั๊กอินและแบบอักษรความพร้อมใช้งานของ Web API บางตัว เฉพาะกับการ์ดวิดีโอ คุณสมบัติ เรนเดอร์โดยใช้ WebGL และ ผ้าใบ, การจัดการ ด้วย CSS การวิเคราะห์คุณสมบัติการทำงานด้วย หนู и แป้นพิมพ์.

ที่มา: opennet.ru

เพิ่มความคิดเห็น