WordPress Security 101 – ความปลอดภัยบน WordPress เบื้องต้น

เมื่อไม่นานมานี้ ได้ดูวีดีโอบน WordPress.tv อีกตัวเกี่ยวกับ WordPress Security 101 -ความปลอดภัยบน WordPress เบื้องต้น โดยคุณ Sam Hotchkiss ได้รับความรู้หลายๆ อย่าง ไม่ว่าจะเป็น ประเภทของการโจมตี วิธีป้องกัน และพฤติกรรมความเสี่ยงต่างๆ ผมได้สรุปและรวบรวมมาดังนี้

ไม่มีวิธีที่จะทำให้ WordPress ปลอดภัย 100%

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

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

 

เว็บไซต์เล็กๆ คงไม่มีใครโจมตีหรอก

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

 

มารู้จักประเภทของการโจมตี

  • ฝังโฆษณา โดนเอาโฆษณาเว็บอื่นมาใส่ เพื่อได้ยอดวิว ยอดคลิก
  • ฝัง Back-Link เพื่อประโยชน์ทาง SEO ถ้าใครไม่เอะใจ อาจจะโดนแบบเนียนๆ โดยไม่รู้ตัว
  • ฝัง Link ดาวน์โหลด ไวรัส มัลแวร์ ถ้า User คนไหนไม่ทราบ กดดาวน์โหลด กดรัน เท่านั้นละครับ เสร็จโจร กลายเป็นเว็บเราเป็นแหล่งเผยแพร่ไวรัส โดยปริยาย
  • ฝัง Redirect Link เพื่อวิ่งไปหาเว็บโป๊ เว็บอื่นๆ อันนี้ต้องสแกนหาทั้งเว็บ ปวดตับแน่ๆ
  • โดนเรียกค่าไถ่ ยึดเว็บไซต์ อันนี้หนักสุด ถ้าใครไม่ Back Up ไว้ อันนี้ ซวยสุดๆ ทำเว็บใหม่เถอะครับ T T

 

จุดอ่อน และพฤติกรรมเสี่ยง

  • Public Wifi ถ้าใครเผลอไปใช้ ต้องระวังโดนดักจับรหัสผ่าน ในขณะที่เรา Login เข้าสู่ระบบ
  • FTP การใช้ Protocal FTP (  File Transfer Protocal ) ไม่ปลอดภัยเป็นอย่างยิ่ง เพราะไฟล์ที่เราโยนขึ้นเซิฟเวอร์จะไม่มีการเข้ารหัสใดๆ
  • Share Host ควรเลือกที่ Hosting น่าเชื่อถือ เพราะ Server ที่เราใช้ก็ใช้ร่วมกับผู้อื่น ถ้าเว็บอื่นติดไวรัสมา พาลจะซวยเราไปด้วย
  • Plug-in, Themes ที่ Active, Inactive ที่ไม่อัพเดท ผมก็เพิ่งทราบว่า Plug-in ที่ Inactive ก็สามารถโดนโจมตีได้เหมือนกัน เค้าแนะนำว่า ถ้าไม่ใช้ ให้ลบออกไปเลยดีกว่า
  • WordPress Core ที่ไม่อัพเดท ควรอัพเดท ให้เป็นเวอร์ชั่นใหม่เสมอๆ เพื่อความปลอดภัย

 

วิธีป้องกันง่ายๆ

  • หมั่นอัพเดท WordPress Core, Plug-in, Themes อยู่เสมอ เพื่ออุดช่องโหว่ ที่เกิดขึ้นให้ทันอย่างท่วงที
  • ใช้ Themes, Plug-in จากแหล่งที่น่าเชื่อถือ ถ้าคุณใช้ของเถื่อน อาจจะมี code ยัดไส้เอาไว้ข้างใน โดยที่คุณไม่รู้ตัวก็ได้
  • จำกัดสิทธิ์ User ในการเข้าถึง ถ้าเว็บไซต์มีผู้ใช้หลายคนควรกำหนดสิทธิ์ ให้เท่าที่ควรจะได้
  • ใช้ Password ที่ STRONG !!! จงใช้รหัสผ่านที่เรารู้สึกหงุดหงิด ไม่อยากจำ ตัวอักษร เล็ก ใหญ่ ผสมด้วย อักขระและตัวเล็ก อันนั้นแหละที่ STRONG !!!
  • อย่าส่งรหัสผ่านอีเมลล์ มีความเสี่ยงสูงที่จะโดนดักจับ
  • ใช้ SSL, HTTPS เพื่อเข้ารหัสเว็บไซต์อีกหนึ่งชั้น ข้อมูลที่ถูกรับและส่ง จะมีการเข้ารหัส
  • Login ผ่าน WordPress.com เพราะเว็บไซต์ WordPress.com ใช้ HTTPS หากคุณเชื่อมต่อกับ JetPack แล้ว คุณสามารถจัดการเว็บไซต์ผ่าน WordPress.com ได้เลย เพราะเป็น Cloud Sync ข้อมูลตลอดเวลา
  • ใช้ Password Manager เช่น 1Password, LastPass เป็น Tools ที่ช่วยจัดการรหัสผ่าน
  • Two-Factor Authentication คือการยืนยันตัวตนแบบสองทาง

 

Security Tools

JetPack

