วันจันทร์ที่ 20 มิถุนายน พ.ศ. 2565

เลือกอะไรดี ? ระหว่าง Azure Bastion กับ Just-In-Time VM Access

      สวัสดีครับทุกท่าน สำหรับบทความนี้จะเกี่ยวข้องกับการสร้างความปลอดภัยให้กับ Azure Virtual Machines (Azure VMs) ที่เราได้มีการติดตั้งและใช้งานกันครับ สำหรับการสร้างความปลอดภัยให้กับ Azure VMs ซึ่งถือว่าเป็น Workloads ที่มีความสำคัญใน Environment ขององค์กรนั้น ถ้าว่ากันตาม Best Practices ที่เกี่ยวข้องกับเรื่องดังกล่าวนี้มีรายละเอียดเยอะพอสมควรครับ แต่สำหรับบทความนี้ผมจะหยิบเอามาเรื่องหนึ่งนั่นก็คือการ Securing Management Ports ของ Azure VMs ครับ ซึ่งใน Microsoft Azure ได้เตรียม Options ต่างๆ เอาให้แล้ว โดยหลักๆ จะมีอยู่ 2 Options คือ


1. Azure Bastion

2. Just-In-Time Virtual Machine Access (เป็นฟีเจอร์หนึ่งของ Microsoft Defender for Cloud)


สิ่งที่น่าสนใจคือ เราจะเลือก Options ใดดีเพื่อ Secure Management Ports ของ Azure VMs ครับ ก่อนอื่นเลยผมขอเริ่มคอนเซปพื้นฐานของ Azure VMs ก่อนนะครับ เผื่อว่าท่านใดที่ยังไม่คุ้นเคยกับ Azure VMs โดยเริ่มจากการติดตั้ง Azure VMs ซึ่งแน่นอนว่าก่อนที่จะดำเนินการติดตั้ง จะต้องมีการวางแผน, ออกแบบ, และเตรียมความพร้อมมาก่อนนะครับ เช่น Series, Sizes, OS, Disks, และอื่นๆ สุดท้าย Azure VMs ดังกล่าวนั้นก็จะถูก Provisioned และเราก็นำเอามาใช้งานต่อไปครับ

 

แต่ประเด็นที่เกี่ยวข้องกับเรื่องความปลอดภัยหรือ Security คือ ทุกท่านทราบใช่มั๊ยครับว่า Azure VMs ทุก VMs ที่ได้มีการติดตั้งใช้งาน มันจะเปิด Ports (Management Ports) เอาไว้ เช่น RDP หรือ SSH ทั้งนี้ก็ขึ้นอยู่กับ OS ที่เราได้มีการติดตั้งเข้าไปยัง Azure VMs ดังกล่าว โดย Management Ports ดังกล่าวนี้เปิดเอาไว้โดยมีวัตถุประสงค์เพื่อให้ผู้ดูแลระบบตลอดจนท่านที่มีบทบาทหน้าที่เกี่ยวข้องเข้าไปดำเนินการหรือทำงานต่าง ๆ ครับ ดังรูปด้านล่าง เป็นรูปที่แสดงถึง NSG ของ Azure VMs ที่เราได้ทำการ Deploy ไปนั้นมี RDP Port เปิดอยู่ครับ










หลายๆ ท่านอาจจะมีคำถามในใจว่าที่อยากจะถามผมเกี่ยวกับเรื่องนี้ว่า Ports เหล่านี้ก็ต้องเปิดอยู่แล้ว ก็ถูกต้องแล้ว ไม่เช่นนั้นผู้ดูแลระบบก็ไม่สามารถ Remote เข้าทำงานได้สิ ก็ถูกต้องครับ แต่มันไม่ปลอดภัยครับ เพราะว่า Ports เหล่านี้ (RDP และ SSH) มันเปิดไว้ตลอดเวลาครับ ซึ่งทำให้เกิดความสุ่มเสี่ยงที่จะโดนโจมตีหรือ Attacks ครับ เพราะฉะนั้นนี่คือเรื่องปรกติที่เกิดขึ้นกับ Azure VMs ทุก VMs ที่เราได้มีการติดตั้งใช้งานครับ สำหรับการป้องกันหรือการ Secure Management Ports จากประเด็นที่ผมได้อธิบายไว้ก่อนหน้านี้ จะทำได้อย่างไร คำตอบ อยู่ที่ตอนต้นของบทความครับ คือ การพิจารณานำเอา Azure Bastion หรือ Just-In-Time Virtual Machine Access มาประยุกต์ใช้งานครับ  ดังนั้นเรามาทำความรู้จักในแต่ละ Options กันเลยครับผม



1. Azure Bastion

เป็น Service ที่ให้เราสามารถใช้ Modern HTML5-Based Web Client ที่อยู่ภายใน Azure Portal แล้วเชื่อมต่อโดยใช้ TLS และ Port 443 ไปยัง Azure VMs ที่อยู่ใน Azure Virtual Networks เดียวกัน 













Azure Bastion ที่ใช้ Modern HTML5-Based Web Client ดังกล่าว จะเชื่อมต่อไปยัง RDP หรือ SSH Sessions over TLS (Port 443) และ Port (ที่ Modern HTML5-Based Web Client) เดียวกันนี้จะใช้สำหรับ HTTPS Connections เช่นกัน เพราะฉะนั้นการใช้ TLS Over 443 ทำให้การติดต่อผ่านไปยัง Firewall ขององค์กรสะดวกมากขึ้น เพราะไม่ต้องเปิด Ports ใดๆ เพิ่มเติม


