วันพฤหัสบดีที่ 9 มิถุนายน พ.ศ. 2565

ป้องกัน Azure Virtual Networks และ Web Applications ด้วย Azure Firewall, Azure Application Gateway, และ Azure Web Application Firewall

     สวัสดีครับทุกท่าน สำหรับบทความตอนนี้ผมจะพาท่านไปรู้จักกับ Services ต่างๆ ใน Microsoft Azure ที่จะมาช่วยป้องกัน Azure Virtual Networks และ Web Applications ที่เราได้มีการติดตั้งใช้งานครับ เรื่องราวจะเป็นอย่างไร สามารถติดตามกันได้เลยครับ


ก่อนที่จะพาทุกท่านไปรู้จักกับ Services ต่างๆ  ผมขออธิบายคอนเซปที่เกี่ยวข้องกับ Security ในส่วนที่เกี่ยวข้องกับ Network ให้ทุกท่านได้รับทราบกันก่อนนะครับ โดยเริ่มจากการพิจารณาดูว่าชนิดหรือรูปแบบของ Traffics ที่ต้องการป้องกัน (Protect) โดยปรกติทั่วๆ ไป จะมี 2 ชนิด


1. HTTP/HTTPs Traffics, เกี่ยวข้องกับ Web Applications

2. Non-HTTP/HTTPS Traffics, เกี่ยวข้องกับ Traffics ที่ใช้งานกับ Workloads ต่างๆ เช่น TCP Traffic ที่เชื่อมต่อกับ SQL (Port 1433), Traffic ที่เชื่อมต่อกับ DNS (Port 53), เป็นต้น


เรื่องสำคัญเรื่องหนึ่งของการรักษาความปลอดภัยของ Network คือ การป้องกัน Hosts หรือ Devices ต่างๆ โดยการซ่อน IP Address ของ Hosts หรือ Devices เหล่านั้น  วิธีการที่จะทำการซ่อนเพื่อไม่ให้ Attacker ทำการ Attack ไปยัง IP Address ต้นทางได้ คือ การใช้กระบวนหรือวิธีการที่เรียกว่า “Network Address Translation” หรือเรียกสั้นๆ ว่า NAT  ซึ่งมีทั้งหมด 2 แบบ คือ


แบบที่ 1: Source Network Address Translation (SNAT), SNAT จะถูกใช้เมื่อเราต้องการซ่อน IP Address ของ Internal หรือ Private Hosts หรือ Devices ที่จะพยายามเริ่มทำการสร้างหรือทำการติดต่อไปยังภายนอก (External) โดยจะมี Devices (เช่น Azure Firewall) ดำเนินการเปลี่ยน Private IP Address (ของ Hosts หรือ Devices) ต้นทาง (Source) มาเป็น Public IP Address  (ของ Azure Firewall)  โดยกระบวนการเปลี่ยนแปลงดังกล่าวนี้สามารถเปลี่ยน Source Port (ใน TCP/UDP Headers) ได้อีกด้วย  ตัวอย่างการใช้งาน SNAT เช่น เราต้องการเปลี่ยน Private IP Address หรือ Port ของต้นทางมาเป็น Public Address/Port เมื่อ Packets กำลังออกจาก Network


แบบที่ 2: Destination Network Address Translation (DNAT), DNAT จะถูกใช้ในการ Redirect Packets ที่เข้ามาใน Network (Incoming Packets) ที่มาพร้อมกับ Destination ของ Public Address/Port ไปยัง Private IP Address/Port ที่อยู่ภายใน Network  โดย DNAT จะดำเนินการกับ Incoming Packet ตามที่เกริ่นไว้ช้างต้น โดย Firewall (Azure Firewall) จะทำการแปลง Public IP Address (Destination) มาเป็น Private IP Address (Source) โดย DNAT สามารถทำ Port Forwarding หรือ Port Translation  ตัวอย่างของการใช้งาน DNAT เช่น ผู้ใช้งานหรือลูกค้าพยายามติดต่อหรือ Access Web Server ซึ่งอยู่ใน On-Premise Data Center หรือ On Cloud (Microsoft Azure) โดย DNAT จะทำการซ่อน Private IP Address ของ Web Server เอาไว้ และ Firewall (Azure Firewall) จะทำการแปลง Public IP Address (ซึ่งเป็น IP Address ที่ผู้ใช้งานหรือลูกค้าติดต่อมา) มาเป็น Private IP Address ของ Web Server ดังกล่าว  


จากเรื่องราวข้างต้นในส่วนของ Microsoft Azure ได้เตรียม Services ต่างๆ ที่จะเข้ามช่วยในการป้องกัน Resources ต่างๆ เช่น Azure Virtual Networks และ Web Applications ที่องค์กรได้มีการติดตั้งและใช้งาน โดยมี Azure Services ที่เกี่ยวข้องดังนี้:


Azure Firewall

Azure Firewall เป็น Managed Service (PaaS) ซึ่งเป็น Service หนึ่งของ Microsoft Azure ที่เข้ามาช่วยในการป้องกัน (Protect) Azure Virtual Networks (Azure VNets) และ Azure Firewall ยังเป็น Stateful Firewall มาพร้อมกับ High Availability และ Scalability 

เพราะฉะนั้นจึงทำให้ Azure Firewall มีความยืดหยุ่นและมีประสิทธิภาพมากขึ้นในการนำไปประยุกต์ใช้งานในองค์กร และโดย Default, Azure Firewall จะ Block ทุก Traffics   และ Azure Firewall มี Options หรือ SKUs ให้เลือกใช้ดังนี้

- Standard

- Premium 


Azure Firewall (Standard)

