จดๆ จาก Zero Trust Implementation on Cloud

อันนี้จดจากมุมมองของ 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

  1. Define Protect Surface เราจะป้องกันอะไร โดยเริ่มจากตัว DAAS ก็ได้ ไว้มาก็ได้ เช่น
    - VM
    - Sensitive Data
    - CDN - ส่วนใหญ่เก็บข้อมูล Publish นะ แต่ต้องเน้นตรวจสอบ Integrity ของ Data ว่ามีแก้ไขอะไรไหม
    - Application พวก API ต่างๆ ตอนนี้น่าจะ REST API หมดและ
  2. Map the transaction flows - data มันไหลยังไง ดูจาก app call กันเป็นต้น
    - แต่ต้องตัด boundary (gateway - vnet) ของ cloud
  3. Architecture the zero-trust network
    - ณ จุดต่างๆ เราต้องใช้อะไรบ้าง resource ตัวไหน ตรงนี้ต้องรู้ว่า Cloud แต่ละเจ้าให้ของอะไรมาบ้าง มาประกอบ Solution Firewall / NSG (Security Group) ประมาณนี้
    - บางอย่างใช้ของ Cloud เองจะดีกว่า ถ้่าลง VM แล้วลง SW พวกนี้ มันอาจจะสร้างความสับสนตอนตรวจสอบได้
  4. Create the zero trust policy
  5. 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 to your email.