DDoS: DNS Amplification Attack

DDoS: DNS Amplification Attack

วันที่เผยแพร่: 6 เมษายน 2556
ปรับปรุงล่าสุด: 17 เมษายน 2556

ตั้งแต่ช่วงกลางเดือนมีนาคม 2556 ที่ผ่านมา มีการรายงานข่าวใหญ่เกี่ยวกับระบบของหน่วยงาน Spamhaus Project ซึ่งเป็นหน่วยงานไม่แสวงหากำไร ที่มีภารกิจหลักในการจัดการปัญหาข้อมูลไม่พึงประสงค์บนอินเทอร์เน็ต โดยที่ระบบของ Spamhaus นั้นถูกโจมตีในรูปแบบ Distributed Denial-of-Service (DDoS) เป็นระยะ ๆ ส่งผลให้เว็บไซต์ spamhaus.org และบริการอีเมลของ Spamhaus ไม่สามารถใช้งานได้ชั่วขณะ จนถึงปัจจุบันยังไม่มีกลุ่มบุคคลใดออกมาประกาศว่าเป็นผู้อยู่เบื้องหลังการโจมตีในครั้งนี้ แต่มีการสันนิษฐานว่าเหตุการณ์ดังกล่าวอาจมีจุดเริ่มต้นมาจากเหตุขัดแย้งระหว่าง Spamhaus และ Cyberbunker ซึ่งเป็นผู้ให้บริการ Hosting ในประเทศเนเธอร์แลนด์ เมื่อ Spamhaus ทำการบล็อก IP address ของเซิร์ฟเวอร์ที่อยู่ภายใต้การดูแลของ Cyberbunker เนื่องจากสงสัยว่าเซิร์ฟเวอร์เหล่านั้นเป็นฐานในการส่งสแปม ทำให้เกิดการตอบโต้การกระทำดังกล่าว

เบื้องหลังของการโจมตี

สิ่งที่น่าสนใจเกี่ยวกับเหตุการณ์นี้ นอกจากจะเป็นหนึ่งในการโจมตีประเภท DDoS ที่รุนแรงที่สุดเท่าที่มีการค้นพบมาแล้ว ประเด็นเกี่ยวกับเทคนิคที่ใช้ในการโจมตีก็เป็นอีกสิ่งหนึ่งที่ควรนำมาเป็นกรณีศึกษา โดยพบว่าผู้ที่ทำการโจมตีในครั้งนี้ ใช้เทคนิคที่เรียกว่า DNS amplification attack (มีอีกชื่อหนึ่งว่า DNS reflection attack) ดังรูปที่ 1 ซึ่งเป็นวิธีการส่ง DNS request ไปยัง DNS resolver ที่ต่าง ๆ โดยปลอมแปลง IP address ต้นทางในแพ็คเก็ตเป็น IP address ของระบบเป้าหมาย ทำให้ DNS response ที่ตอบกลับมาจาก DNS resolver นั้น ถูกส่งไปยังระบบเป้าหมายแทนที่จะเป็นผู้โจมตี ยิ่งมีการส่ง DNS request ในทำนองนี้เป็นจำนวนมากเท่าใด ก็จะมี DNS response ตอบกลับไปยังระบบเป้าหมายมากยิ่งขึ้น จนกระทั่งถึงจุดหนึ่งที่ทำให้ Network bandwidth ของระบบเป้าหมายมีไม่เพียงพอต่อปริมาณข้อมูลจำนวนมากที่ได้รับ ส่งผลให้ระบบเป้าหมายไม่สามารถให้บริการกับผู้ใช้รายอื่น ๆ ได้

Pp2013te002-1.jpg

รูปที่ 1 รูปแบบโดยทั่วไปของการโจมตีด้วยเทคนิค DNS amplification attack

