ป้องกันเว็บโดนแฮก 12 มาตรการที่ต้องทำก่อนสายเกิน

รูปปกบทความ ป้องกันเว็บโดนแฮก 12 มาตรการที่ต้องทำก่อนสายเกิน

ป้องกันเว็บโดนแฮก 12 มาตรการที่ต้องทำก่อนสายเกิน

อยู่ ๆ ค้นหาเว็บตัวเองใน Google แล้วเจอหน้าแปลก ๆ หรือลูกค้าทักว่าเว็บคุณมีป๊อปอัปไม่พึงประสงค์ นั่นคือสัญญาณว่า เว็บโดนแฮก แล้ว และกว่าจะรู้ตัวก็มักสายเกินไป

บทความนี้จะบอก 5 สัญญาณที่ต้องระวัง ตามด้วย 12 มาตรการป้องกันที่ทำได้จริง พร้อมตาราง checklist เรียงตามความสำคัญ และ 5 ขั้นตอนที่ต้องทำทันทีถ้าโดนแฮกไปแล้ว

สัญญาณว่าเว็บโดนแฮก

นักแฮกส่วนใหญ่ไม่ทำให้เว็บล่ม แต่จะซ่อนตัวอยู่เงียบ ๆ เพื่อใช้ทรัพยากรของคุณ การจับสัญญาณให้ไวจึงสำคัญ

  1. มีหน้าแปลก ๆ โผล่ในผลค้นหา — หน้าเว็บที่คุณไม่ได้สร้าง มักเป็นภาษาต่างประเทศหรือขายยาลดน้ำหนัก
  2. เว็บช้าลงผิดปกติและมีทราฟฟิกพุ่งสูง — ทรัพยากรถูกใช้ส่งสแปมจากเซิร์ฟเวอร์คุณ
  3. ไฟล์หรือผู้ใช้ใหม่ที่ไม่ได้สร้าง — โฟลเดอร์ใน uploads ที่ไม่รู้จัก หรือบัญชีแอดมินที่ไม่เคยตั้ง
  4. เนื้อหา/ลิงก์ถูกแก้เอง — บทความเก่ามีลิงก์แปลก ๆ ฝังอยู่ หรือหน้าเว็บเปลี่ยนทั้งหน้า
  5. เบราว์เซอร์เตือนว่ามีมัลแวร์ — Google Safe Browsing ขึ้นเตือน หรือโฮสต์ส่งอีเมลแจ้งว่าพบไฟล์ต้องสงสัย

ถ้าเจอสัญญาณเหล่านี้ อย่ารอ ตรวจต่อทันที และอ่านหัวข้อ “ถ้าโดนแฮกแล้วทำยังไง” ด้านล่างก่อนเริ่มแก้

นอกจากมาตรการในบทความนี้ การเลือกผู้ให้บริการที่มีระบบความปลอดภัยพื้นฐานให้ตั้งแต่ต้นก็ช่วยลดภาระได้มาก เช่นที่ https://www.skyfast.co.th/

12 มาตรการป้องกันตามลำดับความสำคัญ

1. รหัสผ่านแข็งแรง + เปิด 2FA

รหัสผ่านควรยาว 12 ตัวขึ้นไป ผสมตัวเลขและสัญลักษณ์ ใช้ตัวจัดการรหัสผ่าน และเปิด Two-Factor Authentication ทั้งหลังบ้าน WordPress และหน้าจัดการโฮสติ้ง นี่คือมาตรการที่ได้ผลมากที่สุดและทำเร็วที่สุด

2. อัปเดต WordPress, ธีม และปลั๊กอินสม่ำเสมอ

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

3. ลบธีมและปลั๊กอินที่ไม่ได้ใช้ทิ้ง

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

4. เปิด WAF หรือระบบกรองคำขอ

WAF ช่วยกรองแพตเทิร์นโจมตีที่รู้จักก่อนถึงเซิร์ฟเวอร์ ใช้ของ Cloudflare ได้ (ตัวฟรีไม่รวม Managed WAF แต่ยังกรองพื้นฐานได้) หรือปลั๊กอินระดับแอปพลิเคชัน

5. ทำ backup สม่ำเสมอและทดสอบ restore

สำรองทั้งไฟล์และฐานข้อมูลด้วยแผน 3-2-1 และเก็บสำเนาสะอาดย้อนหลังหลายชุด ก่อนอัปเดตอะไรครั้งใหญ่ควรสำรองก่อนเสมอ — ดูรายละเอียดได้ในบทความเรื่องแผน backup 3-2-1 ในชุดนี้

6. ตั้งสิทธิ์ไฟล์ให้ถูกต้อง

โฟลเดอร์ 755 ไฟล์ 644 และห้ามใช้ 777 เด็ดขาด ตั้ง owner ให้ถูก โดยปกติเว็บไฟล์ควรเป็นของผู้ใช้เว็บและกรุ๊ปของเว็บเซิร์ฟเวอร์

7. สแกนมัลแวร์เป็นระยะ

ใช้ปลั๊กอินสแกนอย่าง Wordfence หรือ Sucuri ตั้งเวลาสแกนอัตโนมัติ และตรวจไฟล์ที่เปลี่ยนแปลงเทียบกับต้นฉบับของ WordPress

8. จำกัดการพยายาม login

จำกัดจำนวนครั้งและเปิดใช้ captcha เปลี่ยน URL หลังบ้านจาก /wp-admin เป็นอย่างอื่นเสริมได้ (แต่ไม่ใช่การป้องกันหลัก) และตั้งค่าให้บัญชีถูกล็อกชั่วคราวเมื่อใส่รหัสผิดหลายครั้ง

