หนอน Facebook ทำงานอย่างไร


27

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

เพื่อน: "อย่าคลิกที่ลิงค์ที่คุณได้รับจากฉัน! มันติดเชื้อ! ฉันได้รับมันจาก(ชื่อ redacted) !!! ฉันขอโทษ! ฉันต้องหยุด******!
ฉัน: "คุณยอมรับแอปพลิเคชั่น FB สิ่งที่คุณต้องทำก็คือไปที่บัญชี -> การตั้งค่าความเป็นส่วนตัว -> แอพและเว็บไซต์และยกเลิกการยอมรับแอปพลิเคชันที่ละเมิด
เพื่อน:มันไม่ใช่แอพ ไม่ได้อยู่ในรายชื่อ ... มันเป็นหนอน

มันทำงานอย่างไร JavaScript shenanigans เมื่อบุคคลคลิกที่ลิงค์?

คำตอบ:


31

ใช่จาวาสคริปต์แน่นอน ฉันเพิ่งพบหนอนตัวนี้และพยายามถอดรหัสมัน

ปัญหาที่แท้จริงคืออะไร:

เวิร์ม Facebook ล่าสุดทำงานโดยให้ผู้ใช้เข้าชมหน้าซึ่งทำให้พวกเขาแทรกสตริง JavaScript ลงในแถบที่อยู่ของพวกเขาแล้วจึงดำเนินการ

ดังนั้นอย่าคัดลอกรหัส JavaScript ลงในแถบที่อยู่ของคุณ นั่นคือปัญหาหลัก และอย่าคลิกลิงก์ใด ๆ ที่คุณไม่ไว้วางใจ หรืออย่างน้อยก็เปิดลิงค์เหล่านั้นในหน้าต่างใหม่โดยใช้โหมดความเป็นส่วนตัว (Firefox) หรือโหมดไม่ระบุตัวตน (Chrome) เพื่อที่จะไม่สามารถเข้าถึงเซสชัน Facebook ของคุณได้


แฮกเกอร์ของเราทำอะไรเพื่อทำให้ผู้คนไม่ได้ตระหนักถึงสิ่งที่พวกเขากำลังทำอยู่

หนีสคริปต์

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

ตัวอย่างเช่นถ้าฉันมีฟังก์ชั่นที่เป็นอันตรายมากฉันจะหลบหนีและผู้ใช้จะเห็นเฉพาะ

ฟังก์ชั่น% 20test% 28% 29% 20% 7B% 20alert% 20% 28% 22LOL% 22% 29% 3B% 20% 7D

และ unescaped มันจะเป็น

ทดสอบฟังก์ชั่น () {alert ("LOL"); }

ดังนั้นสคริปต์จึง unescapes "ตัวเอง" ก่อนที่จะถูกดำเนินการ

ทำให้งง

ตอนนี้ก็เริ่มน่าเกลียด: ก่อนที่จะหลบหนีมันโค้ด JavaScript ชั่วร้ายจะทำให้สับสนกับชื่อฟังก์ชันเหมือนและตัวแปรเช่น_____x aLDIWEJสิ่งนี้ยังคงสมเหตุสมผลสำหรับ JavaScript แต่มนุษย์ไม่สามารถอ่านได้ทั้งหมด เสร็จสิ้นอีกครั้งเพื่อปกปิดความตั้งใจของแฮ็กเกอร์ Facebook ของเรา

ณ จุดนี้รหัสอาจมีลักษณะเช่นนี้:

ป้อนคำอธิบายรูปภาพที่นี่

สคริปต์ทำอะไร

สิ่งที่สคริปต์นี้ทำคือการใช้เซสชัน Facebook ปัจจุบันของคุณ เนื่องจากคุณลงชื่อเข้าใช้เว็บไซต์จึงสามารถทำสิ่งใดก็ได้ในชื่อของคุณ ตัวอย่างเช่นสิ่งที่สามารถทำได้ผ่านทาง API ของ Facebook คือ:

  • สร้างกิจกรรมเช่น"OMG ฉันเห็นว่าใครสะกดฉัน!"
  • พูดคุยกับผู้คน
  • โพสต์การอัพเดทสถานะ
  • เป็นต้น

