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

PHP Backdoors & Web Shells: คำอธิบาย การตรวจจับ และคู่มือกำจัด

ในปัจจุบัน PHP เป็นเครื่องยนต์หลักที่ขับเคลื่อน CMS ยอดนิยมเกือบทุกตัว เช่น Prestashop, WordPress, Magento ฯลฯ ภาษาสคริปต์ฝั่งเซิร์ฟเวอร์นี้ได้รับความนิยมมากจนขับเคลื่อนเว็บไซต์เกือบ 80 เปอร์เซ็นต์บนอินเทอร์เน็ตวันนี้ อย่างไรก็ตาม ไซต์ที่ใช้ PHP ก็เป็นเป้าหมายหลักของแฮกเกอร์เช่นกัน เนื่องจากช่องโหว่หนึ่งสามารถทำงานได้ทั่วทั้งหมด เทคนิคที่ฉลาดมักถูกใช้เพื่อทำงานอันตรายเบื้องหลัง PHP web shell backdoor เป็นสคริปต์หรือโปรแกรมอันตรายอย่างหนึ่งที่ออกแบบมาเพื่อติดเชื้อเว็บไซต์ของคุณในความลับ

PHP web shell backdoor คืออะไร & ทำไมมันถึงติดเชื้อฉัน?

PHP web shell backdoors โดยพื้นฐานแล้วเป็นสคริปต์และโปรแกรมอันตรายที่ออกแบบมาเพื่อดำเนินการอันตรายหลากหลายบนไซต์ของคุณ Web shells แบบง่ายเป็นสคริปต์ที่ทำงานจากคำสั่ง PHP web shell อนุญาตให้โจมตีจัดการการบริหารของเซิร์ฟเวอร์ PHP ได้จากระยะไกล โจมตีสามารถเข้าถึงได้โดยใช้ URL บนอินเทอร์เน็ต Web shells ที่ซับซ้อนกว่ายังสามารถเข้าถึงหน่วยความจำได้โดยตรง

PHP Backdoors & Web Shells: คำอธิบาย การตรวจจับ และคู่มือกำจัด

บ่อยครั้ง การติดเชื้อเหล่านี้เกิดซ้ำแม้หลังทำความสะอาดแล้ว เนื่องจากออกแบบมาเพื่อรักษาการเข้าถึงอย่างต่อเนื่อง (persistent access) ส่วนใหญ่ของ backdoors ใช้เทคนิค obfuscation ต่างๆ เพื่อหลบหลีกการตรวจจับ บางตัวแม้แต่ implement อัลกอริทึมซับซ้อนเพื่อซ่อนอยู่ในหน่วยความจำโดยตรง

มีหลายวิธีที่ PHP web shell สามารถอยู่บนเว็บไซต์ของคุณได้ อย่างไรก็ตาม ปัญหาความปลอดภัยทั่วไปซึ่งอนุญาตให้เกิดการติดเชื้อนี้:

  • รหัสผ่านที่อ่อนแอหรือเป็นค่าเริ่มต้น
  • การอัปโหลดไฟล์ PHP ที่ไม่มีการจำกัด
  • การเขียนโค้ด PHP ไซต์ที่แย่ ทำให้รับอินพุตที่ไม่ได้รับการตรวจสอบ
  • PHP version ที่ล้าสมัย
  • การกำหนดค่า PHP ที่ไม่เหมาะสม
  • สิทธิ์ไฟล์ที่อ่อนแอของไฟล์สำคัญ
  • การรายงานข้อผิดพลาดและการเปิดเผยโค้ดที่ไม่เหมาะสม

บทความเกี่ยวข้อง – การแก้ไขปัญหาความปลอดภัยใน PHP

PHP web shell backdoor ทำได้อะไร?

PHP web shell backdoor แบบทั่วไป อนุญาตให้โจมตีรันคำสั่งบนเซิร์ฟเวอร์ PHP ของคุณได้เหมือนผู้ดูแลระบบ บางครั้ง โจมตีอาจพยายามยกระดับสิทธิ์ โดยใช้ shell นี้ โจมตีสามารถ:

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

บทความเกี่ยวข้อง – คู่มือแนวทางปฏิบัติด้านความปลอดภัย PHP และการกำจัดมัลแวร์ฉบับสมบูรณ์

PHP Web Shell Backdoor: การวิเคราะห์โค้ด

PHP web shell backdoor แบบทั่วไป ทำงานผ่านขั้นตอนต่อไปนี้:

ขั้นตอนแรกคือการเริ่มต้นตัวแปรระบบ (system variables) ในขณะทำเช่นนั้น web shell รับรองว่าไม่มีข้อความข้อผิดพลาดพิมพ์ออกมาเพื่อหลบหลีกการตรวจจับ ทำได้โดยการสร้างฟังก์ชัน x_die เมื่อมีข้อผิดพลาด ข้อความเกี่ยวกับปัญหาจะถูกส่งผ่านฟังก์ชันนี้ ฟังก์ชันนี้จึงใช้ฟังก์ชัน die() ของ PHP เพื่อออกจากสคริปต์ปัจจุบัน