ใน Option หรือ SKU ดังกล่าวนี้ได้เตรียมความสามารถหรือฟีเจอร์ต่างๆ เช่น L3-L7 Filtering และ Threat Intelligence โดย Microsoft Cyber Security  โดย Threat Intelligence จะทำการค้นหา, ตรวจสอบ, Alert, ตลอดจนการ Deny Traffics ต่างๆ ที่น่าสงสัยจาก IP Addresses และ Domains ซึ่งจะมีการอัพเดทข้อมูลต่างๆ เป็นระยะๆ จากทาง Microsoft Cyber Security เพื่อป้องกันการ Attacks ใหม่ๆ 















ฟีเจอร์ต่างๆ ที่จะมาพร้อมกับ Azure Firewall (Standard)

- Built-In High Availability

- Availability Zones

- Unrestricted Cloud Scalability

- Network Traffic Filtering Rules

- SNAT & DNAT (*อ้างอิงจากการอธิบายไว้ตอนต้น)

- Threat Intelligence

- อื่นๆ


Azure Firewall (Premium)

ใน Option หรือ SKU ดังกล่าวนี้ได้เพิ่มความสามารถตลอดจนฟีเจอร์ต่างๆ เช่น Signature-Based IDPS ซึ่งดำเนินการการค้นหา Attacks ต่างๆ แบบรวดเร็ว (Rapid Detection) เพื่อทำการมองหารูปแบบ (Patterns) ในการ Attack  โดย Patterns ที่มาพร้อมกับฟีเจอร์ดังกล่าวมีมากกว่า 58,000 Signatures และมากกว่า 50 Categories ซึ่งทาง Microsoft จะมีการอัพเดทเป็นระยะๆ

















ฟีเจอร์ต่างๆ ที่จะมาพร้อมกับ Azure Firewall (Premium)

- TLS Inspection, ทำการ Decrypts Outbound Traffics, Process Data แล้วทำการ Encrypt Data แล้วส่งไปยัง Destination

- IDPS, เป็น Network Intrusion Detection และ Prevention System (IDPS) ให้เราสามารถทำการตรวจสอบ Network Activities ที่น่าสงสัย, บันทึกเหตุการณ์ต่างๆ, รายงาน, และทำการ Block

- URL Filtering

- Web Categories


รายละเอียดเพิ่มเติมเกี่ยวกับ Azure Firewall, https://docs.microsoft.com/en-us/azure/firewall/overview


Azure Application Gateway

เป็น Service ที่ให้บริการ Web Traffic Load Balancer หรือ Distributing Traffics เพื่อให้เราทำการบริหารจัดการ Traffics ที่จะเข้ามาที่ Web Applications โดยตัวของ Azure Application Gateway จะทำงานที่ Layer 7 (Application Layer) และทำการ Route Traffics จาก Source IP Address/Port ไปยัง Destination IP Address/Port

Application Gateway สามารถสร้าง Routing ตาม Additional Attributes ของ HTTP Request ตัวอย่างเช่น URI Path หรือ Host Headers นั่นหมายความว่า เราสามารถ Route Traffic ตาม Incoming URL เช่น /vdo, /images, เป็นต้น หรือสามารถ Route Traffics ไปที่ Server ที่เราต้องการ เป็นต้น













รายละเอียดเพิ่มเติมเกี่ยวกับ Azure Application Gateway, https://docs.microsoft.com/en-us/azure/application-gateway/overview


Azure Web Application Firewall (WAF)

เป็นอีกหนึ่ง Service ที่ผมอยากแนะนำเพิ่มเติมครับ โดย Service ดังกล่าวนี้ จะทำหน้าที่ในการป้องกัน Web Application จาก Common Exploits และ Vulnerabilities เช่น SQL Injection, Cross Site Scripting, และอื่นๆ  โดยตัวของ WAFสามารถทำงานร่วมกันกับ Azure Application Gateway  ทำให้เราสามารถกำหนด Rules (Core Rule Set) จาก Open Web Application Security Project (OWASP)  ซึ่งส่งผลทำให้การป้องกัน Web Applications มีความปลอดภัยมากขึ้น


ฟีเจอร์ต่างๆ ที่จะมาพร้อมกับ Azure Web Application Firewall (WAF)

- SQL Injection Protection

- Cross-Site Scription Protection

- Protection จาก Common Web Attacks เช่น Command Injection, HTTP Request Smuggling, เป็นต้น

- Protection จาก HTTP Protocol Violations

- Protection จาก HTTP Protocol Anomalies

- อื่นๆ



 









รายละเอียดเพิ่มเติมเกี่ยวกับ Web Application Firewall, https://docs.microsoft.com/en-us/azure/web-application-firewall/ag/ag-overview


และทั้งหมดนี้คือเรื่องราวของการป้องกัน Azure Virtual Networks และ Web Applications ครับผม…..



วันพุธที่ 30 มีนาคม พ.ศ. 2565

Azure AD Password Protection

      สวัสดีครับทุกท่าน สำหรับบทความนี้ผมจะพาทุกท่านไปรู้จักกับฟีเจอร์หนึ่งใน Azure Active Directory (Azure AD) ที่มีชื่อว่า "Azure AD Password Protection"  ครับ โดยฟีเจอร์ดังกล่าวนี้ถือว่าเป็นอีกฟีเจอร์หนึ่งที่สำคัญสำหรับการป้องกันหรือ Protect Identity หรือ User Account ในองค์กรครับ และท่านผู้อ่านท่านใดที่ติดตามบทความของผมเป็นประจำ จะสังเกตว่าผมมักจะนำเอารูปด้านล่างนี้มาใช้เป็นประจำ











