Chrome Dev Summit 2018 is happening now and streaming live on YouTube. Watch now.

การแก้ปัญหาการแฮ็กแบบปิดบังคีย์เวิร์ดและลิงก์

คำแนะนำนี้ใช้สำหรับการแฮ็กประเภทที่เพิ่มหน้าที่เต็มไปด้วยคีย์เวิร์ดที่ไม่มีความหมายลงในไซต์ ซึ่งเราจะเรียกว่าการแฮ็กแบบปิดบังคีย์เวิร์ดและลิงก์ แม้ว่าคำแนะนำนี้จะออกแบบมาสำหรับผู้ที่ใช้ระบบจัดการเนื้อหา (CMS) ยอดนิยม แต่ก็มีประโยชน์สำหรับผู้ที่ไม่ได้ใช้ CMS ด้วยเช่นกัน

หมายเหตุ: หากไม่แน่ใจว่าไซต์ของคุณถูกแฮ็กหรือไม่ ให้เริ่มด้วยการอ่านคำแนะนำเกี่ยวกับวิธีตรวจสอบว่าไซต์ถูกแฮ็กหรือไม่

สารบัญ

การระบุประเภทของการแฮ็ก

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

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

ในการตรวจสอบปัญหานี้ ให้เริ่มด้วยเครื่องมือปัญหาด้านความปลอดภัยใน Search Console เพื่อดูว่า Google พบตัวอย่างหน้าที่ถูกแฮ็กในไซต์หรือไม่ บางครั้งคุณอาจพบหน้าลักษณะนี้ได้ด้วยการเปิดหน้าต่าง Google Search และพิมพ์ site:[your site] คำสั่งนี้จะแสดงหน้าเว็บที่ Google จัดทำดัชนีให้กับไซต์ ซึ่งรวมถึงหน้าที่ถูกแฮ็กด้วย ดูหน้าในผลการค้นหาเร็วๆ สัก 2-3 หน้าเพื่อดูว่าพบ URL ที่ผิดปกติบ้างไหม ถ้าไม่พบเนื้อหาที่ถูกแฮ็กใน Google Search เลย ให้ลองใช้ข้อความค้นหาเดียวกันนี้กับเครื่องมือค้นหาอื่น เนื่องจากเครื่องมือค้นหาอื่นๆ อาจแสดงเนื้อหาที่ถูกแฮ็กซึ่ง Google ได้นำออกจากดัชนีไปแล้ว โดยอาจมีลักษณะดังนี้

หมายเหตุ: โปรดสังเกตว่าผลการค้นหานี้มีหลายหน้าที่เจ้าของไซต์ไม่ได้สร้างขึ้น ถ้าดูคำอธิบายของผลการค้นหาที่ 2 และ 3 โดยละเอียด คุณจะเห็นตัวอย่างข้อความที่ไม่มีความหมายที่การแฮ็กประเภทนี้สร้างขึ้น

เมื่อไปที่หน้าที่ถูกแฮ็ก คุณอาจเห็นข้อความที่บ่งบอกว่าหน้านี้ไม่มีอยู่จริง (เช่น ข้อผิดพลาด 404) แต่อย่าได้หลงกลไป แฮ็กเกอร์จะพยายามหลอกคุณว่ามีการแก้ไขไซต์แล้ว โดยทำให้คุณเข้าใจว่าหน้าที่ถูกแฮ็กได้หายไปหรือมีการแก้ไขแล้ว ซึ่งทำได้ด้วยการปิดบังเนื้อหา ให้ตรวจสอบว่ามีการปิดบังเนื้อหาหรือไม่โดยป้อน URL ของไซต์ในเครื่องมือโปรแกรม Googlebot จำลอง ซึ่งจะแสดงเนื้อหาที่ซ่อนอยู่ข้างใต้ให้คุณเห็น ด้านล่างนี้เป็นตัวอย่างหน้าที่ถูกแฮ็กลักษณะดังกล่าว

การแก้ไขการแฮ็ก

ก่อนที่จะเริ่มแก้ไข ให้สร้างสำเนาแบบออฟไลน์ของไฟล์ก่อนที่จะลบไฟล์ออก เพื่อเผื่อไว้ในกรณีที่คุณต้องการนำกลับเข้าระบบในภายหลัง แต่ทางที่ดี คุณควรจะสำรองไซต์ไว้ทั้งไซต์ก่อนที่จะเริ่มขั้นตอนการทำความสะอาด ซึ่งทำได้โดยบันทึกไฟล์ทั้งหมดในเซิร์ฟเวอร์เก็บไว้นอกเซิร์ฟเวอร์ หรือหาตัวเลือกที่ดีที่สุดในการสำรองข้อมูลสำหรับระบบจัดการเนื้อหา (CMS) ของคุณ