9. ปิด XML-RPC และผู้ใช้ที่ซ่อนอยู่

XML-RPC ถูกใช้ยิง brute force บ่อย ปิดถ้าไม่ได้ใช้ผ่านปลั๊กอินหรือ Nginx และตรวจว่าหน้า author archive ไม่เปิดเผยชื่อผู้ใช้

10. ติดตั้ง SSL และบังคับ HTTPS

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

11. เฝ้าดู log สม่ำเสมอ

ดู wp-content/debug.log, access.log และ error.log หาแพตเทิร์นแปลก เช่นคำขอ POST จาก IP เดียวจำนวนมาก หรือ 404 ผิดปกติ ถ้าดูเองไม่ไหวให้ใช้ระบบแจ้งเตือน

12. แยกบัญชีและเปิด firewall ระดับเซิร์ฟเวอร์

แยกบัญชีผู้ใช้สำหรับงานแต่ละอย่าง อย่าใช้แอดมินคนเดียวทำทุกอย่าง และเปิด firewall อนุญาตเฉพาะพอร์ตที่ใช้จริง เช่น SSH, HTTP, HTTPS ปิดพอร์ตฐานข้อมูลจากภายนอกด้วย

ตาราง checklist เรียงตามความสำคัญ

ลำดับ มาตรการ ผลกระทบ ความยาก ทำทันที
1 รหัสผ่านแข็ง + 2FA สูงมาก ง่าย ✓
2 อัปเดตสม่ำเสมอ สูงมาก ง่าย ✓
3 ลบปลั๊กอิน/ธีมไม่ได้ใช้ สูง ง่าย ✓
4 Backup + ทดสอบ restore สูงมาก กลาง ✓
5 จำกัดการ login สูง ง่าย ✓
6 สิทธิ์ไฟล์ถูกต้อง กลาง ง่าย ✓
7 SSL + HTTPS กลาง ง่าย ✓
8 WAF สูง กลาง
9 สแกนมัลแวร์ กลาง ง่าย
10 ปิด XML-RPC กลาง ง่าย
11 Monitor log กลาง กลาง
12 Firewall เซิร์ฟเวอร์ กลาง ยาก

หลักคิดคือเริ่มจากข้อง่ายที่ได้ผลสูงก่อน แล้วค่อยทำข้อที่ใช้ความชำนาญมากขึ้น

ถ้าโดนแฮกแล้วทำยังไง 5 ขั้น

  1. แยกเว็บออกจากอินเทอร์เน็ตก่อน — เปิดโหมด maintenance หรือปิดเว็บชั่วคราว เพื่อหยุดไม่ให้โจมตีต่อและไม่ให้ผู้ใช้ติดเชื้อจากเว็บคุณ
  2. สำรองหลักฐานไว้ก่อนแก้ — ดาวน์โหลดทั้งไฟล์และฐานข้อมูลที่ติดเชื้อเก็บไว้ เพื่อตรวจว่าอะไรถูกแก้และจุดเข้าคือตรงไหน
  3. หารูปแบบการติดเชื้อ — ดูไฟล์ที่ถูกแก้ใหม่ ปลั๊กอินต้องสงสัย บัญชีแอดมินแปลก ๆ และ cron job ที่ถูกเพิ่ม
  4. กู้จาก backup ที่สะอาด — ถ้าเขียนทับไม่สะอาดวิธีที่เร็วและชัวร์ที่สุดคือกู้จากสำเนาก่อนติดเชื้อ แล้วเปลี่ยนรหัสผ่านและ salt key ทั้งหมดทันที
  5. ปิดช่องโหว่ที่ทำให้เข้าได้ แล้วเฝ้าดู — อัปเดตทุกอย่าง ตรวจสิทธิ์ไฟล์ เปลี่ยนรหัสทั้งหมด และตรวจสอบทุกวันต่อเนื่อง 2–4 สัปดาห์ว่ากลับมาไหม

ขั้นที่คนมักข้ามคือขั้นที่ 2 และ 5 ซึ่งทำให้ต้องกลับมาแก้ซ้ำอีกรอบในอีกไม่กี่สัปดาห์

FAQ

เว็บเล็ก ๆ ไม่มีอะไรน่าสนใจ จะโดนแฮกจริงหรือ?

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

ปลั๊กอินด้านความปลอดภัยตัวเดียวพอไหม?

ไม่พอ มันช่วยเรื่องสแกนและจำกัด login แต่ไม่แก้ปัญหารหัสผ่านอ่อน ปลั๊กอินค้าง และไฟล์สิทธิ์ผิด ซึ่งต้องทำเอง

โดนแฮกแล้วต้องจ่ายค่าไถ่ไหม?

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

จะรู้ได้ยังไงว่า backup ของเราสะอาด?

ตรวจว่าไฟล์สำรองถูกสร้างก่อนวันที่เริ่มพบความผิดปกติ และก่อน test restore ให้สแกนไฟล์สำรองด้วยเครื่องมือสแกนมัลแวร์ก่อนเปิดใช้งาน

VPS ปลอดภัยกว่า Shared Hosting ไหม?

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

สรุป

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

และถ้าโดนแฮกขึ้นมาจริง อย่าตกใจ ให้ทำตาม 5 ขั้นตอนด้านบน และจำไว้ว่า backup ที่สะอาดคือเพื่อนที่ดีที่สุดของคุณในวันนั้น

จดโดเมน/เช่าโฮสติ้ง/VPS กับ Skyfast — https://www.skyfast.co.th/ โทร 095-441-3694

Leave a Reply

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *