Cyber Security Academy · บทเรียน

การปลอมแปลง DNS และการทำให้แคชเป็นพิษ

การปลอมแปลงคำตอบ DNS

บทเรียน 2 จาก 413 ขั้นตอน

การปลอมแปลง DNS และการทำให้แคชเป็นพิษ เป็นบทเรียน Cyber Security Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Cyber Security Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

การปลอมแปลงคำตอบ DNS

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

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

เงื่อนไขการแข่งขัน

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

นี่คือเหตุผลที่เวลาแฝง ลำดับแพ็กเก็ต และพอร์ตขาออกของตัวแก้ไขล้วนมีความสำคัญอย่างมากในการโจมตีและการป้องกัน

ฟิลด์ที่ผู้โจมตีต้องเดา

เพื่อให้ยอมรับคำตอบ UDP ปลอมได้ ผู้โจมตีต้องทำให้ตรงกับข้อมูลต่อไปนี้:

  • IP ต้นทาง (เซิร์ฟเวอร์ที่มีสิทธิ์)
  • พอร์ตปลายทาง (พอร์ตขาออกของตัวแก้ไข)
  • ชื่อคำค้นหาและประเภท
  • รหัสธุรกรรม (TXID)ขนาด 16 บิต

หากไม่มีการป้องกัน ความลับที่แท้จริงเพียงอย่างเดียวคือ TXID ทำให้มีโอกาสถูกประมาณ 1 ใน 65,536 ต่อแพ็กเก็ต

การโจมตีแบบ Kaminsky

การเปิดเผยของ Dan Kaminsky ในปี 2008 แสดงให้เห็นว่าการวางยาพิษทำได้ง่ายกว่าที่เคยคิด แทนที่จะแข่งขันเพียงครั้งเดียวต่อระเบียน ผู้โจมตีจะค้นหาซับโดเมนที่ไม่มีอยู่จำนวนมาก (aaa.bank.com, aab.bank.com...) และส่งคำตอบปลอมจำนวนมากที่มี NS หรือระเบียนเชื่อมโยงที่เป็นอันตรายสำหรับทั้งโดเมน

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

for sub in $(seq 1 10000); do
  dig $sub.bank.com @victim-resolver &
done
# Attacker floods forged NS answers in parallel

การสุ่มพอร์ตต้นทาง

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

ตอนนี้ผู้โจมตีต้องเดาทั้ง TXID (16 บิต) และพอร์ตต้นทาง (ประมาณ 16 บิต) ทำให้พื้นที่การค้นหาเพิ่มเป็นประมาณ 2^32 วิธีนี้ทำให้การวางยาพิษจากนอกเส้นทางแบบไม่เห็นข้อมูลทำได้จริงยาก แม้จะยังเป็นไปไม่ได้เสียทีเดียวหากการติดตั้งมีเอนโทรปีต่ำ

ผู้โจมตีบนเส้นทางเทียบกับนอกเส้นทาง

ผู้โจมตีนอกเส้นทางไม่สามารถเห็นคำค้นหา จึงต้องเดา TXID และพอร์ตแบบไม่เห็นข้อมูล ส่วนผู้โจมตีบนเส้นทาง (เครือข่ายไร้สายปลอม เราเตอร์ที่ถูกเจาะ หรือ ISP) สามารถอ่านคำค้นหาได้โดยตรงและสร้างคำตอบที่ตรงกันได้โดยง่าย

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

DHCP ปลอมและการยึดตัวแก้ไข

ผู้โจมตีไม่ได้ปลอมแปลงแพ็กเก็ตเสมอไป เซิร์ฟเวอร์ DHCP ปลอมสามารถมอบที่อยู่ตัวแก้ไข DNS อันตรายให้ไคลเอ็นต์ได้ ทำให้ทุกการค้นหาถูกตอบโดยผู้โจมตี มัลแวร์ก็สามารถแก้ไข /etc/resolv.conf หรือการตั้งค่าเราเตอร์ในลักษณะเดียวกัน

ภัยคุกคามในอดีตอย่างมัลแวร์ DNSChanger เปลี่ยนเส้นทาง DNS ของเหยื่อไปยังเซิร์ฟเวอร์ฉ้อโกงอย่างเงียบ ๆ เป็นเวลาหลายปี ควรตรวจสอบว่ากลุ่มอุปกรณ์ทั้งหมดของคุณใช้ตัวแก้ไขใดอยู่จริง

