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

ทำความสะอาดและดูแลรักษาไซต์

คุณจะต้องมีสิ่งต่อไปนี้

  • สิทธิ์เข้าถึงเซิร์ฟเวอร์ของไซต์ ไม่ว่าจะเป็นเว็บ ฐานข้อมูล หรือไฟล์ ในระดับผู้ดูแลระบบผ่านทาง Shell/เทอร์มินัล
  • ความรู้เกี่ยวกับคำสั่ง Shell/เทอร์มินัล
  • ความเข้าใจเกี่ยวกับโค้ด (เช่น PHP หรือ JavaScript)
  • พื้นที่จัดเก็บข้อมูลเพื่อสร้างข้อมูลสำรองของไซต์ (รวมถึงไฟล์ ฐานข้อมูล รูปภาพ ฯลฯ)

สิ่งที่ต้องดำเนินการต่อไป

เราจะดำเนินการหลายอย่างด้วยกันในขั้นตอนนี้ ดังนี้ 

  • ค้นหาแหล่งข้อมูลเพิ่มเติมในกรณีที่คุณเชื่อว่าแฮ็กเกอร์ตั้งใจที่จะดูข้อมูลส่วนบุคคลของผู้ใช้ (ด้วยการใช้หน้าฟิชชิง เป็นต้น)
  • เลือกใช้นำ URL ออกใน Search Console เพื่อเร่งให้มีการนำ URL ใหม่ที่ไม่พึงประสงค์และปรากฏต่อผู้ใช้ออก ซึ่งแฮ็กเกอร์สร้าง URL เหล่านี้ขึ้นและคุณไม่ต้องการให้ปรากฏในผลการค้นหาของ Google
  • เลือกใช้โปรแกรม Googlebot จำลองใน Search Console เพื่อเร่งให้ Google ดำเนินการกับหน้าเว็บที่ปราศจากปัญหา ซึ่งก็คือหน้าเว็บใหม่หรือที่เพิ่งอัปเดต ที่คุณต้องการให้ปรากฏในผลการค้นหาของ Google
  • ติดตั้งซอฟต์แวร์เวอร์ชันล่าสุดที่มีความปลอดภัยมากที่สุด
  • นำแอปพลิเคชันหรือปลั๊กอินที่ไม่จำเป็นหรือไม่ได้ใช้ออก ซึ่งแอปหรือปลั๊กอินนี้อาจทำให้ไซต์มีความเสี่ยงมากขึ้นในอนาคต
  • กู้คืนเนื้อหาที่ดีและลบเนื้อหาที่แฮ็กเกอร์สร้างขึ้น
  • แก้ไขปัญหาที่เป็นต้นเหตุที่ทำให้เกิดช่องโหว่ที่แฮกเกอร์นำไปใช้ประโยชน์
  • เปลี่ยนรหัสผ่านทั้งหมด
  • วางแผนเพื่อให้ไซต์ของคุณมีความปลอดภัย

1. ค้นหาแหล่งข้อมูลสนับสนุนเมื่อต้องรับมือกับการสูญเสียข้อมูลที่เป็นความลับ อย่างเช่นในกรณีที่เกิดจากหน้าฟิชชิง

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

2. เร่งให้มีการนำ URL ใหม่ที่แฮ็กเกอร์สร้างขึ้นออก

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

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

3. เร่งให้ Google แสดงหน้าเว็บปกติได้รวดเร็วขึ้น

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

4. เริ่มทำความสะอาดเซิร์ฟเวอร์ของคุณ

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

  • ข้อมูลสำรองที่เป็นข้อมูลปกติและปัจจุบัน
  • ข้อมูลสำรองที่เป็นข้อมูลปกติแต่ล้าสมัย
  • ไม่มีข้อมูลสำรอง   