สาเหตุสำคัญที่ทำให้การโจมตีด้วยเทคนิคนี้มีประสิทธิภาพคือ ขนาดของ Response ที่มักใหญ่กว่า Request มาก โดย Request ที่ส่งไปยัง DNS resolver นั้น ถึงแม้ว่าจะมีขนาดข้อมูลโดยทั่วไปที่เล็กมากเพียงไม่กี่สิบไบต์ แต่ Response ที่ตอบกลับมาอาจมีขนาดใหญ่กว่า Request ที่ส่งไปถึงหลายสิบเท่าได้ ดังนั้นผู้โจมตีจึงไม่จำเป็นต้องมี Botnet [2] ขนาดใหญ่ไว้ในครอบครองเพื่อใช้สั่งการโจมตีระบบเป้าหมายพร้อม ๆ กัน ก็สามารถทำให้การโจมตีนั้นมีความรุนแรงอย่างมากได้ อย่างไรก็ตาม ต้นตอของปัญหาที่แท้จริงที่เอื้ออำนวยให้ผู้ไม่หวังดีสามารถใช้เทคนิคการโจมตีแบบ DNS amplification attack ได้ผลเป็นอย่างดีจนเป็นที่นิยมในปัจจุบันนั้นคือ Open DNS resolver ซึ่งหมายถึงเซิร์ฟเวอร์หรืออุปกรณ์เครือข่ายใด ๆ ก็ตามที่เปิดให้บริการ DNS และมีการตั้งค่าอย่างไม่เหมาะสม โดยอนุญาตให้ผู้บุคคลทั่วไปสามารถใช้บริการได้ แทนที่จะจำกัดการใช้งานให้เฉพาะกับผู้ที่ได้รับอนุญาต ผู้ไม่หวังดีจึงสามารถค้นหา Open DNS resolver ที่มีอยู่ทั่วไปในอินเทอร์เน็ต และใช้ประโยชน์จากมันในการโจมตีระบบอื่น ๆ ด้วยเทคนิคดังกล่าวได้อย่างง่ายดาย

Pp2013te002-2.jpg

รูปที่ 2 จำนวน IP address ที่ไม่ซ้ำของ Open DNS resolver ที่ไทยเซิร์ตได้รับรายงานในแต่ละเดือน ระหว่างเดือน ก.ย. 2555 ถึงเดือน มี.ค. 2556

จากข้อมูลที่ไทยเซิร์ตได้รับรายงานจากหน่วยงานต่างประเทศตั้งแต่เดือนกันยายน 2555 จนถึงเดือนมีนาคม 2556 พบว่ามีจำนวน IP address ของ Open DNS resolver ที่อยู่ในประเทศไทยเฉลี่ยประมาณวันละ 1,000 หมายเลข และมีจำนวน IP address ที่ไม่ซ้ำรวมกันสูงถึงหลักหมื่นต่อเดือนดังรูปที่ 2 ส่วนรายงานผลการสำรวจของเว็บไซต์ dns.measurement-factory.com เมื่อวันที่ 16 เมษายน 2556 [3] พบว่า จำนวน Open DNS resolver ที่อยู่ภายใต้การดูแลของหน่วยงานในประเทศไทยมีจำนวน 947 หมายเลขจาก 59 หน่วยงานซึ่งประกอบไปด้วยผู้ให้บริการอินเทอร์เน็ต หน่วยงานภาครัฐและเอกชน และสถาบันการศึกษา ในขณะที่ CloudFlare ผู้ที่ให้บริการ Content Delivery Network (CDN) กับ Spamhaus ได้ตรวจสอบการโจมตีที่เกิดขึ้นกับ Spamhaus และพบว่า Open DNS resolver ในประเทศไทยที่ถูกใช้เป็นฐานในการโจมตีระบบของ Spamhaus มีจำนวนทั้งสิ้นถึง 898 หมายเลข [4] ทำให้สามารถสันนิษฐานในเบื้องต้นได้ว่า Open DNS resolver ส่วนใหญ่ในประเทศไทยนั้นถูกผู้ไม่หวังดีนำไปใช้เป็นเครื่องมือในการโจมตีผู้อื่นแล้ว ดังนั้นปัญหาที่เกิดจากการตั้งค่าบริการ DNS ที่ไม่เหมาะสมนั้น ถือเป็นเรื่องสำคัญที่ควรดำเนินการแก้ไขอย่างเร่งด่วน

การตรวจสอบหา Open DNS resolver

วิธีการตรวจสอบเบื้องต้นว่ามีอุปกรณ์ในเครือข่ายของตนที่เป็น Open DNS resolver หรือไม่ สามารถตรวจสอบได้จากหลากหลายเว็บไซต์ดังนี้

1. ตรวจสอบจากเว็บไซต์ openresolverproject.org

