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

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

สองการทดลองที่ดูเหมือนกันในรายงาน

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

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

จดบันทึกว่าคุณทำการทดลองใดในสองอย่างนี้จริง ก่อนจะดึงข้อสรุปใดจากตารางพอร์ต ความต่างนี้ฟังดูเป็นวิชาการจนกว่ารายงานจะบอกว่า VPN บล็อกพอร์ตที่ไม่เคยเปิดบนที่อยู่ซึ่งคุณเข้าถึงครั้งที่สอง

ComparisonWhat stays fixedWhat a difference can mean
Name against nameThe string you typedResolver answer, answer order or split-horizon policy changed
Address against addressThe numeric destinationSource path, filtering or service placement changed

แปลงก่อน แล้วค่อยสแกนที่อยู่ที่บันทึกไว้

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

getent hosts scan.example.net
dig +short scan.example.net A
nmap -Pn -sV -p 443,8443 192.0.2.40

แฟล็ก -Pn สำคัญตรงนี้ เพราะโฮสต์ที่เพิกเฉยต่อการตรวจค้นหาจะถูกรายงานว่าล่มและผลว่างจะถูกอ่านผิดว่าเป็นพอร์ตปิด ใช้ -sV เฉพาะกับเป้าหมายที่ผู้ปฏิบัติการอนุมัติแล้วเท่านั้น การตรวจเวอร์ชันมีเสียงดังกว่าการเชื่อมต่อเปล่าและอยู่ในขอบเขตที่เขียนไว้

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

เก็บค่าที่แปลงแล้วไว้ข้างผลลัพธ์การสแกน พร้อมตระกูลที่อยู่ ชุดแฟล็ก และตราเวลา การค้นแบบย้อนกลับที่คืนชื่อบริษัทเป็นการสังเกตอีกอย่าง ไม่ใช่หลักฐานว่าแบ็กเอนด์ใดตอบ

สถานะพอร์ตที่เปลี่ยนไปบอกอะไรได้และบอกอะไรไม่ได้

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

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

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

บันทึกผลลัพธ์เพื่อให้การเปรียบเทียบทนต่อการตรวจทาน

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

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

บทความที่เกี่ยวข้อง