การโจมตี MarioNET ช่วยให้แฮกเกอร์ควบคุมเบราว์เซอร์ของคุณแม้ว่าคุณจะออกจากหน้าการโจมตีแล้วก็ตาม

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

การโจมตีครั้งใหม่ที่เรียกว่า MarioNET โดยนักวิจัยที่ค้นพบมันไฮไลท์ที่ API อาจถูกใช้ในทางที่ผิดหากไม่มีการป้องกันที่เหมาะสมอยู่ในสถานที่

การโจมตีอาศัย APIs HTML5 ที่มีอยู่ซึ่งเว็บเบราว์เซอร์ที่ทันสมัยทั้งหมดสนับสนุน ไม่ต้องการการติดตั้งซอฟต์แวร์หรือการโต้ตอบกับผู้ใช้และยังคงมีอยู่แม้หลังจากผู้ใช้ออกจากหน้าเว็บแล้วการโจมตีจะเกิดขึ้น

ผู้โจมตีอาจละเมิดทรัพยากรของคอมพิวเตอร์สำหรับกิจกรรมทุกประเภทรวมถึงการโจมตี DDOS การปฏิบัติการ crypto-mining หรือถอดรหัสรหัสผ่าน

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

MarioNET ใช้ Service Workers สคริปต์ที่ทำงานแยกจากเว็บเพจที่เยี่ยมชมและในพื้นหลังในการโจมตี แนวคิดหลักที่อยู่เบื้องหลัง Service Workers คือการย้ายการคำนวณบางอย่างไปยังเธรดแยกต่างหากเพื่อไม่ให้บล็อกหรือทำให้แอปหรือเว็บเพจช้าลงที่ผู้ใช้โต้ตอบ

วงจรชีวิตของ Service Workers นั้นไม่ขึ้นอยู่กับหน้าเว็บที่พวกเขาสร้างขึ้น พนักงานบริการไม่สามารถเข้าถึง DOM (โมเดลวัตถุเอกสาร) ของเว็บเพจและตัวแปรและหน้าที่ของพาเรนต์

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

โดยเฉพาะอย่างยิ่งระบบของเราบรรลุวัตถุประสงค์สำคัญสามประการ:

(i) การแยกออกจากเว็บไซต์ที่เยี่ยมชมทำให้สามารถควบคุมทรัพยากรที่ใช้อย่างละเอียด (ii) ความคงทนโดยดำเนินการต่อเนื่องบนพื้นหลังอย่างต่อเนื่องแม้หลังจากปิดแท็บหลัก และ (iii) การหลีกเลี่ยงการตรวจจับโดยส่วนขยายเบราว์เซอร์ที่พยายามตรวจสอบกิจกรรมของหน้าเว็บหรือการสื่อสารขาออก

MarioNET ลงทะเบียนพนักงานบริการเมื่อผู้ใช้เยี่ยมชมการโจมตีเว็บเพจสามารถเกิดขึ้นได้ ความเป็นไปได้ในการแพร่กระจายการโจมตีรวมถึงการสร้างเว็บไซต์ที่เป็นอันตรายเว็บไซต์แฮ็กหรือการใช้โฆษณา

เบราว์เซอร์ให้ข้อมูลเล็กน้อยแก่ผู้ใช้เกี่ยวกับ Service Workers ในความเป็นจริงเบราว์เซอร์ไม่เน้นการสร้างคนงานบริการใหม่ในเว็บไซต์ให้กับผู้ใช้ ไม่มีการแจ้งเตือนไม่มีข้อความแจ้งและไม่มีแม้แต่ตัวเลือกในการแสดงข้อความแจ้งให้ขออนุญาตจากผู้ใช้เมื่อมีการสร้างพนักงานบริการ

คำร้องขอเดียวที่เปิดเผยการมีอยู่ของพนักงานบริการคือคำขอ GET เริ่มต้น ณ เวลาที่มีการเยี่ยมชมเว็บไซต์ครั้งแรกของผู้ใช้เมื่อผู้ให้บริการลงทะเบียนครั้งแรก แม้ว่าในระหว่างที่ GET ร้องขอให้ส่วนขยายการตรวจสอบสามารถสังเกตเห็นเนื้อหาของพนักงานบริการได้ แต่ก็จะยังไม่สังเกตรหัสที่น่าสงสัยใด ๆ - รหัสที่จะดำเนินการงานที่เป็นอันตรายจะถูกส่งไปยังผู้รับใช้หลังจากการสื่อสารครั้งแรกกับ Puppeteer การสื่อสารนี้ถูกซ่อนจากส่วนขยายของเบราว์เซอร์

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

การป้องกัน

เบราว์เซอร์ที่ทันสมัยส่วนใหญ่มีตัวเลือกเพื่อแสดง Service Workers ที่มีอยู่ ผู้ใช้ Firefox สามารถโหลด : serviceworkers หรือ about: debugging # workers และผู้ใช้ Chrome สามารถโหลด chrome: // serviceworker-internals / เพื่อทำเช่นนั้น

คุณสามารถยกเลิกการลงทะเบียน Service Worker โดยใช้ฟังก์ชั่นที่มีให้ในหน้าเหล่านี้ ผู้ใช้ Firefox อาจปิดใช้งาน Service Workers ไปพร้อมกัน

โปรดทราบว่าสิ่งนี้อาจส่งผลกระทบต่อฟังก์ชันการทำงานบนไซต์ที่ใช้งานเพื่อจุดประสงค์ที่ชอบด้วยกฎหมาย คุณต้องตั้งค่ากำหนด dom.serviceWorkers.enabled เป็น false เมื่อ about: config

ส่วนขยายเบราว์เซอร์บางตัวเช่นตัวตรวจจับการทำงานของบริการสำหรับ Chrome และ Firefox จะแจ้งเตือนผู้ใช้เมื่อหน้าเว็บลงทะเบียนผู้ใช้งานบริการ

ตอนนี้คุณ : นักพัฒนาเบราว์เซอร์ควรใช้ระบบป้องกันเพิ่มเติมหรือไม่ (ผ่าน ZDNet)