สามารถตรวจสอบได้โดยการระบุ IP subnet ที่ต้องการตรวจสอบในหน้าเว็บหลัก หากมี IP address ใดที่ถูกพิจารณาว่าเป็นหมายเลขของอุปกรณ์ที่มีลักษณะเป็น Open DNS resolver หมายเลขดังกล่าวก็จะปรากฏอยู่ในตารางผลลัพธ์ดังรูปที่ 3

Pp2013te002-3.jpg

รูปที่ 3 ผลลัพธ์ที่ได้จากการค้นหา Open DNS resolver จาก IP subnet ที่ระบุ

2. ตรวจสอบจากเว็บไซต์ dns.measurement-factory.com

เว็บไซต์ dns.measurement-factory.com นอกจากจะมีรายงานผลการสำรวจของ Open DNS resolver แล้ว ยังเปิดบริการให้กับบุคคลทั่วไปสามารถตรวจสอบหา Open DNS resolver ได้อีกหลายช่องทาง โดยช่องทางแรกของเว็บไซต์นี้เป็นการตรวจสอบหาว่า IP address ใดบ้างที่ถูกพิจารณาว่าเป็น Open DNS resolver [6] เริ่มจากการระบุ IP address หรือ IP subnet ที่ต้องการตรวจสอบ จากนั้นเว็บไซต์จะขึ้นรายการอีเมลที่ต้องการรับผลการตรวจสอบ ซึ่งอีเมลเหล่านี้จะได้มาจากข้อมูลที่ระบุไว้ใน Whois record ของ IP address หรือ IP subnet ที่ทำการตรวจสอบ เมื่อเลือกอีเมลที่ต้องการแล้วจะพบกับหน้าต่างยืนยันการส่งผลการตรวจสอบ ดังรูปที่ 4

Pp2013te002-4.jpg

รูปที่ 4 หน้าต่างยืนยันการส่งผลการตรวจสอบไปยังอีเมลที่เลือกไว้

อีกช่องทางหนึ่งของเว็บไซต์ dns.measurement-factory.com เป็นการตรวจสอบหา Open DNS resolver จากรายการของ IP address [7] โดยหลังจากที่ระบุรายการของ IP address ที่ต้องการตรวจสอบแล้ว จะได้ผลลัพธ์แสดงทางหน้าเว็บไซต์ หากผลลัพธ์ในคอลัมน์ Status เป็น open แสดงว่าเครื่องที่มี IP address ดังกล่าวเข้าข่ายที่จะเป็น Open DNS resolver ดังรูปที่ 5

Pp2013te002-5.jpg

รูปที่ 5 หน้าต่างแสดงผลลัพธ์ของการตรวจสอบบนเว็บไซต์

3. ตรวจสอบจากเว็บไซต์ dnsinspect.com

เป็นเว็บไซต์หนึ่งที่ใช้สำหรับตรวจสอบการทำงานของ DNS server อย่างละเอียด โดยเมื่อระบุโดเมนเนมผ่านทางหน้าเว็บหลักแล้ว เว็บไซต์ดังกล่าวจะประมวลผลและจัดทำรายงานแสดงผลการตรวจสอบในแต่ละส่วน ซึ่งรวมถึงส่วนที่ตรวจสอบว่า DNS server อนุญาตให้ทำการ Query แบบ Recursive ได้หรือไม่ดังรูปที่ 6

Pp2013te002-6.jpg

รูปที่ 6 ส่วนหนึ่งของรายงานผลการตรวจสอบที่ได้จากเว็บไซต์ dnsinspect.com

นอกจากการตรวจสอบด้วยตนเองจากเว็บไซต์ต่าง ๆ แล้ว Team Cymru ซึ่งเป็นหน่วยงานวิจัยทางด้าน Information security ยังเปิดบริการให้กับผู้ดูแลระบบสามารถขอรับรายงานประจำวันของ Open DNS resolver ที่อยู่ภายในเครือข่ายของตนได้อีกด้วย

การแก้ไขการตั้งค่าของ DNS server

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

BIND เวอร์ชัน 9 ขึ้นไป

ในกรณีของ DNS server ที่ตั้งอยู่ในระบบขององค์กรที่ทำหน้าที่เป็น Caching name server ให้จำกัดการอนุญาตการทำ Recursion เฉพาะ Request ที่ส่งมาจากกลุ่มผู้ใช้ในระบบเครือข่ายเดียวกัน โดยมีตัวอย่างการตั้งค่าดังรูปที่ 7