cat /etc/resolv.conf
# nameserver should match your trusted internal resolver

การตรวจสอบขอบเขตอำนาจ

ตัวแก้ไขบังคับใช้กฎขอบเขตอำนาจ โดยคำตอบจะจัดหาระเบียนได้เฉพาะชื่อที่อยู่ภายในโซนที่ตนมีสิทธิ์รับผิดชอบ คำตอบสำหรับ bank.com ไม่สามารถลักลอบแทรกระเบียนของ unrelated.com ได้

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

การตรวจจับการวางยาพิษ

สัญญาณของการวางยาพิษที่กำลังเกิดขึ้นหรือเกิดขึ้นสำเร็จแล้ว:

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

การป้องกันหลายชั้น

ไม่มีมาตรการควบคุมเพียงอย่างเดียวที่เพียงพอ ควรใช้มาตรการเหล่านี้ร่วมกัน:

  • การสุ่มพอร์ตต้นทางและ TXID เพื่อเพิ่มต้นทุนของผู้โจมตีนอกเส้นทาง
  • การตรวจสอบ DNSSEC เพื่อให้คำตอบปลอมไม่ผ่านการตรวจสอบลายมือชื่อ
  • DoT/DoH เพื่อป้องกันไม่ให้ผู้โจมตีบนเส้นทางมองเห็นหรือแก้ไขข้อมูล
  • การเข้ารหัส 0x20 (การสุ่มตัวพิมพ์ใหญ่-เล็กในชื่อคำค้นหา) เพื่อเพิ่มเอนโทรปี
  • ตรวจสอบการส่ง NXDOMAIN จำนวนมากและความผิดปกติของคำตอบ

ความเป็นจริงในการปฏิบัติงาน

ในทางปฏิบัติ การวางยาพิษแคชจากนอกเส้นทางแบบไม่เห็นข้อมูลพบได้ยากในปัจจุบันบนตัวแก้ไขที่ติดตั้งแพตช์แล้ว แต่การโจมตีนี้กลับมาได้ผ่านช่องทางข้างเคียง (เช่น การแบ่งส่วนแพ็กเก็ต UDP และการโจมตีอนุมานพอร์ตโดยใช้ ICMP อย่าง SAD DNS) ควรติดตั้งแพตช์ให้ตัวแก้ไขอยู่เสมอ และเลือกใช้ตัวแก้ไขที่ตรวจสอบความถูกต้องและเข้ารหัส

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

ตรวจสอบความเข้าใจ

โปรดตรวจสอบความเข้าใจเกี่ยวกับเทคนิคคามินสกีของคุณ

ทบทวน

การปลอมแปลง DNS ปลอมคำตอบ ส่วนการวางยาพิษแคชทำให้คำตอบเหล่านั้นคงอยู่ในตัวแก้ไข DNS การยอมรับคำตอบขึ้นอยู่กับการตรงกันของ IP ต้นทาง พอร์ตต้นทาง ชื่อคำขอ และ TXID การสุ่มพอร์ตต้นทางและการตรวจสอบขอบเขตสิทธิ์ช่วยเพิ่มความยากให้ผู้โจมตีนอกเส้นทาง แต่ผู้โจมตีบนเส้นทางและช่องทางข้างเคียงยังคงเป็นภัย

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

เริ่มต้นได้ฟรี

เรียนรู้ Cyber Security Academy ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
76
บทเรียน
303

คำถามที่พบบ่อย

บทเรียน “การปลอมแปลง DNS และการทำให้แคชเป็นพิษ” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การปลอมแปลง DNS และการทำให้แคชเป็นพิษ” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Cyber Security Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Cyber Security Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การปลอมแปลง DNS และการทำให้แคชเป็นพิษ”

การปลอมแปลงคำตอบ DNS คุณปฏิบัติ Cyber Security Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Cyber Security Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Cyber Security Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “การปลอมแปลง DNS และการทำให้แคชเป็นพิษ” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Cyber Security Academy นี้ได้ไหม

ได้ บทเรียน Cyber Security Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. DNS ทำงานอย่างไรและมีความเสี่ยงอะไรบ้าง
  2. การปลอมแปลง DNS และการทำให้แคชเป็นพิษ
  3. การทำอุโมงค์ DNS และการลักลอบนำข้อมูลออก
  4. DNSSEC และการกรอง DNS
← กลับไปที่ Cyber Security Academy