ตรวจสอบไฟล์ .htaccess (3 ขั้นตอน)

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

ขั้นตอนที่ 1

ค้นหาไฟล์ .htaccess ในไซต์ ถ้าไม่แน่ใจว่าอยู่ที่ใด และคุณใช้ CMS อย่างเช่น WordPress, Joomla หรือ Drupal ให้ค้นหา "ตำแหน่งไฟล์ .htaccess" ในเครื่องมือค้นหาควบคู่กับชื่อ CMS ที่คุณใช้ คุณอาจเห็นไฟล์ .htaccess หลายไฟล์ ซึ่งขึ้นอยู่กับไซต์ของคุณ ให้จดตำแหน่งของไฟล์ .htaccess ทั้งหมดไว้

หมายเหตุ: ไฟล์ .htaccess มักเป็น "ไฟล์ที่ซ่อนอยู่" อย่าลืมเปิดให้แสดงไฟล์ที่ซ่อนอยู่ เมื่อคุณค้นหาไฟล์

ขั้นตอนที่ 2

เปิดไฟล์ .htaccess เพื่อดูเนื้อหาในไฟล์ โดยในไฟล์นี้ คุณควรจะพบบรรทัดที่มีโค้ดลักษณะดังนี้

  RewriteRule (.*cj2fa.*|^tobeornottobe$) /injected_file.php?q=$1 [L]

ตัวแปรในบรรทัดนี้ไม่จำเป็นต้องเป็นแบบนี้ ทั้ง "cj2fa" และ "tobeornottobe" อาจเป็นตัวอักษรหรือคำที่ผสมกันอย่างไรก็ได้ แต่ที่สำคัญคือให้มองหาไฟล์ .php ที่ระบุในบรรทัดนี้

จดชื่อไฟล์ .php ที่ระบุในไฟล์ .htaccess ไว้ โดยในตัวอย่างนี้ ไฟล์ .php มีชื่อว่า "injected_file.php" ซึ่งอันที่จริง ชื่อไฟล์ .php จะไม่บ่งบอกชัดเจนแบบนี้ กล่าวคือโดยปกติจะเป็นชุดคำที่สุ่มขึ้นมา อย่างเช่น "horsekeys.php", "potatolake.php" ซึ่งฟังดูไม่น่ากลัวแต่อย่างใด แต่มีโอกาสสูงที่จะเป็นไฟล์ .php ที่เป็นอันตราย ซึ่งเราจะต้องหาให้พบและนำออกไปในภายหลัง

อย่างไรก็ตาม ไม่ใช่ว่าทุกบรรทัดใน .htaccess ที่มี RewriteRule และไฟล์ .php จะเป็นอันตราย หากไม่แน่ใจว่าโค้ดบรรทัดใดใช้ทำอะไร คุณก็ขอรับความช่วยเหลือจากกลุ่มผู้ดูแลเว็บที่มีประสบการณ์ได้ในฟอรัมความช่วยเหลือสำหรับผู้ดูแลเว็บ

ขั้นตอนที่ 3

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

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

การค้นหาและนำไฟล์อื่นที่เป็นอันตรายออก (5 ขั้นตอน)

การระบุไฟล์ที่เป็นอันตรายอาจเป็นเรื่องยุ่งยากและใช้เวลาหลายชั่วโมง ให้ใช้เวลาอย่างเต็มที่ในการตรวจสอบไฟล์ ถ้าคุณยังไม่ได้สำรองไฟล์ในไซต์ ก็ควรทำตอนนี้เลย ให้ค้นหาด้วยคำว่า "สำรองข้อมูลในไซต์" และชื่อ CMS ของคุณใน Google เพื่อหาคำแนะนำเกี่ยวกับวิธีสำรองข้อมูลในไซต์

ขั้นตอนที่ 1

ถ้าคุณใช้ CMS ให้ติดตั้งไฟล์หลักทั้งหมด (ที่เป็นค่าเริ่มต้น) ที่อยู่ในชุดแพ็กเกจที่เป็นค่าเริ่มต้นของ CMS และไฟล์อื่นๆ ที่คุณอาจเพิ่มไว้ (เช่น ธีม โมดูล ปลั๊กอิน) ซึ่งจะช่วยให้แน่ใจได้ว่าไฟล์เหล่านี้ปลอดจากเนื้อหาที่ถูกแฮ็ก คุณสามารถค้นหาด้วยคำว่า "ติดตั้งใหม่" และชื่อ CMS ใน Google เพื่อหาคำแนะนำเกี่ยวกับขั้นตอนการติดตั้งใหม่ ถ้าคุณมีปลั๊กอิน โมดูล ส่วนขยาย หรือธีม อย่าลืมติดตั้งรายการทั้งหมดนี้อีกครั้งด้วย

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

