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

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

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

การดำเนินการถัดไป

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

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

1. ค้นหาแหล่งข้อมูลการสนับสนุน

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

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

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

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

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

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

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
  1. สร้างสำเนาระบบไฟล์ของเซิร์ฟเวอร์เพื่อเป็นข้อมูลสำรอง ซึ่งรวมถึงรูปภาพและไฟล์สื่อ หากคุณมีฐานข้อมูล ให้สำรองฐานข้อมูลไว้ด้วย
tar -pczf full-backup-20120125-infected.tar.gz www/
mysqldump -u root -p --all-databases | gzip -9 \
> fulldb_backup-20120125-infected.sql
  1. คืนค่าจากข้อมูลสำรองที่เป็นข้อมูลปกติแต่ล้าสมัยในเซิร์ฟเวอร์
  2. พิจารณาว่าคุณสามารถลบซอฟต์แวร์ที่อยู่ในเซิร์ฟเวอร์ของคุณ (เช่น วิดเจ็ต ปลั๊กอิน หรือแอปพลิเคชัน) ที่ไซต์ไม่ได้ใช้งานอีกต่อไปได้ไหม
  3. อัปเกรดซอฟต์แวร์ทั้งหมด รวมถึงระบบปฏิบัติการหากคุณเป็นผู้ดูแลเซิร์ฟเวอร์ และแอปพลิเคชันซอฟต์แวร์ทั้งหมด เช่น ระบบจัดการเนื้อหา แพลตฟอร์มอีคอมเมิร์ซ ปลั๊กอิน และเทมเพลต อย่าลืมตรวจสอบและติดตั้งการอัปเดต ความปลอดภัยและแพตช์ที่มี
  4. แก้ไขช่องโหว่
  5. ดำเนินการเว็บไซต์ diff ด้วยตนเองหรือแบบอัตโนมัติระหว่างข้อมูลสำรองที่เป็นข้อมูลปกติและสำเนาปัจจุบันที่ยังคงมีปัญหาหลงเหลืออยู่
diff -qr www/ backups/full-backup-20120124/
  1. อัปโหลดเนื้อหาใหม่ที่เป็นข้อมูลปกติที่คุณต้องการเก็บรักษาไว้จากสำเนาที่ติดมัลแวร์ในเซิร์ฟเวอร์ที่อัปเกรดแล้ว
rsync -avz /backups/full-backup-20120124/www/clean-file.jpg /www/
  1. ตรวจสอบว่า URL แต่ละรายการที่จดไว้ในขั้นตอนประเมินความเสียหายได้รับการแก้ไขแล้ว
  2. เปลี่ยนรหัสผ่านของบัญชีทั้งหมดที่เกี่ยวข้องกับเว็บไซต์อีกครั้ง (เช่น การเข้าสู่ระบบสำหรับการเข้าถึง FTP, การเข้าถึงฐานข้อมูล, ผู้ดูแลระบบ และบัญชี CMS) ในระบบ Unix ให้ใช้คำสั่งต่อไปนี้
$passwd admin1

ไม่มีข้อมูลสำรอง

สร้างข้อมูลสำรองของไซต์ไว้ 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 สำเนา

หากต้องการล้างเนื้อหาของเว็บไซต์ในสำเนาระบบไฟล์ข้อมูลสำรองใหม่ (ไม่ใช่ในเซิร์ฟเวอร์) ให้ทำดังนี้

  1. หากคุณพบว่ามีการให้สิทธิ์เข้าถึงไฟล์อย่างหละหลวมเกินไปในการตรวจสอบก่อนหน้า ให้ดำเนินการแก้ไข ตรวจสอบว่าคุณได้ดำเนินการนี้ในสำเนาสำรอง ไม่ใช่ที่เซิร์ฟเวอร์
  2. นอกจากนี้ ในสำเนาที่เป็นข้อมูลสำรอง ให้ทำความสะอาดไฟล์ทั้งหมดที่ตรงกับ URL ที่พบว่าถูกแฮ็กในขั้นตอนประเมินความเสียหาย ซึ่งอาจเป็นไฟล์การกำหนดค่าเซิร์ฟเวอร์, JavaScript, HTML หรือ PHP
  3. อย่าลืมนำไฟล์ใหม่ที่แฮ็กเกอร์สร้างขึ้นออก (แสดงการตอบกลับ 404) ซึ่งอาจมีหรือไม่ได้ส่งโดยใช้เครื่องมือนำ URL ออกใน Search Console
  4. แก้ไขช่องโหว่ในกรณีที่มีอยู่ในโค้ด หรือรหัสผ่านที่ถูกแคร็ก ไลบรารีการตรวจสอบข้อมูลที่ป้อนหรือการตรวจสอบด้านความปลอดภัยอาจช่วยเหลือคุณได้
  5. หากเว็บไซต์มีฐานข้อมูล ให้เริ่มทำความสะอาดเรคคอร์ดที่แฮ็กเกอร์แก้ไขในข้อมูลสำรอง ก่อนจะคิดว่าดำเนินการเสร็จสิ้น ให้ตรวจสอบระเบียนเพิ่มเติมเพื่อให้แน่ใจว่าฐานข้อมูลดูเรียบร้อย
  6. เปลี่ยนรหัสผ่านของบัญชีทั้งหมดที่เกี่ยวข้องกับเว็บไซต์อีกครั้ง (เช่น การเข้าสู่ระบบเพื่อเข้าถึง FTP, การเข้าถึงฐานข้อมูล, ผู้ดูแลระบบ และบัญชี CMS) ในระบบ Unix ให้ใช้โค้ดต่อไปนี้
$passwd admin1

ในขั้นนี้ สำเนาข้อมูลสำรองของเว็บไซต์ที่เคยติดไวรัสควรมีเฉพาะข้อมูลที่สะอาด ให้เก็บสำเนาข้อมูลปกตินี้ไว้และดำเนินการต่อในข้อ 5

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

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

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

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

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

เราขอแนะนำให้คุณทำดังนี้

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

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

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

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

ตอนนี้คุณนำเว็บไซต์กลับมาออนไลน์ได้แล้ว