PHP Backdoors & Web Shells: คำอธิบาย การตรวจจับ และคู่มือกำจัด

ขั้นตอนถัดไปคือตรวจสอบว่า web shell สามารถรันคำสั่งบนเซิร์ฟเวอร์ PHP ได้หรือไม่ สำหรับนี้ web shell ทั่วไปตรวจสอบฟังก์ชันการรันคำสั่งของ PHP ต่างๆ เช่น exec(), system() ฯลฯ

PHP Backdoors & Web Shells: คำอธิบาย การตรวจจับ และคู่มือกำจัด

จากนั้น PHP web shell ตรวจสอบการกำหนดค่าระบบ และตรวจสอบว่าสามารถ改动ได้โดย web shell หรือไม่ ในกรณีที่ฟังก์ชันการกำหนดค่าไม่มีอยู่ มันจะส่งข้อความ 'can not config' ไปยังฟังก์ชัน x_die()

PHP Backdoors & Web Shells: คำอธิบาย การตรวจจับ และคู่มือกำจัด

จากนั้น มันยังตรวจสอบ safe mode บนเซิร์ฟเวอร์ PHP Safe mode ของ PHP มักถูกปรับใช้บนเซิร์ฟเวอร์ร่วม นี่คือฟีเจอร์ที่ตรวจสอบว่ากระบวนการที่เปิดไฟล์เฉพาะเจาะจงถูกเรียกใช้โดยผู้ใช้ที่ยืนยันแล้ว ในกรณี safe mode เปิดใช้งาน web shell จะหยุดการดำเนินการต่อไป

if(x_ini_get(‘safe_mode’)){x_die(‘can not exec: safe mode active’);}

เมื่อเงื่อนไขทั้งหมดเป็นจริง web shell จะใช้บริการ Superfetch ของระบบ Windows เพื่อรันคำสั่ง

PHP Backdoors & Web Shells: คำอธิบาย การตรวจจับ และคู่มือกำจัด

PHP Web Shell Backdoor: การตรวจจับและการทำความสะอาด

  1. ตรวจสอบว่าคุณติดเชื้อ generic PHP web shell backdoor หรือไม่ โดยดูซอร์สโค้ดของไฟล์ PHP ทั้งหมดของคุณ
  2. หากค้นหาด้วยตนเองยาก ให้ ใช้คำสั่ง Grep
  3. ใช้คำสั่ง grep เพื่อค้นหา dump ของโค้ด web shell ภายในโฟลเดอร์ของคุณด้วยโค้ดนี้:
    grep -r "dump of web shell" /folderToSearch/
  4. วิธีนี้สามารถตรวจจับ generic web shell ได้ อย่างไรก็ตาม วิธีนี้มีข้อจำกัดของตัวเอง เพราะค้นหาได้เพียงประเภทเดียวของ generic web shell
  5. ในการค้นหา web shells อื่นๆ คุณต้องรู้ซอร์สโค้ด เพื่อแก้ปัญหานี้ คุณสามารถใช้เครื่องมือตรวจจับ web shell ที่มีให้ฟรีบน GitHub
  6. อย่าลืมตรวจสอบ logs สำหรับคำขอ HTTP ที่น่าสงสัย เพื่อตรวจจับ PHP web shell ลบ web shell ทันทีเมื่อคุณพบ
  7. ในกรณีที่ dump ของ PHP web shell พบในไฟล์ที่ละเอียดอ่อน ให้คอมเมนต์ออกและติดต่อผู้เชี่ยวชาญเพื่อการกำจัดมัลแวร์และการวิเคราะห์เพิ่มเติม

PHP Web Shell Backdoor: การบรรเทา (Mitigation)

  1. อัปเดต PHP version ให้เป็นปัจจุบัน
  2. หลีกเลี่ยงการใช้รหัสผ่านค่าเริ่มต้นหรืออ่อนแอ
  3. ตรวจสอบการกำหนดค่าไซต์ที่ผิดปกติเสมอ
  4. ให้แน่ใจว่าสิทธิ์ไฟล์ไม่ถูกตั้งเป็น 777 เพราะอาจอนุญาตให้ใครก็ได้แก้ไขไฟล์ของคุณ!
  5. ให้แน่ใจว่าปฏิบัติตามแนวทางการเขียนโค้ดที่ปลอดภัยขณะพัฒนาไฟล์ PHP
  6. ดำเนินการ penetration testing แบบครอบคลุมเพื่อค้นพบช่องโหว่ในไซต์ PHP ของคุณ

สรุป

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

มัลแวร์สแกนเนอร์อัตโนมัติของ Astra Security ตรวจจับ PHP web shells และมัลแวร์จำนวนมากในแค่หนึ่งคลิก เพิ่มเติม ไฟร์วอลล์ของ Astra Security ตรวจสอบเว็บไซต์ของคุณและบล็อกภัยคุกคามด้านความปลอดภัยที่จะมาถึง เลือกแผนตามความต้องการของคุณและเริ่มต้นวันนี้!