ขั้นตอนที่ 2

เริ่มด้วยการมองหาไฟล์ .php ที่คุณพบในไฟล์ .htaccess ก่อนหน้านี้ คุณควรจะมีฟังก์ชันการค้นหาบางประเภท ซึ่งขึ้นอยู่กับว่าคุณกำลังเข้าถึงไฟล์ใดในเซิร์ฟเวอร์ของคุณ ให้ค้นหาชื่อไฟล์ที่เป็นอันตราย ถ้าคุณพบ ก่อนอื่นให้สร้างสำเนาเก็บไว้ในตำแหน่งอื่นเพื่อใช้ในกรณีที่คุณต้องการคืนค่า จากนั้นลบออกจากไซต์

ขั้นตอนที่ 3

มองหาไฟล์ที่เป็นอันตรายหรือไฟล์ที่ถูกแฮ็กอื่นๆ ที่ยังหลงเหลืออยู่ คุณอาจนำไฟล์ที่เป็นอันตรายทั้งหมดออกไปแล้วใน 2 ขั้นตอนก่อนหน้านี้ แต่ก็ควรจะทำต่อในขั้นตอนต่อๆ ไป เนื่องจากอาจมีไฟล์อื่นๆ ที่ถูกแฮ็กหลงเหลืออยู่ในไซต์

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

  • ถ้าคุณโหลดไฟล์ CMS มาใหม่แล้ว ให้ดูเฉพาะไฟล์ที่ไม่ได้เป็นส่วนหนึ่งของไฟล์หรือโฟลเดอร์ CMS ที่เป็นค่าเริ่มต้น ซึ่งวิธีนี้จะทำให้ข้ามไฟล์ PHP ได้เป็นจำนวนมาก และเหลือไฟล์ที่ต้องตรวจสอบเพียงเล็กน้อย
  • จัดเรียงไฟล์ในไซต์ตามวันที่แก้ไขครั้งล่าสุด มองหาไฟล์ที่มีการแก้ไขในช่วงเวลาที่ห่างจากเวลาที่คุณพบว่าไซต์ถูกแฮ็กเป็นครั้งแรกไม่กี่เดือน
  • จัดเรียงไฟล์ในไซต์ตามขนาด มองหาไฟล์ที่มีขนาดใหญ่ผิดปกติ

ขั้นตอนที่ 4

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

ขั้นแรก ให้ตรวจไฟล์ที่น่าสงสัยที่คุณได้ระบุไว้แล้วเพื่อหาบล็อกข้อความขนาดใหญ่ที่ดูเหมือนเป็นตัวอักษรและตัวเลขที่ผสมกันอย่างยุ่งเหยิง ปกติแล้วบล็อกข้อความขนาดใหญ่นี้จะนำหน้าด้วยฟังก์ชัน PHP ต่างๆ ที่รวมเข้าด้วยกัน เช่น base64_decode, rot13, eval, strrev, gzinflate ต่อไปนี้เป็นตัวอย่างบล็อกโค้ดดังกล่าว บางครั้งโค้ดเหล่านี้ทั้งหมดจะถูกอัดอยู่ด้วยกันในข้อความยาวๆ บรรทัดเดียว ซึ่งทำให้ดูเหมือนมีขนาดเล็กกว่าที่เป็นจริง

<!--Hackers try to confuse webmasters by encoding malicious code into blocks of texts.
Be wary of unfamiliar code blocks like this.-->

