WordPress และ Drupal น่าจะเป็น CMS ยอดนิยมที่สุดสำหรับสร้างเว็บไซต์ อย่างไรก็ตาม ความนิยมทำให้พวกเขาเป็นเป้าหมายอร่อยสำหรับแฮกเกอร์และสแปมเมอร์ SEO แฮกเกอร์พยายามจัดการดัชนีการค้นหาให้รวมเนื้อหาที่ไม่สมควรอยู่ในตำแหน่งค้นหาสำคัญ เทคนิค Black Hat SEO นี้มีชื่อเล่นว่า "WordPress Pharma Hack หรือ SEO Spam"
ทำไมพวกเขาถึงทำอย่างนี้? คำตอบง่ายๆ การค้นหาออนไลน์เป็นแหล่งอ้างอิงที่สำคัญ และ SEO Hack เป็นวิธีง่ายที่สุดที่จะไปถึงนั้นโดยไม่ต้องทำงานหนัก มันรับประกันให้แฮกเกอร์ได้ตำแหน่งที่ถูกต้องใน SERP กรณีล่าสุดของ "Pharma Hack" หรือ "Pharma SEO Spam" ได้ปรากฏขึ้น
บทความเกี่ยวข้อง – WordPress Redirection Hack
การโจมตีนี้เปลี่ยนเส้นทางเว็บไซต์ WordPress หรือ Drupal ไปยังหน้าที่แสดงโฆษณาขายวิอากร้าและซีอาลิส บางครั้งอาจมีการติดเชื้อยาประเภทอื่นๆ แต่วิอากร้าและซีอาลิสเป็นที่พบบ่อยที่สุด
Viagra Site Hack: เว็บไซต์ของฉันติดเชื้อ Viagra Hack หรือไม่?
SEO Spam ยากต่อการตรวจจับ เพราะมองไม่เห็นโดยผู้ใช้หรือเว็บมาสเตอร์ สแปมเมอร์ทำทุกอย่างเพื่อซ่อนงานของพวกเขา ส่วนนี้เรียกว่า "Cloaking" (การปลอมแปลง) อย่างไรก็ตาม มีวิธีตรวจสอบว่าเว็บไซต์ติดเชื้อหรือไม่ นี่คือบางวิธี:
ตรวจสอบด้วย Google Search
รายการเว็บไซต์ที่ได้รับผลกระทบสามารถแสดงได้โดยการค้นหา Google ด้วยคีย์เวิร์ด viagra wp-page แต่เนื่องจากนโยบายของ Google Webmaster เว็บไซต์ที่ได้รับผลกระทบไม่มองเห็นได้บนหน้าแรก คุณต้องเลื่อนลงไปหน้า 3-4 หากเว็บไซต์ของคุณปรากฏในผลการค้นหา แสดงว่าคุณเป็นเหยื่อของ Pharma SEO Spam
รายการนี้รวมไม่เพียงแค่เว็บไซต์ที่ติดเชื้อ แต่ยังแสดงหน้าปลอมด้วย การคลิกหน้าเหล่านี้อาจเปลี่ยนเส้นทางคุณไปหน้าอื่น หรือโหลดเนื้อหาบนหน้าเดียวกันจากการติดเชื้อ
เพื่อตรวจสอบว่าหน้าไหนของเว็บไซต์คุณติดเชื้อ สแปม วิอากร้า ให้เพิ่มคีย์เวิร์ด "viagra " พร้อมโดเมนเนมของคุณใน Google Search เช่น viagra mydomain.com
ตรวจสอบผลลัพธ์กับ Google Bot
ตามที่กล่าวไว้ หน้าสแปมเหล่านี้มองไม่เห็นบนเครื่องมือค้นหา แต่ User Agent บางตัว เช่น Googlebot สามารถมองเห็นได้ เพื่อดูสิ่งที่ Googlebot มองเห็น คุณสามารถใช้ Browser User-Agent Switcher ได้ ติดตั้งได้สำหรับ Chrome หรือ Firefox
- ติดตั้ง Add-on User-Agent Switcher ที่ชอบ
- ไปที่หน้าเว็บที่ติดเชื้อ
- เปลี่ยนสตริง User-Agent เป็นหนึ่งในนี้:
a) Mozilla/5.0 (compatible; Googlebot/2.1; +https://www.google.com/bot.html)
b) Googlebot/2.1 (+https://www.google.com/bot.html) - คลิกขวาที่หน้า และดู Page Source จะเห็นการเปลี่ยนเส้นทาง
หมายเหตุ: หากเปิด User-Agent Switcher นานเกินไป คุณอาจถูกบล็อกหรือแบนจากเว็บไซต์ที่มีความปลอดภัยดี เพราะคุณจะปรากฏเป็น Googlebot
Drupal Pharma Hack: โครงสร้างของ Drupal Spam ผลลัพธ์:
การเกิดขึ้น
โจมตีนצלช่องโหว่ที่รู้จักหรือ Zero-day exploit ก่อน นี่คือรายการสิ่งที่อาจผิดพลาดได้ แต่นี่คือสาเหตุหลัก:
- SQL Injection หรือ XSS เกิดจากมาตรฐานโค้ดที่แย่ คุณควรเฝ้าดูทั้งสองอย่างนี้
- บัญชีอ่อนแอหรือรหัสผ่าน FTP เป็นสาเหตุหลักอันดับสอง ไม่กี่วันมา GitHub repo ของ Linux Kernel ถูกแฮ็กจากข้อมูลเข้าสู่ระบบที่อ่อนแอ
- ส่วนใหญ่ Directory Listing และ Error Displaying ถูกเปิดอยู่ ทำให้ไฟล์สำคัญอ่านได้แบบเปิดเผยบนเน็ต
- ปลั๊กอินที่ไม่ได้รับแพทช์หรือล้าสมัยเป็นสาเหตุหลักของการแฮ็ก WordPress และ Drupal คุณควรอัปเดตอยู่เสมอ
ความคงที่ (Persistence)
Drupal Pharma Hack ทำงานโดยแก้ไขเนื้อหาใน Root Directory ส่วนใหญ่การโจมตีสแปมเกิดผ่านโฟลเดอร์ /misc และ /includes สแปมเมอร์ได้รับ Persistence (การเข้าถึงยาวนาน) โดยวิธีที่รู้จัก:
- แก้ไขไฟล์เช่น
index.php, wp-page.php, nav.phpฯลฯ - เพิ่มหน้าใหม่ เช่น
leftpanelsin.php, cache.php - แก้ไข
xmlrpc.phpเพื่อหลบการตรวจจับของเว็บมาสเตอร์ - ใช้ Base64 Encoding ซ่อนโค้ด
- ซ่อนไฟล์สแปมใน
/imagesโฟลเดอร์ บอท Crawl ไม่คาดหวังไฟล์ที่นี่ จึงหลบการตรวจจับ - เพิ่มจุด (.) นำหน้านามสกุลไฟล์ ทำให้
.somefileกลายเป็นไฟล์ซ่อน - Cloaking: แยกแยะ Web Crawler จาก User Agent เนื้อหาที่ Googlebot เห็นต่างจากที่ User Mozilla เห็น
- ใช้ Cron Jobs เพื่อติดเชื้อซ้ำ
ผลลัพธ์
- เว็บไซต์เสียชื่อเสียงจากโฆษณาวิอากร้าและซีอาลิส
- ถูก Blacklist โดย Google
- ไม่ไว้วางใจโดยผู้ใช้
- อันดับการค้นหาลดลง
- สร้างคลิกให้เว็บไซต์อื่น
ทำไงเมื่อโดนแฮ็ก Drupal & WordPress Pharma?
Pharma Hack ซ่อนอยู่ ดังนั้นการหาไฟล์ติดเชื้อและลบจะเป็นงานนานและเหนื่อย นี่คือสิ่งที่ต้องทำ:
กู้คืนจาก Backup
การสร้าง Backup เต็มรูปแบบเป็นแนวทางที่แนะนำ ช่วยได้หากกระบวนการทำความสะอาดมีปัญหา ต้องมีแผน Backup พร้อมตลอด Backup ต้องรวม Core Files, Database, Plugin และ Theme Files
สแกนมัลแวร์บนเว็บไซต์
ใช้เครื่องมือสแกนมัลแวร์ออนไลน์เช่น VirusTotal รายงานการติดเชื้อ หรือลอง Astra Malware Scanner สแกนแม่นยำกว่า จะตรวจพบไฟล์และโค้ดอันตรายทั้งหมดในไม่กี่นาที ช่วยเร่งกระบวนการลบมัลแวร์
ลบไฟล์ที่ติดเชื้อ
- เข้าสู่ Server ผ่าน FTP หรือ File Manager
- ไปที่โฟลเดอร์ /wp-contents/
- หาไฟล์ที่ถูกแฮ็กในปลั๊กอิน ไฟล์แฮ็กจะมีคำว่
.class,.cache,.oldกลางคำ ซ่อนเป็นไฟล์ปลั๊กอิน จุด (.) นำหน้าชื่อไฟล์ทำให้ซ่อน เว้นแต่เลือก "Show Hidden Files" - ลบไฟล์เหล่านี้
ล้างโฟลเดอร์ Temporary
โฟลเดอร์ /wp-contents/temp/ อาจปรากฏจากการติดเชื้อ ไปที่ /wp-contents/temp/ และล้างเนื้อหา แฮกเกอร์ใช้ Temp folder และไฟล์ TMP หลีกเลี่ยงการเสียหายขณะติดตั้งมัลแวร์
ตรวจสอบไฟล์ .htaccess
.htaccess เป็นไฟล์ Config ของ Server กำหนดการจัดการ Request แฮกเกอร์ใช้ไฟล์นี้สร้าง Backdoor หาโค้ดแบบนี้:
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} 200
RewriteRule ^ - [L]
RewriteCond %{HTTP_USER_AGENT} (google|yahoo|msn|aol|bing) [OR] #checks for Google, Yahoo, msn, aol and bing crawler
RewriteCond %{HTTP_REFERER} (google|yahoo|msn|aol|bing)
RewriteRule ^(.*)$ somehackfile.php?$1 [L] #redirects to a hack file
คุณสามารถสร้าง .htaccess ใหม่ได้:
- เข้าสู่ WordPress Dashboard
- คลิก Settings
- เลือก Permalinks
- คลิก Save
ลบโค้ดอันตรายจาก Database
แนะนำ Backup ก่อนแก้ไข Database ซื้อบริการกำจัดมัลแวร์มืออาชีพ หรือลองทำเอง
- เข้าสู่ phpMyAdmin
- เลือก Database
- คลิกตาราง wp_options
- ค้นหา Malicious Entries ด้วยแท็บ Search
Malicious Entries ที่ต้องหา:
- wp_check_hash
- class_generic_support
- widget_generic_support
- ftp_credentials
- fwp
หมายเหตุ: ห้ามลบข้อมูลสำคัญใน wp_options จะทำให้เว็บไซต์ล้มเหลว/ครัช
ค้นหาและลบโค้ดน่าสงสัย
โค้ดตัวอย่างจะประมาณนี้:
<ul id="menu">
<li><a href="attackerdomain.com">Something1</a></li>
โค้ดนี้เปลี่ยนเส้นทางเว็บไซต์ไปโดเมนของโจมตี ตรวจสอบโดเมนที่ไม่คุ้นเคย นี่เป็นสาเหตุหลักของ WordPress Pharma Hack
บ่อยครั้งโจมตีซ่อนโค้ดด้วย Base64 หลบการตรวจจับ เช่น attackerdomain.com จะกลายเป็น YXR0YWNrZXJkb21haW4uY29t ทำให้ยากต่อการตรวจจับ คำสั่ง grep ช่วยหา Base64 ในไฟล์:
find . -name "*.php" -exec grep "base64"'{}'\; -print &> b64-detections.txt
คำสั่งนี้ค้นหา Base64 ในไฟล์ .php ที่เลือก ผลลัพธ์เก็บใน b64-detections.txt ใช้เครื่องมือออนไลน์ decode ดูว่าเกิดอะไรขึ้นข้างหลัง
ล้างโฟลเดอร์ Temporary (ซ้ำ)
ไปที่ /wp-contents/temp/และล้างเนื้อหา แฮกเกอร์ใช้ Temp folder และไฟล์ TMP หลีกเลี่ยงการเสียหายขณะติดตั้งมัลแวร์
ค้นหาความแตกต่างของเนื้อหา
ใช้ปลั๊กอินออนไลน์หาการเปลี่ยนแปลงไฟล์ ตัวอย่างคือ Exploit Scanner สแกน Core files และ Third-party files ใน WordPress Repo หาชื่อไฟล์/รายการน่าสงสัย/ผิดปกติ หลังรู้ไฟล์ไหนถูกแฮ็ก ให้ลบโค้ดติดเชื้อหรือกู้คืนไฟล์ปลั๊กอิน สำคัญคือทำความสะอาดให้หมด ไม่ให้เหลือโค้ดแฮ็กไว้ เพราะอาจติดเชื้อซ้ำ
ป้องกัน Pharma SEO Hack ได้อย่างไร
- ใช้รหัสผ่านแข็งแกร่ง เนื่องจากการละเมิดอาจมาจาก Default Config
- ติดตั้ง Security Solution
- จำกัด Folder Permission ป้องกัน WordPress Pharma Hack
- ปิดปลั๊กอินที่น่าสงสัยทั้งหมด
- เวอร์ชันเก่า ให้ Patch! Patch! Patch!
- ทำ Security Audit เป็นประจำ