เพราะรูปดังกล่าวนี้ เป็นรูปที่เกี่ยวข้องกับฟีเจอร์ต่างๆ ของ Azure AD ที่จะช่วยป้องกัน Identity ขององค์กรครับ โดยแต่ละองค์กรสามารถพิจารณาเลือกฟีเจอร์ต่างๆ จากรูปด้านบนเข้ามาประยุกต์ใช้งานในองค์กรเพื่อดำเนินการในเรื่องของ Identity Protection หรือ Identity Security ได้ครับ และบทความหนึ่งของผมก่อนหน้านี้ ผมได้เขียนเพื่อนำเสนอเรื่องราวของฟีเจอร์หนึ่งใน Azure AD ที่เข้ามาช่วย Protect และ Secure Identity ครับ โดยบทความดังกล่าวนั้นผมนำเสนอเรื่องราวของฟีเจอร์ที่ชื่อว่า Azure AD Identity Protection ครับ (ท่านผู้อ่านท่านใดสนใจสามารถย้อนกลับอ่านบทความนี้ได้จาก WT Blog ของผมได้เลยครับ) และผมตั้งใจว่าจะค่อยๆ นำเสนอฟีเจอร์ต่างๆ จากรูปด้านบนผ่านทางบทความของผมครับ 


เอาล่ะครับเรากลับมาที่เรื่องราวของ Azure AD Password Protection กันต่อครับ  โดยผมขอเริ่มจากใน Environment ที่ผมเชื่อว่าทุกท่านน่าจะคุ้นเคยคือ Active Directory Domain Service (AD DS) ซึ่งเราสามารถทำการป้องกัน Identity หรือ User Account ที่อยู่ใน Forest/Domain ของ AD DS ได้โดยการวางแผนและทำการกำหนดเรื่องของ Password Policy โดยสามารถกำหนดผ่านทาง Group Policy ซึ่งเป็นฟีเจอร์หนึ่งของ AD DS โดยไปทำการสร้าง GPO ขึ้นมาและไปกำหนดค่า Settings ที่เกี่ยวข้องกับ Password Policy เช่น


- Minimum Password Length

- Minimum และ Maximum Password Age

- Password must meet Complixity 

- อื่นๆ 


โดยค่า Settings ต่างๆ ที่ผมยกตัวอย่างข้างต้นนั้น ถือว่าเป็นการป้องกัน User Accounts ใน Forest/Domain ได้ในระดับหนึ่งเท่านั้น ซึ่งแน่นอนว่ามันยังมีความเสี่ยงต่อความไม่ปลอดภัยกับ Identity หรือ User Account เพราะการกำหนด Password Policy ที่อธิบายในข้างต้น มันยังไม่เพียงพอต่อการป้องกัน Identity หรือ User Account ครับ เพราะผู้ดูแลระบบ (Administrator) รวมถึงผู้ใช้งาน (Users) อาจจะทำการกำหนด Password ที่ง่ายต่อการเดาหรือเป็น Password ที่เป็นที่นิยมใช้กัน เช่น Passw0rd, Pa$$word, Hello01, และอื่นๆ เป็นต้น เพราะฉะนั้นถึงแม้ว่าใน Environment ดังกล่าว, ผู้ดูแลระบบ (Administrator) รวมถึงผู้ใช้งาน (Users) จะทำการกำหนด Password ให้เป็นไปตาม Password Policy ที่บังคับใช้อยู่แล้วก็ตาม 


แต่ Password ที่กำหนดเหล่านั้นอาจเป็นจุดอ่อนหรือช่องโหว่ที่ทำให้ Attacker/Hacker สามารถเข้ามาใน Environment ดังกล่าวได้ โดยใช้เทคนิคที่เรียกว่า Brute Force Attack ครับ และเมื่อได้ Password ของผู้ใช้งานไปแล้ว  Attacker/Hacker ก็จะใช้ Credential (User และ Password) ดังกล่าวเข้าถึงข้อมูลตลอดจน Resources ต่างๆ ขององค์กรครับ และจากประเด็นดังกล่าวนี้ เราจะทำการป้องกัน Identity หรือ User Accounts โดยเฉพาะประเด็นเรื่องของ Weak Password หรือ Well-Known Password ได้อย่างไร?  


เพราะฉะนั้นเบื้องต้นเราควรหลีกเลี่ยงการตั้งหรือการกำหนด Password ไม่ให้เข้าข่ายเป็น Weak Password ครับ โดยทาง Microsoft มี Password Guidance (Microsoft Password Guidance) มาช่วยแนะนำเราครับ รายละเอียดเพิ่มเติมท่านผู้อ่านสามารถดาวน์โหลดได้จาก Link นี้ครับ https://www.microsoft.com/en-us/research/publication/password-guidance/







Azure AD Password Protection คืออะไร ?

อย่างที่ผมได้เกริ่นไว้ข้างต้นของบทความว่า Azure AD Password Protection เป็นฟีเจอร์หนึ่งของ Azure AD ครับ โดยฟีเจอร์ดังกล่าวจะเข้ามาช่วยจัดการและป้องกัน Identity หรือUser Account ขององค์กรครับ โดย Azure AD Password Protection จะเข้ามาทำหน้าที่ในการค้นหา (Detect) และทำการ Block พวก Weak Passwords หรือ Well-Known Passwords ครับ เพื่อไม่ให้ผู้ใช้งานตลอดจนผู้ดูแลระบบกำหนด Password ที่เข้าข่ายดังกล่าวนี้ครับ ส่งผลทำให้การเดา Password ก็ทำได้ยากขึ้นครับ

สำหรับ Azure AD Password Protection นั้นมีค่าใช้จ่ายนะครับ โดยท่านผู้อ่านจะต้องทำการพิจารณาก่อนแล้วทำการซื้อ License ครับ โดยมีรายละเอียดดังนี้ครับ








เพราะฉะนั้นถ้าในกรณีที่องค์กรหรือออฟฟิศของท่านผู้อ่านมีลักษณะเป็น Hybrid Cloud (Hybrid Identity) คือ มีการ Sync Users จาก AD DS มายัง Azure AD และต้องการใช้ Azure AD Password Protection สำหรับ License ที่เหมาะสมหรือใช้งาน ก็จะเป็น Azure AD Premium P1 หรือ P2 ครับ

