วันนี้ฟัง + Workshop Azure monitoring, security, compliance ที่ มหาลัยวิทยาลัยราชภัฏบ้านสมเด็จเจ้าพระยา จัดโดยกลุ่ม Zabbix in Thailand และจัดสอนโดย อาจารย์ ตูล MVPSKILL สำหรับหัวข้อมี ตามนี้เลยครับ้
Recap Cloud Adoption Framework
Cloud Adoption Framework เป็น Guideline ที่ช่วยย้าย Workload จาก On-Premises ไป Cloud ซึ่งแต่ละ Provider มีแนวทาง และชื่อเรียกที่แตกต่างกันไปครับ ถ้าสนใจดูที่ Blog นี้ได้เลย เมื่อ DEV ลองไป Workshop Azure Cloud Adoption Framework และเหมือนจะได้ยินว่าส่วนของ Office 365 มีแนวนี้เหมือนกันครับ
สำหรับ Session ในวันนี้จะต่อยอดหลังจากย้ายมา Cloud แล้วนั้นเอง โดยจากภาพของ CAF จะเป็นส่วนของ Govern / Manage / Secure ครับ
- Govern - ทำให้เป็นอันหนึ่งอันเดียวกัน มี Standard + Maturity อาทิ การตั้งชื่อ VM ทำจาก Azure Policy มาช่วย หรือต่อยอดไปในส่วน Compliance ตรวจว่าเราตรงตามมาตรฐานไหม เช่น ISO
- Manage - จัดการให้มันล้อกับ Business โดยดูจาก 3 อย่างนี้ Criticality / Impact / Commitment (อะไรที่เราสัญญาไว้กับทาง Business เช่น SLA โดยต้องมีบันทึกเอกสารไว้ ของแต่ละ Workload โดยการทำให้เกิด ขึ้นมาต้องทำ
- Inventory + Visibility มี Workload อะไร แล้วเรามีข้อมูล Telemetry อะไรบ้าง พวก CPU Utilization เป็นต้น
- Operational Compliance - ทำให้แต่ละ Workload ไม่เกิดปัญหา Configuration Drift
- Protect and Recover - ถ้าตุยขึ้นมา เราจะ Recover ขึ้นมายังไง หรือเคสของ Ransomware ถ้าใช้ VM ต้องดู Shared Responsibility //Backup / HA / DR ต่างกันยังไง
- Platform Operations
- Workload Operations
- Secure - ทำให้มันปลอดภัย ลดความเสี่ยงให้อยู่ในรูปที่เราควบคุมได้ ยอมรับได้
- Risk Insights
- Security Integration
- Access Control
- Security Operation ตรวจสอบความผิดปกติ และก็ Response กับมัน
- Asset Protection
- Security Governance
- Innovation Security: Dev ตอนนี้มีตัว DevSecOps เข้ามาแล้ว
- Business Resilience ถ้า IT มีปัญหาต้องทำอย่างไร
หลังจาก Recap กันไปแล้ว มาลอง อจ ตุล พามาเจาะแต่ละ 3 มุม Manage / Govern / Secure ว่ามี Tools + Service อะไรบ้างครับ
Manage
สำหรับส่วนของ Manage ที่ อจ พาดูจะมี 3 ตัว Azure Monitor / Virtual machine scale sets / Azure Backup
- Azure Monitor
Azure Monitor - เป็นเครื่องทำให้เรารู้ว่าอะไรเกี่ยวขึ้นกับ Workload ของเรา โดยอ่านข้อมูลจาก Data Source ต่างๆ ทั้ง Azure / On-Premise (ลง Agent) โดยมี 3 ส่วน ได้แก่
- Data Source - ข้อมูล
- Data Platform - ตัว Azure Monitor ที่เอาข้อมูลจาก Data Source แยกมาเป็นกลุ่มๆ สร้าง Table ดังนี้
- Metric - ข้อมูลตัวเลข ในแบบ Timeseries เช่น CPU / Memory ที่ปรับเปลี่ยนตามเวลา
- Log - Event เหตุการณ์ต่างๆที่มันเกิดขึ้น
- Trace / Change การติดต่างการตั้งค่าต่างๆ
- Consumption
- Insight - ในส่วน Workload ต่างๆ เข่น VM / App Service / Network เป็นต้น
- Visualize - Dashboard / Workbook / Power BI / Grafana
- Analyze - Log Analytic / Metric
- Respond เอามาจัดการตามเงื่อนไข เช่น การทำ Auto Scale / Alert / Custom จาก Azure Logic App
การใช้งานต้องมี
- สร้าง Log Analytic Workspace
- Connect Workload เช่น VM / App Service
- ตัว Resource ต้องเปิดตัว Diagnostic Setting บางตัวจะ Require Storage Account
- เช่นที่ VM > Diagnostic Setting โดยจะมี Guest Storage Monitoring - เหมือนเราทำ PerfMon บน Windows แต่ต้องสร้าง Storage Account มาเก็บ
- Note: วางแผนก่อนว่าจะดูอะไรบ้าง ถ้าเลือกส่งไปหมด Cost จะเยอะจาก Storage Account + Log Analytic Workspace
หลังจากเตรียมพร้อมเสร็จที่ Diagnostic Setting กำหนดได้เลยว่าจะส่งค่าไหนเข้าไปใน Azure Monitor จากนั้นค่าจะส่งมายัง Azure Monitor ตรงนี้
- ดู Metric ทำ Dashboard
- สามารถสร้าง Alert > Notification > Action เช่น Auto Scale เป็นต้น
- Step ประมาณนี้
- ตัว Alert Rule / Action Group จัดการที่นี่
- ส่วน Log ใช้ KQL มา Query ข้อมูล เขียนไม่เป็นไม่ต้องตกใจ มันมี Template ที่ใช้งานบ่อยๆมาให้ Search เลือกได้เลย
- กลับมาดูใน Log Analytic พบว่ามี Table มาเต็ม
นอกจากตัว Azure Monitor ที่ Resource แต่ละตัวมันตัว Insights (อยู่ส่วนของ Monitoring ของแต่ละ Resource เลยดูค่า และดูส่วนของ Map ได้ ถ้าใช้ Log Analytic Workspace เดียวกันจะเห็นภาพรวมทั้งหมด
Ref: Azure Monitor overview - Azure Monitor | Microsoft Learn
- Protect & Recover Concept
หลังจากเข้าใจถึงตัว Protect & Recover Concept จะเข้าใจว่าทำไมถึงได้อธิบายตัว Virtual machine scale sets นั้นเอง ตอนแรกก็งงๆ
- RECAP RPO / RTO RPO และ RTO คือ อะไร และสัมพันธ์กับ Disaster Recovery อย่างไร
- Business Continuity and Disaster Recovery Options
Model | RPO/RTO | Note |
---|---|---|
High Availability (Same Site/DC) | RTO = Low (minutes) RPO = Low (minutes) | รูปแบบ - Active/Active - Active/Stand by Azure มี - Availability Set (กระจาย Rack) - Availability Zone (กระจาย DC) - Region Pair (กระจาย Region) Cost จะเพิ่มมา ถ้าเป็น VM ต้อง Duplicate ไปด้วย ตามที่ต้องการ |
Backup Restore (Point in Time) | RTO = High (>> Hours) RPO = High (>> Hours) | Azure Backup Service - ต้องสร้าง Recovery Service Vault (ตัวเก็บ ฺBackup) |
Disaster Recovery | RTO = High (2-3 Hours) RPO = High (2-3 Hours) | รูปแบบ Site: Hot / Warn / Cold Azure Site Recovery - Replicate VM Azure ไว้ ปกติทำเหมือนกัน แต่ DR อาจจะลดก็ได้ - ตอนใช้จริง Azure Traffic Manager มาจัดการดูว่า Region ยังอยู่ redirect request |
- ถ้าอยากได้ Availability เลือกใช้ 3 ท่าผสมกัน แต่ค่าใช้จ่ายเยอะด้วย เช่นกัน
>> Virtual machine scale sets
Virtual machine scale sets ตอบในส่วนของ High Availability โดยเจ้า VMSS จะ VM + Policy + Load Balance มาในตัวเลย
- การทำงาน- ต้องเตรียม Image + Initial Script ขึ้นมา ถ้าไม่ทำต้องไปไ่ล่ remote ลงแปลกๆ
- กำหนด Scaling Rule (Policy) ขึ้นมา เช่น
- ข้อจำกัด
- App ต้องเตรียม Image ให้พร้อม แล้วถ้าตัว App เองมีการเก็บ Data ไว้ เช่น พวกรูป เอกสาร ต้องปรับให้ไปเก็บที่อื่นนอกจากใน VM เอง เช่น Storage > Blob แล้วไปเพิ่ม Availability Option ในส่วนนั้นแทน
- Database ไม่เหมาะกับตัวนี้เท่าไหร่ - ตัว App Service ก็มีนะ ผมเคยลองเล่นกับตัวนั้นเหมือนกัน
>> Azure Backup
- Policy
- Standard RPO 24hr / Backup วันละครั้ง
- Enhanced
>> Custom Backup ได้เอง ถี่สุด 4 hr (RPO 4 hr ยอมหายได้ 4 ชม) - Retain instant recovery snapshot(s) (OS + DATA) เอา Backup นี้มาทำ VM ได้เลย
- Retention Point Management รอบการเก็บ และวนทับ จะมี Daily / Week / Month / Year และวนทับ เหมือน Tape //Manage recovery points - Azure Backup | Microsoft Learn
- Vault Tiering - อะไรไม่ใช่บ่อย Archive ลด Cost
ถ้าเลือกเยอะ Storage ใช้เยอะ Cost จะเยอะตาม ดังนั้นต้องดู Business และปรับ Option ให้เหมาะสม ตอนจะลบ Resource ปลดตัว Azure Backup ออกก่อนด้วยครับ
NOTE: ดูพวก Data Churn //ปริมาณ Data ที่เปลี่ยนในแต่ละวัน มันมีผลกับการ Backup ถ้าไม่เปลี่ยนบ่อยลด Policyดูได้
Govern
- Tags
- เอาไว้จัดการ Resource ให้เห็นตามมุมมองต่างๆ เพราะ 1 resource อยู่ได้เพียง 1 Resource Group
- ถ้าแยก RG ตามระบบ (App / DB / Storage) มี 10 ระบบมี 10 RG
- หรือ ถ้ามองตาม Role App / DB / Storage จะมี 3 RG
- คำถาม แยก RG ตามระบบ ถ้าดูเฉพาะ App อย่างเดียวต้องทำอย่างไร ?
Tag เข้ามาช่วยจัดการตรงนี้ ช่วยทำให้เห็นข้อมูลได้หลายมุมมอง //สร้างมาแล้ว รอพักใหญ่ๆเลย 10-15 นาที ถึงเอาไปใช้ได้ - นอกจากนี้ Tag ยังมาช่วยด้วย Cost ด้วย เพิ่ม Tag ตามแผนกเป็นต้น ดูจาก Pay As You Go Cost Management + Billing เข้าไปดูใน Cost Analysis ของแต่ละ Subscription Note: ส่วน CSP ต้องขอเปิดหน้าแยก
- ถ้าต้องการคุม Cost ตั้งไว้ที่ Budget เช่น 50% ของงบที่ตั้งไว้ในเดือนนั้นๆ จะได้ลองหาโปร หรือปรับการใช้งานเป็นต้น
- Azure RBAC
เอามาจัดการว่าใครทำอะไรที่ไหน และมีสิทธิยังไง ซึ่งเจ้า Azure RBAC ตอบโจทย์ตรงนี้
- Security Principal (Who) - คุณเป็นใคร
- Role Definition (What) - คุณมีสิทธิอะไร
- Scope (Where) - คุณมีสิทธิที่ไหน
กำหนดที่ไหน มาที่ Azure Active Directory - ต้องสร้าง user / group ขึ้นมาก่อน
NOTE: จริงๆ ตอนสร้างรอบแรกมันจะ Random Password มาให้ แต่ถ้าลืมกด Reset ได้เลย
จากนั้น Assign Role เข้าไป ในตัว Resource > Access Control (IAM)
- Role จะมี 3 แบบหลัก Owner (จัดการ + กำหนดสิทธิ) / Contributor(จัดการ) / Reader (ดูได้อย่างเดียวแต่ละ Resource จะมี Role เพิ่มไปตาม Function ของมัน Azure built-in roles - Azure RBAC | Microsoft Learn
- ถ้ากำหนด Role แยกตาม Resource เช่น กำหนดให้เป็น Contributor ของ App Service ต้องมากำหนด Reader ในส่วนของ Resource Group ด้วย ไม่งั้นมันไม่เห็นจ้า
- Azure Policy
ปัญหาต่อมา เมื่อกระจายสิทธิแล้วจะทำอย่างไรให้มันล้อไปในทางเดียวกัน โดย Azure Policy จะรายงาน 3 รูปแบบ (Available Effects)
- AuditIfNotExists - Report Only บอกมา เดี๋ยวเราทำเอง
- DeployIfNotExists - Enforce ถ้าไม่เข้า Policy เราทำให้
- Deny - Block ไม่ให้ทำ
จากนั้นลองเล่น Policy 2-3 ตัวมา Apply ด้วย
- หน้า List Policy เตรียมไว้ให้ เยอะมาก
- มี Policy ให้เลือก ถ้าเจอที่ต้องการ และดูรายละเอียด ถ้า OK กด Assign และตั้งค่าครับ โดยตอนกำหนดดูเลือกเยอะ และ Filter ยากเหมือนกัน //แก้ JSON น่าจะง่ายกว่า
- ตอน Apply มันจะเหมือน Tag ต้องรอ และให้มัน Sync ครับ
Ref: Overview of Azure Policy - Azure Policy | Microsoft Learn
Security
รอบตัวเรามี Threat มากมาย โดยแบ่ง 2 กลุ่ม
- External Threats
- Office 365 Phishing Mail
- End Point - คอมที่เข้าระบบ อาจจะติด malware ฝังตัว
- Identity - user/pass โดน compromise เช่น brute force อาจจะ user ปกตื / ผู้ดูแล
- ถ้าได้เฉพาะ user > Attacker จะยกสิทธิ privilege escalation
- IoT + Operation Technology
- ถ้าได้ Identity แล้ว เกิดความพยายามจะขโมยข้อมูล ดูจาก App ว่าผิดปกติ เช่น Shared Point อยู่ downloadไฟล์ไปเยอะผิดปกติ
- Insider Risk
- data leak เช่น user share with anyone ให้คนเดว แต่ขี้เกียจ
- Anomalous Activity เช่น ไม่มีสิทธิ แต่พยายามจะเข้าถึงข้อมูลนั้นๆ
Tools: Microsoft Defender for XXX / Microsoft Sentinel (SIEM / SOAR)
- Enterprise Access Model
Enterprise Access Model เป็นตัวอย่างการนำ privileged access strategy มาปรับใช้ และจัดการ ตาม rapid modernization plan (RaMP) โดยมีส่วนย่อยๆ ดังนี้
- เริ่มจาก Data/Workload Pane ทีจัดการ Data ของทาง Business โดยจะการเข้าถึงจาก
- Internal >> App
- External
- App
- User - พนักงาน เข้าถึง resource ตรงนี้มี user account / device และ protocol เช่น Virtual Desktop เป็นต้น
- Management Plane - บริหารจัดการ จาก Portal เช่น Monitor / Backup ประมาณนี้
- Control Plane - จัดการสิทธิ Azure RBAC //Zero Trust
- Privilege Access - ผู้ดูแล ถ้าได้ตามนี้ครบเข้าไปจัดการส่วนอื่นๆได้
- PIM - Least Privilege ยกตัวอย่าง user global admin เลิกงานยังเป็นนะ ดังนั้นให้สิทธิเท่าที่จำเป็น และตาม Scope เวลา
- PAM
- PAWS - Device ที่ใช้งานต้องต้องตรง Spec ที่กำหนด
โดยการทำ Enterprise Access Model ให้มีประสิทธิภาพดูสุดต้องนำเอาตัว
- Zero Trust (Explicit validation / least privilege access / Assume breach - บางที่อาจจะกำหนด Network เฉพาะ)
- Enforce hierarchy ในแต่ละ Access Level - Data+Workload / Management / Control
และมีส่วน Defense In Depth ป้องกันในทุก Layer
Ref: Securing privileged access Enterprise access model | Microsoft Learn
- Conditional Access (Azure AD Premium)
ให้เข้าถึง Resource ได้ โดยต้องดูจาก
- signal - เหตุการณ์ต่างๆกับ Account - ผสมกันระหว่าง user / location (IP/GEO) / device (intune-ตรวจว่า device เ้ข้าเงื่อนไขไหม) / app (จะเข้าหน้าไหนนะ admin365 / office / regis app on azure ad ) และ real time risk (user / sign-in risk)
- decision - ตัดสินใจจาก signal
- enforcement - ให้เข้า หรือไม่เข้า หรือแบบมีเงื่อนไข
หลังจากจบทฤษฏีไปมาลองตัว Conditional Access อยู่ใน Azure AD Premium ขึ้นไป ต้องลอง Trial กันก่อน
- Azure AD > License > Trial Azure AD Premium //ตัว Enterpise Mobility ใหญ่กว่ามาก
NOTE: ในส่วนข้อมูล User ถ้ามีมาก่อน ต้องใส่ Usage Location ไม่งั้นจะ Activate ไม่ขึ้น
- พอ Trial เสร็จ ต้อง Assign Licesเข้าไปให้ใน user/group
- ก่อนลองต้องปิด Security Default ตอนนี้บังคับเปิด / tenant scope โดนทุกคน / block legacy Authen (user+pass หน้าเดียว) ใช้ user admin เข้า Azure AD > overview > properties Security Default แก้เลือกว่าใช้ตัว Conditional Access แทน
จากนั้นลองกำหนด Conditional Access Policy
- กำหนด Name Location กำหนดได้ทั้ง IP / Location ในที่นี้จะเอา IP ตัวเองมาเป็น HQ ก่อน ตอนใส่ IP อย่าลืมใส่ range พวก /32 ด้วยนะ
- กำหนด Policy
- เลือก user/group
- เลือก app / action
- กำหนดเงื่อนไขการตรวจสอบ ในที่นี้เป็น IP ของ HQ
- Grant ถ้าไม่เข้าเงื่อนไข ต้องทำอะไร
- ทดสอบ - รอ 5-10 นาที Apply Policy
ดู Log ยังไง Azure AD > Sign in Log สามารถกดดู Detail ได้ในเคสที่ Conditional Access
- ตรง Conditional Access กดมาดู Detail
ข้อควรระวัง - ถ้าทำผิด แล้วจะเข้าระบบไม่
- ค่อยทำ Test ที่ละ User / กลุ่มเล็กๆ แล้วค่อย Apply
- กำหนด Account พิเศษที่ไม่เข้า Conditional Access Policy + MFA เอาไว้กันตาย
Ref: What is Conditional Access in Azure Active Directory? - Microsoft Entra | Microsoft Learn
- Azure Baston
- เข้า vm ผ่าน azure portal 80/443 มันจะคล้ายๆ พวก VDI ใช้งานผ่าน Web Browser ได้ มีท่าที่ ทำ File Transfer ได้ด้วย ลดการ Export RDP ออกไปสู่ Internet โดยที่ 1 Baston 1 Baston ต่อ 1 vnet / ได้ ได้ 20 จอพร้อมกัน (Basic Plan)
- ถ้าไม่ใช่ Azure Baston มีอีกหลายท่า ต้องเทียบ Cost กัน
- JumpHost / Point to Site VPN / Azure Firewall (Concept - Hub & Spoke)- RDP (NAT) ได้
Ref: Azure Bastion - Fully Managed RDP/SSH | Microsoft Azure
- Microsoft Defender For Cloud (Azure Security Center)
Security Measure - ประเมินความปลอดภัยระบบ ให้ได้ Security Posture โดยตอนนี้มี 3 ส่วน
- cloud security posture management (CSPM) - ดูการตั้งค่าบน Azure
- cloud workload protection platform (CWPP) - ด Threats ตาม workload เช่น
- Defender for xx เช้่น VM / App Service …
- Defender for KeyVault (จัดเก็บ Secret Config / Dev ไม่รู้ Pass ) ดูการใช้ Secret
- Defender for Resource Manager - ตรวจว่ามีการสร้าง Resource แปลกไหม
- Defender for DNS …. //DNS ตัวแรกที่จะโดน Attack เลย
- ตอนนี้มีส่วน DevOps เพิ่มมาและ
การใช้งานลองกด Trial กันก่อนครับ มันแสดงข้อมูลที่พบ Overview ขึ้นมา รองรับ 3 ค่ายหลักแล้ว Multi-Cloud
ถ้ากดเข้าไปในส่วน Recommendation จะพบข้อมูลที่มันแนะนำในแต่ละ Workload ขึ้นมา
ถ้าเข้าไปในแต่ละตัว มันจะมีรายละเอียดยังไง แก้ไขยังไง ฟรี/เสียเงิน และ re-evaluate ตอนไหน เช่น ทุก 24 ชม และพอกด Resource เข้าไปมันจะแจ้งเรื่อง RDP
ส่วนของ Regulatory Compliance ตรวจว่าตรงกับมาตรฐานไหม ตอนนี้จะเป็นของ Microsoft Cloud Security Benchmark ถ้าต้องการส่งรายงานให้ Audit กดที่ Audit Report ได้เลย
ในแต่ละ Item จะตัว MS (Microsoft) / C (Customer) แยกเลยว่าหน้าที่ของใครที่ต้องเข้ามาดู
ถ้าอยากได้มาตรฐานอื่นๆ Manage Compliance Policy > Subscription
- กดเบอร์ 1 เปิด Workload CWPP ขึ้นมา เสียเงินถืงออก Report ได้ ต้องไปเปิดให้เก็บค่าบางอย่างเพิ่ม ในแต่ละ Workload ตามมาตรฐานนั้นๆด้วย
- แล้วเราจะเลือก Industry Standard ได้
- Microsoft Sentinel
Service ที่ใช้วิเคราะห์ข้อมูลความปลอดภัยบน Cloud สำหรับ SOC Team โดยมีงาน 2 ส่วน
- Security information and event management (SIEM)
- Security orchestration, automation, and response (SOAR)
ตอนเปิดใช้มี Require Log Analytic Workspace ด้วยครับ ให้เลือกตั้งแต่ตอนสร้างเลยฃ
แหล่งข้อมูลจะมี 2 ส่วน
- Azure Internal
- Data Connector บางอันเป็นของ
- Internal
- External - REST API หรือ Agent
อ๋อ Azure AD Premium ถ้าต้องการเอา sign-in log เข้ามาดู ส่วนตัวอื่นๆดูได้จาก Microsoft Sentinel data connectors
หลังจากลอง Add Azure AD Data Connector ข้อมูลจะมีเข้ามาครับ แต่ Workshop นี้จะประมาณพาให้รู้จัก Tools มากกว่าครับ ยังไม่มีแบบ Simulate Attack ให้เห็นจนใช้พวก Automate Response ได้ครับ
ส่วนอื่นๆที่น่าสนใจ MITRE ATT&CK เป็น Dashboard for SOC Team (MITRE)
- แนวนอน - Attack Type ตาม Step
- แนวตั้ง - Technique
ถ้ากดในกล่องจะมี Detail เช่น Drive-by Compromise มีอะไรที่กันบ้าง แก้อย่างไร
- Microsoft Cloud Security Score
- วัดระดับความปลอดภัยตาม Compliance แบบใน Defender for Cloud ที่ออก Report
- Scope ของ MS สามเหลี่ยมสีม่วงตรงกลาง ส่วนถ้าจะเจาะลึกไปดูมุมที่งอกออกมา
Ref: Microsoft Secure Score | Microsoft Learn
สำหรับงานนี้ขอบคุณทั้ง อจ ตุล และพี่ลี ที่มาให้ความรู้คำแนะนำเยอะมาก ได้เห็นอีกหลายๆมุมเลย และได้เจอเพื่อนใน FB ด้วย ฮ่าๆ แต่อยากให้ทาง Azure ใจป๊ำแบบ AWS ที่ให้ Code มาให้ลองเล่น 48 ชั่วโมง อิอิ
Reference
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.