Blog
Thoughts on engineering, design, and building great products.
seccomp-bpf: BPF Cổ Điển Lọc Syscall Trong Mọi Container
Trước eBPF có cBPF — BPF cổ điển, thứ tcpdump dùng. Và nó vẫn đang chạy: seccomp-bpf lọc syscall bằng cBPF, là lớp sandbox nền của container. Bài này phân biệt cBPF với eBPF, soi seccomp thật trên cụm (pause container và CSI sidecar bị giới hạn, pod privileged thì không, systemd-resolved chồng 28 filter), rồi tự viết một filter cBPF chặn mkdir bằng EPERM — tám lệnh thao tác trên struct seccomp_data, cài bằng prctl, chặn thật trong khi printf vẫn chạy.
Seccomp, AppArmor và Capabilities
Bài 54 bắt pod khai runAsNonRoot, drop ALL capabilities, seccomp RuntimeDefault — nhưng đó mới là chính sách ở mức Kubernetes. Bài này xuống tầng kernel xem chúng làm gì thật: đọc /proc/self/status của hai pod, một mặc định một đã siết, so từng dòng CapEff, Seccomp, NoNewPrivs, AppArmor. Rồi chứng minh bằng tay rằng drop một capability chặn được thao tác cụ thể — chown bị từ chối ngay cả khi container vẫn chạy bằng root.