ทั้งหมดนี้เกิดขึ้นจากการเรียกหน้า API ของ Facebook (หน้า PHP บางหน้าฉันลืมไปแล้ว)


5

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

ขาดการปิดใช้งานจาวาสคริปต์ / แฟลช / และสิ่งอื่น ๆ (ซึ่งเป็นสิ่งจำเป็นโดยเฟซบุ๊ก) คุณจะไม่สามารถป้องกันตัวเองจากการถูกโจมตีดังกล่าวได้

การทำงานที่รวดเร็วและสกปรก ... ก่อนที่คุณจะคลิกลิงก์ใด ๆ ในโพสต์ของผู้อื่น ... ดูว่ามันกำลังจะไปไหน หลีกเลี่ยงลิงก์ใด ๆ ที่ลงท้ายด้วยเครื่องหมายแฮช ("#") หรือมีการอ้างอิงจาวาสคริปต์บางประเภท ... หรือไม่มีลิงก์จริงใด ๆ (เช่นไม่ปรากฏว่าไปที่ URL ใด ๆ )

หรือคุณสามารถใช้แนวทางของฉัน ... และหลีกเลี่ยง facebook / twitter / etc ... อย่างสมบูรณ์ ฉันยังไม่พบอะไรเลยในบริการใด ๆ ที่ฉันจะกำหนดค่าหรือผู้นำเข้าให้ เพื่อน & ครอบครัวรู้วิธีส่งอีเมล ... หรือรับยังดีกว่า ... รับสาย (เพียงความเห็นของฉันสำหรับสิ่งที่คุ้มค่า)


1
ไม่ถูกต้องจริง ๆ ... มีวิธีมากมายในการปกป้องตนเองจากสิ่งนี้ คุณสามารถใช้ปลั๊กอินเช่น NoScript ตัวอย่างเช่นเพื่อไม่ใช้งานจาวาสคริปต์ คุณสามารถเปิดลิงก์ในหน้าต่างใหม่โดยใช้โหมดความเป็นส่วนตัว / โหมดไม่ระบุตัวตนและหน้าต่างใหม่จะไม่สามารถเข้าถึงเซสชัน Facebook ของคุณ หากความปลอดภัยของคุณพึ่งพาเพียงการหลีกเลี่ยงการเชื่อมโยงที่น่าสงสัยก็ไม่ได้ผล หากคุณใช้เครื่องมือการท่องเว็บที่ปลอดภัยอย่างถูกต้องคุณจะไม่ต้องกังวลกับการคลิกลิงก์ทุกครั้ง
Brian Schroth

@Brian Schroth: ดังที่ฉันพูดในโพสต์ของฉัน "ย่อจากการปิดการใช้งาน javascript / flash / .... " NoScript ทำอย่างนั้น คุณถูกต้องว่าการดูที่เป้าหมายของลิงก์จะไม่ช่วยให้คุณประหยัดจากการหาประโยชน์มากมาย ... โหมดไม่ระบุตัวตน & จะไม่ป้องกันคุณจากการได้รับไวรัส ... และยังทำให้เกิดปัญหาเมื่อพยายามติดตามลิงก์ระหว่างเซสชัน ในความเป็นจริง ... ผู้คนควรมีชีวิตอยู่ด้วยความกลัวในสิ่งที่อยู่นอกเหนือลิงก์ พวกเขาควรใช้เวลาสักครู่เพื่อคิดเกี่ยวกับสิ่งที่พวกเขาคลิก
TheCompWiz

1
NoScript ไม่ได้ปิดการใช้งาน Javascript มันให้การควบคุมอย่างละเอียดยิ่งกว่าสิ่งที่จาวาสคริปต์ทำและไม่ดำเนินการ คำตอบของคุณหมายความว่าหากคุณ "ปิดการใช้งาน Javascript" คุณจะไม่สามารถใช้ Facebook ได้อีกต่อไป แต่ถ้าคุณใช้ NoScript คุณสามารถอนุญาตสคริปต์ facebook.com ในขณะที่ยังคงได้รับการปกป้องจาก Javascript ของไซต์มัลแวร์แบบสุ่ม
Brian Schroth
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.