DoS & DDoS

Datafarm
3 min readDec 14, 2022

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

DoS และ DDoS คืออะไร?

DoS หรือ Denial of Service ถ้าจะให้แปลแบบตรงตัวคือ การปฏิเสธการให้บริการ กล่าวคือ เป็นการโจมตีที่มีจุดมุ่งหมายเพื่อทำให้ระบบไม่สามารถดำเนินการหรือให้บริการได้ แต่การโจมตีแบบ DoS จะเกิดมาจากแค่เครื่อง ๆ เดียวที่เข้ามาก่อกวนหรือโจมตี Web Server

Ref: https://docs.aws.amazon.com/whitepapers/latest/aws-best-practices-ddos-resiliency/introduction-denial-of-service-attacks.html

การโจมตี แบบ DoS ที่พบส่วนใหญ่คือ

การโจมตีด้วยขนาด (Volumetric base Attack) ซึ่งการโจมตีประเภทนี้ ผู้โจมตีจะทำการส่งข้อมูลหรือ ส่ง Traffic จำนวนมหาศาลเข้าไปที่เป้าหมายเพื่อทำให้การรับ-ส่งข้อมูลต่าง ๆ ใน Server เกิดอาการคอขวด หรือที่เรียกว่า (Congestion) จนไม่สามารถให้บริการหรือติดต่อสื่อสารกับผู้ใช้งานได้ ส่งผลให้เว็บไซต์ไม่สามารถใช้งานได้ หรือที่เราชอบเรียกกันว่าเว็บไซต์ล่มนั่นเอง แต่การป้องกันก็แสนจะง่าย เพราะแหล่งที่มามีแค่ IP เดียว พอเรารู้ IP เราก็บล็อกดังกล่าวทิ้งได้ในกรณีแบบนี้

แล้ว DDoS คืออะไร?

DDoS หรือ distributed denial-of-service ถ้าจะให้แปลตรงตัวก็คือ การโจมตีแบบปฏิเสธการให้บริการแบบกระจาย แล้วแบบกระจายล่ะมันคืออะไร? ถ้าจะให้พูดแบบภาษาบ้าน ๆ เลยคือ ‘รุม’ นั่นเอง DDoS Attack คือการโจมตีจากอุปกรณ์จำนวนมาก มีแหล่งที่มาจากหลาย ๆ ที่

Ref: https://www.cloudflare.com/learning/ddos/what-is-a-ddos-attack/

แล้วอุปกรณ์ที่กล่าวมานั้น คืออะไร ?

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

การโจมตี DDoS ประเภทที่ยกตัวอย่างมาคือ Application base Attack

การโจมตีด้วยแอปพลิเคชั่น (Application base Attack) เป็นการโจมตีให้เกิดความเสียหายโดยผู้บริการอาจจะไม่รู้ตัวเลยทีเดียว อาจจะเกิด อาการต่าง ๆ เช่น การเข้าใช้งานช้า หรือถ้าโดนหนักอาจจะต้องถึงขั้น Restart service เลยทีเดียว ซึ่งการโจมตีประเภทนี้จะส่งข้อมูลหรืออยู่ในเลเยอร์ที่ 7 ของ โอเอสไอ นั่นคือ Application Layer ส่วนใหญ่การโจมตีประเภทนี้จะโจมตีไปที่ Web service เป็นหลักผ่านทางคำสั่งขอใช้งานต่าง ๆ เช่น HTTP GET, POST หรือ PUSH และที่นิยมโจมตีกันส่วนใหญ่คือ HTTP Get Flood

Ref: https://www.cloudflare.com/img/learning/ddos/what-is-a-ddos-attack/osi-model-7-layers.svg

แล้ว HTTP Flood คืออะไร?

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

ความแตกต่างระหว่าง DoS และ DDoS

DoS และ DDoS มีความแตกต่างกันเล็กน้อย การโจมตีแบบ DoS จะช้ากว่าและเป็นการโจมตีที่มาอุปกรณ์การโจมตีอันเดียวแต่กลับกัน การโจมตีแบบ DDoS จะใช้เครื่องคอมพิวเตอร์และอุปกรณ์หลายอย่างโจมตีเป้าหมายในเวลาเดียวกัน

แล้วแบบไหนอันตรายกว่ากัน ?

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

เรามาไขข้อสงสัยกันว่า ทำไมเวลาที่เรากดบัตรคอนเสิร์ตไม่ได้เว็บถึงล่ม?

อย่างที่กล่าวไปข้างต้นเลยครับ ก็เพราะว่า Server ของผู้ให้บริการนั้นไม่สามารถรองรับการส่งคำขอจาก User ทั่วทั้งประเทศได้ พอ User ต้องการกดบัตรคอนเสิร์ตพร้อมกันในเวลาเดียวกัน ลองคิดดูสิครับ 1,000,000 คนกด รีเฟรชหน้า Web Browser พร้อมกันมันจะเป็นยังไง? คำตอบก็คือ เว็บล่มแน่นอนครับ และนี่คือสาเหตุที่ว่าทำไมเวลาเรากดบัตรคอนเสิร์ตเว็บมันถึงชอบล่มบ่อย ๆ นั่นเอง

การป้องกันการโจมตีเหล่านี้ ?

การป้องกันการโจมตีเหล่านี้มีหลายรูปแบบและหลายประเภทวันนี้เราจะมายกตัวอย่างให้ดูกันครับ

ประเภทที่ 1 Rate limiting

Rate limiting คือการจำกัดจำนวนคำร้องขอที่ Server จะสามารถรับได้ ซึ่งก็เป็นหนึ่งในวิธีที่สามารถป้องกันการโจมตีประเภท DoS และ DDoS ได้ แม้ว่าวิธีการนี้จะช่วยให้ทำให้ลดความพยายามในการ Brute Force น้อยลง แต่แค่การ Rate Limiting อย่างเดียวก็ไม่น่าจะเพียงพอต่อการป้องกันการโจมตีแบบ DDoS ที่ซับซ้อนมาก ๆ ได้ แต่อย่างไรก็ตามวิธีการนี้ก็ไม่ใช่ว่าจะไม่ช่วยลดการโจมตีแบบ DDoS ไม่ได้ซะทีเดียว

Ref: https://www.wallarm.com/what/rate-limiting

ประเภทที่ 2 Web application firewall

WAF (Web Application Firewall) เป็นบริการที่ปกป้อง Web Application ที่เหนือชั้นกว่า Firewall ทั่วไป เพราะว่า WAF นั้นสามารถในการตรวจจับทุกกิจกรรมการใช้งาน Web Application ของ User ต่าง ๆ และการทำงานของ WAF เมื่อคำขอ HTTP / HTTPS ถูกส่งไปยังเว็บไซต์ของคุณ WAF จะสกัดกั้นและตรวจสอบโดยจะแยกคำขอที่เป็นอันตรายออกโดยอัตโนมัติก่อนที่ผู้โจมตีจะส่งคำขอจำนวนมากมาถึง Server

Ref : https://www.cloudflare.com/learning/ddos/glossary/web-application-firewall-waf/

--

--

No responses yet