การแจ้งเตือนขาเข้าบนเซิร์ฟเวอร์ VPN: อ่านจุดสังเกต
การดักจับแพ็กเก็ต การถูกไฟร์วอลล์ปฏิเสธ และการล็อกอินที่ล้มเหลว บันทึกสามเหตุการณ์ที่แตกต่างกัน จับคู่ทูเพิลและเวลาให้ตรงกันก่อนตัดสินว่ามีใครเข้ามาหรือไม่
เซิร์ฟเวอร์ที่อยู่หลัง VPN ยังคงมีรายการบริการสาธารณะของตน และผู้คนก็ยังคงค้นพบรายการเหล่านั้น สิ่งที่เข้ามาในคิวแจ้งเตือนไม่ใช่การค้นพบเดียว แต่เป็นสามความเป็นไปได้ และแต่ละอย่างมีความหมายต่างกัน งานแรกคือแยกบริการที่เปิดเผยออกจากข้อมูลล็อกอินที่เปิดเผย
ไล่จุดสังเกตตามลำดับ หยุดเมื่อหลักฐานเปลี่ยนประเภท เพราะขั้นถัดไปตอบคำถามอีกข้อหนึ่ง
ขั้นแรก: สิ่งที่การดักจับเห็นจริง
การดักจับแพ็กเก็ตบันทึกสิ่งที่มองเห็นได้ ณ จุดของตัวเองบนเส้นทาง จุดนั้นอาจอยู่ก่อนการตัดสินใจกรองในภายหลัง แพ็กเก็ตที่ถูกดักได้พิสูจน์ว่าทราฟฟิกมาถึงที่นั่น ไม่ได้พิสูจน์สิ่งใดเกี่ยวกับสิ่งที่เกิดขึ้นหลังจากนั้น
สังเกตอินเทอร์เฟซด้วย การดักจับบนอะแดปเตอร์สาธารณะและการดักจับภายในอุโมงค์อธิบายจุดมาถึงที่ต่างกัน และการแจ้งเตือนที่อ้างจุดผิดก็นำไปสู่ข้อสรุปที่ผิด
Windows กรองในหลายชั้นของสแตกด้วย ดังนั้นแบบจำลองที่เรียบร้อยซึ่งเครื่องมือดักจับอยู่ชั้นที่สองและไฟร์วอลล์อยู่ชั้นที่สามจึงไม่รอดเมื่อพบกับผลิตภัณฑ์จริง ภาพรวมของ Windows Filtering Platform อธิบายการกรองข้ามชั้นของสแตก นั่นคือเหตุผลที่ต้องกำหนดลำดับการสังเกต ไม่ใช่สันนิษฐาน
ขั้นที่สอง: สิ่งที่บันทึกการปฏิเสธยืนยัน
บันทึกการปฏิเสธบอกว่าเส้นแบ่งนโยบายปฏิเสธแพ็กเก็ตนั้น เป็นหลักฐานที่หนักแน่น และเป็นหลักฐานที่แคบด้วย เพราะครอบคลุมการตัดสินใจหนึ่งครั้งที่เส้นแบ่งหนึ่งเส้น ไม่มีสิ่งอื่นในสแตกที่ถูกอธิบายด้วยบันทึกนี้
จับคู่ด้วยทูเพิลและเวลา แหล่งเดียวกัน ปลายทางเดียวกัน พอร์ตเดียวกัน ภายในวินาทีเดียวกัน หากไม่ตรงกัน เหตุการณ์ที่ดูคล้ายกันในบันทึกอื่นก็เป็นเพียงเหตุการณ์อื่น และการจับคู่ทั้งสองจะสร้างเรื่องราวที่ไม่มีใครปกป้องได้
# what did the firewall actually drop, and when?
Get-NetFirewallProfile -PolicyStore ActiveStore | Select-Object Name, LogAllowed, LogBlocked
Get-Content "$env:systemroot\System32\LogFiles\Firewall\pfirewall.log" | Select-String 'DROP'
# correlate with a listening service on the same port
Get-NetTCPConnection -LocalPort 3389 -State Listen | Select-Object LocalAddress, OwningProcess
พอร์ตที่ปิดและแพ็กเก็ตที่ถูกทิ้งดูเหมือนกันจากภายนอก และแตกต่างกันโดยสิ้นเชิงในผลลัพธ์สองอย่างนี้ ความแตกต่างนั้นคือเหตุผลทั้งหมดในการอ่านบันทึกภายในเครื่อง
ขั้นที่สาม: สิ่งที่เหตุการณ์การยืนยันตัวตนพิสูจน์
เหตุการณ์การยืนยันตัวตนบอกว่าองค์ประกอบหนึ่งประมวลผลคำขอไปไกลพอที่จะบันทึกผลลัพธ์ เป็นขั้นเดียวในสามขั้นที่พูดถึงตัวตน และไม่บอกสิ่งใดเกี่ยวกับจำนวนแพ็กเก็ตที่มาถึงก่อนหน้านั้น
อ่านบริบทจริงของเหตุการณ์ การล็อกอินที่ล้มเหลวสำหรับบัญชีที่ไม่มีอยู่คือเสียงรบกวนจากการสแกน การล็อกอินที่ล้มเหลวสำหรับบัญชีจริงที่มีแหล่งที่มาสมเหตุสมผลคือลำดับความสำคัญที่ต่างออกไป เซสชันที่สำเร็จคือหมวดหมู่เหตุการณ์ที่ต่างออกไปทั้งหมด
ดูชื่อโพรโทคอลด้วย RPC และ RDP เป็นบริการแยกกันที่มีพอร์ตแยกกัน ตัวตรวจจับที่เฝ้าดูเพียงตัวใดตัวหนึ่งไม่ได้ครอบคลุมอีกตัวหนึ่ง เครื่องมือที่สรุปกิจกรรมเครือข่ายไม่ได้ระบุเสมอว่าตัวใดในสองตัวสร้างเหตุการณ์นี้
ตัวอย่างที่จับคู่แล้วหนึ่งชิ้นดีกว่าแดชบอร์ด
เลือกการทดสอบที่ได้รับอนุญาตหนึ่งครั้ง ตั้งใจรัน และติดตามตั้งแต่ต้นจนจบ: ที่อยู่ปลายทางและอินเทอร์เฟซ ที่อยู่ต้นทางจริง พอร์ตบริการ โปรไฟล์และกฎไฟร์วอลล์ที่บังคับใช้ และผลลัพธ์บริการที่ตรงกัน รวมการแมปต้นน้ำหรือไฟร์วอลล์บนคลาวด์ไว้ในห่วงโซ่นั้นด้วย เพราะกฎที่อนุญาตตรงนั้นสามารถแทนที่กฎภายในเครื่องที่เรียบร้อยได้
จากนั้นแยกสองหน้าที่ออกจากกัน หากการดูแลระบบควรทำผ่าน VPN เท่านั้น ให้บังคับใช้ทั้งบนเส้นทางสาธารณะและเส้นทางอุโมงค์ พร้อมทั้งคงเส้นทางการกู้คืนที่ได้รับอนุมัติไว้ การเฝ้าดูความพยายามที่ถูกปฏิเสธไม่ใช่งานเดียวกับการตัดสินว่าเซิร์ฟเวอร์ควรยอมรับอะไร
กฎทางภูมิศาสตร์หรือโพรโทคอลที่ไม่เกี่ยวข้องซึ่งถูกบล็อกไม่ใช่สิ่งทดแทนการค้นหารายการที่สังเกตเห็นและการตัดสินใจที่รายการนั้นได้รับ VPN ก็ไม่ใช่เช่นกัน การส่งทราฟฟิกขาออกผ่านอุโมงค์ไม่ได้บันทึกสิ่งใดเกี่ยวกับการอนุญาตขาเข้า