The #ChromeDevSummit site is live, happening Nov 12-13 in San Francisco, CA
Check it out for details and request an invite. We'll be diving deep into modern web tech & looking ahead to the platform's future.

ระบุช่องโหว่

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

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

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

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

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

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

ช่องโหว่ที่เป็นไปได้ที่จะต้องตรวจสอบมีดังนี้

1. คอมพิวเตอร์ของผู้ดูแลระบบที่ติดไวรัส

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

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

2. รหัสผ่านที่ไม่รัดกุมหรือนำมาใช้ซ้ำ

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

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

3. ซอฟต์แวร์ที่ล้าสมัย

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

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

4. การเขียนโค้ดที่ได้รับอนุญาต เช่น การเปลี่ยนเส้นทางแบบเปิดและการแทรก SQL

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

    http://example.com/page.php?url=http://example.com/good-file.pdf
    แฮ็กเกอร์ใช้การเปลี่ยนเส้นทางแบบเปิดอย่างไม่ถูกต้องได้โดยการเพิ่มหน้าสแปมหรือหน้ามัลแวร์ลงในการเปลี่ยนเส้นทางแบบเปิดของไซต์ ซึ่งมีลักษณะดังนี้
    http://example.com/page.php?url=<malware-attack-site>

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

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

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

ขั้นตอนถัดไปในกระบวนการนี้คือทำความสะอาดและดูแลรักษาไซต์