Ngày trước mình nghĩ cybersecurity là việc của team Security. Mấy thứ firewall, pentest, SIEM… nghe xa xỉ lắm, toàn chuyện enterprise.
Dev như mình chỉ cần code chạy ngon, deploy lên là xong. Bảo mật kệ người ta lo.
Sau này chứng kiến vài vụ, suýt vài lần tự tay “đào hố chôn mình”, mình mới hiểu ra là dev chúng ta mới là mục tiêu dễ ăn nhất.
Thực tế hack không giống phim
Thực tế hack không giống phim Hollywood chút nào. Không có cảnh gõ code bay bay, màn hình xanh đỏ, vài giây phá server.
Hầu hết các vụ mình biết đều ngu ngốc và nhàm chán kinh khủng:
- Commit
.envlên GitHub public - Extension VS Code lạ
- npm package vừa install hôm qua
- Click link “tool hay” trong group dev
- Dùng chung password từ 5 năm trước
Không cần hacker siêu đỉnh. Chỉ cần bạn lơ là một chút là đủ.
Cái mình sợ nhất: thứ trông rất đáng tin
Mình từng cài một extension GitHub helper chỉ vì nó có 40k+ installs, icon đẹp, review 4.8 sao.
Cài xong vài phút là thấy CPU lạ, sau đó phát hiện nó harvest token. May phát hiện sớm, chứ không là private repo công ty bay sạch.
Hay như npm package, mình từng install một cái hot trend chỉ vì “có người recommend”.
Sau mới biết maintainer account bị hack, package bị nhét backdoor. May lúc đó chưa deploy production.
Token là thứ đáng sợ thật
GitHub token, AWS key, Vercel token, database credential… Dev chúng ta sống bằng mấy cái này.
Leak một cái token quyền cao là gần như mất trắng.
Không cần crack password, không cần social engineering phức tạp. Chỉ cần bạn cấp quyền “cho nhanh”.
Supply chain attack: kiểu hack hiện đại
Người ta không hack thẳng vào bạn nữa. Họ hack vào thứ bạn đang tin tưởng:
- Package npm
- Extension VS Code
- Tool AI
- CI/CD pipeline
Bạn bị hack gián tiếp qua chính những thứ bạn dùng hàng ngày.
Điều nguy hiểm nhất: nó im lặng
Điều khó chịu nhất là cybersecurity nó im lặng.
Code vẫn chạy, app vẫn lên, không báo lỗi gì cả. Não mình tự động nghĩ “ổn rồi”.
Đến khi bị hack thật thì mới tá hỏa.
Mình đang làm gì để giảm rủi ro
Không phải để an toàn tuyệt đối, mà để bớt ngu:
- Không commit secret lên repo (dùng tool quản lý secret riêng)
- Dùng fine-grained token thay vì token full quyền
- Thường xuyên review OAuth apps trong GitHub
- Chỉ cài extension từ publisher lớn hoặc dùng lâu năm
- Kiểm tra package trước khi install (
npm audit, Socket.dev) - Rotate key định kỳ
Nghe chán và cơ bản vl, nhưng đa số vụ toang lớn đều bắt đầu từ mấy cái cơ bản bị bỏ qua.
Kết
Cybersecurity với dev không phải là làm cho hệ thống không thể bị hack.
Mà là làm cho nó khó bị hack hơn, và thiệt hại ít hơn khi bị.
Bạn nghĩ sao? Có từng dính mấy vụ “nhẹ nhàng” kiểu commit secret hay cài extension lạ chưa?