DevSecOps là gì?
DevSecOps là gì?
Hãy tưởng tượng một team đang phát triển phần mềm.
Developer viết code, tester kiểm thử, DevOps xây pipeline và đưa ứng dụng lên production.
Mọi thứ gần như đã sẵn sàng để release.
Lúc này ứng dụng mới được chuyển sang cho security team kiểm tra.
Và hàng loạt vấn đề xuất hiện.
Một dependency có lỗ hổng.
Một cấu hình có thể làm lộ dữ liệu.
Một thành phần của hệ thống được thiết kế không an toàn.
Release phải dừng lại để sửa.
Vấn đề ở đây không phải là team không quan tâm đến security.
Security vẫn được thực hiện.
Nhưng nó được thực hiện quá muộn.
Security không nên chỉ xuất hiện ở cuối
Nếu security chỉ được kiểm tra khi phần mềm gần hoàn thành, một vấn đề bảo mật được phát hiện lúc này có thể buộc team phải quay lại sửa code, configuration, infrastructure, thậm chí cả thiết kế hệ thống.
Có thể hình dung cách làm đó như sau:
Plan
↓
Develop
↓
Build
↓
Test
↓
Deploy
↓
Security Check
Security giống như một cánh cổng cuối cùng:
“Xây xong rồi thì kiểm tra xem có an toàn không.”
DevSecOps thay đổi cách suy nghĩ này.
Thay vì để security đứng ở cuối quá trình, security được đưa vào xuyên suốt quá trình phát triển và vận hành phần mềm.
Plan ─────── Security
↓
Develop ──── Security
↓
Build ────── Security
↓
Test ─────── Security
↓
Deploy ───── Security
↓
Operate ──── Security
Khi thiết kế hệ thống, chúng ta đã nghĩ đến security.
Khi viết code, chúng ta nghĩ đến security.
Khi build và test, security cũng được kiểm tra.
Khi deploy infrastructure, security vẫn là một phần của quá trình.
Và ngay cả khi ứng dụng đã chạy trên production, security cũng không kết thúc.
Đây mới là điểm quan trọng của DevSecOps
Nhìn vào cái tên:
Development + Security + Operations
rất dễ hiểu DevSecOps đơn giản là:
“DevOps cộng thêm Security.”
Nhưng nếu chỉ thêm một security team hoặc thêm một bước security scan vào cuối CI/CD pipeline thì chưa thể hiện được bản chất của tư duy này.
Điểm quan trọng hơn là:
Security trở thành trách nhiệm được tích hợp vào cách phần mềm được xây dựng và vận hành, thay vì một công việc tách biệt chỉ xuất hiện ở cuối.
Security vì thế không còn chỉ là vấn đề của một nhóm chuyên trách.
Developer cần quan tâm đến security trong code.
Những người xây pipeline và infrastructure cần quan tâm đến security trong quá trình build và deployment.
Operations cần quan tâm đến security khi hệ thống đang vận hành.
Security team vẫn có vai trò chuyên môn riêng, nhưng security không còn bị cô lập khỏi phần còn lại của quá trình phát triển phần mềm.
“Shift Left” liên quan gì đến DevSecOps?
Một tư tưởng thường xuất hiện cùng DevSecOps là Shift Left.
Nếu biểu diễn vòng đời phát triển từ trái sang phải:
Plan → Code → Build → Test → Deploy → Operate
thì đưa các hoạt động security về những giai đoạn sớm hơn chính là đưa chúng sang phía “left”.
Thay vì chờ:
Xây xong
↓
Kiểm tra security
↓
Phát hiện vấn đề
↓
Quay lại sửa
ta cố gắng phát hiện và xử lý vấn đề ngay trong quá trình tạo ra phần mềm.
Nhưng DevSecOps cũng không có nghĩa security chỉ cần được đẩy sang trái.
Một hệ thống đã chạy production vẫn có thể xuất hiện vulnerability mới, configuration sai hoặc các mối đe dọa mới.
Vì vậy security cần tồn tại từ lúc xây dựng cho đến khi hệ thống đang vận hành.
Vậy DevSecOps là gì?
DevSecOps là cách tiếp cận tích hợp security vào xuyên suốt quá trình phát triển và vận hành phần mềm, để security trở thành một phần của cách team thiết kế, xây dựng, kiểm thử, triển khai và vận hành hệ thống thay vì chỉ là bước kiểm tra cuối cùng.
Nếu DevOps giúp Development và Operations làm việc gần nhau hơn để đưa phần mềm từ code đến production hiệu quả hơn, thì DevSecOps nhấn mạnh rằng:
Security cũng phải nằm bên trong quá trình đó.
Nếu chỉ cần nhớ một ý về DevSecOps, hãy nhớ:
Đừng xây phần mềm xong rồi mới hỏi: “Nó có an toàn không?”
Hãy đặt câu hỏi đó trong suốt quá trình xây dựng và vận hành nó.