ลำดับถัดมา ผมขอนำเสนอ Azure AD Password Protection Diagram ดังรูปด้านล่างครับ









สำหรับ Diagram ข้างต้นจะแสดงให้เห็นถึง Components ที่สำคัญและเกี่ยวข้องการใช้งาน Azure AD Password Protection กับ On-Premise AD DS ครับ โดยผมขออธิบายคร่าวๆ ดังนี้ครับ

1. ผู้ใช้งานทำกำหนดหรือเปลี่ยน Password ซึ่งจะต้องมีการติดต่อไปยัง Domain Controllers
2. DC Agent password filter dll จะรับเรื่องการเปลี่ยนหรือการกำหนด Password ของผู้ใช้งานดังกล่าวแล้วทำการส่งต่อไปยัง Azure AD Psssword Protection DC Agent (ซึ่งติดตั้งอยู่ที่ Domain Controllers) โดย Agent ดังกล่าวจะทำการตรวจสอบเบื้องต้นก่อนว่า การกำหนดหรือเปลี่ยน Password ดังกล่าวนี้เป็นไปตาม Azure Password Policy หรือไม่
3. ในทุกๆ 1 ชั่วโมง Agent ที่ติดตั้งอยู่ใน Domain Controllers ทำการติดต่อกับ Azure AD Password Protection Proxy Service เพื่อทำการดาวน์โหลด Azure Password Policy เวอร์ชั่นล่าสุด
4. จากนั้น Agent ที่ติดตั้งอยู่ใน Domain Controllers รับ Azure Password Policy เวอร์ชั่นล่าสุดแล้วเก็บไว้ใน Sysvol และทำการ Replicate Policy ดังกล่าวไปยัง Domain Controllers ทุกตัวที่อยู่ใน Forest และ Domain นั้น


สำหรับรูปต่อมา จะเป็นรูปของการ Enable Azure AD Password Protection ครับ






ในตัวของ Azure AD Password Protection ยังมีสิ่งที่เรียกว่า Banned Password List ซึ่งเป็น List ของ Passwords ที่ไม่ควรกำหนดครับ ซึ่ง List ดังกล่าวนี้จะมีการอัพเดทเป็นระยะๆ ครับ และตัวของ Azure AD Password Protection จะใช้ List ดังกล่าวนี้ในการตรวจสอบการกำหนด Password ครับ นอกจากนี้เรายังสามารถเพิ่มหรือทำการ Custom Banned Password List โดยการใส่ Weak Passwords ของเราเข้าไปได้ด้วยครับ ดังรูปด้านล่าง






รายละเอียดเพิ่มเติมสำหรับเรื่องราวของ Azure AD Password Protection สามารถติดตามได้จาก Link นี้ครับ https://docs.microsoft.com/en-us/azure/active-directory/authentication/concept-password-ban-bad-on-premises

และทั้งหมดนี้คือเรื่องราวของฟีเจอร์หนึ่ง (Azure AD Password Protection) ใน Azure AD ที่จะเข้ามช่วยปกป้อง Identity หรือ User Account ในองค์กรครับผม.....












วันศุกร์ที่ 25 มีนาคม พ.ศ. 2565

รู้จักกับ Azure Active Directory Identity Protection

      สวัสดีครับทุกท่าน สำหรับบทความตอนนี้ของผมจะเป็นเรื่องราวที่เกี่ยวข้องกับ Security ครับ โดยบทความนี้ผมจะหยิบเอาเรื่องของการป้องกัน Identity (User Accounts) ให้มีความปลอดภัยมากขึ้นครับ

สิ่งผมอยากจะอธิบายให้ทุกท่านได้ทราบเบื้องต้นก่อน นั่นก็เรื่องราวต่างๆ ของ Security นั้นมีรายละเอียดเยอะมากครับ ซึ่งทาง Microsoft ก็ได้เตรียมเครื่องไม้เครื่องมือตลอดจน Services ต่างๆ เข้ามาช่วยทำให้ Environment ขององค์กร ไม่ว่าจะมีลักษณะเป็น Hybrid หรือ Multi-Cloud Environment ก็ตามให้มีความปลอดภัยมากขึ้นครับ นอกจากนี้แล้ว Microsoft ยังเตรียม Models ต่างๆ ซึ่งท่านสามารถนำไปเป็น Reference เพื่อนำไปประยุกต์ใช้งานในองค์กรได้ครับ เช่น Shared Resonsibility Model, Defense-In-Depth Model, Zero Trust Model, เป็นต้น


ขออนุญาตกลับมายัง สิ่งที่ผมโฟกัสสำหรับบทความนี้ นั่นก็คือ การป้องกัน Identity (Identity Protection) เหตุผลที่ผมหยิบเอาเรื่องดังกล่าวนี้มานำเสนอ ก็ด้วยเหตุผลที่ว่า Identity ถือว่าเป็นเป้าหมายอันดับต้นๆ ของ Attackers/Hackers ที่ต้องการจะแทรกตัวเข้ามาใน Environment ที่เป็นเป้าหมายของเค้าครับ ประกอบกับ Environment ณ ปัจจุบันขององค์กรส่วนใหญ่จะมีลักษณะเป็น Hybrid Cloud ส่งผลทำให้ผู้ใช้งานในองค์กรนั้นๆ สามารถเข้าถึง Applications และ Data ต่างๆ ที่อยู่ที่ไหนก็ได้ไม่ว่าจะอยู่ใน On-Premise หรือ Cloud ครับ แน่นอนว่าในมุมของผู้ใช้งาน ประเด็นดังกล่าวนี้ส่งผลดีต่อผู้ใช้งาน เพราะทำให้เกิดความสะดวกในการใช้งาน แต่ในมุมของ IT หรือ Security Teams ตลอดจนท่านที่มีบทบาทหน้าที่ที่เข้าไปเกี่ยวข้องกับเรื่องของ Security ของ Environment ดังกล่าว จากประเด็นเดียวกัน มันก่อให้เกิด Challenge ที่ IT หรือ Security Teams จะบริหารจัดการและป้องกัน Identity ของผู้ใช้งานอย่างไร และอย่างที่ผมได้เกริ่นไว้ข้างต้นของบทความว่า ทาง Microsoft ได้เตรียมหลายสิ่งหลายอย่างเอาไว้จัดการกับ Challenge ที่ว่านี้ครับ เช่น Azure MFA, Azure AD Condition Access, Passwordless, และอื่นๆ

 