ขั้นแรก ให้ตรวจสอบว่าข้อมูลสำรองนี้สร้างขึ้นก่อนที่ไซต์จะถูกแฮ็ก

  • ข้อมูลสำรองที่เป็นข้อมูลปกติและปัจจุบัน
    1. คืนค่าจากข้อมูลสำรองของคุณ
    2. ติดตั้งการอัปเกรด อัปเดต หรือแพตช์ของซอฟต์แวร์ทั้งหมดที่มีอยู่ ซึ่งรวมถึงซอฟต์แวร์ของระบบปฏิบัติการหากคุณเป็นผู้ดูแลเซิร์ฟเวอร์ และแอปพลิเคชันทั้งหมด เช่น ระบบจัดการเนื้อหา แพลตฟอร์มอีคอมเมิร์ซ ปลั๊กอิน เทมเพลต ฯลฯ
    3. พิจารณาว่าคุณสามารถลบซอฟต์แวร์ที่อยู่ในเซิร์ฟเวอร์ (เช่น วิดเจ็ต ปลั๊กอิน หรือแอปพลิเคชัน) ที่ไซต์ไม่ได้ใช้งานอีกต่อไปได้หรือไม่
    4. แก้ไขช่องโหว่
    5. ตรวจสอบว่าปัญหาทั้งหมดที่พบในระหว่างประเมินความเสียหายได้รับการแก้ไขแล้ว
    6. เปลี่ยนรหัสผ่านของบัญชีทั้งหมดที่เกี่ยวข้องกับไซต์อีกครั้ง (เช่น การเข้าสู่ระบบสำหรับการเข้าถึง FTP, การเข้าถึงฐานข้อมูล, ผู้ดูแลระบบ และบัญชี CMS) ในระบบ Unix ให้ใช้คำสั่งต่อไปนี้
      $passwd admin1
  • ข้อมูลสำรองที่เป็นข้อมูลปกติแต่ล้าสมัย
    1. สร้างดิสก์อิมเมจของไซต์ปัจจุบันแม้ว่าจะยังคงมีปัญหาหลงเหลืออยู่ สำเนานี้จะใช้เป็นข้อมูลสำรองเท่านั้น ทำเครื่องหมายระบุว่าสำเนานี้มีปัญหาหลงเหลืออยู่เพื่อแยกออกจากสำเนาอื่นๆ ในระบบ Unix คุณจะสร้างดิสก์อิมเมจได้ดังนี้
      $dd if=/dev/sda bs=1024 conv=noerror,sync | gzip -c -9
        > /mirror/full-backup-20120125-infected.gz
    2. สร้างสำเนาระบบไฟล์ของเซิร์ฟเวอร์เพื่อเก็บเป็นข้อมูลสำรอง ซึ่งรวมถึงรูปภาพและไฟล์สื่อ หากคุณมีฐานข้อมูล ให้สำรองฐานข้อมูลไว้ด้วย
      $tar -pczf full-backup-20120125-infected.tar.gz www/ $ mysqldump -u root
        -p --all-databases | gzip -9 > fulldb_backup-20120125-infected.sql
    3. คืนค่าจากข้อมูลสำรองที่เป็นข้อมูลปกติแต่ล้าสมัยในเซิร์ฟเวอร์
    4. พิจารณาว่าคุณสามารถลบซอฟต์แวร์ที่อยู่ในเซิร์ฟเวอร์ (เช่น วิดเจ็ต ปลั๊กอิน หรือแอปพลิเคชัน) ที่ไซต์ไม่ได้ใช้งานอีกต่อไปได้ไหม
    5. อัปเกรดซอฟต์แวร์ทั้งหมด รวมทั้งระบบปฏิบัติการหากคุณเป็นผู้ดูแลเซิร์ฟเวอร์ และแอปพลิเคชันซอฟต์แวร์ทั้งหมด เช่น ระบบจัดการเนื้อหา แพลตฟอร์มอีคอมเมิร์ซ ปลั๊กอิน เทมเพลต ฯลฯ ตรวจสอบและติดตั้งอัปเดตด้านความปลอดภัยและแพตช์ต่างๆ ที่มี
    6. แก้ไขช่องโหว่
    7. ดำเนินการ diff ในไซต์ด้วยตนเองหรือแบบอัตโนมัติระหว่างข้อมูลสำรองที่เป็นข้อมูลปกติและสำเนาปัจจุบันที่ยังคงมีปัญหาหลงเหลืออยู่
      $diff -qr www/ backups/full-backup-20120124/
    8. อัปโหลดเนื้อหาใหม่ที่เป็นข้อมูลปกติที่คุณต้องการเก็บรักษาไว้จากสำเนาที่ยังคงมีปัญหาหลงเหลืออยู่ไปไว้ในเซิร์ฟเวอร์ที่อัปเกรดแล้ว
      $rsync -avz /backups/full-backup-20120124/www/clean-file.jpg /www/
    9. ตรวจสอบว่า URL แต่ละรายการที่จดไว้ในขั้นตอนประเมินความเสียหายได้รับการแก้ไขแล้ว
    10. เปลี่ยนรหัสผ่านของบัญชีทั้งหมดที่เกี่ยวข้องกับไซต์อีกครั้ง (เช่น การเข้าสู่ระบบสำหรับการเข้าถึง FTP, การเข้าถึงฐานข้อมูล, ผู้ดูแลระบบ และบัญชี CMS) ในระบบ Unix ให้ใช้คำสั่งต่อไปนี้
      $passwd admin1
  • ไม่มีข้อมูลสำรอง
    1. สร้างข้อมูลสำรองของไซต์ไว้ 2 สำเนาแม้ว่าจะยังคงมีปัญหาหลงเหลืออยู่ การมีข้อมูลสำรองเพิ่มเติมจะช่วยในการกู้คืนเนื้อหาที่ลบออกไปโดยไม่ได้ตั้งใจ หรือย้อนกลับและลองดำเนินการใหม่ในกรณีที่ผลที่ได้ไม่เป็นไปตามที่คาดไว้ ติดป้ายกำกับข้อมูลสำรองแต่ละชุดว่า “ถูกแฮ็ก” เพื่อใช้อ้างอิงในอนาคต
      • สำเนาหนึ่งของข้อมูลสำรองจะเป็นดิสก์อิมเมจหรือไซต์ "เวอร์ชันโคลน" รูปแบบนี้จะช่วยให้การคืนค่าเนื้อหาทำได้ง่ายขึ้น คุณสามารถเก็บดิสก์อิมเมจนี้ไว้เพื่อใช้ในกรณีฉุกเฉิน ในระบบ Unix คุณจะสร้างดิสก์อิมเมจได้ดังนี้
        $dd if=/dev/sda bs=1024 conv=noerror,sync | gzip -c -9 >
          /mirror/full-backup-20120125-infected.gz
      • อีกสำเนาหนึ่งจะเป็นสำเนาระบบไฟล์จากเซิร์ฟเวอร์ ซึ่งรวมถึงรูปภาพและไฟล์สื่อ หากคุณมีฐานข้อมูล ให้สำรองฐานข้อมูลไว้ด้วย
        $tar -pczf full-backup-20120125-infected.tar.gz www/
         
        $mysqldump -u root -p --all-databases | gzip -9 > fulldb_backup-20120125-infected.sql
      • หากคุณไม่มีดิสก์อิมเมจ ให้สร้างข้อมูลสำรองสำหรับฐานข้อมูล 2 สำเนา และระบบไฟล์อีก 2 สำเนา
    2. ทำความสะอาดเนื้อหาของไซต์ในสำเนาระบบไฟล์ใหม่ที่เป็นข้อมูลสำรอง (ไม่ใช่ในเซิร์ฟเวอร์)
      1. หากคุณพบว่ามีการให้สิทธิ์เข้าถึงไฟล์อย่างหละหลวมเกินไปในการตรวจสอบก่อนหน้า ให้ดำเนินการแก้ไข โดยคุณจะต้องทำกับสำเนาที่เป็นข้อมูลสำรอง ไม่ใช่ในเซิร์ฟเวอร์
      2. นอกจากนี้ ในสำเนาที่เป็นข้อมูลสำรอง ให้ทำความสะอาดไฟล์ทั้งหมดที่ตรงกับ URL ที่พบว่าถูกแฮ็กในขั้นตอนประเมินความเสียหาย ซึ่งอาจเป็นไฟล์การกำหนดค่าเซิร์ฟเวอร์, JavaScript, HTML หรือ PHP
      3. ตรวจสอบว่าได้ลบ (แสดงการตอบกลับ 404) ไฟล์ใหม่ที่แฮ็กเกอร์สร้างขึ้น (ซึ่งคุณอาจส่งหรือไม่ได้ส่งโดยใช้เครื่องมือการนำ URL ออกใน Search Console) ด้วย
      4. แก้ไขช่องโหว่ในกรณีที่มีอยู่ในโค้ด หรือรหัสผ่านที่ถูกแคร็ก ทั้งนี้ไลบรารีการตรวจสอบข้อมูลที่ป้อนหรือการตรวจสอบด้านความปลอดภัยอาจช่วยคุณได้
      5. หากไซต์มีฐานข้อมูล ให้เริ่มทำความสะอาดเรคคอร์ดที่แฮ็กเกอร์แก้ไขในข้อมูลสำรอง อย่าเพิ่งคิดว่าได้ทำทุกอย่างเสร็จเรียบร้อยแล้ว จนกว่าจะได้ตรวจสอบความถูกต้องของเรคคอร์ดต่างๆ เพิ่มเติมเพื่อให้แน่ใจว่าข้อมูลเป็นปกติ
      6. เปลี่ยนรหัสผ่านของบัญชีทั้งหมดที่เกี่ยวข้องกับไซต์อีกครั้ง (เช่น การเข้าสู่ระบบสำหรับการเข้าถึง FTP, การเข้าถึงฐานข้อมูล, ผู้ดูแลระบบ และบัญชี CMS) ในระบบ Unix ให้ใช้คำสั่งต่อไปนี้
        $passwd admin1
      7. ณ จุดนี้ สำเนาของไซต์ที่เป็นข้อมูลสำรองซึ่งครั้งหนึ่งเคยติดเชื้อควรจะมีเฉพาะข้อมูลปกติแล้ว ให้เก็บสำเนาข้อมูลปกตินี้ไว้และดำเนินการต่อในข้อ 5

