Giới thiệu

Bạn có chắc rằng mạng nội bộ của mình an toàn chỉ vì có firewall? Trong thế giới DevOps, nơi microservices, cloud, và remote work là tiêu chuẩn, cách bảo mật truyền thống không còn đủ. Zero Trust là giải pháp hiện đại để bảo vệ hệ thống. Trong bài này, chúng ta sẽ khám phá bảo mật mạng Zero Trust, cách micro-segmentation và network policy hoạt động, cùng thực hành cụ thể để bảo vệ pipeline CI/CD.

Zero Trust là gì?

Định nghĩa Zero Trust Networking

Zero Trust là mô hình bảo mật giả định rằng không có thiết bị, user, hay traffic nào đáng tin cậy – dù ở trong hay ngoài mạng.

  • Nguyên tắc:
    • Xác minh liên tục (verify every request).
    • Quyền tối thiểu (least privilege).
    • Giả định bị tấn công (assume breach).
  • Khác truyền thống: Firewall chỉ bảo vệ biên, Zero Trust bảo vệ từng tầng.

Ví dụ: Thay vì cho phép toàn bộ subnet 10.0.0.0/16 truy cập server GitLab, Zero Trust chỉ cho phép IP cụ thể của runner với port 443.

Vai trò trong DevOps

DevOps đối mặt với nhiều rủi ro bảo mật:

  • Pipeline CI/CD: Attacker chèn mã độc vào runner.
  • Microservices: Service bị xâm nhập qua API nội bộ.
  • Cloud: Remote worker truy cập không an toàn.

Zero Trust giải quyết:

  • Cô lập từng thành phần.
  • Xác thực mạnh mẽ (MFA, token).
  • Giám sát liên tục.

Tình huống thực tế: Một team DevOps để port 3306 (MySQL) mở trong VPC, bị tấn công từ service khác. Zero Trust với micro-segmentation đã ngăn chặn truy cập trái phép.

Cách Zero Trust hoạt động

Micro-Segmentation: Chia nhỏ để kiểm soát

Micro-segmentation chia mạng thành các vùng nhỏ, áp dụng policy riêng cho từng vùng.

  • Cơ chế: Dùng VLAN, SDN, hoặc firewall để giới hạn traffic.
  • Ví dụ: Runner CI/CD chỉ gọi được GitLab (port 443), không truy cập DB (port 3306).

DevOps: Micro-segmentation ngăn attacker di chuyển ngang (lateral movement) nếu một service bị xâm nhập.

Network Policy: Quy tắc chi tiết

  • Policy: Định nghĩa ai (IP, user) được làm gì (port, protocol).
  • Công cụ: Calico (Kubernetes), Istio, AWS Security Groups.
  • Ví dụ: Chỉ IP 10.0.1.10 được gửi TCP port 8080 đến 10.0.2.20.

Trong DevOps: Policy đảm bảo pipeline chỉ giao tiếp với registry, không “nói chuyện” với server khác.

Xác thực và mã hóa

  • MFA: Yêu cầu token cho truy cập nội bộ.
  • VPN/TLS: Mã hóa traffic giữa runner và server.

Ứng dụng Zero Trust trong DevOps

Bảo vệ Pipeline CI/CD

  • Vấn đề: Runner bị tấn công, gửi mã độc lên registry.
  • Zero Trust:
    • Policy: Chỉ cho phép runner gọi HTTPS đến registry.example.com.
    • MFA: DevOps engineer cần token để chạy job.
  • Kết quả: Attacker không thể lạm dụng runner.

Microservices an toàn

  • Vấn đề: Service A bị hack, tấn công Service B.
  • Zero Trust:
    • Micro-segmentation: VLAN riêng cho từng service.
    • Policy: Service A chỉ gọi Service B qua port 8080.
  • Kết quả: Giới hạn thiệt hại.

Remote Work và Cloud

  • Zero Trust: VPN với xác thực kép (MFA + certificate) cho remote DevOps team.
  • Ví dụ: Một công ty dùng BeyondCorp (Google) để chỉ cho phép laptop công ty truy cập VPC.

Áp dụng Zero Trust với Calico

Calico: Network Policy trong Kubernetes

Calico là CNI (Container Network Interface) hỗ trợ Zero Trust cho Kubernetes.

  • Cài đặt
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml

Tạo Network Policy

  1. Policy (policy.yaml):
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
 name: ci-cd-policy
 namespace: default
spec:
 podSelector:
   matchLabels:
     app: runner
 policyTypes:
 - Egress
 egress:
 - to:
   - ipBlock:
       cidr: 10.0.2.0/24  # GitLab server
   ports:
   - protocol: TCP
     port: 443
  1. Áp dụng: kubectl apply -f policy.yaml
  2. Test: Pod runner chỉ gọi được 10.0.2.0/24:443, các port khác bị chặn.

Debug Zero Trust

  • Kiểm tra policy:
kubectl get networkpolicy
kubectl describe networkpolicy ci-cd-policy
  • Test truy cập: kubectl exec -it <runner-pod> -- curl 10.0.2.10:80
  • Kết quả: Timeout (do policy chặn).

Debug tip:

  • Traffic bị chặn: Xem log Calico (kubectl logs -n kube-system -l k8s-app=calico-node).
  • Policy không áp dụng: Kiểm tra label pod khớp không.

Leave a Reply

This site uses cookies to offer you a better browsing experience. By browsing this website, you agree to our use of cookies.