ผมขอยกตัวอย่างของ Features, Tools, และ Services ต่างๆ ที่จะเข้ามาช่วยปกป้อง Identity ซึ่งทาง Microsoft ได้เตรียมไว้สำหรับให้องค์กรได้ทำการวางแผนและพิจารณาเพื่อนำไปประยุกต์ใช้งาน ดังรูปด้านล่าง โดยรูปดังกล่าวนี้ผมวาดขึ้นมาเพื่อใช้ในการอธิบายและ Discuss กับลูกค้าที่สนใจเรื่องของการปกป้อง Identity ครับ





-






สำหรับบทความนี้ ผมจะนำเสนอเรื่องราวของ Feature หนึ่ง (อ้างอิงจากรูปด้านบน) ใน Azure Active Directory (Azure AD) ที่มีชื่อว่า "Azure Active Directory Identity Protection" หรือ Azure AD Identity Protection โดย Feature ดังกล่าวนี้ไม่มีใน Azure AD Free Edition นะครับ จะมีอยู่ใน Azure AD Premium P2 Edition ครับ หรือดูรายละเอียดจากรูปด้านล่างและ Link นี้ครับ, https://www.microsoft.com/security/business/identity-access-management/azure-ad-pricing




Azure Active Directory Identity Protection คืออะไร?


Azure Active Directory Identity Protection หรือ Azure AD Identity Protection เป็น Feature ที่จะเข้ามาช่วยป้องกัน Identity หรือ Users ใน Environment ขององค์กรครับ โดย Azure AD Identity Protection จะทำการตรวจสอบดูว่าใน Environment ขององค์กรนั้นๆ มีเหตุการณ์ผิดปรกติหรือเหตุการณ์ที่น่าสงสัย ซึ่งมีความสุ่มเสี่ยงกับ Identity หรือ Users หรือไม่ สำหรับเหตุการณ์ผิดปรกติหรือเหตุการณ์ที่น่าสงสัย ซึ่งมีความสุ่มเสี่ยงกับ Identity ที่ผมเกริ่นไว้เมื่อซักครู่นั้น ยกตัวอย่างเช่น มีการ Sign-In จากผู้ใช้งานหรือ User จาก Location แปลก ซึ่งผู้ใช้งานท่านดังกล่าวไม่เคยเดินทางไปที่นั่น, ผู้ใช้งานเชื่อมต่อเข้ามาใน Environment นั้นๆ ด้วย IP Addresses แปลกๆ หรือน่าสงสัย, หรือเกิด Password Spray Attacks, และอื่นๆ ครับ 


จากตัวอย่างเหล่านี้ ต้องบอกว่าโดยปรกติ เราไม่สามารถรู้ได้เลยครับ เพราะไม่มีเครื่องมือใดๆ ที่จะเข้ามาทำการตรวจสอบครับ แล้วท่านผู้อ่านตลอดจนองค์กรจะรับมือและจัดการกับภัยคุกคามหรือตัวอย่างที่ผมได้อธิบายไว้ข้างต้นอย่างไร? คำตอบ คือ สามารถจัดการได้ครับ โดยท่านผู้อ่านหรือองค์กรสามารถพิจารณานำเอา Azure AD Identity Protection เข้ามาช่วยครับ โดยตัวของ Azure AD Identity Protection ใช้ Threat Intelligence ซึ่งทาง Microsoft ได้ทำการรวบรวมข้อมูลต่างๆ จาก Microsoft เอง และจากลูกค้าของ Microsoft ทั่งโลก ในการดำเนินการครับ โดยจะมีหน้าที่หลักๆ ดังนี้:


- Automate Detection & Remediation (เกี่ยวข้องกับเหตุการณ์ผิดปรกติหรือที่น่าสงสัย ซึ่งมีความสุ่มเสี่ยง    กับ Identity หรือ Users ดังรูปด้านล่าง) 











- Investigate Risks (เกี่ยวข้องกับ Identity) โดย Azure AD Identity Protection จะมี Reports หรือ รายงาน เช่น Risky Users, Risky Sign-In, เป็นต้น





















- Protect Users (Based-On Risks) เช่น บังคับ (Force) ให้ใช้ MFA, ให้ทำการเปลี่ยน Password, เป็นต้น


ใน Azure AD Identity Protection มี Detection ทั้งหมด 2 แบบ โดยท่านผู้อ่านสามารถเข้าไปทำการ Enable และกำหนดค่า Settings ต่างๆ หรือเราจะเรียกว่า Policy ให้กับ Dectection ทั้ง 2 แบบครับ 











1. Sign-In Risk, จะเป็น Detection ที่ Azure AD Identity Protection ทำการค้นหาตรวจสอบว่ามีเหตุการณ์ผิดปรกติหรือที่น่าสงสัยเกี่ยวกับการ Sign-In ของผู้ใช้งานหรือไม่ เช่น มีคนที่พยายามทำการเดา Password ของผู้ใช้งานในองค์กร, มีการ Attack เข้ามาโดยใช้เทคนิคที่เรียกว่า Password Spray, และอื่นๆ 

2. User Risk, จะเป็น Dectection ที่ Azure AD Identity Protection ทำการค้นหาตรวจสอบว่ามีเหตุการณ์ผิดปรกติหรือที่น่าสงสัยเกี่ยวกับ Leaked Credential (Identity หรือ User Account ถูก Compromised หรือถูกขโมย)

