เข้าใจความเสี่ยงของ policy สอบถามเรื่อง policy ได้ด้วยภาษาทั่วไป ขอชมการสาธิต →
Published:
วิธีตรวจสอบความถูกต้องของนโยบาย microsegmentation ก่อนบังคับใช้
by FireMon
Microsegmentation นิยามได้ง่าย แต่ลงมือทำจริงยาก บนกระดาษ เป้าหมายดูตรงไปตรงมา:
- จำกัดการเข้าถึงไว้เฉพาะเท่าที่จำเป็น
- ตัดการเคลื่อนไหวในแนวระนาบที่ไม่จำเป็นออก
- บังคับใช้หลัก least privilege กับทุก workload
แต่เมื่อขาด policy hygiene กฎที่มีอยู่จึงอาจไม่สะท้อนสภาพจริง ในทางปฏิบัติ สภาพแวดล้อมส่วนใหญ่มีลักษณะดังนี้:
- ก่อตัวขึ้นจากการเปลี่ยนแปลงทีละเล็กละน้อยตลอดหลายปี
- เต็มไปด้วย dependency ที่ไม่มีการบันทึกไว้
- เป็นโครงข่ายที่เชื่อมโยงกันอย่างเปราะบาง การเปลี่ยนแปลงเพียงจุดเดียวอาจกระทบธุรกิจทั้งองค์กร
ด้วยเหตุนี้ โครงการ segmentation จำนวนมากจึงหยุดชะงักหรือล้มเหลวโดยสิ้นเชิง ไม่ใช่เพราะโมเดลผิด แต่เพราะมีการบังคับใช้นโยบายก่อนที่จะตรวจสอบความถูกต้อง บทความนี้อธิบายวิธีตรวจสอบความถูกต้องของนโยบาย microsegmentation ก่อนบังคับใช้ เพื่อให้ท่านลดความเสี่ยงได้โดยไม่กระทบระบบ production
ปัญหาหลัก: บังคับใช้โดยไม่ตรวจสอบความถูกต้อง
ความพยายามทำ segmentation ส่วนใหญ่ดำเนินตามรูปแบบนี้: 1. กำหนดเจตนาของการทำ segmentation 2. แปลงเจตนาให้เป็นกฎ 3. นำไปบังคับใช้ 4. แก้ปัญหาที่เกิดขึ้นตามมา ปัญหาอยู่ที่ขั้นตอนที่ 4 เมื่อบังคับใช้ segmentation โดยไม่ตรวจสอบความถูกต้องก่อน:
- ทราฟฟิกที่ถูกต้องตามกฎถูกบล็อก
- dependency ที่ซ่อนอยู่ปรากฏขึ้น
- ทีมงานต้องย้อนการเปลี่ยนแปลงกลับภายใต้แรงกดดัน
ผลลัพธ์คาดเดาได้ นั่นคือ segmentation กลายเป็นเพียงทฤษฎี ไม่ใช่สิ่งที่ใช้งานได้จริง
“การตรวจสอบความถูกต้อง” หมายถึงอะไรกันแน่
การตรวจสอบความถูกต้องไม่ใช่การทบทวนกฎ แต่คือการตอบคำถามนี้: หากบังคับใช้นโยบาย segmentation นี้ ทราฟฟิกใดจะยังทำงานได้ และทราฟฟิกใดจะหยุดทำงาน การจะตอบคำถามนี้ได้ ท่านต้องจำลองสิ่งต่อไปนี้:
- เส้นทางการเข้าถึงจริง
- ปฏิสัมพันธ์ของกฎข้ามอุปกรณ์ต่าง ๆ
- dependency ระหว่างระบบ
ขั้นตอนที่ 1: สร้างโมเดลของการเข้าถึงในปัจจุบัน
ก่อนกำหนด segmentation ท่านต้องเข้าใจว่าปัจจุบันระบบอนุญาตอะไรไว้บ้างจริง ๆ ซึ่งต้องทำมากกว่าการทบทวนคอนฟิก ท่านต้องมีโมเดลที่สร้างขึ้นจาก:
- กฎ firewall จากทุกผู้ผลิต
- โทโพโลยีเครือข่ายและเส้นทางการ routing
- object group และการแมป address
- พฤติกรรมทราฟฟิกเท่าที่มีข้อมูล
ผลลัพธ์
ชุดของเส้นทางการเข้าถึงที่มีผลจริง: App_Server → DB_Server (1433) App_Server → Logging_Service (514) App_Server → Backup_System (445) สิ่งนี้คือ baseline ของท่าน
ขั้นตอนที่ 2: ระบุการเข้าถึงที่เปิดกว้างเกินจำเป็น
สภาพแวดล้อมแบบ brownfield ส่วนใหญ่มักมี:
- กฎ “allow any” ที่เปิดกว้าง
- ข้อยกเว้นชั่วคราวที่กลายเป็นถาวร
- object group ที่ซ้อนทับกัน
- เส้นทางการเข้าถึงที่ซ้ำซ้อน
การทำ segmentation เริ่มต้นด้วยการระบุว่า: มีการเข้าถึงใดบ้างที่ไม่ควรมีอยู่
ตัวอย่าง
App_Server → DB_Server (1433) ← จำเป็น App_Server → Backup_System (445) ← ไม่จำเป็น App_Server → Reporting_DB (1433) ← ไม่ได้ตั้งใจเปิดไว้ สิ่งนี้คือเป้าหมายในการลดการเข้าถึงของท่าน
ขั้นตอนที่ 3: กำหนดเจตนาของการทำ segmentation
นโยบาย segmentation ควรกำหนดในรูปแบบของ:
- flow ที่อนุญาตอย่างชัดแจ้ง
- แนวทาง deny-by-default
- ข้อจำกัดเฉพาะของแต่ละสภาพแวดล้อม
ตัวอย่างเจตนา
อนุญาต: App_Server → DB_Server (1433) ปฏิเสธ: App_Server → ระบบภายในอื่น ๆ ทั้งหมด นี่คือสถานะที่ท่านต้องการ
ขั้นตอนที่ 4: แปลงเจตนาเป็นการเปลี่ยนแปลงนโยบาย
เจตนาต้องถูกแปลงเป็น:
- กฎ firewall
- การอัปเดต security group
- นโยบายของแพลตฟอร์ม microsegmentation
ขั้นตอนนี้ทำให้ได้สถานะนโยบายที่เสนอไว้ และเป็นจุดที่ทีมส่วนใหญ่เลือกจะ deploy ทันที แต่เป็นจุดที่ควรทำการตรวจสอบความถูกต้องแทน
ขั้นที่ 5: จำลองนโยบาย segmentation
นำกฎ segmentation ที่เสนอไว้ไปใช้กับโมเดลของสภาพแวดล้อมโดยยังไม่บังคับใช้จริง การจำลองนี้จะ:
- คำนวณเส้นทางการเข้าถึงทั้งหมดใหม่
- ใช้ลำดับและลำดับความสำคัญของกฎ
- ประเมินการทำงานร่วมกันระหว่างอุปกรณ์และเลเยอร์ต่าง ๆ
ระบบจะตอบคำถามว่า หากบังคับใช้ segmentation นี้ จะยังเหลือการเชื่อมต่อใดอยู่บ้าง
ขั้นที่ 6: ระบุจุดที่เสียหายและช่องว่าง
การตรวจสอบความถูกต้องจะเผยให้เห็นสองประเด็นสำคัญ:
1. ทราฟฟิกที่ถูกต้องแต่ถูกตัดขาด
คือการเชื่อมต่อที่จำเป็นแต่จะถูกบล็อก ตัวอย่าง App_Server → Logging_Service (514) ← จำเป็นแต่ไม่ได้รวมไว้ กรณีเหล่านี้สะท้อนถึง:
- การกำหนดนโยบายที่ขาดหายไป
- การพึ่งพาที่ซ่อนอยู่
2. การเข้าถึงที่ไม่ได้ตั้งใจซึ่งยังหลงเหลืออยู่
คือทราฟฟิกที่ยังเปิดอยู่แม้จะมีเจตนา segmentation แล้ว ตัวอย่าง App_Server → Backup_System (445) ← ยังอนุญาตอยู่ผ่านเส้นทางอื่น กรณีเหล่านี้สะท้อนถึง:
- การบังคับใช้ที่ไม่สมบูรณ์
- ความเสี่ยงจากเส้นทางหลายทางข้ามอุปกรณ์
ขั้นที่ 7: ปรับนโยบายก่อนบังคับใช้
จากผลการจำลอง:
- เพิ่มกฎอนุญาตที่จำเป็น
- ตัดเส้นทางการเข้าถึงที่ไม่ได้ตั้งใจออก
- ปรับขอบเขตและลำดับของกฎ
ทำซ้ำกระบวนการนี้จนกว่า การเข้าถึงจริงจะตรงกับการเข้าถึงที่ต้องการ
ขั้นที่ 8: ตรวจสอบความถูกต้องในทุกเลเยอร์ของการบังคับใช้
ในสภาพแวดล้อมแบบไฮบริด segmentation ครอบคลุม:
- Network firewall
- Cloud security group
- Microsegmentation ระดับโฮสต์
การตรวจสอบความถูกต้องต้องยืนยันว่า:
- นโยบายสอดคล้องกันในทุกเลเยอร์
- ไม่มีช่องว่างระหว่างจุดบังคับใช้
- ไม่มีกฎที่ขัดแย้งกันระหว่างระบบ
ขั้นที่ 9: บังคับใช้อย่างมั่นใจ
ควรบังคับใช้นโยบายหลังผ่านการตรวจสอบความถูกต้องแล้วเท่านั้น เมื่อถึงขั้นนี้:
- ทราบการเข้าถึงที่คาดหวังไว้แล้ว
- แก้ไขจุดที่จะเสียหายเรียบร้อยแล้ว
- ความเสี่ยงอยู่ในระดับต่ำที่สุด
การ deploy จึงเป็นการดำเนินการตามแผน ไม่ใช่การลองผิดลองถูก
ภาพในทางปฏิบัติเป็นอย่างไร
หากไม่มีการตรวจสอบความถูกต้อง:
- บังคับใช้ segmentation
- แอปพลิเคชันล่ม
- ทีมงานต้องเร่งหากฎที่ขาดหายไป
หากมีการตรวจสอบความถูกต้อง:
- จำลอง segmentation ไว้ล่วงหน้า
- พบช่องว่างตั้งแต่ต้น
- บังคับใช้ได้โดยไม่กระทบการให้บริการ
เหตุใดเรื่องนี้จึงสำคัญต่อ Zero Trust
Zero Trust ขึ้นอยู่กับ:
- Segmentation ที่แม่นยำ
- การบังคับใช้อย่างต่อเนื่อง
- การให้สิทธิ์เข้าถึงน้อยที่สุดตั้งแต่การออกแบบ
แต่ Zero Trust จะล้มเหลวเมื่อ:
- เจตนาของนโยบายไม่สอดคล้องกับการบังคับใช้จริง
- ไม่เข้าใจการพึ่งพาทั้งหมดอย่างครบถ้วน
- การเปลี่ยนแปลงเปิดช่องการเข้าถึงที่ไม่ได้ตั้งใจ
การตรวจสอบความถูกต้องทำให้มั่นใจได้ว่าสิ่งที่ท่านออกแบบไว้คือสิ่งที่ถูกบังคับใช้จริง
บทบาทของ FireMon
FireMon ช่วยให้การตรวจสอบความถูกต้องนี้เกิดขึ้นได้ด้วยการ:
- สร้างแบบจำลองนโยบายครอบคลุมทุก firewall และทุกสภาพแวดล้อม
- จำลองการเปลี่ยนแปลง segmentation ก่อนบังคับใช้จริง
- ระบุการเข้าถึงที่ไม่ได้ตั้งใจและ dependency ที่ขาดหายไป
- ตรวจสอบความสอดคล้องกันในทุกชั้นของการบังคับใช้นโยบาย
FireMon ทำหน้าที่เป็นชั้นการกำกับดูแลระหว่างเจตนาของ segmentation กับระบบที่บังคับใช้นโยบายจริง
บทสรุป
โครงการ segmentation ส่วนใหญ่ไม่ได้ล้มเหลวเพราะกลยุทธ์ผิดพลาด แต่ล้มเหลวเพราะมีการบังคับใช้นโยบายก่อนที่จะเข้าใจสภาพแวดล้อมจริง การตรวจสอบความถูกต้องเปลี่ยน microsegmentation จากความเสี่ยงให้กลายเป็นกระบวนการที่ควบคุมได้
คำถามที่พบบ่อย
การตรวจสอบความถูกต้องของนโยบาย microsegmentation คือกระบวนการจำลองกฎ segmentation ที่เสนอไว้กับแบบจำลองการเข้าถึงที่มีผลจริงทั่วทั้งเครือข่ายซึ่งอ้างอิงจากนโยบาย เพื่อระบุว่าทราฟฟิกใดจะยังทำงานได้ตามปกติและทราฟฟิกใดจะหยุดชะงัก ก่อนที่จะมีการบังคับใช้นโยบายใด ๆ
องค์กรควรตรวจสอบความถูกต้องของนโยบาย microsegmentation ก่อนบังคับใช้ เนื่องจากการนำกฎ segmentation ที่ยังไม่ผ่านการทดสอบไปใช้งานอาจบล็อกทราฟฟิกที่ถูกต้อง เปิดเผย dependency ที่ซ่อนอยู่ และบีบให้ทีมต้องย้อนกลับการเปลี่ยนแปลง จนทำให้ segmentation กลายเป็นเพียงแนวคิดทางทฤษฎีแทนที่จะเป็นมาตรการควบคุมที่ใช้งานได้จริง
การตรวจสอบความถูกต้องของนโยบาย microsegmentation ป้องกันไม่ให้แอปพลิเคชันหยุดทำงาน ด้วยการจำลองกฎที่เสนอไว้กับเส้นทางการเข้าถึงจริง และระบุทราฟฟิกที่ถูกต้องซึ่งจะถูกตัดขาด เช่น การเชื่อมต่อสำหรับ logging หรือการสำรองข้อมูล ก่อนที่การบังคับใช้นโยบายจะกระทบระบบ production
ขั้นตอนแรกของการตรวจสอบความถูกต้องของนโยบาย microsegmentation คือการสร้างแบบจำลองพื้นฐานของการเข้าถึงในปัจจุบัน โดยทำแผนที่เส้นทางการเข้าถึงที่มีผลจริงทั้งหมดจากกฎ firewall โครงสร้างเครือข่าย object group รวมถึงข้อมูลนโยบาย โครงสร้าง และการตั้งค่าของอุปกรณ์ทุกผู้ผลิตในสภาพแวดล้อม
การจำลองจะนำกฎ segmentation ที่เสนอไว้ไปใช้กับแบบจำลองของสภาพแวดล้อมโดยไม่บังคับใช้จริง พร้อมประเมินว่ากฎเหล่านั้นส่งผลต่อเส้นทางการเข้าถึงที่มีอยู่อย่างไร ประเมินลำดับและความสำคัญของกฎ และวิเคราะห์การทำงานร่วมกันระหว่างอุปกรณ์ เพื่อแสดงให้เห็นอย่างชัดเจนว่าการเชื่อมต่อใดจะยังคงอยู่หลังการบังคับใช้
การตรวจสอบความถูกต้องของนโยบาย microsegmentation สนับสนุน Zero Trust ด้วยการทำให้มั่นใจว่าเจตนาของ segmentation สอดคล้องกับการบังคับใช้จริง ว่า dependency ทั้งหมดถูกทำแผนที่ไว้ครบถ้วน และว่าการเปลี่ยนแปลงนโยบายบังคับใช้สิทธิ์การเข้าถึงขั้นต่ำโดยการออกแบบ โดยไม่สร้างเส้นทางการเข้าถึงที่ไม่ได้ตั้งใจ