Pp2013te002-7.jpg

รูปที่ 7 ตัวอย่างการตั้งค่าเพื่อจำกัดการอนุญาตการทำ Recursion ในโปรแกรม BIND

จากรูปที่ 7 ในส่วนของ acl จะมีการสร้างรายการที่ชื่อว่า trustednet ซึ่งประกอบไปด้วย IP subnet ของเครือข่ายภายใน (ในที่นี้คือ 10.10.1.0/24 และ 10.10.2.0/24) และในของ view เป็นการเพิ่มเงื่อนไขให้ IP subnet ในรายการดังกล่าวสามารถทำ Recursion ได้ ส่วน IP address หรือ IP subnet อื่น ๆ นอกเหนือจากที่ระบุไว้จะไม่สามารถทำการ Query ใด ๆ ได้ดังที่ระบุในส่วนของ options สำหรับการตั้งค่าจริงนั้น ผู้ดูแลระบบสามารถเพิ่มการตั้งค่าลงในไฟล์ named.conf โดยใช้ตัวอย่างจากรูปที่ 7 ได้เลย เพียงแค่เปลี่ยนค่าในส่วนของ acl ให้เป็น IP address, IP subnet หรือชื่อของ acl รายการอื่นที่เป็นของระบบเครือข่ายภายในเท่านั้น

สำหรับกรณีที่ DNS server ทำหน้าที่เป็น Authoritative name server ให้เพิ่มการตั้งค่าในไฟล์ named.conf เพื่อปิดการทำงาน Recursion ดังรูปที่ 8

Pp2013te002-8.jpg

รูปที่ 8 ตัวอย่างการตั้งค่าเพื่อปิดการทำงาน Recursion ในโปรแกรม BIND

ทั้งนี้ผู้อ่านสามารถศึกษารายละเอียดเพิ่มเติมเกี่ยวกับแนวทางการตั้งค่าในโปรแกรม BIND ให้มีความมั่นคงปลอดภัยได้จากเอกสารของ Team Cymru [10]

Windows Server 2003 ขึ้นไป

ในการตั้งค่าเพื่อปิดการทำงาน Recursion ผ่านทาง GUI นั้น มีขั้นตอนดังต่อไปนี้

เปิดโปรแกรม DNS Manager โดยไปที่ Start > All Programs > Administrative Tools > DNS
คลิกขวาบนเซิร์ฟเวอร์ที่ต้องการแล้วเลือก Properties
ในหน้าต่างใหม่ เลือกแท็บ Advanced แล้วติ๊กเครื่องหมายถูกที่รายการ Disable recursion (also disables forwarders) แล้วคลิก Apply ดังรูปที่ 9

Pp2013te002-9.jpg

รูปที่ 9 ตัวอย่างการตั้งค่าเพื่อปิดการทำงาน Recursion บน Windows Server

สำหรับการตั้งค่าเพื่อปิดการทำงาน Recursion ผ่านทาง Command-line สามารถทำได้ผ่านโปรแกรม Command Prompt โดยใช้คำสั่ง dnscmd ดังรูปแบบต่อไปนี้

dnscmd <ip-address>|<hostname> /Config /NoRecursion {0|1}

โดย Parameter ตัวแรกหลังจากคำสั่ง dnscmd ให้ระบุ IP address หรือ Hostname ของ DNS server ส่วน Parameter ตัวสุดท้ายให้ระบุเป็นเลข 0 หรือ 1 โดยเลข 0 หมายถึงเปิดการทำงาน Recursion ส่วนเลข 1 หมายถึงปิดการทำงาน Recursion เมื่อใช้คำสั่งดังกล่าวจะได้ผลลัพธ์ดังรูปที่ 10

Pp2013te002-10.jpg

รูปที่ 10 ตัวอย่างผลลัพธ์ที่ได้จากการใช้คำสั่ง dnscmd

