WordPress Malware & Virus

วิธีเช็กไฟล์แปลกปลอมใน WordPress เบื้องต้น

วิธีเช็กไฟล์แปลกปลอมใน WordPress เบื้องต้น

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

nn

ไฟล์แปลกปลอมคืออะไร และทำไมถึงอันตราย

n

ไฟล์แปลกปลอม (Suspicious Files) หมายถึงไฟล์ที่ไม่ได้มาจาก WordPress core, ธีม, หรือปลั๊กอินที่คุณติดตั้งเอง แต่ปรากฏอยู่ในโฟลเดอร์ของเว็บโดยไม่ทราบที่มา ไฟล์เหล่านี้มักถูกแฮกเกอร์ฝากไว้เพื่อใช้เป็น backdoor (ประตูลับ), web shell (สคริปต์ควบคุมเซิร์ฟเวอร์จากระยะไกล) หรือโค้ดส่ง spam/redirect ผู้เยี่ยมชมไปเว็บไม่พึงประสงค์

n

ไฟล์อันตรายเหล่านี้มักซ่อนตัวในรูปแบบต่าง ๆ เช่น

n

    n

  • ชื่อไฟล์ที่ดูเหมือนไฟล์ระบบ เช่น wp-loginn.php, wp-config.bak, index2.php
  • n

  • ไฟล์ .php ที่แทรกอยู่ในโฟลเดอร์รูปภาพ /wp-content/uploads/
  • n

  • ไฟล์ที่มีนามสกุลซ้อน เช่น image.jpg.php
  • n

  • ไฟล์ชื่อสุ่ม เช่น a3f9k2.php หรือสตริงยาว ๆ ที่ไม่มีความหมาย
  • n

nn

WordPress ติด Backdoor และ Malware — WP Doctor Thailand
Backdoor คือประตูลับที่แฮกเกอร์ฝังไว้ เพื่อกลับเข้ามาควบคุมเว็บได้แม้ถูกลบมัลแวร์ไปแล้ว

nn

วิธีเช็กไฟล์แปลกปลอมผ่าน File Manager (cPanel)

n

วิธีที่เข้าถึงได้ง่ายที่สุดสำหรับคนที่ไม่คุ้นเคยกับ SSH คือใช้ File Manager ใน cPanel

n

    n

  • เข้า cPanel → File Manager → นำทางไปยัง public_html (หรือโฟลเดอร์ที่ติดตั้ง WordPress)
  • n

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

  • เข้าไปตรวจโฟลเดอร์ /wp-content/uploads/ แล้วค้นหาไฟล์ .php หรือ .js ที่ไม่ควรอยู่ในโฟลเดอร์รูปภาพ
  • n

  • ใช้ฟีเจอร์ Search ของ File Manager ค้นหาไฟล์ *.php ทั้งหมดในโฟลเดอร์ uploads — ถ้าพบ ให้ถือว่าน่าสงสัยทันที
  • n

n

เมื่อพบไฟล์ที่ต้องการตรวจ ให้คลิก View หรือ Edit เพื่อดูเนื้อหา ถ้าเห็นโค้ดที่ถูก encode ด้วย base64_decode(), eval(), gzinflate(), หรือ str_rot13() ให้สันนิษฐานว่าเป็นโค้ดอันตราย

nn

ใช้ Plugin ตรวจสอบไฟล์เบื้องต้น

n

หากไม่สะดวกใช้ File Manager โดยตรง ปลั๊กอินต่อไปนี้ช่วยได้

n

    n

  • Wordfence Security — มีฟีเจอร์ File Change Detection เปรียบเทียบไฟล์ core WordPress กับไฟล์บน repository อย่างเป็นทางการ ถ้าไฟล์ใดถูกแก้ไขหรือเป็นไฟล์แปลกปลอมจะแจ้งเตือนทันที
  • n

  • Sucuri Security — สแกนไฟล์และแจ้ง integrity check พร้อมระบุไฟล์ที่ผิดปกติในรายงาน
  • n

  • WP Cerber Security — มี file monitoring และ quarantine ไฟล์น่าสงสัยได้
  • n

n

ควรใช้ปลั๊กอินเพื่อตรวจสอบ ร่วมกับ การตรวจด้วยตา ไม่ใช่แทนกัน เพราะมัลแวร์บางตัวหลบเลี่ยงการสแกนโดยอัตโนมัติได้

nn

บริการล้างไวรัส WordPress — WP Doctor Thailand
บริการตรวจสอบและกำจัดมัลแวร์บนเว็บ WordPress แบบมืออาชีพ

nn

ตรวจสอบไฟล์ Core WordPress ว่าถูกแก้ไขหรือไม่

n

WordPress core มีโครงสร้างไฟล์ที่แน่นอน ไฟล์ใดก็ตามในโฟลเดอร์ /wp-admin/ หรือ /wp-includes/ ที่ไม่ได้มาจาก WordPress จริง ๆ คือสัญญาณอันตราย

n

    n

  • ตรวจสอบไฟล์ wp-config.php ว่ามีโค้ดแปลก ๆ แทรกอยู่หรือไม่ โดยเฉพาะบรรทัดแรกก่อน <?php
  • n

  • ตรวจไฟล์ .htaccess ในโฟลเดอร์ root — มัลแวร์ประเภท redirect มักซ่อนอยู่ที่นี่ ดูปัญหาเว็บ WordPress เด้งไปเว็บพนันเป็นตัวอย่าง
  • n

  • เปรียบเทียบโฟลเดอร์ /wp-includes/ กับ WordPress เวอร์ชันเดียวกันที่ดาวน์โหลดใหม่จาก wordpress.org ถ้ามีไฟล์พิเศษที่ไม่อยู่ในชุดใหม่ ไฟล์นั้นคือไฟล์แปลกปลอม
  • n

