หนึ่งในคุณสมบัติของ Chromium สร้างภาระงานมหาศาลบนเซิร์ฟเวอร์ DNS รูท

หนึ่งในคุณสมบัติของ Chromium สร้างภาระงานมหาศาลบนเซิร์ฟเวอร์ DNS รูท

เบราว์เซอร์ Chromium ซึ่งเป็นพาเรนต์โอเพ่นซอร์สที่เจริญรุ่งเรืองของ Google Chrome และ Microsoft Edge ใหม่ ได้รับความสนใจเชิงลบอย่างมากสำหรับคุณลักษณะที่มีจุดมุ่งหมายด้วยความตั้งใจที่ดี: จะตรวจสอบว่า ISP ของผู้ใช้กำลัง "ขโมย" ผลลัพธ์การสืบค้นโดเมนที่ไม่มีอยู่จริงหรือไม่ .

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

โดยทั่วไปวิธีการแก้ไข DNS

หนึ่งในคุณสมบัติของ Chromium สร้างภาระงานมหาศาลบนเซิร์ฟเวอร์ DNS รูท
เซิร์ฟเวอร์เหล่านี้เป็นผู้มีอำนาจสูงสุดที่คุณควรติดต่อเพื่อแก้ไข .com, .net ฯลฯ เพื่อที่พวกเขาจะบอกคุณว่า frglxrtmpuf ไม่ใช่โดเมนระดับบนสุด (TLD)

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

การโหลดหน้าเว็บสมัยใหม่เพียงหน้าเดียวอาจต้องใช้การค้นหา DNS จำนวนมากอย่างไม่น่าเชื่อ ตัวอย่างเช่น เมื่อเราวิเคราะห์หน้าแรกของ ESPN เรานับชื่อโดเมนแยกกัน 93 ชื่อ ตั้งแต่ a.espncdn.com ไปจนถึง z.motads.com ทั้งหมดนี้จำเป็นสำหรับการโหลดหน้าเว็บให้เต็ม!

เพื่อรองรับปริมาณงานประเภทนี้สำหรับเครื่องมือค้นหาที่ต้องให้บริการทั่วโลก DNS ได้รับการออกแบบให้เป็นลำดับชั้นหลายระดับ ที่ด้านบนสุดของปิรามิดนี้คือเซิร์ฟเวอร์รูท - แต่ละโดเมนระดับบนสุด เช่น .com มีตระกูลเซิร์ฟเวอร์ของตัวเองที่มีสิทธิ์สูงสุดสำหรับแต่ละโดเมนที่อยู่ด้านล่าง ก้าวขึ้นมาหนึ่งก้าว เหล่านี้ เซิร์ฟเวอร์คือเซิร์ฟเวอร์รูทเอง a.root-servers.net ไปยัง m.root-servers.net.

สิ่งนี้เกิดขึ้นบ่อยแค่ไหน?

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

ถ้าทั้งเซิร์ฟเวอร์ DNS ของผู้ให้บริการในพื้นที่หรือ "เซิร์ฟเวอร์การส่งต่อ" ที่ระบุในการกำหนดค่าไม่มีการตอบสนองที่แคชไว้ คำขอจะถูกยกโดยตรงไปยังเซิร์ฟเวอร์โดเมนที่เชื่อถือได้โดยตรง เหนือ สิ่งที่คุณพยายามจะแปลง เมื่อไร домен.com นี่จะหมายความว่าคำขอถูกส่งไปยังเซิร์ฟเวอร์ที่เชื่อถือได้ของโดเมนเอง comซึ่งตั้งอยู่ที่ gtld-servers.net.

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

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

การตรวจสอบการโจรกรรม Chromium และ NXDomain

หนึ่งในคุณสมบัติของ Chromium สร้างภาระงานมหาศาลบนเซิร์ฟเวอร์ DNS รูท
Chromium ตรวจสอบว่า “เซิร์ฟเวอร์ DNS นี้หลอกฉันหรือเปล่า” คิดเป็นสัดส่วนเกือบครึ่งหนึ่งของการรับส่งข้อมูลทั้งหมดที่เข้าถึงคลัสเตอร์เซิร์ฟเวอร์ DNS รูทของ Verisign