รายละเอียดเพิ่มเติมเกี่ยวกับ Azure AD Identity Protection สามารถไปที่ Link นี้ได้เลยครับ, Azure AD Identity Protection documentation | Microsoft Docs








และทั้งหมดนี้คือเรื่องราวภาพรวมและคอนเซปของ Feature ที่ชื่อว่า Azure Active Directory Identity Protection ที่ผมนำมาฝากครับผม.....













 

วันจันทร์ที่ 21 มีนาคม พ.ศ. 2565

Access Control (RBAC) ใน Microsoft Azure

      สวัสดีครับทุกท่าน กลับมาพบกันเหมือนเดิมครับ สำหรับบทความตอนนี้ของผมจะเป็นเรื่องราวของ Security ใน Microsoft Azure ครับ ซึ่งต้องบอกว่ามีรายละเอียดเยอะมากเลยครับ แต่สำหรับบทความนี้ผมจะหยิบเอาเรื่องหนึ่งมานำเสนอเล่าสู่กันฟังครับ และต้องบอกว่าเรื่องดังกล่าวนี้ถือเป็นพื้นฐานสำคัญสำหรับท่านผู้อ่านที่ทำหน้าที่เป็นผู้ดูแลระบบ (Cloud Admintrator), Cloud  Architect, Consultant ตลอดจนท่านที่สนใจเรื่องราวของความปลอดภัยใน Microsoft Azure ครับ เรื่องดังกล่าวนี้ คือ "Access Control" ใน Microsoft Azure ครับ


Access Control คืออะไร?

ผมเชื่อว่าท่านผู้อ่านโดยส่วนใหญ่น่าจะเคยได้ยินตลอดจนรู้จักกับ Access Control กันมาอยู่แล้วครับ เช่น ใน Active Directory Domain Service (AD DS) เรื่องของ Access Control คือ การกำหนดสิทธิ์ (Privileges หรือ Permissions) ในการเข้าถึงตลอดจนการใช้งาน Resources ต่างๆ ใน Forest/Domain ของ Actvie Directory Domain Service (AD DS) ครับ โดยใน AD DS จะมีรูปแบบการกำหนดสิทธิ์หรือ Access Control ได้ 2 แบบ คือ


- Shared Permissions

- NTFS Permisssions


โดยมีผู้ดูแลระบบหรือท่านที่เกี่ยวข้องเป็นผู้พิจารณาและกำหนดสิทธิ์ต่างๆ ให้กับผู้ใช้งานในองค์กรครับ สำหรับเรื่องราวของ Access Control นั้นจะเกี่ยวกับกระบวนการหนึ่งที่เรียกว่า "Authorization" ซึ่งจะเป็นกระบวนที่เกิดหลังจากกระบวนการแรกที่เรียกว่า "Authentication" ครับ และท่านผู้อ่านท่านใดที่ศึกษาเกี่ยวกับเรื่องราวของ Security น่าจะคุ้นเคยกับคอนเซปที่เรียกว่า "AAA" ผมเรียกว่า Triple A หรือ A สามตัวครับ โดย A แต่ละตัวย่อมาจาก


A ตัวที่ 1 = Authentication, เป็นกระบวนเกี่ยวกับการพิสูจน์ตัวตน (Identity) ตัวอย่างของ Services ที่ทำหน้าที่ดังกล่าว เช่น Active Directory Domain Service (AD DS),  Azure Active Directory (Azure AD), เป็นต้น

A ตัวที่ 2 = Authorization, เป็นกระบวนเกี่ยวกับกำหนดสิทธิ์ (Privileges หรือ Permissions) ในการเข้าถึง Resources ต่างๆ ตัวอย่าง เช่น ถ้าใน AD DS ก็จะเป็น Shared และ NTFS Permissions ที่ได้อธิบายไว้ข้างต้น, ถ้าเป็น Azure AD ก็จะเป็น Role-Based Access Control หรือ RBAC ซึ่งเป็น Feature หนึ่งใน  Azure AD ครับ

A ตัวที่ 3 = Accounting หรือ Auditing, เป็นการกระบวนการบันทึกเหตุการณ์ต่างๆ ที่เกิดขึ้น โดยเหตุการณ์ดังกล่าวนี้ ก็จะเป็นข้อมูลที่เก็บอยู่ใน Logs ต่างๆ เช่น Security Log, Activity Log, เป็นต้น

สำหรับบทความนี้ผมจะโฟกัสที่ A ตัวที่ 2 คือ Authorization หรือ Access Control ที่เกี่ยวข้องกับ Microsoft Azure เพราะฉะนั้นก็จะเกี่ยวข้องกับ Feature หนึ่งใน Azure AD คือ Role-Based Access Control (RBAC) ครับ 


ส่วนประกอบของ Role-Based Access Control (RBAC)

อย่างที่ผมได้อธิบายคร่าวๆ ไว้ข้างต้นว่า RBAC เป็น Feature หนึ่งใน Azure Active Directory (Azure AD) ที่ใช้สำหรับการทำ Access Control นั่นก็คือ การกำหนดหรือ Assign สิทธิ์ (Privileges หรือ Permissions) หรือระดับการเข้าถึงเพื่อใช้ในการบริหารจัดการและใช้งาน Resources ต่างๆ ใน Microsoft Azure ครับ เพราะฉะนั้นท่านผู้อ่านท่านใดที่เป็นผู้ดูแลระบบท่านจะต้องรู้จักและเข้าใจคอนเซปตลอดจนเรื่องราวต่างๆ ของ  RBAC ครับ  โดยตัวของ RBAC ประกอบไปด้วยส่วนประกอบต่างๆ ดังนี้:


- Security Principals (SPs)

- Role Definitions

- Role Assignment


Security Principals (SPs)

