Các rủi ro bảo mật trong môi trường Container
Mặc dù container cung cấp sự cô lập (isolation), chúng vẫn chia sẻ chung nhân hệ điều hành (Kernel) của máy host. Nếu một container bị hack và cấu hình sai quyền, kẻ tấn công có thể "thoát" khỏi container (container escape) để chiếm đoạt hoàn toàn máy chủ VPS vật lý bên ngoài.
Bảo mật container yêu cầu các tiếp cận đa lớp từ phân quyền tiến trình cho đến quản lý tài nguyên nghiêm ngặt:
Quy tắc 1: Không chạy container dưới quyền Root
Mặc định, nếu không chỉ định gì, các tiến trình bên trong container sẽ chạy dưới quyền root. Nếu ứng dụng có lỗ hổng bảo mật (ví dụ: Remote Code Execution), kẻ tấn công sẽ lập tức có đặc quyền root bên trong container và dễ dàng khai thác tiếp hệ thống host. Hãy cấu hình user thường trong Dockerfile:
FROM node:20-alpine
WORKDIR /app
COPY . .
# Tạo group và user không có đặc quyền root
RUN addgroup -S appgroup && adduser -S appuser -G appgroup
USER appuser
CMD ["node", "app.js"]
Quy tắc 2: Thiết lập Read-Only Filesystem & Resource Limits
Hầu hết các dịch vụ web không cần phải ghi file vào ổ đĩa lúc runtime. Việc khóa hệ thống file thành Read-Only sẽ ngăn chặn kẻ tấn công tải và thực thi các script độc hại vào container. Ngoài ra, giới hạn tài nguyên ngăn chặn các container bị nhiễm độc ngốn sạch CPU/RAM của host chủ.
Định nghĩa cấu hình an toàn này trong docker-compose.yml:
services:
web_api:
image: node-app:latest
read_only: true # Khóa hệ thống file ở dạng Read-Only
tmpfs:
- /tmp # Chỉ cho phép ghi vào thư mục tạm trong RAM
deploy:
resources:
limits:
cpus: '0.50' # Giới hạn tối đa 50% CPU
memory: 512M # Giới hạn tối đa 512MB RAMBình luận (0)
Đang tải bình luận...