nn

จุดสำคัญ: ไฟล์ .php ที่อยู่ใน /wp-content/uploads/ ทุกไฟล์ถือว่าผิดปกติ เพราะโฟลเดอร์นี้ไม่ควรมีโค้ด PHP อยู่เลย หากพบให้ลบทันทีและตรวจสอบว่าโฮสต์บล็อก PHP execution ใน uploads แล้วหรือยัง

nn

เมื่อพบไฟล์น่าสงสัย ควรทำอะไรต่อ

n

การพบไฟล์แปลกปลอมไม่ได้หมายความว่าต้องลบทันทีโดยไม่ดูอะไร ให้ทำตามขั้นตอนนี้

n

    n

  • ทำ backup ก่อน — ก่อนแตะไฟล์ใด ๆ ให้สำรองข้อมูลทั้งหมดไว้ก่อน
  • n

  • ดูเนื้อหาไฟล์ — ถ้าพบ eval(base64_decode(...)) หรือโค้ด obfuscate ให้สันนิษฐานว่าอันตรายและลบทิ้ง
  • n

  • ตรวจว่าไฟล์เดิมถูกแก้ไขหรือเปล่า — ถ้าเป็นไฟล์ core เช่น wp-login.php ให้ overwrite ด้วยไฟล์ใหม่สะอาดจาก wordpress.org
  • n

  • เปลี่ยนรหัสผ่านทันที — รหัส Admin, Database, FTP, Hosting ทั้งหมด
  • n

  • ตรวจ user accounts — ดูว่ามี admin account แปลก ๆ ถูกสร้างขึ้นหรือไม่
  • n

n

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

nn

วิธีป้องกันไฟล์แปลกปลอมในระยะยาว

n

    n

  • ตั้งค่าให้โฮสต์ บล็อก PHP execution ใน /uploads/ โดยสร้างไฟล์ .htaccess ในโฟลเดอร์ uploads ที่มี directive php_flag engine off
  • n

  • ใช้ปลั๊กอิน security ที่มี file integrity monitoring แจ้งเตือนทันทีเมื่อมีไฟล์ใหม่ถูกสร้าง
  • n

  • อัปเดต WordPress core, ธีม, และปลั๊กอินสม่ำเสมอ — ช่องโหว่ที่ไม่ได้ patch คือประตูเข้าหลักของแฮกเกอร์ เรียนรู้เพิ่มเติมว่าทำไม WordPress ถึงติดไวรัสบ่อย
  • n

  • จำกัด permission ของไฟล์ให้เหมาะสม: ไฟล์ 755 สำหรับโฟลเดอร์, 644 สำหรับไฟล์ทั่วไป, 600 สำหรับ wp-config.php
  • n

  • ทำ backup อัตโนมัติทุกวัน เพื่อให้สามารถ restore กลับมาได้หากเกิดปัญหา
  • n

คำถามที่พบบ่อย

ไฟล์ .php ในโฟลเดอร์ uploads อันตรายเสมอไหม

ใช่ โฟลเดอร์ uploads ออกแบบมาสำหรับเก็บรูปภาพและมีเดียเท่านั้น ไม่มีเหตุผลที่จะมีไฟล์ .php อยู่ที่นั้น ถ้าพบให้ถือว่าเป็นมัลแวร์จนกว่าจะพิสูจน์ได้ว่าไม่ใช่

ใช้ปลั๊กอินสแกนแล้วไม่พบอะไร แปลว่าเว็บปลอดภัยแน่นอนไหม

ไม่แน่เสมอไป มัลแวร์บางประเภทสามารถหลบหลีกการสแกนอัตโนมัติได้ ควรตรวจสอบด้วยตาร่วมกับปลั๊กอิน โดยเฉพาะโฟลเดอร์ uploads และไฟล์ .htaccess

ถ้าไม่แน่ใจว่าไฟล์ไหนแปลกปลอม ควรลบเลยไหม

ไม่ควรลบโดยไม่ตรวจก่อน ให้ทำ backup ก่อนเสมอ แล้วเปิดดูเนื้อหาไฟล์ ถ้าพบโค้ด eval หรือ base64_decode ให้ลบได้เลย แต่ถ้าไม่แน่ใจควรปรึกษาผู้เชี่ยวชาญ

ตรวจพบไฟล์แปลกปลอมเองแต่ไม่รู้จะเริ่มล้างยังไง ควรทำอะไร

ขั้นแรกให้ทำ backup ทั้งหมดก่อน จากนั้นเปลี่ยนรหัสผ่าน Admin และ Database ทันที แล้วพิจารณาใช้บริการผู้เชี่ยวชาญด้านมัลแวร์ WordPress เพื่อให้แน่ใจว่าล้างหมดทุกจุดโดยไม่มีตกหล่น

อ่านบทความหลักของหมวดนี้ WordPress ติดไวรัส คืออะไร? อาการและวิธีตรวจสอบเบื้องต้น

บทความอื่นในหมวดนี้

LINE ส่งปัญหา