คำแนะนำนี้ใช้สำหรับการแฮ็กประเภทที่เพิ่มหน้าที่เต็มไปด้วยคีย์เวิร์ดที่ไม่มีความหมายลงในไซต์ ซึ่งเราจะเรียกว่าการแฮ็กแบบปิดบังคีย์เวิร์ดและลิงก์ แม้ว่าคำแนะนำนี้จะออกแบบมาสำหรับผู้ที่ใช้ระบบจัดการเนื้อหา (CMS) ยอดนิยม แต่ก็มีประโยชน์สำหรับผู้ที่ไม่ได้ใช้ CMS ด้วยเช่นกัน
เราอยากแน่ใจว่าคู่มือนี้จะมีประโยชน์ต่อคุณจริงๆ แสดงความคิดเห็นเพื่อช่วยเราปรับปรุง
ระบุการแฮ็กประเภทนี้
การแฮ็กแบบปิดบังคีย์เวิร์ดและลิงก์จะสร้างหน้าจำนวนมากโดยอัตโนมัติซึ่งมีข้อความ ลิงก์ และรูปภาพที่ไม่มีความหมาย โดยบางครั้งหน้าเหล่านี้จะมีองค์ประกอบของเทมเพลตพื้นฐานจากเว็บไซต์ต้นฉบับ ดังนั้นเมื่อมองเผินๆ หน้าอาจดูเหมือนส่วนปกติของเว็บไซต์จนกว่าคุณจะได้อ่านเนื้อหาจริงๆ
หน้าเว็บที่ถูกแฮ็กนี้สร้างขึ้นเพื่อควบคุมปัจจัยการจัดอันดับของ Google แฮ็กเกอร์มักจะพยายามสร้างรายได้ด้วยการขายลิงก์ในหน้าเว็บที่ถูกแฮ็กแก่บุคคลที่สามรายอื่น บ่อยครั้งที่หน้าเว็บที่ถูกแฮ็กจะเปลี่ยนเส้นทางผู้เข้าชมไปยังหน้าที่ไม่เกี่ยวข้องซึ่งแฮกเกอร์สามารถสร้างรายได้
ให้เริ่มจากการตรวจสอบเครื่องมือปัญหาด้านความปลอดภัยใน Search Console เพื่อดูว่า Google ตรวจพบหน้าที่ถูกแฮ็กลักษณะนี้ในเว็บไซต์ของคุณหรือไม่ บางครั้งคุณอาจพบหน้าลักษณะนี้ได้ด้วยการเปิดหน้าต่าง Google Search และพิมพ์ site:_your site url_
โดยใส่ URL ระดับรากของเว็บไซต์ คำสั่งนี้จะแสดงหน้าเว็บที่ Google จัดทำดัชนีให้กับไซต์
รวมถึงหน้าที่ถูกแฮ็กด้วย เปิดดูผลการค้นหาเร็วๆ สัก 2-3 หน้าเพื่อดูว่าพบ URL ที่ผิดปกติบ้างไหม ถ้าไม่พบเนื้อหาที่ถูกแฮ็กใน Google Search ให้ใช้ข้อความค้นหาเดียวกันนี้กับเครื่องมือค้นหาอื่น ตัวอย่างหน้าตามีดังนี้
![ผลการค้นหาที่เกิดจากการแฮ็กนี้](https://web.dev/static/articles/fix-the-cloaked-keywords-hack/image/search-results-generated.png?authuser=6&hl=th)
โดยปกติแล้ว เมื่อคุณคลิกลิงก์ไปยังหน้าที่ถูกแฮ็ก คุณจะถูกเปลี่ยนเส้นทางไปยังเว็บไซต์อื่นหรือเห็นหน้าที่เต็มไปด้วยเนื้อหาที่ไม่มีความหมาย อย่างไรก็ตาม คุณยังอาจเห็นข้อความที่บ่งบอกว่าหน้านี้ไม่มีอยู่จริง (เช่น ข้อผิดพลาด 404) ด้วย แต่อย่าได้หลงกลไป แฮ็กเกอร์จะพยายามหลอกคุณ ว่าหน้านั้นได้หายไปหรือมีการแก้ไขแล้ว ซึ่งทำได้ด้วยการปิดบังเนื้อหา ให้ตรวจหาการปิดบังหน้าเว็บจริงโดยป้อน URL ของเว็บไซต์ในเครื่องมือตรวจสอบ URL เครื่องมือดึงข้อมูลเหมือนเป็น Google ช่วยให้คุณเห็นเนื้อหาที่ซ่อนอยู่ที่ซ่อนอยู่
หากพบปัญหาเหล่านี้ แสดงว่าเว็บไซต์ของคุณน่าจะได้รับผลกระทบจากการแฮ็กประเภทนี้
![ตัวอย่างหน้าเว็บที่สร้างโดยการแฮ็กนี้](https://web.dev/static/articles/fix-the-cloaked-keywords-hack/image/an-example-page-created-cc79e3659cd4c.png?authuser=6&hl=th)
แก้ไขการแฮ็ก
ก่อนที่จะเริ่ม ให้สร้างสำเนาแบบออฟไลน์ของไฟล์ก่อนที่จะลบไฟล์ออก เพื่อเผื่อไว้ในกรณีที่คุณต้องการนำกลับเข้าระบบในภายหลัง แต่ทางที่ดี คุณควรจะสำรองไซต์ไว้ทั้งไซต์ก่อนที่จะเริ่มขั้นตอนการทำความสะอาด ซึ่งทำได้โดยบันทึกไฟล์ทั้งหมดที่อยู่ในเซิร์ฟเวอร์ไว้นอกเซิร์ฟเวอร์ หรือหาตัวเลือกการสำรองข้อมูลที่ดีที่สุดสำหรับระบบจัดการเนื้อหา (CMS) ของคุณโดยเฉพาะ หากใช้ CMS ให้สำรองข้อมูลฐานข้อมูลด้วย
ตรวจสอบไฟล์ .htaccess
(3 ขั้นตอน)
การแฮ็กแบบปิดบังคีย์เวิร์ดและลิงก์ใช้ไฟล์ .htaccess
เพื่อสร้างหน้าที่ถูกปิดบังหน้าเว็บจริงในเว็บไซต์โดยอัตโนมัติ การอ่านข้อมูลเบื้องต้นเกี่ยวกับ .htaccess
ในเว็บไซต์ Apache อย่างเป็นทางการจะช่วยให้คุณเข้าใจได้ดีขึ้นว่าการแฮ็กส่งผลต่อเว็บไซต์อย่างไร แต่คุณอาจเลือกข้ามไปก่อนก็ได้
ขั้นตอนที่ 1
ค้นหาไฟล์ .htaccess
ในเว็บไซต์ของคุณ ถ้าไม่แน่ใจว่าอยู่ที่ใด และคุณใช้ CMS อย่างเช่น WordPress, Joomla หรือ Drupal ให้ค้นหา "ตำแหน่งไฟล์ .htaccess" ในเครื่องมือค้นหาพร้อมชื่อ CMS ของคุณ
คุณอาจเห็นไฟล์ .htaccess
หลายไฟล์ ซึ่งขึ้นอยู่กับเว็บไซต์ของคุณ
ให้สร้างรายการตำแหน่งของไฟล์ .htaccess
ทั้งหมด
ขั้นตอนที่ 2
เปิดไฟล์ .htaccess
เพื่อดูเนื้อหาในไฟล์ มองหาบรรทัดโค้ด
ที่มีลักษณะดังต่อไปนี้
RewriteRule (.*cj2fa.*|^tobeornottobe$) /injected_file.php?q=$1 [L]
ตัวแปรในบรรทัดนี้ไม่จำเป็นต้องเป็นแบบนี้ ทั้ง cj2fa
และ tobeornottobe
อาจเป็นตัวอักษรหรือคำผสมกันในรูปแบบใดก็ได้ แต่สิ่งสำคัญคือการระบุ .php
ที่อ้างอิงในบรรทัดนี้
จดไฟล์ .php
ที่ระบุไว้ในไฟล์ .htaccess
ในตัวอย่างนี้ ไฟล์ .php
ชื่อ injected_file.php
แต่ในความเป็นจริง ชื่อไฟล์จะไม่ชัดเจนนัก โดยปกติแล้วจะเป็นชุดคำที่ไม่เป็นอันตรายแบบสุ่ม เช่น horsekeys.php
หรือ potatolake.php
ไฟล์นี้อาจจะเป็นไฟล์ .php
ที่เป็นอันตราย ซึ่งเราต้องหาให้เจอและนำออกไปแล้วในภายหลัง
ขั้นตอนที่ 3
แทนที่ไฟล์ .htaccess
ทั้งหมดด้วยไฟล์ .htaccess
เวอร์ชันที่สะอาดหรือเป็นค่าเริ่มต้น โดยปกติคุณจะหาเวอร์ชันเริ่มต้นของไฟล์ .htaccess
ได้โดยค้นหา "ไฟล์ .htaccess
เริ่มต้น" และชื่อ CMS ของคุณ สำหรับเว็บไซต์ที่มีไฟล์ .htaccess
หลายไฟล์ ให้หาเวอร์ชันที่ปลอดภัยของแต่ละไฟล์และดำเนินการแทนที่
หากไม่มี .htaccess
เริ่มต้นอยู่และคุณไม่เคยกำหนดค่าไฟล์ .htaccess
ในเว็บไซต์ ไฟล์ .htaccess
ที่คุณพบในเว็บไซต์อาจเป็นอันตราย
บันทึกสำเนาของไฟล์ .htaccess
ไฟล์แบบออฟไลน์เพื่อเผื่อไว้ในกรณีที่นำไปใช้จากเว็บไซต์
ค้นหาและนำไฟล์อื่นๆ ที่เป็นอันตรายออก (5 ขั้นตอน)
การระบุไฟล์ที่เป็นอันตรายอาจเป็นเรื่องยุ่งยากและใช้เวลานาน ใช้เวลาอย่างเต็มที่ในการตรวจสอบไฟล์ หากยังไม่ได้ทำ ก็ควรจะสำรองข้อมูลไฟล์ในเว็บไซต์ ให้ค้นหาด้วยคำว่า "สำรองข้อมูลเว็บไซต์" และชื่อ CMS ของคุณใน Google เพื่อดูวิธีการสำรองข้อมูลเว็บไซต์
ขั้นตอนที่ 1
ถ้าคุณใช้ CMS ให้ติดตั้งไฟล์หลักทั้งหมด (ที่เป็นค่าเริ่มต้น) ที่อยู่ในชุดแพ็กเกจที่เป็นค่าเริ่มต้นของ CMS และไฟล์อื่นๆ ที่คุณอาจเพิ่มไว้ (เช่น ธีม โมดูล ปลั๊กอิน) ซึ่งจะช่วยให้แน่ใจว่าไฟล์เหล่านี้ ไม่มีเนื้อหาที่ถูกแฮก คุณสามารถค้นหา "ติดตั้งอีกครั้ง" และชื่อ CMS ใน Google เพื่อหาคำแนะนำในการติดตั้งอีกครั้ง ถ้าคุณมีปลั๊กอิน โมดูล ส่วนขยาย หรือธีม อย่าลืมติดตั้งรายการทั้งหมดนี้อีกครั้งด้วย
ขั้นตอนที่ 2
เริ่มด้วยการค้นหาไฟล์ .php
ที่คุณระบุไว้ในไฟล์ .htaccess
ก่อนหน้านี้ คุณควรมีฟังก์ชันการค้นหาบางประเภท ทั้งนี้ขึ้นอยู่กับวิธีที่คุณเข้าถึงไฟล์ในเซิร์ฟเวอร์ของคุณ ค้นหาชื่อไฟล์ที่เป็นอันตราย หากพบ ให้ทำสำเนาข้อมูลสำรองและจัดเก็บไว้ในตำแหน่งอื่นเผื่อไว้ในกรณีที่คุณต้องการกู้คืนก่อน จากนั้นจึงลบออกจากเว็บไซต์ของคุณ
ขั้นตอนที่ 3
มองหาไฟล์ที่เป็นอันตรายหรือถูกบุกรุกที่เหลืออยู่ คุณอาจนำไฟล์ที่เป็นอันตรายทั้งหมดออกไปแล้วใน 2 ขั้นตอนก่อนหน้านี้ แต่ก็ขอแนะนำให้คุณทำตาม 2-3 ขั้นตอนถัดไปนี้เผื่อในกรณีที่มีไฟล์อื่นๆ ที่ถูกบุกรุกบนเว็บไซต์ของคุณอีก
อย่าเพิ่งกังวลไปเพราะคิดว่าจะต้องเปิดและตรวจสอบไฟล์ PHP ทุกไฟล์ ให้เริ่มด้วยการสร้างรายการไฟล์ PHP ที่น่าสงสัยที่คุณต้องการตรวจสอบ ต่อไปนี้เป็นตัวอย่างวิธีพิจารณาว่าไฟล์ PHP ใดบ้างน่าสงสัย
- หากคุณโหลดไฟล์ CMS มาใหม่แล้ว ให้ดูเฉพาะไฟล์ที่ไม่ได้เป็นส่วนหนึ่งของไฟล์หรือโฟลเดอร์ CMS ที่เป็นค่าเริ่มต้น ซึ่งวิธีนี้จะทำให้ข้ามไฟล์ PHP ได้เป็นจำนวนมาก และเหลือไฟล์ที่ต้องตรวจสอบเพียงเล็กน้อย
- จัดเรียงไฟล์ในไซต์ตามวันที่แก้ไขครั้งล่าสุด มองหาไฟล์ที่มีการแก้ไขในช่วงเวลาที่ห่างจากเวลาที่คุณพบว่าไซต์ถูกแฮ็กเป็นครั้งแรกไม่กี่เดือน
- จัดเรียงไฟล์ในไซต์ตามขนาด มองหาไฟล์ที่มีขนาดใหญ่ผิดปกติ
ขั้นตอนที่ 4
เมื่อคุณมีรายชื่อไฟล์ PHP ที่น่าสงสัยเรียบร้อยแล้ว ให้ตรวจดูว่าไฟล์เหล่านั้นเป็นอันตรายหรือไม่ หากคุณไม่คุ้นเคยกับ PHP ขั้นตอนนี้อาจใช้เวลามากขึ้น ดังนั้นโปรดลองอ่านเอกสารประกอบเกี่ยวกับ PHP เพื่อเป็นการทบทวน หากคุณไม่เคยเขียนโค้ดมาก่อนเลย ขอแนะนำให้ขอความช่วยเหลือ แต่ในระหว่างนี้ คุณสามารถมองหารูปแบบพื้นฐานบางอย่างเพื่อระบุไฟล์ที่เป็นอันตราย
ถ้าคุณใช้ CMS และไม่ค่อยชอบแก้ไขไฟล์เหล่านั้นโดยตรง ให้เปรียบเทียบไฟล์ในเซิร์ฟเวอร์กับรายการไฟล์เริ่มต้นที่รวมอยู่ใน CMS รวมถึงปลั๊กอินและธีมต่างๆ มองหาไฟล์ที่ไม่ได้อยู่ในไฟล์ รวมถึงไฟล์ที่มีขนาดใหญ่กว่าเวอร์ชันเริ่มต้น
ขั้นแรก ให้ตรวจไฟล์ที่น่าสงสัยที่คุณได้ระบุไว้แล้วเพื่อหาบล็อกข้อความขนาดใหญ่ที่ดูเหมือนเป็นตัวอักษรและตัวเลขที่ผสมกันอย่างยุ่งเหยิง โดยปกติแล้ว บล็อกข้อความขนาดใหญ่จะนำหน้าด้วยฟังก์ชัน PHP ต่างๆ ที่รวมเข้าด้วยกัน เช่น base64_decode
, rot13
, eval
, strrev
หรือ gzinflate
ต่อไปนี้เป็นตัวอย่างลักษณะของบล็อกโค้ดดังกล่าว บางครั้งโค้ดนี้ทั้งหมดจะถูกอัดอยู่ด้วยกันในข้อความยาวๆ บรรทัดเดียว ซึ่งทำให้ดูเหมือนมีขนาดเล็กกว่าที่เป็นจริง
// Hackers try to confuse webmasters by encoding malicious code into
// blocks of text. Be wary of unfamiliar code blocks like this.
base64_decode(strrev("hMXZpRXaslmYhJXZuxWd2BSZ0l2cgknbhByZul2czVmckRWYgknYgM3ajFGd0FGIlJXd0Vn
ZgknbhBSbvJnZgUGdpNHIyV3b5BSZyV3YlNHIvRHI0V2Zy9mZgQ3Ju9GRg4SZ0l2cgIXdvlHI4lmZg4WYjBSdvlHIsU2c
hVmcnBydvJGblBiZvBCdpJGIhBCZuFGIl1Wa0BCa0l2dgQXdCBiLkJXYoBSZiBibhNGIlR2bjBycphGdgcmbpRXYjNXdmJ2b
lRGI5xWZ0Fmb1RncvZmbVBiLn5WauVGcwFGagM3J0FGa3BCZuFGdzJXZk5Wdg8GdgU3b5BicvZGI0xWdjlmZmlGZgQXagU2ah
1GIvRHIzlGa0BSZrlGbgUGZvNGIlRWaoByb0BSZrlGbgMnclt2YhhEIuUGZvNGIlxmYhRWYlJnb1BychByZulGZhJXZ1F3ch
1GIlR2bjBCZlRXYjNXdmJ2bgMXdvl2YpxWYtBiZvBSZjVWawBSYgMXagMXaoRFIskGS"));
บางครั้งโค้ดก็ไม่ได้ผสมปนเปกันจนยุ่งเหยิงและดูเหมือนเป็นสคริปต์ปกติ หากคุณไม่แน่ใจว่าเป็นโค้ดหรือไม่ ให้ลองไปที่ฟอรัมความช่วยเหลือสำหรับผู้ดูแลเว็บ ซึ่งกลุ่มผู้ดูแลเว็บที่มีประสบการณ์จะช่วยคุณตรวจสอบไฟล์ได้
ขั้นตอนที่ 5
เมื่อทราบแล้วว่าไฟล์ใดน่าสงสัย ให้สร้างข้อมูลสำรองหรือสำเนาในเครื่องโดยบันทึกไว้ในคอมพิวเตอร์เผื่อในกรณีที่ไฟล์ไม่เป็นอันตราย แล้วลบไฟล์ที่น่าสงสัยออกจากเว็บไซต์
ตรวจสอบว่าเว็บไซต์เป็นปกติแล้วหรือไม่
เมื่อกำจัดไฟล์ที่ถูกแฮ็กออกไปแล้ว ให้ตรวจสอบว่าความทุ่มเทของคุณไม่เสียเปล่า ยังจำหน้าที่ไม่มีความหมายที่คุณพบก่อนหน้านี้ได้ไหม ให้ใช้เครื่องมือโปรแกรม Googlebot จำลองอีกครั้ง เพื่อดูว่าหน้ายังอยู่หรือไม่ ถ้าผลจากโปรแกรม Googlebot จำลองออกมาว่า "ไม่พบ" ก็แสดงว่าไซต์น่าจะไร้ปัญหาใดๆ แล้ว
ฉันจะป้องกันการถูกแฮ็กอีกได้อย่างไร
การแก้ไขช่องโหว่ในเว็บไซต์เป็นขั้นตอนสุดท้ายที่จำเป็นสำหรับการแก้ปัญหาเว็บไซต์ ผลการศึกษาเมื่อเร็วๆ นี้พบว่า 20% ของไซต์ที่ถูกแฮ็กได้ถูกแฮ็กซ้ำภายใน 1 วัน การรู้อย่างแน่ชัดว่าไซต์ถูกแฮ็กได้อย่างไรจึงมีประโยชน์อย่างยิ่ง อ่านคำแนะนำเรื่องวิธีแฮ็กเว็บไซต์ที่นักส่งสแปมทำบ่อยที่สุดเพื่อเริ่มตรวจสอบ อย่างไรก็ตาม หากคุณหาไม่ได้ว่าเว็บไซต์ถูกแฮ็กได้อย่างไร ให้ลองดูรายการตรวจสอบสิ่งที่คุณทำได้เพื่อลดช่องโหว่ในเว็บไซต์ ดังนี้
- สแกนคอมพิวเตอร์เป็นประจำ: ใช้เครื่องมือสแกนไวรัสยอดนิยมเพื่อหาไวรัสหรือช่องโหว่
- เปลี่ยนรหัสผ่านเป็นประจำ: การเปลี่ยนรหัสผ่านของบัญชีทั้งหมดของเว็บไซต์เป็นประจำ เช่น ผู้ให้บริการโฮสติ้ง, FTP และ CMS จะช่วยป้องกันการเข้าถึงเว็บไซต์โดยไม่ได้รับอนุญาตได้ ซึ่งเป็นสิ่งสำคัญในการสร้างรหัสผ่าน ที่รัดกุมและไม่ซ้ำกันสำหรับแต่ละบัญชี
- ใช้การตรวจสอบสิทธิ์แบบ 2 ปัจจัย (2FA): พิจารณาเปิดใช้ 2FA ในบริการใดก็ตามที่กำหนดให้คุณต้องลงชื่อเข้าใช้ 2FA ทำให้แฮ็กเกอร์ลงชื่อเข้าใช้ได้ยากขึ้น แม้ว่าจะขโมยรหัสผ่านของคุณสำเร็จก็ตาม
- อัปเดต CMS, ปลั๊กอิน, ส่วนขยาย และโมดูลเป็นประจำ: หวังว่าคุณจะได้ทำตามขั้นตอนนี้แล้ว ไซต์จำนวนมากถูกแฮ็กเนื่องจาก ใช้ซอฟต์แวร์ที่ล้าสมัย ทั้งนี้ CMS บางระบบรองรับการอัปเดตอัตโนมัติด้วย
- พิจารณาสมัครใช้บริการรักษาความปลอดภัยเพื่อตรวจสอบเว็บไซต์: มีบริการดีๆ มากมายที่ช่วยคุณตรวจสอบเว็บไซต์ได้โดยคิดค่าธรรมเนียมเพียงเล็กน้อย ลองลงทะเบียนกับผู้ให้บริการดังกล่าวเพื่อให้ไซต์ปลอดภัย
แหล่งข้อมูลเพิ่มเติม
มีแหล่งข้อมูลอีกหลายรายการที่อาจช่วยคุณได้ หากคุณยังคงพบปัญหาในการแก้ไขเว็บไซต์
เครื่องมือเหล่านี้จะสแกนไซต์และอาจพบเนื้อหาที่มีปัญหา แต่นอกเหนือจาก VirusTotal แล้ว Google ไม่ใช้หรือรองรับเครื่องมืออื่นใดอีก
นี่เป็นเพียงเครื่องมือบางอย่างที่อาจสแกนเว็บไซต์เพื่อหาเนื้อหาที่เป็นปัญหาได้ โปรดทราบว่าโปรแกรมสแกนเหล่านี้ไม่สามารถรับประกันได้ว่าจะพบเนื้อหาที่มีปัญหาทุกประเภท
ทรัพยากรเพิ่มเติมจาก Google ที่ช่วยคุณได้มีดังนี้