คือ สิ่งที่อธิบายหรืออ้างอิงถึง Azure AD Objects ที่เราสามารถกำหนดหรือ Assign สิทธิ์ ได้ครับ ผมอยากให้ท่านผู้อ่านลองนึกดูครับว่า มันคือ  Azure AD Objects ? ครับ..... คำตอบ คือ  User Accounts, Group Accounts, เป็นต้นครับ  Security Principals (SPs) มีอะไรบ้าง สามารถดูจากรูปด้านล่างครับ








Security Principals (User Account)

เรามาเริ่มกันที่ User Accounts เป็น Object ที่ใช้แทนหรือสำหรับผู้ใช้งาน และผมเชื่อว่าทุกท่านน่าจะรู้จักและคุ้นเคยกับ User Accounts เป็นอย่างดี เพราะทุกคนต้องมีเพื่อใช้เป็น Identity สำหรับเข้าถึงหรือใช้งาน Resources ต่างๆ  โดย User Accounts ใน Azure AD จะมี 3 ชนิด คือ


1. Cloud User Accounts

2. Hybrid User Accounts

3. External User Accounts


Security Principals (Group Account)

เราใช้ SPs ชนิดนี้เพื่อช่วยทำให้การทำ  Access Control มีความสะดวกและยืดหยุ่นมากขึ้น และตาม Best Practices ของ Microsoft ควร(Privileges หรือ Permissions) ให้กับ Group Accounts นั่นหมายความว่าใน Azure AD เราควรกำหนดหรือ Assign Group Accounts เข้าไปยัง RBAC Roles ที่เกี่ยวข้องหรือที่ต้องการ


Security Principals (Service Principal)

คือ Identity ของ Applications ต่างๆ ที่เราได้มีการ Deploy ใช้งาน เพื่อทำให้เราสามารถกำหนดหรือ Assign สิทธิ์ (Privileges หรือ Permissions) ให้กับ Applications เพื่อให้ Applications ดังกล่าวเข้าถึง Azure Resources ต่างๆ ได้ครับ การที่ท่านผู้อ่านจะสร้าง Identity ให้กับ Application หรือ Application Identity ได้นั้น ท่านผู้อ่านจะต้องนำเอา Application ดังกล่าวมาทำการ Registered กับ Azure AD โดยใช้ App Registrations ดังรูปด้านล่างครับ










Security Principals (Managed Identity)

เป็น Feature หนึ่งใน Azure AD ที่ทำให้เราสามารถกำหนดสิทธิ์ (Privileges หรือ Permissions)ให้กับ Azure Services เพื่อให้เข้าถึง Azure Resources อื่นๆ ได้ครับ


Role Definitions

ส่วนประกอบต่อมาของ RBAC คือ Role Definitions ครับ โดย Role Definitions คือ ชุดของสิทธิ์ (Privileges หรือ Permissions) ต่างๆ ที่จะใช้กับ Azure Resources ต่างๆ เช่น Read, Write, Delete, เป็นต้น ดังรูปด้านล่างครับ












โดยเราสามารถใช้ Role Definitions ที่ทาง Microsoft Azure เตรียมเอาไว้แล้วผ่านทาง RBAC ที่เรียกว่า "Built-In RBAC Roles" ครับ โดย Built-In ดังกล่าว แบ่งได้เป็น 2 รูปแบบ ดังนี้:

รูปแบบที่ 1 เรียกว่า Azure Active Directory Built-In RBAC ซึ่งเป็น RBAC Roles ต่างๆ ที่เอาไว้ใช้สำหรับการบริหารจัดการ Azure AD Tenant ดังรูปด้านล่าง









รูปแบบที่ 2 เรียกว่า Azure Active Directory Resources Built-In RBAC ซึ่งเป็น RBAC Roles ต่างๆ ที่เอาไว้ใช้สำหรับการบริหารจัดการ Azure AD Resources ต่างๆ ดังรูปด้านล่างครับ









Role Assignment

ส่วนประกอบสุดท้ายของ RBAC คือ Role Assignment คือ ส่วนประกอบที่ใช้สำหรับการกำหนดหรือ Assign สิทธิ์ (Privileges หรือ Permissions) นั่นก็คือการ Assign Security Principals (SPs) เข้าไปยัง RBAC Roles ที่ต้องการ จากนั้นทำการกำหนดขอบเขต (Scope) ตลอดจนระดับ (Levels) ของสิทธิ์ดังกล่าวที่กำหนดผ่านทาง RBAC ว่ามีขอบเขต (Scopes) เป็นอย่างไร โดยขอบเขตที่ว่านี้จะอ้างอิงจาก "Azure Hierarchy" ขององค์กรนั้นๆ ว่าเป็นลักษณะเป็นอย่างไร โดยปรกติจะมี ขอบเขตและระดับต่างๆ ดังรูปด้านล่าง















Scopes และ Levels จากรูปด้านบนที่เราสามารถกำหนดได้ คือ Management Group, Subscription, Resouce Group, และ Resouce ครับ สำหรับ Best Practices ของการทำ Access Control นั้น Microsoft แนะนำให้กำหนดหรือ Assign สิทธิ์ที่ระดับ (Scope และ Level) ของ Azure Hierarchy ที่สูงที่สุดเท่าที่จะเป็นได้หรือตามความต้องการเพราะเมื่อกำหนดสิทธิ์เรียบร้อยแล้ว สิทธิ์ดังกล่าวที่ถูกกำหนดไว้ก็จะถ่ายทอดลงมายังระดับหรือ Level ที่อยู่ด้านล่างของ Azure Hierarchy ตามรูปด้านบนครับ ซึ่งเราเรียกคอนเซปนี้ว่า "Inheritance" ครับ


และภาพรวมของส่วนประกอบต่างๆ ของ RBAC ที่ผมอธิบายไป จะมีหน้าตาตามรูปด้านล่างครับ
