5. ลบซอฟต์แวร์ที่ไม่จำเป็น

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

6. ทำความสะอาดเซิร์ฟเวอร์ทั้งหมด

  1. ทำการติดตั้งใหม่ตั้งแต่ต้น ไม่ใช่เพียงแค่อัปเกรด เพราะการอัปเกรดอาจไม่ได้แตะบางไฟล์ที่มาจากเวอร์ชันก่อนหน้า หากมีไฟล์ที่ติดเชื้อหลงเหลืออยู่ในเซิร์ฟเวอร์ ก็มีแนวโน้มที่จะเกิดการแฮ็กขึ้นอีก
    • การติดตั้งใหม่ควรรวมถึงระบบปฏิบัติการหากคุณเป็นผู้ดูแลเซิร์ฟเวอร์ และแอปพลิเคชันซอฟต์แวร์ทั้งหมด เช่น ระบบจัดการเนื้อหา แพลตฟอร์มอีคอมเมิร์ซ ปลั๊กอิน เทมเพลต ฯลฯ รวมทั้งตรวจสอบการอัปเดตด้านความปลอดภัยและแพตช์ต่างๆ ที่มี
  2. โอนเนื้อหาที่ดีจากสำเนาระบบไฟล์ที่เป็นข้อมูลสำรองที่ปกติไปยังเซิร์ฟเวอร์ที่ติดตั้งใหม่ โดยอัปโหลด/คืนค่าเฉพาะไฟล์/ฐานข้อมูลที่ทราบว่าไม่มีปัญหาใดๆ คุณจะต้องดูแลให้สิทธิ์เข้าถึงไฟล์มีความเหมาะสม รวมทั้งไม่เขียนทับไฟล์ระบบที่ติดตั้งใหม่
  3. เปลี่ยนรหัสผ่านของบัญชีทั้งหมดที่เกี่ยวข้องกับไซต์เป็นครั้งสุดท้าย (เช่น การเข้าสู่ระบบสำหรับการเข้าถึง FTP, การเข้าถึงฐานข้อมูล, ผู้ดูแลระบบ และบัญชี CMS) ในระบบ Unix ให้ใช้คำสั่งต่อไปนี้
    $passwd admin1

7. สร้างแผนการบำรุงรักษาในระยะยาว

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

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

8. ตรวจสอบอีกครั้งว่าการทำความสะอาดเสร็จสมบูรณ์แล้ว

ตรวจดูว่าคุณตอบว่า "ใช่" สำหรับคำถามดังต่อไปนี้

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

9. นำไซต์กลับมาออนไลน์

ขั้นตอนถัดไป

เกือบจะเสร็จแล้ว! ขั้นตอนสุดท้ายในกระบวนการนี้คือขอให้ตรวจสอบ