เบราว์เซอร์ Chromium ซึ่งเป็นโครงการหลักของ Google Chrome, Microsoft Edge ใหม่ และเบราว์เซอร์ที่ไม่ค่อยมีคนรู้จักจำนวนนับไม่ถ้วน ต้องการให้ผู้ใช้ค้นหาได้ง่ายในกล่องเดียว ซึ่งบางครั้งเรียกว่า "แถบอเนกประสงค์" กล่าวอีกนัยหนึ่ง ผู้ใช้ป้อนทั้ง URL จริงและข้อความค้นหาของเครื่องมือค้นหาลงในช่องข้อความเดียวกันที่ด้านบนของหน้าต่างเบราว์เซอร์ ก้าวไปสู่การลดความซับซ้อนอีกขั้นหนึ่ง โดยไม่ได้บังคับให้ผู้ใช้ป้อนส่วนหนึ่งของ URL ด้วย http:// หรือ https://.

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

หากผู้ใช้บนอินทราเน็ตของบริษัทพิมพ์ "การตลาด" และอินทราเน็ตของบริษัทมีเว็บไซต์ภายในที่มีชื่อเดียวกัน Chromium จะแสดงกล่องข้อมูลที่ถามผู้ใช้ว่าต้องการค้นหา "การตลาด" หรือไปที่ https://marketing. อาจไม่เป็นเช่นนั้น แต่ ISP และผู้ให้บริการ Wi-Fi สาธารณะหลายราย "แย่งชิง" URL ที่สะกดผิดทุกรายการ โดยเปลี่ยนเส้นทางผู้ใช้ไปยังหน้าเว็บที่เต็มไปด้วยแบนเนอร์

การสร้างแบบสุ่ม

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

น่าเสียดายในเครือข่ายนั้น ไม่ ขโมยผลลัพธ์ของการสืบค้น DNS การดำเนินการทั้งสามนี้มักจะขึ้นไปที่ด้านบนสุดไปจนถึงเซิร์ฟเวอร์ชื่อรูทเอง: เซิร์ฟเวอร์ภายในไม่ทราบวิธีแก้ไข qwajuixkดังนั้นส่งต่อคำขอนี้ไปยังผู้ส่งซึ่งทำเช่นเดียวกันจนกระทั่งในที่สุด a.root-servers.net หรือ “พี่น้อง” คนใดคนหนึ่งของเขาจะไม่ถูกบังคับให้พูดว่า “ขออภัย แต่นี่ไม่ใช่โดเมน”

เนื่องจากมีชื่อโดเมนปลอมที่เป็นไปได้ประมาณ 1,67*10^21 ชื่อ ซึ่งมีความยาวตั้งแต่เจ็ดถึงสิบห้าอักขระ ซึ่งเป็นชื่อที่พบบ่อยที่สุด แต่ละ จากการทดสอบเหล่านี้ที่ดำเนินการบนเครือข่าย "ซื่อสัตย์" จะไปถึงเซิร์ฟเวอร์รูท จำนวนเท่านี้ก็มากแล้ว ครึ่ง ของโหลดทั้งหมดบน DNS รูท ตามสถิติจากส่วนนั้นของคลัสเตอร์ root-servers.netซึ่งเป็นเจ้าของโดย Verisign

ประวัติศาสตร์ซ้ำรอย

นี่ไม่ใช่ครั้งแรกที่โครงการสร้างขึ้นด้วยความตั้งใจที่ดีที่สุด ล้มเหลว หรือเกือบจะท่วมทรัพยากรสาธารณะด้วยการรับส่งข้อมูลที่ไม่จำเป็น - สิ่งนี้ทำให้เรานึกถึงประวัติศาสตร์อันยาวนานและน่าเศร้าของเซิร์ฟเวอร์ NTP (Network Time Protocol) ของ D-Link และ Poul-Henning Kamp ในช่วงกลางทศวรรษ 2000