และทั้งหมดนี้คือเรื่องราวของ RBAC ที่ผมหยิบเอามานำเสนอทุกท่านครับผม.....

วันพฤหัสบดีที่ 3 กุมภาพันธ์ พ.ศ. 2565

Audit Logs ใน Azure Active Directory (Azure AD)

      สวัสดีครับทุกท่าน สำหรับบทความนี้ผมจะพาทุกท่านไปรู้จักกับ Audit Logs ใน Azure Active Directory (Azure AD) ครับ สืบเนื่องจากช่วงที่ผ่านมามีลูกค้าสอบถามผมมาว่า ใน Azure AD ของ Microsoft Azure มีการบันทึกเหตุการณ์ต่างๆ ที่เกิดขึ้นใน Azure AD Tenant มั๊ย ถ้ามี จะเข้าไป Track หรือ ดูรายละเอียดเรื่องราวดังกล่าวนี้ได้อย่างไร?  จากคำถามข้างต้น ตอบได้เลยครับว่า ใน Azure AD มีการบันทึกและเก็บเหตุการณ์ต่างๆ เอาไว้ครับ เพื่อให้ผู้ดูระบบหรือท่านที่มีหน้าที่เกี่ยวข้องเข้าไปดูรายละเอียดต่างๆ ได้ครับ โดยสามารถเข้าดูผ่านทาง Azure Portal ครับ ดังรูปด้านล่างครับ










ไหนๆ คุยกันเรื่องของ Audit Logs แล้ว ขออนุญาตอธิบายเพิ่มเติมเกี่ยวกับเรื่องดังกล่าวอีกซักหน่อยครับ เผื่อว่าท่านใดยังไม่ทราบ  โดยอ้างอิงจากรูปด้านบน ถ้าท่านผู้อ่านไปเปิด Azure Portal แล้วไปที่ Azure Active Directory ในนั้นจะมี Logs ต่างๆ ที่สามารถเข้าไปดูได้ 3 แบบ ดังรูป










1. Sign-in logs เป็น Logs ที่เก็บข้อมูล (เหตุการณ์) เกี่ยวกับการ Sign-In ของผู้ใช้งานต่างๆ ในองค์กร รวมถึงการเข้าถึง Resources ต่างๆ ของผู้ใช้งาน

2. Audit logs เป็น Logs ที่เก็บข้อมูล (เหตุการณ์) เกี่ยวกับการเปลี่ยนแปลงของการบริหารจัดการที่เกิดขึ้น
ใน Tenant นั้น ตลอดจนการเปลี่ยนแปลงเรื่องการเข้าถึง Resources ต่างๆ 

3. Provisioning logs เป็น Logs ที่เก็บข้อมูล (เหตุการณ์) เกี่ยวกับที่เกิดจาก Provisioning Service เช่น การสร้าง Groupใน Service Now เป็นต้น


ในบทความนี้เรามาโฟกัสที่ Audit Logs ใน Azure AD กันครับ โดยผู้ดูแลระบบหรือท่านที่มีหน้าที่เกี่ยวข้องสามารถเข้าถึงเหตุการณ์ต่างๆ ที่ถูกบันทึกไว้ใน Audit Logs  ได้ครับ โดยปรกติทั่วไปข้อมูลที่มักเข้าไปดูกันบ่อยๆ ก็จะเป็นเรื่องราวต่างๆ เช่น การจัดการ User และ Group Accounts, การจัดการ Applications โดยมีรายละเอียดดังนี้:

เหตุการณ์ที่เกี่ยวกับ User Accounts หรือผู้ใช้งาน ก็สามารถดูได้ครับ ยกตัวอย่างเช่น มีการอัพเดทหรือเปลี่ยนแปลงกับ User Accounts หรือผู้ใช้งาน, เรื่องของการเปลี่ยน Passwords, Administrator Account ได้เข้าไปทำอะไรบ้าง, เป็นต้น 

เหตุการณ์ที่เกี่ยวกับ Group Accounts ก็จะมีเหตุการณ์ต่างๆ  ถูกบันทึกไว้ เช่น การสร้าง Groups, การเปลี่ยนแปลง Group Membership, การเปลี่ยนแปลง Owner ของ Group, และอื่นๆ

เหตุการณ์ที่เกี่ยวกับ Applications เช่น การ Add หรือ Update Applications, การ Remove, การเปลี่ยนชื่อ Applications, และอื่นๆ


ท่านที่จะสามารถเข้าถึง Audit Logs ได้จะต้องถูก Assign ไปยัง RBAC Roles ต่างๆ ดังนี้:










- Security Administrator

- Security Reader

- Report Reader

- Global Reader

- Global Administrator


นอกจากนี้ ท่านผู้อ่านสามารถใช้ Default List View ตามรูปด้านบนได้เลย หรือจะทำการ Customize List View ได้ตามต้องการครับ









มีอีกสิ่งหนึ่งที่จะต้องพิจารณาเกี่ยวกับเรื่องของ Audit Logs คือเรื่องของการเก็บรักษาหรือ Retention ครับ เพราะระยะเวลาในการเก็บรักษาข้อมูลใน Audit Logs ขึ้นอยู่กับ Edition ของ Azure Active Directory ด้วยนะครับ หรือถ้าต้องการเก็บระยะยาวหรือเก็บนานๆ ก็จะต้องพิจารณาการเรื่องของที่ที่จะใช้ในการเก็บรักษา, ค่าใช้จ่าย, ฟีเจอร์ต่างๆ, และอื่นๆ  ขออนุญาตทางเลือกที่ท่านผู้สามารถนำไปพิจารณาเป็นที่ที่สำหรับเก็บรักษาข้อมูลของ Audit Logs ได้นานๆ คือใช้ Services ใน Microsoft Azure ที่ชื่อว่า Azure Log Analytics ครับ ทั้งนี้จะต้องมีการวางแผนและพิจารณาก่อนที่จะเลือกใข้งานนะครับ