นอกจากการตั้งค่าเพื่อปิดหรือจำกัดการทำงาน Recursion แล้ว ผู้ดูแลระบบยังสามารถทำการตั้งค่า DNS Response Rate Limiting (RRL) ซึ่งเป็นความสามารถที่อนุญาตให้ผู้ดูแลระบบ สามารถกำหนดจำนวนครั้งที่ DNS server สามารถตอบผลลัพธ์ที่เหมือนกันกลับไปยังผู้ร้องขอรายหนึ่ง ๆ ได้มากที่สุดในแต่ละวินาที ทำให้ช่วยลดปริมาณข้อมูลที่ DNS server ตอบกลับไปยังผู้ร้องขอได้ในระดับหนึ่ง ซึ่งหมายถึงการช่วยลดผลกระทบที่เกิดจากการนำ DNS server ไปใช้ในการโจมตีด้วยเทคนิค DNS amplification attack ดังที่อธิบายไว้ในตอนแรก ทั้งนี้ผู้ที่ต้องการกำหนดค่าดังกล่าวกับ DNS server ที่ตนเองดูแลอยู่นั้น ควรมีความรู้เข้าใจ รวมถึงสามารถตรวจสอบและแก้ไขการทำงานของโปรแกรมที่ทำหน้าที่ให้บริการ DNS ได้เป็นอย่างดี เนื่องจากการใช้ความสามารถนี้ มีความจำเป็นที่จะต้องอัพเกรดเวอร์ชันหรือติดตั้งแพทช์ของโปรแกรม ซึ่งอาจส่งผลกระทบต่อการทำงานของระบบได้ในกรณีที่ติดตั้งไม่ถูกวิธี ปัจจุบันความสามารถดังกล่าวเริ่มมีให้เลือกใช้ในหลายโปรแกรมแล้ว ไม่ว่าจะเป็น BIND, Knot DNS หรือ NSD และกำลังอยู่ในขั้นตอนการพัฒนาเพื่อรองรับโปรแกรมตัวอื่น ๆ เช่นกัน ผู้ที่สนใจสามารถศึกษาวิธีการติดตั้งและตั้งค่า Rate limiting ได้จากเว็บไซต์ Red Barn

บทวิเคราะห์
การโจมตีแบบ Distributed Denial of Service (DDoS) มีจุดประสงค์เพื่อให้ระบบหยุดการทำงานไม่สามารถใช้เครื่องคอมพิวเตอร์ได้ ทั้งระบบหรือเครื่องเดียวๆ เคยมีเหตุการโจมตีแบบนี้เป็นตัวอย่างจริงมากับประเทศเกาหลีใต้ เมื่อปี 2552 ในเดือนนี้หล่ะ มีแฮกเกอร์ยิง DDoS ถล่มเครือข่ายคอมพิวเตอร์และเว็บไซต์หน่วยงานรัฐบาลเกาหลีใต้ แฮกเกอร์ไม่ทราบสัญชาติได้ส่งข้อมูลเข้าไป ทำลายระบบเน็ตเวิร์ก จนเว็บไซต์ใช้งานไม่ได้นานกว่า 4 ชั่วโมง เว็บไซต์เกาหลีใต้ที่ถูกโจมตีไม่ใช่เว็บไซต์ทั่วไป แต่เป็นเว็บไซต์ของกระทรวงกลาโหม เว็บไซต์ทำเนียบประธานาธิบดี ในไทยก็มีถ้าใครเป็นนักเล่นคอมพิวเตอร์และเป็นคอการเมือง จะรู้กันในช่วงที่ปัญหาการเมืองกำลังคุกรุ่นที่ผ่านมาเว็บ ICT ก็เคยถูกโจมตีจนระบบล่มไม่สามารถใช้งานได้อยู่หลายชั่วโมง
ผู้ที่โจมตีแบบ DDoS มักจะนำเครื่องมือที่จะใช้ในการโจมตีไปติดตั้งบนคอมพิวเตอร์ที่ถูกเจาะไว้แล้ว คอมพิวเตอร์ที่ได้รับเครื่องมือนี้ เข้าไปจะเรียกว่า ซอมบี้ ซึ่งเมื่อมีจำนวนพอสมควรก็จะระดมส่งข้อมูลในรูปแบบที่ควบคุมได้โดยผู้ควบคุมการโจมตีไปยังเหยื่อ หรือเป้าหมายที่ต้องการ ซึ่งการโจมตีรูปแบบนี้มักจะก่อให้เกิดการใช้แบนด์วิดธ์อย่างเต็มที่จนผู้ อื่นไม่สามารถใช้งานได้ตามปกติ หรือทำให้ระบบที่ถูกโจมตีไม่มีทรัพยากรเหลือพอที่จะให้บริการผู้ใช้ธรรมดาได้