การนำเอา Azure Bastion ยังส่งผลทำให้การ Access หรือเข้าถึง Azure VMs มีความปลอดภัยมากขึ้น เพราะไม่ได้ใช้หรือติดต่อผ่านทาง Public IP Address ของ Azure VMs  เพราะ Azure Bastion ติดต่อไปยัง Azure VMs โดยใช้ Private IP Address ส่งผลทำให้ Azure VMs มีความปลอดภัยจากการ Scanning Ports จากภายนอก



2. Just-In-Time VM Access (ฟีเจอร์หนึ่งของ Microsoft Defender for Cloud)

สำหรับ Just-In-Time VM Access ถือว่าเป็นฟีเจอร์หนึ่งของ Microsoft Defender for Cloud (ชื่อเดิม คือ Azure Security Center) นั่นหมายความว่าถ้าเราต้องการใช้งานฟีเจอร์นี้ จะต้องมีการ Enable Azure Subscription ที่เราต้องการให้ Microsoft Defender for Cloud เข้ามาทำหน้าที่ต่างๆ เช่น CSPM, CWPP, เป็นต้น นอกจากนี้แล้วตัวของ Microsoft Defender for Cloud ยังมีความสามารถและฟีเจอร์อีกมากมายครับ หนึ่งในนั้นก็คือ Just-In-Time VM Access ครับ นั่นหมายความก่อนที่ทุกท่านจะใช้งานฟีเจอร์ดังกล่าวนี้ จะต้องมีการวางแผนมาก่อนนะครับ







ด้วยความสามารถของฟีเจอร์ Just-In-Time VM Access ทำให้เราสามารถกำหนดการเข้าถึงหรือ Access Azure VMs ที่ต้องการได้ครับ (สามารถกำหนด Ports ที่ต้องการได้ ไม่ได้จำกัดแค่เพียง Management Ports นะครับ) ด้วยการกำหนดเวลาในการเข้าถึง Azure VMs ตัวดังกล่าว เมื่อเลยเวลาที่กำหนดการเข้าถึงหรือ Access นั้นก็จะสิ้นสุดลงครับ โดยคอนเซปการทำงานของ Just-In-Time VM Access, เริ่มจาก Microsoft Defender for Cloud โดยเข้าไปปรับเปลี่ยน Inbond Ports (Inboud Security Rules) ใน NSG ของ Azure VMs ดังกล่าวให้เราโดยอัตโนมัติ


เพราะฉะนั้นถ้าเราต้องการ Remote เข้าไปยัง Azure VMs ดังกล่าวที่มีการ Protect หรือ Secure โดยใช้ Just-In-Time VM Access สามารถทำได้โดยใช้เครื่องมือที่ใช้อยู่แล้วตามปรกติ เช่น Remote Desktop หรือ Tools อื่นๆ ที่ใช้หรือ Support RDP  นอกจากนี้แล้วเรายังสามารถทำจัดการและทำการ Transfer ไฟล์ต่างๆ ได้โดยตรงไปยัง Azure VMs ดังกล่าวได้เลยครับ


และสุดท้ายด้วยความสามารถของฟีเจอร์ Just-In-Time VM Access ส่งผลทำให้ Azure VMs มีความปลอดภัยมากขึ้นเพราะมีการปิด Management Ports โดยอัตโนมัติและจะเปิดมีการ Request และปิดตามเวลาที่กำหนด



มาถึงตรงนี้ทุกท่านจะพอเข้าใจและเห็นภาพแล้วว่าทั้ง Azure Bastion และ Just-In-Time VM Access  เป็นสิ่งที่จะมาช่วยลด Attack Surface และสร้างความปลอดภัยให้กับ Azure VMs ที่เราได้มีการติดตั้งและใช้งาน โดยเฉพาะประเด็นที่ผมได้หยิบมานำเสนอและอธิบายนั่นก็คือ การ Secure Management Ports ของ Azure VMs ครับ  ตารางด้านล่างเป็นตารางที่ยกตัวอย่าง Use Cases สำหรับการเลือกใช้ Options ใดครับ







แต่ถ้าเราต้องการความปลอดภัยแบบสูงสุดสำหรับเรื่องของการ Secure Management Ports ก็สามารถพิจารณานำเอาทั้ง 2 Options เข้ามาทำงานร่วมกันเลยครับ ดังรูปด้านล่างครับ















จากภาพด้านบนคือการนำเอา Azure Bastion และ Just-In-Time VM Access มาใช้งานร่วมกัน ซึ่งส่งผลทำให้องค์กรหรือออฟฟิศของทุกท่านได้รับประโยชน์คือ ใช้ Browser-Based SSL Connection ในการติดต่อไปยัง Azure VMs โดยที่ไม่ได้ใช้ Public IP Address ของ Azure VMs และยังสามารถกำหนด Ports ที่ต้องการ เช่น RDP, SSH, และอื่นๆ ให้เปิดและปิดตามเวลาที่กำหนดครับ ส่งผลทำให้การเข้าถึง Azure VMs ของทุกท่านมีความปลอดภัยมากขึ้นครับผม


และทั้งหมดนี้คือเรื่องราวของ Azure Bastion และ Just-In-Time VM Access ที่ผมนำเอามาฝากครับผม.....

ไม่มีความคิดเห็น:

แสดงความคิดเห็น