การปลอมแปลง DNS และการทำให้แคชเป็นพิษ
การปลอมแปลงคำตอบ DNS
การปลอมแปลง 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- DNS ทำงานอย่างไรและมีความเสี่ยงอะไรบ้าง
- การปลอมแปลง DNS และการทำให้แคชเป็นพิษ
- การทำอุโมงค์ DNS และการลักลอบนำข้อมูลออก
- DNSSEC และการกรอง DNS