การตรวจสอบสถานะอุปกรณ์ VPN ไม่บล็อกหรือ? ตามรายงานก่อน
เอเจนต์ปลายทางรายงานว่าสุขภาพดี แต่แอปภายในยังเปิดได้ เดินผ่านตัวเก็บรวบรวม คำตัดสิน และการบล็อก แล้วพิสูจน์การปฏิเสธด้วยคำขอเดียว
ถ้าแล็ปท็อปซึ่งลายเซ็นแอนติไวรัสหยุดอัปเดตตั้งแต่หลายสัปดาห์ก่อนยังเปิดแอปภายในของคุณได้ ปกติแล้วเอกสารนโยบายไม่ใช่สิ่งที่ผิด สามระบบแยกกันต้องเห็นตรงกันก่อนที่จะปฏิเสธการเข้าถึง: บางอย่างวัดอุปกรณ์ปลายทาง บางอย่างแปลงการวัดนั้นเป็นคำตัดสินอนุญาตหรือปฏิเสธ และบางอย่างทิ้งทราฟฟิกจริง ๆ เมื่ออุปกรณ์ที่ไม่เป็นไปตามข้อกำหนดเข้ามาได้อยู่ดี แสดงว่ามีข้อต่อหนึ่งข้อขาดไปหรือกำลังเชื่อหลักฐานที่ไม่ควรเชื่อ การตรวจสอบด้านล่างเรียงตามลำดับนั้น และแต่ละข้อมีจุดหยุด
การบล็อกเป็นขั้นตอนสุดท้าย ไม่ใช่ขั้นแรก
การยืนยันตัวตนและสถานะอุปกรณ์ตอบคำถามคนละเรื่อง การเข้าสู่ระบบสำเร็จพิสูจน์ว่ามีการแสดงข้อมูลรับรอง แต่ไม่ได้บอกอะไรเกี่ยวกับซอฟต์แวร์ที่ทำงานบนเครื่องซึ่งแสดงข้อมูลนั้น ช่องว่างนี้เองที่ทำให้โปรไฟล์ไคลเอนต์ที่ถูกคัดลอกสามารถพาเซสชันที่ดูสุขภาพดีไปยังโฮสต์ที่ไม่สุขภาพดีได้
งานด้านการปฏิบัติตามข้อกำหนดของอุปกรณ์ปลายทางมีคำศัพท์สำหรับห่วงโซ่นี้อยู่แล้ว แบบจำลองอ้างอิง NEA ใน RFC 5209 แบ่งงานเป็นตัวเก็บรวบรวม ขั้นประเมิน และจุดบังคับใช้ และระบุชัดว่าไคลเอนต์ที่โกหกเรื่องสถานะของตัวเองอยู่นอกแบบจำลอง ข้อแม้นี้สำคัญกว่าแผนภาพ: โมดูลแพลตฟอร์มที่เชื่อถือได้ไม่ได้เปลี่ยนการวัดที่อุปกรณ์รายงานเองให้เป็นข้อเท็จจริง
ทำให้ตัวเก็บรวบรวมซื่อสัตย์เรื่องขอบเขต ควรรายงานคุณสมบัติที่นโยบายของคุณระบุ บนอุปกรณ์ที่ขอเข้าถึง และอย่างอื่นเพียงเล็กน้อย เอเจนต์สำรวจทรัพย์สินที่ไล่รายการทุกแพ็กเกจที่ติดตั้งเป็นเครื่องมือคนละชนิดกับตัวเก็บรวบรวมสถานะ และความต่างนั้นเป็นทั้งปัญหาเรื่องการเก็บรักษาและความแม่นยำ ถ้ารายงานผูกกับตัวตนอุปกรณ์เดียวไม่ได้ ผู้ประเมินกำลังเดาว่าเพิ่งปล่อยเครื่องไหนผ่าน
แดชบอร์ดที่แสดงสถานะสีแดงไม่ใช่การควบคุม ถามว่าผู้ใช้ที่ถูกปฏิเสธยังเข้าถึงอะไรได้: วิกิ ที่แชร์ไฟล์ พอร์ตฐานข้อมูล? การแก้ไขต้องใช้พื้นผิวแคบเพียงหนึ่งเดียว และทุกอย่างที่เหลืออยู่หลังการบล็อก
อ่านรายงานก่อนอ่านกฎ
เริ่มจากต้นทาง ไม่ใช่จากเครื่องหมายถูกสีเขียวของไคลเอนต์ บน Windows การวัดในเครื่องมาจาก Defender หรือจากผลิตภัณฑ์ที่ลงทะเบียนกับ Security Center และทั้งสองอ่านได้โดยไม่ต้องใช้คอนโซลของผู้จำหน่าย:
Get-MpComputerStatus | Select-Object AMServiceEnabled, RealTimeProtectionEnabled, AntivirusSignatureLastUpdated
Get-CimInstance -Namespace root/SecurityCenter2 -ClassName AntiVirusProduct | Select-Object displayName, productState
คำสั่งที่สองคืนค่าจำนวนเต็มชื่อ productState บิตของมันมีเอกสารหลวม ๆ และผู้จำหน่ายจัดแพ็กธงการเปิดใช้งานและความสดใหม่ต่างกัน จึงควรยืนยันแทนการตีความ แพ็กเกจจากบุคคลที่สามยังทิ้งรายการใน Security Center ไว้หลังถอนการติดตั้ง และรายการนั้นรายงานเกี่ยวกับซอฟต์แวร์ที่ไม่ได้อยู่บนดิสก์แล้ว
อายุคือฟิลด์ที่คนข้ามไป แสตมป์เวลาของลายเซ็นมีความหมายก็ต่อเมื่อเทียบกับนาฬิกาของเครื่องที่ประเมิน ดังนั้นแปลงเป็นช่วงเวลาแทนการกะด้วยตา:
$sig = (Get-MpComputerStatus).AntivirusSignatureLastUpdated
[int](New-TimeSpan -Start $sig -End (Get-Date)).TotalHours
ตอนนี้นโยบายมีตัวเลขให้อ่านหนึ่งตัว ถ้ากฎของคุณบอก 72 ชั่วโมง นั่นคือตัวเลขที่มันใช้ และแล็ปท็อปที่หลับหนึ่งสัปดาห์จะไม่ผ่านโดยไม่มีใครตีความป้ายกำกับ บันทึกเกณฑ์ไว้ข้างคำสั่ง เพราะทั้งสองจะแยกจากกันเมื่อเครื่องมือปลายทางถูกเปลี่ยน
เปลี่ยนทุกสถานะอุปกรณ์เป็นคำตัดสินที่เป็นลายลักษณ์อักษร
ข้อพิพาทเรื่องสถานะส่วนใหญ่จริง ๆ แล้วเป็นข้อพิพาทเรื่องแถวที่ไม่รู้จัก ตัดสินก่อนเหตุการณ์แรก ในตารางที่ระบุหลักฐาน คำตัดสิน และเจ้าของ เพื่อให้ไม่มีใครด้นสดที่คอนโซลเกตเวย์
| Evidence the assessor has | Verdict | What it protects against |
|---|---|---|
| Timestamp inside the policy window, protective service running | Admit to normal applications | Nothing yet; the other checks still apply |
| Timestamp older than the window | Deny, admit remediation page only | Signature rollback and dormant laptops |
| Service disabled or reporting off | Deny, escalate to the endpoint owner | An agent reporting stale success |
| No report at all for this session | Treat as deny, never as healthy | Agents that fail open under load |
แถวล่างคือจุดที่ผลิตภัณฑ์ต่างกัน บางเกตเวย์ปฏิเสธการเชื่อมต่อและอธิบายเหตุผล บางตัวปล่อยให้อุโมงค์ขึ้นและใช้นโยบายจำกัด ไม่กี่ตัวถอยกลับไปใช้รายงานดีล่าสุดที่รู้จัก มีเพียงสองแบบแรกที่ป้องกันได้ และคุ้มค่าที่จะทดสอบว่าของคุณทำแบบไหน
เก็บตัวตนและสิทธิ์ไว้ในเลนของตัวเอง แล็ปท็อปที่ผ่านทุกการทดสอบสถานะยังต้องมีการอนุญาตจากมนุษย์ที่ถูกต้องสำหรับแอป และใบรับรองอุปกรณ์พิสูจน์การถือครองกุญแจ ไม่ใช่สถานะของระบบไฟล์ การบีบทั้งสามเป็นบูลีนเดียวคือทางที่บัญชีฝ่ายช่วยเหลือจะได้สิทธิ์ถาวรในระบบโปรดักชัน
ตรวจเส้นทางบังคับใช้ด้วยคำขอ ไม่ใช่แดชบอร์ด
การบังคับใช้เป็นคุณสมบัติของคำขอ ดังนั้นวัดด้วยคำขอหนึ่งครั้ง วางเครื่องที่ไม่เป็นไปตามข้อกำหนดบนอุโมงค์และเรียกแบบที่ผู้ใช้จริงจะเรียก:
curl -sS -o /dev/null -w '%{http_code}
' --max-time 5 https://app.internal.example/health
การตอบ 200 จากอุปกรณ์ที่ควรถูกบล็อกหมายความว่าคำตัดสินไม่เคยไปถึงเส้นทางข้อมูล สาเหตุปกติสองข้อ: นโยบายผูกกับกลุ่มที่บัญชีทดสอบไม่เคยเข้าร่วม หรือแอปเข้าถึงได้ผ่านเส้นทางที่ VPN ไม่ได้เป็นเจ้าของ
ตรวจสมมติฐานเรื่องเส้นทางก่อน ถ้าชื่อภายในแปลงเป็นที่อยู่ที่ไคลเอนต์เข้าถึงได้อยู่แล้วผ่าน LAN ท้องถิ่น อุโมงค์ก็ไม่เกี่ยวและจะไม่มีนโยบายใดถูกใช้ เทียบที่อยู่นั้นกับเส้นทางที่เกตเวย์ผลักไป บน OpenVPN นโยบายต่อไคลเอนต์อยู่ในไฟล์ที่ใช้ชื่อสามัญเป็นกุญแจ จึงตรวจได้ง่าย:
ls /etc/openvpn/ccd/
cat /etc/openvpn/ccd/laptop-17
ไฟล์ที่มี disable ตัดการเชื่อมต่อไคลเอนต์นั้นทั้งหมด ส่วนบรรทัด push "route ..." จำกัดสิ่งที่มันเข้าถึงได้ ทั้งสองเป็นการบังคับใช้ และทั้งสองมองเห็นได้สำหรับใครก็ตามที่ดีบักรายงาน
ทดสอบทั้งสี่กรณีบนบัญชีทดสอบเดียว
การตรวจสอบสุดท้ายคือเมทริกซ์เล็ก ๆ ไม่ใช่เส้นทางสุขสบาย ขับบัญชีทดสอบหนึ่งบัญชีผ่านสี่สถานะ: ปัจจุบัน ลายเซ็นหมดอายุ การป้องกันถูกปิด เอเจนต์ไม่ได้ติดตั้ง สำหรับแต่ละกรณี บันทึกคำตัดสินในบันทึกการประเมิน สถานะ HTTP ที่แอปคืนค่า และหน้าแก้ไขโหลดหรือไม่
foreach ($case in 'current', 'stale', 'disabled', 'absent') {
Get-MpComputerStatus | Select-Object AMServiceEnabled, AntivirusSignatureLastUpdated
curl.exe -sS -o NUL -w "%{http_code}
" --max-time 5 https://app.internal.example/health
}
สองรายละเอียดหลุดง่าย อย่างแรกคือการเล่นซ้ำ รายงานที่เก็บตอนเครื่องสุขภาพดีต้องไม่ถูกยอมรับสำหรับเซสชันถัดไปบนอุปกรณ์เดียวกัน จึงมองหาแสตมป์เวลาที่ผูกกับการเชื่อมต่อปัจจุบัน จากนั้นคือการถอน เอเจนต์ที่ถูกถอนควรให้ผลปฏิเสธเหมือนรายงานเก่า ไม่ใช่ผ่านสะอาด และนี่คือกรณีที่มักไม่เคยถูกทดสอบเลย
เมื่อเมทริกซ์ตรงกับตาราง ส่งมอบสามอย่างให้คนที่จะดูแลเกตเวย์ต่อ: คำสั่ง เกณฑ์ และผลลัพธ์ที่คาดไว้สี่ข้อ การส่งมอบนั้นคือผลลัพธ์จริง เพราะการออกแบบสถานะที่อยู่ในเอกสารนโยบายเท่านั้นจะเพี้ยนทันทีที่เครื่องมือปลายทางเปลี่ยนฟิลด์รายงาน