รูปแบบการโจมตี
เครื่องมือที่ใช้โจมตี แบบ DDoS มีใช้กันอย่างแพร่หลายมานานหลายปีแล้วย้อนหลังเป็น 10 ปี มาแล้ว (แต่บรรดาผู้ผลิตอุปกรณ์คอมพิวเตอร์ต่างก็มีวิธีป้องกันการโจมตีเช่นเดียวกัน) รูปแบบการโจมตีที่นิยมใช้กันก็มีอย่าง SYN flood, UDP flood, ICMP flood, Smurf, Fraggle เป็นต้น ซึ่งมีรายละเอียดโดยสังเขปดังนี

1. การโจมตีแบบ SYN Flood
เป็นการโจมตีโดยการส่ง แพ็คเก็ต TCP ที่ตั้งค่า SYN บิตไว้ไปยังเป้าหมาย เสมือนกับการเริ่มต้นร้องขอการติดต่อแบบ TCP ตามปกติ (ผู้โจมตีสามารถปลอมไอพีของ source address ได้) เครื่องที่เป็นเป้าหมายก็จะตอบสนองโดยการส่ง SYN-ACK กลับมายัง sourceIP address ที่ระบุไว้ ซึ่งผู้โจมตีจะควบคุมเครื่องที่ถูกระบุใน sourceIP address ไม่ให้ส่งข้อมูลตอบกลับ ทำให้เกิดสภาวะ half-open ขึ้นที่เครื่องเป้าหมาย หากมีการส่ง SYN flood จำนวนมาก ก็จะทำให้คิวของการให้บริการของเครื่องเป้าหมายเต็ม ทำให้ไม่สามารถให้บริการตามปกติได้ นอกจากนี้ SYN flood ที่ส่งไปจำนวนมาก ยังอาจจะทำให้เกิดการใช้แบนด์วิดธ์อย่างเต็มที่

2. การโจมตีแบบ ICMP Flood
เป็นการส่งแพ็คเก็ต ICMP ขนาดใหญ่จำนวนมากไปยังเป้าหมาย ทำให้เกิดการใช้งานแบนด์วิดธ์เต็มที่

3. การโจมตีแบบ UDP Flood
เป็นการส่งแพ็คเก็ต UDP จำนวนมากไปยังเป้าหมาย ซึ่งทำให้เกิดการใช้แบนด์วิดธ์อย่างเต็มที่ หรือทำให้ทรัพยากรของเป้าหมายถูกใช้ไปจนหมด โดยจะส่ง UDP packet ไปยัง port ที่กำหนดไว้ เช่น 53 (DNS)

4. การโจมตีแบบ Teardrop
โดยปกติเราเตอร์จะไม่ยอม ให้แพ็กเก็ตขนาดใหญ่ผ่านได้ จะต้องทำ Fragment เสียก่อนจึงจะยอมให้ผ่านได้ และเมื่อผ่านไปแล้วเครื่องของผู้รับปลายทางจะนำแพ็กเก็ตที่ถูกแบ่งออกเป็น ชิ้นส่วนต่าง ๆ ด้วยวิธีการ Fragment มารวมเข้าด้วยกันเป็นแพ็กเก็ตที่สมบูรณ์ การที่สามารถนำมารวมกันได้นี้จะต้องอาศัยค่า Offset ที่ปรากฏอยู่ ในแพ็กเก็ตแรกและแพ็กเก็ตต่อๆ ไปสำหรับการโจมตีแบบ Teardrop นี้ ผู้โจมตีจะส่งค่า Offset ในแพ็กเก็ตที่สองและต่อ ๆ ไปที่จะทำให้เครื่องรับปลายทางเกิดความสับสน หากระบบปฏิบัติการไม่สามารถรับมือกับปัญหานี้ ก็จะทำให้ระบบหยุดการทำงานในทันที

