การแฮ็กอย่างมีจริยธรรม - การโจมตี DDOS

การโจมตีแบบปฏิเสธการให้บริการแบบกระจาย (DDoS) คือความพยายามที่จะทำให้บริการออนไลน์หรือเว็บไซต์ไม่สามารถใช้งานได้โดยการใช้งานมากเกินไปพร้อมกับปริมาณการใช้งานจำนวนมากที่เกิดจากหลายแหล่ง

ซึ่งแตกต่างจากการโจมตีแบบ Denial of Service (DoS) ซึ่งมีการใช้คอมพิวเตอร์เครื่องหนึ่งและการเชื่อมต่ออินเทอร์เน็ตหนึ่งเครื่องเพื่อทำให้ทรัพยากรเป้าหมายเต็มไปด้วยแพ็กเก็ตการโจมตี DDoS ใช้คอมพิวเตอร์จำนวนมากและการเชื่อมต่ออินเทอร์เน็ตจำนวนมากซึ่งมักจะกระจายไปทั่วโลกในสิ่งที่เรียกว่า a botnet.

การโจมตี DDoS เชิงปริมาตรขนาดใหญ่สามารถสร้างทราฟฟิกที่วัดได้ในหน่วยสิบกิกะบิต (และแม้กระทั่งหลายร้อยกิกะบิต) ต่อวินาที เรามั่นใจว่าเครือข่ายปกติของคุณจะไม่สามารถรองรับการรับส่งข้อมูลดังกล่าวได้

Botnets คืออะไร?

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

น้ำท่วม DDoS สามารถสร้างได้หลายวิธี ตัวอย่างเช่น -

  • Botnets สามารถใช้เพื่อส่งคำขอการเชื่อมต่อได้มากกว่าที่เซิร์ฟเวอร์จะจัดการได้ในแต่ละครั้ง

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

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

ประเภทของการโจมตี DDoS

การโจมตี DDoS สามารถแบ่งออกเป็นสามประเภทอย่างกว้าง ๆ -

  • การโจมตีตามปริมาณ
  • การโจมตีโปรโตคอล
  • การโจมตีเลเยอร์แอปพลิเคชัน

การโจมตีตามปริมาณ

การโจมตีตามปริมาณ ได้แก่ น้ำท่วม TCP, น้ำท่วม UDP, น้ำท่วม ICMP และน้ำท่วมบรรจุภัณฑ์ปลอมอื่น ๆ เหล่านี้เรียกอีกอย่างว่าLayer 3 & 4 Attacks. ที่นี่ผู้โจมตีพยายามทำให้แบนด์วิดท์ของไซต์เป้าหมายอิ่มตัว ขนาดการโจมตีวัดเป็นหน่วยBits per Second (bps)

  • UDP Flood - น้ำท่วม UDP ใช้เพื่อทำให้พอร์ตแบบสุ่มบนโฮสต์ระยะไกลที่มีแพ็กเก็ต UDP จำนวนมากโดยเฉพาะอย่างยิ่งพอร์ตหมายเลข 53 ไฟร์วอลล์เฉพาะทางสามารถใช้เพื่อกรองหรือบล็อกแพ็กเก็ต UDP ที่เป็นอันตรายได้

  • ICMP Flood- สิ่งนี้คล้ายกับน้ำท่วม UDP และใช้ในการท่วมโฮสต์ระยะไกลด้วยคำขอ ICMP Echo จำนวนมาก การโจมตีประเภทนี้สามารถใช้แบนด์วิดท์ทั้งขาออกและขาเข้าและคำขอ ping จำนวนมากจะส่งผลให้ระบบโดยรวมช้าลง

  • HTTP Flood - ผู้โจมตีส่งคำขอ HTTP GET และ POST ไปยังเว็บเซิร์ฟเวอร์เป้าหมายในปริมาณมากซึ่งเซิร์ฟเวอร์ไม่สามารถจัดการได้และนำไปสู่การปฏิเสธการเชื่อมต่อเพิ่มเติมจากไคลเอนต์ที่ถูกกฎหมาย

  • Amplification Attack - ผู้โจมตีส่งคำขอที่สร้างการตอบสนองขนาดใหญ่ซึ่งรวมถึงคำขอ DNS สำหรับระเบียน TXT ขนาดใหญ่และคำขอ HTTP GET สำหรับไฟล์ขนาดใหญ่เช่นรูปภาพ PDF หรือไฟล์ข้อมูลอื่น ๆ

การโจมตีโปรโตคอล

