อันนี้จดจากมุมมองของ Dev อาจจะมีจดมาผิด หรือ เข้าใจผิดไป ต้องอภัยก่อนนะครับ อ๋อและก็ผมมาถึงงานสายนิดนึง อาจจะจดไม่ครับ
Vocab
- Zero Trust Key Concepy
- Never trust, always verify
- Least prvillage per request พวก login แล้วได้สิทธิไปยาวๆ ไม่นับนะ
- View as a compromise - มองว่าโดนโจมตีไปแล้ว Assume Breach
A zero trust architecture (ZTA) is an enterprise's cyber security plan that utilizes zero trust concepts and encompasses component relationships, workflow planning, and access policies.
- Zero Trust Architecture - ไปในมุมของการ Implement แนวคิดของ Zero Trust ที่ให้
- จัดการกับทุก Connection (component relationships)
- Shift perimeters focus ไปที่ตัว Workload / Resouces แทน
- workflow planning ตั้งแต่ boundary ของระบบเราเริ่มจาก Internet Gateway ของ Cloud จนถึง resource ทีสุดท้าย
- access policies
Perimeter defense vs Zero Trust
- Perimeter Defense - Micro Segment (กลุ่ม resource + workload) เช่น บอกว่า A และ B ใช้งาน C ได้ แต่ไม่ใช่ Zero Trust เพราะ ยังไม่ครอบคลุม Workload อื่นๆ และ ไม่ได้มอง Assume Breach ถ้าหลุดมาจุดนึง แตกหมด
- Zero Trust ทุก workload ไม่เชื่อใคร ข้างเคียง มันจะช่วยลดความเสี่ยงตรงนี้ได้
Zero Trust ถ้าทำที่ On-Premise ต้องใช้ตัว Software Define Network เข้าช่วย เมื่อก่อนทำได้ยาก อาจจะต้องมี coding จัดการ แต่บน cloud ทำได้ง่ายขึ้น กดจากเว็บได้เลย
Core Zero Trust Component
เริ่มจากตัว Continuous diagnostics and mitigation (CDM) เอาพวก Threat Inteligence + Complaince / Goverance เข้ามา ตัว Core Policy Enforement Pointโดยเริ่มจาก
- Subject - Actor ที่ใข้งาน เช่น คน / ระบบ / hardware (computer) เข้ามาขอ Request ใช้งาน Resource
- Policy Enforement Point ซึ่งมี 2 ส่วน
- Policy Administrator
- Policy Engine
ตัว Policy Enforement Point ถ้าใน Cloud จะพวก IAM อย่าง Aws IAM / Azure AD เป็นต้น
Ref: The Logical Components of Zero Trust (intersecinc.com)
DAAS
กลุ่มของ Resource ที่เราต้องการจะปกป้อง
- Data - sensitive data
- Application - app ที่ยุ่ง data
- Assets - Workload ที่เรามี บน Cloud จะเป็น vm / container / serverless / CDN เป็นต้น
- Service - ไม่ใช่คน เช่น พวกระบบต่างๆ API
FIve-Step Process for Zero Trust Implementation
- Define Protect Surface เราจะป้องกันอะไร โดยเริ่มจากตัว DAAS ก็ได้ ไว้มาก็ได้ เช่น
- VM
- Sensitive Data
- CDN - ส่วนใหญ่เก็บข้อมูล Publish นะ แต่ต้องเน้นตรวจสอบ Integrity ของ Data ว่ามีแก้ไขอะไรไหม
- Application พวก API ต่างๆ ตอนนี้น่าจะ REST API หมดและ - Map the transaction flows - data มันไหลยังไง ดูจาก app call กันเป็นต้น
- แต่ต้องตัด boundary (gateway - vnet) ของ cloud - Architecture the zero-trust network
- ณ จุดต่างๆ เราต้องใช้อะไรบ้าง resource ตัวไหน ตรงนี้ต้องรู้ว่า Cloud แต่ละเจ้าให้ของอะไรมาบ้าง มาประกอบ Solution Firewall / NSG (Security Group) ประมาณนี้
- บางอย่างใช้ของ Cloud เองจะดีกว่า ถ้่าลง VM แล้วลง SW พวกนี้ มันอาจจะสร้างความสับสนตอนตรวจสอบได้ - Create the zero trust policy
- Monitor and maintain the network - Logs / SIEMs บราๆ
Zero Trust Maturity Model Pillars
- ZTMM #01 Identity Management
ใน Pillar นี้จะไปตอบตัว Core ของ Zero Trust ด้วนในส่วน Never trust, always verify โดยใน Cloud 3 เจ้าใหญ่มีแนวคิดของหลัก who / can access / what (กรรม) โดย IAM มีรายละเอียดต่างกันแต่ละเจ้า ดังนี้่
AWS
- AWS IAM ตอนนี้จะเน้นไป IAM Identity Center
- Internal use มี user / group ทั่วไป แต่ Role มันไม่เหมือนชาวบ้าน non-human identities + เอาไปแปะให้ user ได้ เหมือน หมวก/ตำแหน่ง ใครได้ไปสิทธิเท่านั้น (ผมไม่แน่ใจว่าว่าคล้ายๆกับ User Manage Identity ของ Azure ไหม)
- temporary security credentials - short-term credentials per request
- Federated Identity
Federated = trust relationship ระหว่างกลุ่มต่างๆในที่นี้จะหมายถึง IAM ของแต่ละที่ เช่น เราใช้ Google Account Login เข้ากับ IAM อีกที่ได้
- AWS Cognito - เป็น Customer Identity (CIAM) เปิดให้คนภายนอก ทำ Flow Self Register (Local / Social) + Control Access จะว่าไปเหมือน Azure AD B2C พวกนี้เอามาลดภาระของ Admin ลง
Note มี 3rd Party อื่นๆ อื่นๆอย่าง Okta
AZURE Entra Family
- Azure AD (Entra ID)
- ตอนแรกงง Slide มี HR ใน Flow ด้วย สักก็อ๋อ เพราะ AD มันครองสำนักงานมาก่อน แล้วขยับไป Cloud
- Entra ID มันเป็นทั้ง IAM (user / group / role มีแบบ built-in, custom)
และมีรวม Solution อื่นๆด้วย
-> Entra Privileged Identity Management? - ทำ Add-On Security + Identify Governance
-> Defender for Cloud Apps
จริงๆ มันตาม Plan ที่เลือกเลย - Manage Identity มากับ Entra ID เรียกว่า ทุก Resource ให้สะดวกขึ้น
- ทำ Secure Access Token ตอน Request จะไปขอจาก Entra ID และเอาไปใช้งาน
- Reduce Complexity + Risk ไม่ต้องไปฝัง Credential ไว้ใน Code
- โดยมีแบบ
-> System Assign - มีมาให้ตั้งแต่ตอนสร้าง และเอาออกจะหายไป
-> User Assign - เรากำหนดเอง แล้วไปผูกกับสิทธิ Role ในการทำงานแต่ละส่วน
ตอนฟังนึกถึงอันนี้ที่ลองเล่น Secure storage for Azure Files and Azure Blob Storage หรือ เอาไปใช้ตอน Scale - Azure AD B2C (Entra External Id) แบบ AWS Cognito แต่เน้น user ขา Social Platform + Local
Ref: New name for Azure Active Directory - Microsoft Entra | Microsoft Learn
GCP
- GCP IAM
- user (Google Account, Service Account เป็น non-human) / group / role ปกติ //จริงๆ AWS role ไม่เหมือน
- Access Management
-> Principle - เป็นไปได้หลายอันเลย เช่น Google Account / Service Account
-> Role - Collection of Permission แล้วเอาไปกำหนดใส่ Principal
-> Policy -Collection of Role Bind to Principal / Role - Identity Platform / Firebase Auth เทียบเท่า Azure AD B2C (Entra External Id) / AWS Cognito
สรุปความแตกต่าง
อีกกลุ่มจะเป็นพวก Manage Identity ที่มาช่วย Eliminate Credential Storage ลดการเก็บของไว้ยาวนาน ไปทำกระบวนการขอ และจะได้เป็น Temporality Short-Live Role Base Access ได้ แต่ละเจ้ามีความแตกต่าง ดังนี้
- ZTMM #02 Device Management
- Device - scope organization / Byod / partner / customer ในที่นี้จะเน้น organization device ที่เหลือ อาจจะดูตาม risk แล้วตัดสินใจ เข่น
- มี access data ไหม
- แล้ว data ที่ access พวก Sensitive Data หรือป่าว ? - การทำตรงนี้ได้ ต้องมีตัว Asset Inventory อย่างน้อยมี organization device
ปกติดูจาก IAM มันมีตัวช่วยนะ Register Device ถ้าข้างนอก CIAM หรือไปใช้พวก "Cryptographic Challenge Response"
- Compute Resources - VM / Container เป็นต้น
- Storage Resources - BLOB / S3 เป็นต้น
- Platform Resources - พวกกลุ่ม PAAS เช่น DB / Web Server / Event / Queues
- Network Resources - VNET / VPN / Gateway / DNS"
- Virtual Resources เช่น AI Models
- ZTMM #03 Network & Environment Management
มาจากตัว ZTA ที่มัน Shift perimeter focus ไปที่ตัว Workload / Resouces แทน เข้าใก้ลตัว Application + Data มากขึ้น โดยสนใจ
- Flow - Internal / External นอก Internet Gateway ของ Cloud.
- Isolate Host - firewall ตัวใกล้ชิดสุดพวก NSG / Security Group
- Encryption - at transit / at rest
- Segment activity.
- Visibility - ทำให้เห็น จาก control plane ใช้ Service ของ Cloud จะดีกว่า
พวก Traffic เราสามารถมาจัดให้ Unique ตาม Application และกลุ่มของ App จัดเป็น Class อีกที.
Keyword Ingress / egress, mesh พวกนี้นึกถึง K8S มันคุมได้ แต่ละเจ้าให้อะไรบ้าง
- AWS - VPC / Security Group
- Azure - VNET/ NSG
- GCP - VPC / cloud firewall
- ZTMM #04 Application & Workload
- เน้นทำ Continuous Authorization (ตรวจสอบทุก request)
หลายระบบ จะไปเน้นตรวจ Authentication แล้ว เอาสิทธิยัดมาใส่เลยตั้งแต่แรก มันทำให้เกิดปัญหาได้ ตามตัวอย่าง พนักงานออกไปแล้ว แต่วันสุดท้าย authentication ไว้ และไม่ปิดเครื่อง ถ้าไม่ตรวจสิทธิ มีใครมาใช้แทนอาจจะก็ได้ //เอาจริงเคสนี้เคยเกิดนะ พนักงานออกไม่ได้เอา Git ที่ login ไว้ออก และส่งเครื่องให้คนถัดไปเลย งานที่เค้าทำไป 2-3 วันแรกชื่อคนที่ออกไปแหละ - Least Privillage
- Assume all application/workload breach ได้ เอาเอาพวก credential / secret ออกจาก code โดยมีแนวทาง 2-3 แบบ
แนวทาง เอาพวก credential / secret ออกจาก code มี 2-3 ท่า
- Secret management: เอามาเก็บข้อมูลที่สำคัญ โดย Service ที่แต่ละเจ้าให้
- AWS Secrets manager
- Azure Key Valut
- GCP KMS - Manage Identities / Service Account
- อีกแบบ Pass ENV แต่สุดท้ายมันไปดึงค่า Secret Management
อันนี้เป็น Dev เขียนได้เยอะหน่อย หลักๆให้ App มันรู้ว่าจะทำ Authentication / Authrization ต้องถามใคร อย่าง Azure จะให้แปะ Connection String แทน
- ZTMM #05 Data
Secure Sensitive Data ขององค์กร โดยมามองในมุม
- Data Classification ตัว rule classify ไม่ใช้ทางฝั่ง security น่าจะต้องมาจาก business
- Access control - ปกติมันจะมาใน IAM
- RBAC
- ABAC - attribute based on user attribute เช่น department HR จะได้เห็น Data เงินเดือน / App เงินเดือนเพิ่มเข้ามา
- Data Encryption
พวก Cloud Service ที่ให้มา
Reference
Discover more from naiwaen@DebuggingSoft
Subscribe to get the latest posts sent to your email.