5. การโจมตีแบบ Land Attack
ลักษณะการโจมตีประเภทนี้ เป็นการส่ง SYN ไปที่เครื่องเป้าหมายเพื่อขอการเชื่อมต่อ ซึ่งเครื่องที่เป็นเป้าหมาย จะต้องตอบรับคำขอการเชื่อมต่อด้วย SYN ACK ไปที่เครื่องคอมพิวเตอร์ต้นทางเสมอ แต่เนื่องจากว่า IP Address ของเครื่องต้นทางกับเครื่องที่เป็นเป้าหมายนี้มี IP Address เดียวกัน โดยการใช้วิธีการสร้าง IP Address ลวง (โดยข้อเท็จจริงแล้วเครื่องของ Hacker จะมี IP Address ที่ต่างกับเครื่องเป้าหมายอยู่แล้ว แต่จะใช้วิธีการทางซอฟต์แวร์ ในการส่งแพ็กเก็ตที่ประกอบด้วยคำขอการเชื่อมต่อ พร้อมด้วย IP Address ปลอม) ซึ่งโปรโตคอลของเครื่องเป้าหมาย ไม่สามารถแยกแยะได้ว่า IP Address ที่เข้ามาเป็นเครื่องปัจจุบันหรือไม่ ก็จะทำการตอบสนองด้วย SYN ACK ออกไป หากแอดเดรสที่ขอเชื่อมต่อเข้ามาเป็นแอดเดรสเดียวกับเครื่องเป้าหมาย ผลก็คือ SYN ACK นี้จะย้อนเข้าหาตนเอง และเช่นกันที่การปล่อย SYN ACK แต่ละครั้งจะต้องมีการปันส่วนของหน่วยความจำเพื่อการนี้จำนวนหนึ่ง ซึ่งหากผู้โจมตีส่งคำขอเชื่อมต่อออกมาอย่างต่อเนื่องก็จะเกิดปัญหาการจัดสรรหน่วยความจำ

6. Smurf
ผู้โจมตีจะส่ง ICMP Echo Request ไปยัง broadcast address ในเครือข่ายที่เป็นตัวกลาง (ปกติจะเรียกว่า amplifier) โดยปลอม source IP address เป็น IP address ของระบบที่ต้องการโจมตี ซึ่งจะทำให้เครือข่ายที่เป็นตัวกลางส่ง ICMP Echo Reply กลับไปยังIP address ของเป้าหมายทันที ซึ่งทำให้มีการใช้งานแบนด์วิดธ์อย่างเต็มที่

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

1. ความเสียหายกับเครื่องคอมพิวเตอร์
1.1 เครื่องที่ถูกใช้เป็นเครื่องมือในการโจมตีอันดับแรกคือเราสูญเสียการควบคุมของเครื่องเราเองทำให้คนอื่นสามารถเข้ามาบงการ เครื่องของเราให้ไปทำอย่างโน้นทำอย่างนี้ตามที่เขาต้องการได้อันดับสองคือการเสียทรัพยากรของเครื่องเองไม่ว่าจะเป็น ซีพียู เมโมรี หรือแบนด์วิดธ์เป็นต้นทรัพยากรต่าง ๆ ของเครื่องที่กล่าวไปแล้วนั้นจะถูกใช้ไปรันโปรแกรมที่จะใช้ในการเข้าไปโจมตี เครื่องเหยื่อ ทำให้เครื่องคอมพิวเตอร์ของเรานั้นไม่สามารถใช้งานได้อย่างเต็มที่
1.2 เครื่องที่เป็นเหยื่อในการโจมตีครั้งนี้แน่นอนว่าทำให้เครื่องนั้นไม่สามารถให้บริการต่อไปได้เพราะจุดประสงค์หลักของ DDoS ก็คือสิ่งนี้เพราะเครื่องนั้นมัวแต่ประมวลผล Request จำนวนมากที่ถูกส่งเข้ามาทำให้เครื่องนั้นทำงานหนักจนไม่สามารถรับงาน ได้อีกต่อไปบางเครื่องอาจจะแฮงก์ไปเฉย ๆ หรือระบบอาจจะ Crash เลยก็เป็นไปได้ทำให้เครื่องนั้นไม่สามารถให้บริการได้อีก