การโจมตีด้วยโปรโตคอล ได้แก่ SYN flood, Ping of Death, การโจมตีแพ็กเก็ตแบบแยกส่วน, Smurf DDoS เป็นต้นการโจมตีประเภทนี้ใช้ทรัพยากรเซิร์ฟเวอร์จริงและทรัพยากรอื่น ๆ เช่นไฟร์วอลล์และโหลดบาลานเซอร์ ขนาดการโจมตีวัดเป็นหน่วยPackets per Second.

  • DNS Flood - DNS ท่วมใช้สำหรับโจมตีทั้งโครงสร้างพื้นฐานและแอปพลิเคชัน DNS เพื่อครอบงำระบบเป้าหมายและใช้แบนด์วิดท์เครือข่ายทั้งหมดที่มีอยู่

  • SYN Flood- ผู้โจมตีส่งคำขอเชื่อมต่อ TCP เร็วเกินกว่าที่เครื่องเป้าหมายจะประมวลผลได้ทำให้เครือข่ายอิ่มตัว ผู้ดูแลระบบสามารถปรับแต่ง TCP stacks เพื่อลดผลกระทบของ SYN flood เพื่อลดผลกระทบจากน้ำท่วม SYN คุณสามารถลดระยะหมดเวลาได้จนกว่าสแต็กจะปลดปล่อยหน่วยความจำที่จัดสรรให้กับการเชื่อมต่อหรือเลือกทิ้งการเชื่อมต่อขาเข้าโดยใช้ไฟร์วอลล์หรือiptables.

  • Ping of Death- ผู้โจมตีส่งแพ็กเก็ตที่มีรูปแบบไม่ถูกต้องหรือมีขนาดใหญ่เกินไปโดยใช้คำสั่ง ping ง่ายๆ IP อนุญาตให้ส่งแพ็กเก็ต 65,535 ไบต์ แต่การส่งแพ็กเก็ต ping ที่มีขนาดใหญ่กว่า 65,535 ไบต์จะละเมิดอินเทอร์เน็ตโพรโทคอลและอาจทำให้หน่วยความจำล้นในระบบเป้าหมายและทำให้ระบบล่มในที่สุด เพื่อหลีกเลี่ยงการโจมตี Ping of Death และรูปแบบต่างๆไซต์จำนวนมากบล็อกข้อความ ping ICMP ทั้งหมดที่ไฟร์วอลล์ของตน

การโจมตีเลเยอร์แอปพลิเคชัน

Application Layer Attacks ได้แก่ Slowloris การโจมตี DDoS แบบ Zero-day การโจมตี DDoS ที่กำหนดเป้าหมายช่องโหว่ Apache, Windows หรือ OpenBSD และอื่น ๆ เป้าหมายคือทำให้เว็บเซิร์ฟเวอร์ล่ม ขนาดการโจมตีวัดเป็นหน่วยRequests per Second.

  • Application Attack - เรียกอีกอย่างว่า Layer 7 Attackซึ่งผู้โจมตีทำการล็อกอินค้นหาฐานข้อมูลหรือคำขอค้นหามากเกินไปเพื่อให้แอปพลิเคชันทำงานหนักเกินไป เป็นเรื่องยากมากที่จะตรวจจับการโจมตี Layer 7 เนื่องจากมีลักษณะคล้ายกับการเข้าชมเว็บไซต์ที่ถูกต้อง

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

  • NTP Amplification - ผู้โจมตีใช้ประโยชน์จากเซิร์ฟเวอร์ Network Time Protocol (NTP) ที่เข้าถึงได้ทั่วไปเพื่อครอบงำเซิร์ฟเวอร์เป้าหมายด้วยการรับส่งข้อมูล User Datagram Protocol (UDP)

  • Zero-day DDoS Attacks- ช่องโหว่ของ Zero-day คือข้อบกพร่องของระบบหรือแอปพลิเคชันที่ผู้ขายไม่รู้จักมาก่อนและยังไม่ได้รับการแก้ไขหรือแก้ไข สิ่งเหล่านี้เป็นการโจมตีรูปแบบใหม่ที่เกิดขึ้นในแต่ละวันเช่นการใช้ประโยชน์จากช่องโหว่ที่ยังไม่มีการเปิดตัวแพตช์

วิธีแก้ไขการโจมตี DDoS

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

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

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

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

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

สมมติว่าที่อยู่ IP ของเซิร์ฟเวอร์ของคุณคือ AAA.BBB.CCC.DDD จากนั้นคุณควรทำการกำหนดค่า DNS ต่อไปนี้ -

  • สร้างไฟล์ A Record ในไฟล์โซน DNS ดังที่แสดงด้านล่างพร้อมกับตัวระบุ DNS ตัวอย่างเช่น ARECORDID และเก็บเป็นความลับจากโลกภายนอก

  • ตอนนี้ขอให้ผู้ให้บริการ CDN ของคุณเชื่อมโยงตัวระบุ DNS ที่สร้างขึ้นกับ URL เช่น cdn.someotherid.domain.com.

  • คุณจะใช้ CDN URL cdn.someotherid.domain.com เพื่อสร้างระเบียน CNAME สองรายการโดยรายการแรกจะชี้ไปที่ www และบันทึกที่สองชี้ไปที่ @ ดังที่แสดงด้านล่าง

คุณสามารถขอความช่วยเหลือจากผู้ดูแลระบบของคุณเพื่อทำความเข้าใจประเด็นเหล่านี้และกำหนดค่า DNS และ CDN ของคุณอย่างเหมาะสม สุดท้ายคุณจะมีการกำหนดค่าต่อไปนี้ที่ DNS ของคุณ

ตอนนี้ให้ผู้ให้บริการ CDN จัดการการโจมตี DDoS ทุกประเภทแล้วระบบของคุณจะยังคงปลอดภัย แต่ที่นี่เงื่อนไขคือคุณไม่ควรเปิดเผยที่อยู่ IP ของระบบของคุณหรือตัวระบุเรกคอร์ดให้ใครรู้ การโจมตีโดยตรงอื่น ๆ จะเริ่มขึ้นอีกครั้ง

แก้ไขด่วน

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