Plug-in นี่เสมือนยาสามัญประจำบ้าน ที่มีเครื่องมือครบครัน หากใครต้องการ Install ต้องมี Account WordPress.com ก่อน สิ่งที่ Plug-in ตัวนี้มีให้ คือป้องกัน BruteForce Attack, สามารตั้งให้ Auto Update Plugin, หรือแจ้งเตือนให้รู้ว่า Site กำลัง Down, Auto Back Up ( อันนี้เสียตังค์ )

Sucuri Website Firewall

Tools ตัวนี้จะทำหน้าที่คล้าย CDN ของ Cloudflare จะเป็น Filter ซึ่งจะกรองผู้ไม่หวังดี ก่อนที่จะถึงเว็บไซต์ของคุณ วิธีใช้งานก็ต้อง Set Domain ให้ชี้ไปที่เซิฟเวอร์ของ Sucuri ก่อนแล้วจากนั้นค่อยชี้กลับมาที่เซิฟเวอร์เราอีกที ข้อดีอีกอย่างมันจะช่วยเก็บ Cache ให้เราด้วย ทำให้เว็บไซต์ที่เคยโหลดแล้ว ไม่ต้องดึงจากเว็บเราอีกครั้ง ซึ่งจะทำให้ Performance เร็วขึ้นด้วย

แล้วก็ยังมี Plug-in อีกมากมาย เช่น iThemes, WordFence

 

Hardening WordPress

ทำ WordPress ให้แข็ง…แรง ในทาง Security หมายความว่าคือการทำให้ระบบปลอดภัย โดยการลดช่องโหว่ต่างๆ การทำงานของระบบ ซึ่ง WordPress ก็มี ข้อแนะนำต่างๆ ในการทำให้เว็บไซต์ปลอดภัย เช่น

 

เลิกใช้ /wp-admin และ wp-login.php

เปลี่ยนชื่อ wp-admin เพื่อป้องกัน BruteForce Attack ถึงแม้จะไม่ได้ช่วยได้ 100% แต่ก็เพิ่มงาน และความยุ่งยากให้กับ Hacker ได้อีก หากใครอยากลองเปลี่ยนผมเจอ 1 ตัวที่น่าสนใจ ที่สามารถเปลี่ยน URL ในการ Login และ Disabled /wp-admin WPS Hide Login

 

ใส่ define(‘DISALLOW_FILE_EDIT, true’) ใน wp-config.php

ปลอดภัยไว้ก่อน ป้องกันไม่ให้ใครที่สามารถมีสิทธิ์ แก้ไฟล์ แก้ไฟล์ง่ายๆ ในหลังบ้านของเราได้ โดยใช้ Editor ได้

 

“ย้ายที่ wp-config.php “

อันนี้ผมก็พึ่งรู้ว่า เราสามารถย้าย wp-config.php ไปไว้นอก Folder ของเว็บไซต์อีก Level นึงของไซต์เราก็ได้ ก่อนย้ายควรจะตรวจสอบ Permission ในโฟลเดอร์ที่เราย้ายด้วย

 

เปลี่ยน Prefix Database, ไม่ควรเปิดให้รีโมต Database

ค่า Default คือ wp_ ตอนติดตั้งครั้งแรก จะมีให้ใส่ Prefix ของ Databse ขั้นตอนนั้นล่ะ เปลี่ยนซะ เพราะถ้ามาเปลี่ยนตอนหลังจะค่อนข้างยุ่งยาก ค่า Prefix ที่ตั้งไว้อยู่ใน wp-config.php

 

Key and Salts

ใน File wp-config.php ของเราจะมี Secret Key ในการเข้ารหัส เวลาที่เราทำการ Login ข้อมูลต่างๆ ที่เก็บใน COOKIE ก็จะถูกเข้ารหัสด้วย Secret Key ตัวนี้ ถึง Hacker เอาไปได้ก็จะได้ข้อมูลในรูปแบบ “88a7da62429ba6ad3cb3c76a09641fc” ซึ่งก็ต้องใช้เวลาเป็นปีที่ กว่าจะ Match กันเจอ ซึ่งถ้ารู้ว่าเว็บเราโดนแฮคแล้ว ให้รีบเอา Secret Key ตัวใหม่ได้ ที่นี่ แล้วเอาไปใส่แทนตัวเก่าซะ

 

โดนแฮค ติดไวรัสทำยังไงดี

  • รีบเปลี่ยน Password ให้หมดทุกอย่าง Hosting, DB, User Account
  • สแกนไฟล์ทุกไฟล์ ตรวจสอบทุกรูป เพราะบางที ไฟล์อาจจะเนียนมาในรูปแบบ extension ของรูปก็ได้
  • ลบ Host ทิ้งซะ เป็นไปได้สร้าง Instant ใหม่แล้วเพื่อให้ Clean ที่สุดให้มั่นใจว่าไม่มีไรแอบซ่อน
  • จากนั้นเอา Back Up ล่าสุดที่มั่นใจว่าสะอาดที่สุดมาทับซะ
  • ตรวจสอบ Cron Job บางทีทำขั้นตอนที่ว่ามาหมดแล้ว พอถึงเวลาก็เกิดขึ้นซ้ำอีกรอบ ตรวจสอบให้แน่ใจว่าไม่มี การรัน Background ซ่อนอยู่
  • หลังจากนั้นเปลี่ยน Password อีกรอบ
  • ไปพักผ่อน !!!

 

References

หากใครสนใจ อ่านข้อมูลเพิ่มเติม สามารถอ่านได้ที่นี่ครับ

Comments

Tagged , , ,
shares