2. ความเสียหายกับระบบเน็ตเวิร์ก
2.1 มุมที่ผู้ถูกใช้เป็นเครื่องมือทำให้แบนด์วิดธ์ที่เราควรจะมีเหลือไว้ ใช้นั้นถูกใช้ไปกับการโจมตีเสียหมด บางครั้งก็กินแบนด์วิดธ์ทั้งหมดที่เรามีอยู่เพื่อใช้ในการโจมตีทำให้เครื่อง หรือระบบที่ถูกใช้เป็นเครื่องมือในการโจมตีนั้นไม่สามารถใช้งานระบบ เน็ตเวิร์กได้อีกต่อไป
2.2 มุมที่ผู้ถูกโจมตี เช่นเดียวกับแบนด์วิดธ์ของผู้ที่ถูกโจมตีนั้นก็จะใช้ไปอย่างรวดเร็วจนหมด ทำให้บริการที่เตรียมไว้ที่เครื่องที่ถูกโจมตี นั้นไม่สามารถใช้งานได้อีกต่อไปเครื่องที่ต้องการที่จะติดต่อเข้ามาที่เครื่องนี้หรือผ่านเครื่องนี้เพื่อเข้าไปในระบบข้างใน (ในกรณีที่เป็นไฟร์วอลล์) ไม่สามารถใช้งานได้ผู้ที่อยู่ด้านในของระบบก็จะไม่สามารถเชื่อมต่อกับ ระบบภายนอกได้เช่นเดียวกันแต่ระบบ LAN

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

DNS Amplification Attack
สำหรับ DNS Amplification Attack (หรืออาจเรียกว่า DNS Reflection Attack) นี้เป็นวิธีการโจมตีแบบใช้ตัวตายตัวแทนเรื่องนี้ค่อนข้างเก่า พอสมควรเพราะเป็นวิธีการโจมตีเครือข่ายที่ทำง่าย และป้องกันได้ยากมากวิธีนึงครับ โดยมีแผนผังการโจมตีดังนี้

สาเหตุที่เรียกว่า DNS Amplification หรือ DNS Reflection Attack นั้นก็มาจากลักษณะของการโจมตีครับ ด้วยตัวพื้นฐานของระบบ DNS นั้นจะใช้ protocol UDP ซึ่งเป็นการรับส่งข้อมูลแบบ stateless คือสามารถส่งข้อมูลออกไปได้ตั้งแต่ packet แรกที่ส่ง ดังนั้นจึงเกิดการปลอมแปลงได้ง่ายมากครับ โดยผู้โจมตีจะทำการปลอมแปลงเป็น IP ของเหยื่อ แล้วระดมส่งคำร้องขอทำการ resolve DNS ไปยัง DNS Server ที่ต่างๆ และเมื่อ DNS Server ได้รับคำร้องแล้ว ก็จะตอบกลับไปหา IP ของเหยื่อ (ตามที่ผู้โจมตีปลอมมา) ทำให้เหยื่อได้รับ packet DNS ปริมาณมหาศาลตามลักษณะของรูปด้านบนครับ และที่บอกว่าเป็น Amplification Attack เพราะรูปแบบของคำร้อง DNS เหล่านี้ส่วนมากจะเป็น packet สั้นๆ แต่ขนาดของ packet ที่ DNS server จะต้องตอบกลับไปมีขนาดใหญ่มาก ทำให้ bandwidth ของเครื่องที่ถูกโจมตีเต็มได้ครับ

สำหรับวิธีป้องกันอาจแบ่งออกเป็น 3 ส่วนคือ ดังนี้
1. ส่วนของ bandwidth และส่วนของการทำ stateful inspection โดยการคือหาเครื่อง firewall หรือ server ที่รองรับ bandwidth ปริมาณมากกว่าการโจมตีให้ได้ก่อน แล้วจึงทำการ drop ข้อมูลการถาม DNS
2. แบบ stateful ทำโดยตั้งให้ว่าถ้า firewall ไม่เจอคำร้องสำหรับ DNS request นั้น ให้ทำการ drop reply ที่ได้รับนั้นทิ้งดังตัวอย่าง IPTables
iptables -A FORWARD -m state —state NEW,ESTABLISHED,RELATED -j ACCEPT
iptables -A FORWARD -j DROP
3. เจ้าของ server ถ้าเป็นไปได้ ไม่ควรเปิด recursion resolve เพื่อไม่ให้เครื่อง server ของตัวเองกลายเป็นเครื่องที่ไปโจมตีได้

Reference:
- http://www.thaicert.or.th/papers/technical/2013/pa2013te002.html
- http://www.us-cert.gov/ncas/alerts/TA13-088A
- http://security.stackexchange.com/questions/33565/dns-amplification-ddos-attack

Nattawat Pulsri ID 5510221038 Y34

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License