base64_decode(strrev("hMXZpRXaslmYhJXZuxWd2BSZ0l2cgknbhByZul2czVmckRWYgknYgM3ajFGd0FGIlJXd0Vn
ZgknbhBSbvJnZgUGdpNHIyV3b5BSZyV3YlNHIvRHI0V2Zy9mZgQ3Ju9GRg4SZ0l2cgIXdvlHI4lmZg4WYjBSdvlHIsU2c
hVmcnBydvJGblBiZvBCdpJGIhBCZuFGIl1Wa0BCa0l2dgQXdCBiLkJXYoBSZiBibhNGIlR2bjBycphGdgcmbpRXYjNXdmJ2b
lRGI5xWZ0Fmb1RncvZmbVBiLn5WauVGcwFGagM3J0FGa3BCZuFGdzJXZk5Wdg8GdgU3b5BicvZGI0xWdjlmZmlGZgQXagU2ah
1GIvRHIzlGa0BSZrlGbgUGZvNGIlRWaoByb0BSZrlGbgMnclt2YhhEIuUGZvNGIlxmYhRWYlJnb1BychByZulGZhJXZ1F3ch
1GIlR2bjBCZlRXYjNXdmJ2bgMXdvl2YpxWYtBiZvBSZjVWawBSYgMXagMXaoRFIskGS"));

บางครั้งโค้ดก็ไม่ได้ผสมปนเปกันจนยุ่งเหยิงและดูเหมือนเป็นสคริปต์ที่ปกติดี หากคุณไม่แน่ใจว่าเป็นโค้ดของแฮ็กเกอร์หรือไม่ ให้ลองไปที่ฟอรัมความช่วยเหลือสำหรับผู้ดูแลเว็บ ซึ่งกลุ่มผู้ดูแลเว็บที่มีประสบการณ์จะช่วยคุณตรวจสอบไฟล์ได้

ขั้นตอนที่ 5

เมื่อคุณทราบว่ามีไฟล์ใดที่น่าสงสัยแล้ว ให้สำรองข้อมูลหรือสร้างสำเนาเก็บไว้นอกเซิร์ฟเวอร์โดยบันทึกไว้ในคอมพิวเตอร์เพื่อเผื่อไว้ใช้ในกรณีที่ไฟล์นั้นไม่ได้เป็นอันตราย แล้วค่อยลบออก

ตรวจดูว่าไซต์สะอาดแล้วหรือไม่

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

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

ฉันจะป้องกันการถูกแฮ็กอีกได้อย่างไร

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

  • อัปเดต CMS, ปลั๊กอิน, ส่วนขยาย และโมดูลเป็นประจำ: หวังว่าคุณจะได้ทำขั้นตอนนี้แล้ว ไซต์จำนวนมากถูกแฮ็กเนื่องจากใช้ซอฟต์แวร์ที่ล้าสมัยในไซต์ ทั้งนี้ CMS บางระบบรองรับการอัปเดตอัตโนมัติด้วย
  • สแกนคอมพิวเตอร์เป็นประจำ: ใช้เครื่องมือสแกนไวรัสยอดนิยมเพื่อหาไวรัสหรือช่องโหว่
  • เปลี่ยนรหัสผ่านเป็นประจำ: การเปลี่ยนรหัสผ่านบัญชีเว็บไซต์ทั้งหมดเป็นประจำ เช่น ผู้ให้บริการโฮสติ้ง, FTP และ CMS จะช่วยป้องกันการเข้าถึงไซต์โดยไม่ได้รับอนุญาตได้ ซึ่งสิ่งสำคัญคือต้องสร้างรหัสผ่านที่รัดกุมและไม่ซ้ำสำหรับแต่ละบัญชี
  • ใช้การตรวจสอบสิทธิ์แบบ 2 ปัจจัย (2FA): พิจารณาเปิดใช้ 2FA ในบริการใดก็ตามที่กำหนดให้คุณต้องลงชื่อเข้าสู่ระบบ ทั้งนี้ 2FA จะทำให้แฮ็กเกอร์ลงชื่อเข้าสู่ระบบได้ยากขึ้น แม้ว่าจะขโมยรหัสผ่านสำเร็จก็ตาม
  • พิจารณาสมัครใช้บริการรักษาความปลอดภัยเพื่อตรวจสอบไซต์: มีบริการชั้นเยี่ยมมากมายที่ช่วยคุณตรวจสอบไซต์โดยคิดค่าธรรมเนียมเพียงเล็กน้อย ลองลงทะเบียนกับผู้ให้บริการดังกล่าวเพื่อให้ไซต์ปลอดภัย

ทรัพยากรเพิ่มเติม

มีทรัพยากรอีกหลายรายการที่อาจช่วยคุณได้ หากคุณยังคงพบปัญหาในการแก้ไขไซต์

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

Virus Total, Aw-snap.info, Sucuri Site Check, Quttera: นี่เป็นเครื่องมือเพียงบางส่วนที่อาจสแกนพบเนื้อหาที่มีปัญหาในไซต์ โปรดทราบว่าโปรแกรมสแกนเหล่านี้ไม่สามารถรับประกันได้ว่าจะพบเนื้อหาที่มีปัญหาทุกประเภท

ทรัพยากรเพิ่มเติมจาก Google ที่ช่วยคุณได้มีดังนี้

หากเครื่องมือที่คุณคิดว่าอาจมีประโยชน์ไม่อยู่ในรายการข้างต้น โปรดแสดงความคิดเห็นให้เราทราบ