ในปี 2005 Poul-Henning ผู้พัฒนา FreeBSD ซึ่งเป็นเจ้าของเซิร์ฟเวอร์ Stratum 1 Network Time Protocol เพียงแห่งเดียวของเดนมาร์ก ได้รับใบเรียกเก็บเงินจำนวนมากที่ไม่คาดคิดสำหรับการรับส่งข้อมูล กล่าวโดยสรุป เหตุผลก็คือนักพัฒนา D-Link ได้เขียนที่อยู่ของเซิร์ฟเวอร์ Stratum 1 NTP รวมถึงเซิร์ฟเวอร์ Kampa ลงในเฟิร์มแวร์ของกลุ่มสวิตช์ เราเตอร์ และจุดเข้าใช้งานของบริษัท สิ่งนี้ทำให้การรับส่งข้อมูลเซิร์ฟเวอร์ของ Kampa เพิ่มขึ้นเก้าเท่าทันที ทำให้ Danish Internet Exchange (จุดแลกเปลี่ยนอินเทอร์เน็ตของเดนมาร์ก) เปลี่ยนภาษีจาก "ฟรี" เป็น "9 ดอลลาร์ต่อปี"

ปัญหาไม่ใช่ว่ามีเราเตอร์ D-Link มากเกินไป แต่พวกมัน "ไม่อยู่ในสาย" เช่นเดียวกับ DNS NTP จะต้องทำงานในรูปแบบลำดับชั้น - เซิร์ฟเวอร์ Stratum 0 ส่งข้อมูลไปยังเซิร์ฟเวอร์ Stratum 1 ซึ่งส่งข้อมูลไปยังเซิร์ฟเวอร์ Stratum 2 และอื่นๆ ในลำดับชั้น เราเตอร์ สวิตช์ หรือจุดเข้าใช้งานภายในบ้านทั่วไป เช่น ที่ D-Link ได้ตั้งโปรแกรมไว้ด้วยที่อยู่เซิร์ฟเวอร์ NTP จะส่งคำขอไปยังเซิร์ฟเวอร์ Stratum 2 หรือ Stratum 3

โครงการ Chromium อาจจำลองปัญหา NTP ในปัญหา DNS ด้วยความตั้งใจสูงสุด โดยโหลดเซิร์ฟเวอร์รูทของอินเทอร์เน็ตพร้อมคำขอที่พวกเขาไม่เคยตั้งใจจะจัดการ

มีความหวังในการแก้ปัญหาอย่างรวดเร็ว

โครงการ Chromium มีโอเพ่นซอร์ส จุดบกพร่องซึ่งจำเป็นต้องปิดใช้งานตัวตรวจจับการเปลี่ยนเส้นทางอินทราเน็ตตามค่าเริ่มต้นเพื่อแก้ไขปัญหานี้ เราต้องให้เครดิตกับโครงการ Chromium: พบข้อบกพร่อง ก่อนหน้านั้นMatt Thomas จาก Verisign ทำให้เขาได้รับความสนใจอย่างมากได้อย่างไร โพสต์ ในบล็อกของ APNIC ข้อผิดพลาดนี้ถูกค้นพบในเดือนมิถุนายน แต่ยังคงถูกลืมจนกระทั่งโพสต์ของโทมัส หลังจากอดอาหารเขาก็เริ่มอยู่ภายใต้การดูแลอย่างใกล้ชิด

หวังว่าปัญหาจะได้รับการแก้ไขในไม่ช้า และเซิร์ฟเวอร์ DNS รูทจะไม่ต้องตอบสนองต่อคำค้นหาปลอมประมาณ 60 พันล้านทุกวันอีกต่อไป

เป็นโฆษณา

เซิร์ฟเวอร์มหากาพย์ - เป็น VPS บนวินโดวส์ หรือ Linux พร้อมโปรเซสเซอร์ตระกูล AMD EPYC อันทรงพลังและไดรฟ์ Intel NVMe ที่รวดเร็วมาก รีบสั่งเลย!

หนึ่งในคุณสมบัติของ Chromium สร้างภาระงานมหาศาลบนเซิร์ฟเวอร์ DNS รูท

ที่มา: will.com

เพิ่มความคิดเห็น