ผลการค้นพบช่องโหว่นั้นกระทบกระบวนการ VPN ใด
แบนเนอร์ ชื่อไฟล์ไลบรารี และกระบวนการที่ทำงานอยู่สามารถอธิบายสิ่งที่แตกต่างกันได้ ติดตามผลการค้นพบไปยังองค์ประกอบเดียว แล้วจับคู่กับขอบเขตของประกาศ
ผลลัพธ์ของสแกนเนอร์ระบุที่อยู่ พอร์ต และสิ่งที่เจรจากันที่นั่น มันไม่ได้ระบุกระบวนการที่อยู่เบื้องหลังซ็อกเก็ตนั้น และบนโฮสต์ VPN หลายกระบวนการสามารถใช้เครื่องร่วมกันได้ในขณะที่มีเพียงหนึ่งเดียวที่เป็นอุโมงค์ การอ่านสตริงเวอร์ชันจากยูทิลิตี้ข้างเคียงหรือการพบไฟล์ไลบรารีบนดิสก์เพิ่มหลักฐานเกี่ยวกับโฮสต์ ไม่ใช่เกี่ยวกับตัวรับฟัง ผลการค้นพบจะนำไปปฏิบัติได้ก็ต่อเมื่อผูกกับองค์ประกอบที่ทำงานอยู่หนึ่งรายการแล้วจึงจับคู่กับขอบเขตที่ประกาศระบุไว้จริง
ลำดับมีความสำคัญ: องค์ประกอบก่อน ประกาศที่สอง การแก้ไขเป็นอันดับสาม
รายงานระบุพอร์ต ไม่ใช่โปรแกรม
เริ่มจากปลายทางที่ถูกประเมินจริง การตรวจสอบพอร์ตผู้ดูแลระบบ HTTPS วัดบริการเว็บ สแตก TLS และพร็อกซีใดๆ ที่อยู่ข้างหน้า มันไม่ได้เรียนรู้อะไรเกี่ยวกับตัวรับฟัง OpenVPN หรือ WireGuard บนพอร์ตอื่น พร็อกซีแบบย้อนกลับและเอเจนต์การจัดการทำให้แย่ลง เพราะใบรับรองและแบนเนอร์อาจเป็นของส่วนหน้า ในขณะที่ไลบรารีที่มีช่องโหว่อยู่ข้างหลังในกระบวนการแบ็กเอนด์
บันทึกปลายทาง การขนส่ง พอร์ต และชื่อบริการพร้อมผลลัพธ์ เพื่อให้ขอบเขตเดินทางไปกับผลการค้นพบ
บิลด์ที่ทำงานอยู่คืออะไรจริงๆ
บนโฮสต์เอนกประสงค์ แพ็กเกจที่ติดตั้งและไลบรารีที่โหลดเป็นคำถามสองข้อที่แยกกัน ฐานข้อมูลแพ็กเกจอาจแสดงเวอร์ชันที่แพตช์แล้ว ในขณะที่เดมอนที่ทำงานมานานยังคงถือออบเจ็กต์ที่แชร์รุ่นเก่าไว้ในหน่วยความจำ และอิมเมจอุปกรณ์ที่บันเดิลมาอาจมีไลบรารีของตัวเองที่ไม่มีตัวจัดการแพ็กเกจใดรายงาน ถามตัวจัดการบริการว่าอะไรกำลังทำงาน แล้วตรวจสอบกระบวนการและการเชื่อมโยง
systemctl status openvpn-server@server --no-pager ps -o pid,lstart,args -C openvpn ss -lntup | grep -E '1194|443' dpkg -l | grep -i -E 'openvpn|libssl' ldd "$(command -v openvpn)" | grep -i ssl
เวลาเริ่มต้นในรายการกระบวนการคือรายละเอียดที่ผู้คนข้ามไป เดมอนที่เริ่มก่อนการอัปเกรดแพ็กเกจครั้งล่าสุดยังคงรันบิลด์ที่โหลดตอนบูต และนี่คือกรณีที่สินค้าคงคลังบอกว่าแพตช์แล้วแต่ซ็อกเก็ตบอกอย่างอื่น
จับคู่บิลด์กับขอบเขตของประกาศ
ประกาศอธิบายผลิตภัณฑ์ เวอร์ชัน และบางครั้งเงื่อนไขที่จำเป็น และสามฟิลด์นั้นไม่ตรงกับเวอร์ชันแพ็กเกจเสมอไป ประกาศ Heartbleed ของ OpenVPN เมื่อเดือนเมษายน 2014 เป็นตัวอย่างทางประวัติศาสตร์ที่มีประโยชน์ เพราะแยกการเปิดตัว Access Server ที่ได้รับผลกระทบออกจากบริการเว็บและเดมอน VPN ซึ่งมีการเปิดเผยที่แตกต่างกัน บทเรียนคืออ่านว่าข้อความครอบคลุมองค์ประกอบใด แทนที่จะจับคู่คำว่า OpenSSL ตามรูปแบบ
ประกาศนั้นก็เก่าเช่นกัน หมายเลขรีลีสที่แพตช์แล้วไม่ใช่คำแนะนำการติดตั้งในตอนนี้ และข้อบกพร่องที่แก้ไขในปี 2014 ไม่ได้บอกอะไรเกี่ยวกับปัญหาในภายหลังในสาขาที่คุณรันวันนี้
แก้ไขความขัดแย้ง แล้วปิดการเปิดเผย
เมื่อสินค้าคงคลังและการประเมินไม่ตรงกัน ให้ตรวจสอบว่าทั้งสองอธิบายปลายทางและรันไทม์เดียวกันหรือไม่: ที่อยู่อื่น พร็อกซีส่วนหน้า บริการที่สอง กระบวนการเก่าที่ยังผูกกับพอร์ต หรือไลบรารีที่บันเดิลซึ่งตัวจัดการแพ็กเกจไม่เคยเห็น แก้ไขที่ขอบก่อนเขียนรายงานใหม่
ใช้การแก้ไขที่รองรับ รีสตาร์ทบริการที่ได้รับผลกระทบ และยืนยันว่าบิลด์ใหม่คือตัวที่ทำงานอยู่ตอนนี้ ไฟล์ที่แพตช์บนดิสก์ในขณะที่กระบวนการเก่ายังให้บริการทราฟฟิกไม่ใช่การแก้ไข
จากนั้นจัดการกับสิ่งที่องค์ประกอบอาจถือไว้ในช่วงการเปิดเผย การแพตช์และการเปลี่ยนข้อมูลรับรองตอบคำถามที่แตกต่างกัน และใบรับรองที่เก็บไว้ใกล้โฮสต์ที่ได้รับผลกระทบไม่ใช่รายการสิ่งที่รั่วไหลด้วยตัวมันเอง ปฏิบัติตามขั้นตอนของเจ้าของเหตุการณ์สำหรับการเพิกถอน การลบเซสชัน และการอัปเดตไคลเอนต์ และบันทึกว่าองค์ประกอบใดได้รับผลกระทบ ทำไมหลักฐานจึงใช้ได้ และอะไรปิดมัน บันทึกนั้นคือสิ่งที่การทบทวนในภายหลังจะอ่าน