Chương 1: Giới thiệu Web Security
Tại sao DevOps cần học Web Security?
Năm 2023, một kỹ sư DevOps cấu hình một S3 bucket để serve static files. Anh ta quên không restrict public access. Kết quả: toàn bộ database backup, bao gồm thông tin khách hàng của 2 triệu người, bị exposed ra internet trong 3 tháng trước khi được phát hiện.
Đây không phải lỗi của developer. Đây là lỗi của người vận hành hạ tầng.
DevOps Engineer ngày nay không chỉ cấu hình server — họ là người quyết định:
- Ứng dụng được deploy như thế nào
- Traffic đi qua đâu
- Secrets được lưu ở đâu
- Network policy được áp dụng như thế nào
Mỗi quyết định đó đều có thể tạo ra hoặc ngăn chặn lỗ hổng bảo mật.
Khái niệm
Web Security là tập hợp các kỹ thuật, quy trình, và công cụ nhằm bảo vệ ứng dụng web khỏi các cuộc tấn công từ bên ngoài và bên trong.
Ba trụ cột cơ bản — mô hình CIA Triad:
- Confidentiality (Bảo mật): Dữ liệu chỉ được truy cập bởi người có quyền. Ví dụ: password không bị lộ, session token không bị đánh cắp.
- Integrity (Toàn vẹn): Dữ liệu không bị thay đổi trái phép. Ví dụ: hacker không thể sửa số tiền trong giao dịch.
- Availability (Sẵn sàng): Hệ thống luôn hoạt động khi cần. Ví dụ: không bị DDoS làm sập dịch vụ.
Threat Landscape — Bức tranh mối đe dọa
Ai đang tấn công?
- Script kiddies: Dùng tool có sẵn, không hiểu sâu. Nguy hiểm thấp nhưng nhiều về số lượng.
- Hacktivists: Tấn công vì lý do ch ính trị/tư tưởng.
- Cybercriminals: Tấn công vì tiền — ransomware, data theft, fraud.
- Nation-state actors: Chính phủ nước ngoài. Nguy hiểm nhất, tài nguyên lớn nhất.
- Insiders: Nhân viên nội bộ — cố ý hoặc vô ý.
- Bug bounty hunters: Ethical hackers tìm lỗ hổng để nhận thưởng — hữu ích!
Tại sao web là mục tiêu?
Web application là cửa vào phổ biến nhất vì:
- Exposed ra internet 24/7
- Phức tạp, nhiều component, nhiều dependency
- Developer thường thiếu kiến thức bảo mật
- Dễ tấn công từ xa, không cần physical access
OWASP Top 10 — 10 lỗ hổng phổ biến nhất
OWASP (Open Web Application Security Project — Dự án Bảo mật Ứng dụng Web Mở) là tổ chức phi lợi nhuận công bố danh sách 10 lỗ hổng web nguy hiểm nhất, được cập nhật định kỳ.
OWASP Top 10 (2021):
- A01: Broken Access Control — Kiểm soát truy cập bị phá vỡ
- A02: Cryptographic Failures — Lỗi mã hóa (dữ liệu nhạy cảm không được bảo vệ)
- A03: Injection — SQL, Command, LDAP injection
- A04: Insecure Design — Thiết kế không an toàn ngay từ đầu
- A05: Security Misconfiguration — Cấu hình sai (DevOps thường gặp!)
- A06: Vulnerable and Outdated Components — Dùng thư viện lỗi thời
- A07: Identification and Authentication Failures — Lỗi xác thực
- A08: Software and Data Integrity Failures — Lỗi toàn vẹn (supply chain)
- A09: Security Logging and Monitoring Failures — Thiếu logging
- A10: Server-Side Request Forgery (SSRF) — Giả mạo request từ server
DevOps chú ý: A05 (Misconfiguration) và A09 (Logging) là hai lỗi mà DevOps trực tiếp chịu trách nhiệm.
Attack Surface — Bề mặt tấn công
Attack surface là toàn bộ các điểm mà kẻ tấn công có thể tương tác với hệ thống.
Với một ứng dụng web điển hình:
Internet
│
▼
[CDN / WAF]
│
▼
[Load Balancer]
│
▼
[Nginx / Kong API Gateway] ← attack surface: headers, routing
│
▼
[Application Servers] ← attack surface: endpoints, parameters
│
▼
[Database / Cache / Queue] ← attack surface: SQL injection, etc.
│
▼
[Cloud Services / S3 / IAM] ← attack surface: SSRF, misconfiguration
Mỗi tầng trong sơ đồ trên đều có thể bị tấn công. DevOps engineer kiểm soát tất cả các tầng ngoại trừ application code — nhưng ngay cả cách deploy code cũng ảnh hưởng đến security.
Cách hacker tư duy — Attacker Mindset
Hacker không tấn công ngẫu nhiên. Họ theo một quy trình gọi là Penetration Testing Methodology:
- Reconnaissance (Thu thập thông tin): Tìm hiểu mục tiêu — domain, subdomain, IP, technology stack, người dùng.
- Scanning (Quét): Tìm open ports, services, vulnerabilities bằng tool tự động.
- Exploitation (Khai thác): Tấn công lỗ hổng đã tìm được.
- Post-Exploitation (Sau khai thác): Lateral movement, privilege escalation, data exfiltration.
- Reporting (Báo cáo): Với ethical hacker — ghi lại tất cả, báo cáo cho target.
Hiểu quy trình này giúp bạn nghĩ như hacker để bảo vệ hệ thống tốt hơn.
Bug Bounty — Làm gì với kiến thức này?
Bug Bounty là chương trình mà các công ty trả tiền cho người tìm ra lỗ hổng bảo mật trong hệ thống của họ theo cách có trách nhiệm.
Các platform phổ biến:
- HackerOne (hackerone.com)
- Bugcrowd (bugcrowd.com)
- Intigriti (intigriti.com)
Mức thưởng điển hình:
- Low severity: $50 - $500
- Medium severity: $500 - $5,000
- High severity: $5,000 - $50,000
- Critical: $50,000+
Quy tắc vàng: Chỉ test những gì được phép trong scope. Không bao giờ test hệ thống không có authorization.
Môi trường thực hành
PortSwigger Web Security Academy
Trang web portswigger.net/web-security cung cấp:
- Hơn 250 labs thực hành miễn phí
- Giải thích lý thuyết chi tiết
- Progressively difficult challenges
DVWA (Damn Vulnerable Web Application)
# Chạy DVWA bằng Docker
docker run -d -p 80:80 vulnerables/web-dvwa
Juice Shop (OWASP)
# Chạy OWASP Juice Shop
docker run -d -p 3000:3000 bkimminich/juice-shop
HackTheBox / TryHackMe
Nền tảng học CTF (Capture The Flag) và penetration testing có hướng dẫn.
Góc nhìn DevOps
Với DevOps Engineer, web security không phải là việc của người khác. Bạn cần:
WAF (Web Application Firewall):
- Deploy WAF trước ứng dụng (ModSecurity, AWS WAF, Cloudflare)
- Hiểu WAF không phải silver bullet — chỉ là một lớp phòng thủ
Shift Left Security:
- Tích hợp security scan vào CI/CD pipeline
- SAST (Static Application Security Testing): scan code
- DAST (Dynamic Application Security Testing): scan ứng dụng đang chạy
- SCA (Software Composition Analysis): scan dependencies
Defense in Depth (Phòng thủ theo chiều sâu):
- Không phụ thuộc vào một lớp bảo mật duy nhất
- WAF + Input Validation + Parameterized Queries + Least Privilege + Monitoring
Principle of Least Privilege (Nguyên tắc quyền tối thiểu):
- Container chỉ có quyền cần thiết
- Service account chỉ có quyền cần thiết
- Database user chỉ có quyền cần thiết
Tóm tắt
- Web Security bảo vệ 3 trụ cột: Confidentiality, Integrity, Availability.
- DevOps Engineer là người kiểm soát nhiều tầng trong attack surface.
- OWASP Top 10 là danh sách lỗ hổng phổ biến nhất — phải thuộc lòng.
- Hacker tư duy có hệ thống: Recon → Scan → Exploit → Post-Exploit.
- Bug Bounty là cách kiếm tiền hợp pháp từ kỹ năng security.
- Môi trường thực hành: PortSwigger Labs, DVWA, Juice Shop.
- Defense in Depth và Least Privilege là hai nguyên tắc cốt lõi.
Câu hỏi ôn tập
- Ba trụ cột của CIA Triad là gì? Cho ví dụ mỗi trụ cột trong bối cảnh ứng dụng web.
- OWASP Top 10 lỗ hổng nào mà DevOps Engineer trực tiếp chịu trách nhiệm nhất?
- Attack surface của một ứng dụng web điển hình bao gồm những tầng nào?
- Sự khác nhau giữa SAST và DAST là gì? Cái nào nên chạy trong CI pipeline?
- Tại sao Bug Bounty lại có lợi cho cả công ty lẫn researcher?