Vấn đề của các doanh nghiệp là làm sao để tổ chức một quy trình DevSecOps hiệu quả, đảm bảo tính toàn vẹn của sản phẩm. Tất nhiên, các biện pháp như audit source code hay thực hiện test trên toàn chuỗi cung ứng phần mềm có thể nâng cao tính bảo mật của ứng dụng, nhưng nếu phát hiện quá nhiều lỗ hổng bảo mật nhưng nguồn lực về nhân sự và thiếu quy trình cụ thể thì hoạt động này cũng không đem lại hiệu quả cao. Dưới đây là 5 nguyên lý cốt lõi giúp xây dựng và vận hành quy trình DevSevOps trong doanh nghiệp.

Nguyên lý 1: Thiết lập văn hoá hợp tác, chú trọng bảo mật doanh nghiệp

Để công ty hoạt động hiệu quả, nhà quản trị cần phát triển và duy trì một văn hóa doanh nghiệp có sức ảnh hưởng lớn đến từng nhân viên. Tuy nhiên, văn hoá doanh nghiệp cũng là yếu tố khó để thực hiện hiệu quả nhất. Đặc biệt, một nghiên cứu gần đây trong ngành DevSecOps đã chỉ ra rằng "hơn một nửa (51%) nhân sự làm trong ngành CNTT nói rằng họ hoàn toàn phản đối sự thay đổi giữa các team, trong khi đó 47% cho rằng họ cảm thấy thiếu sự hợp tác trong team [ 1 ]."

Vì vậy, các doanh nghiệp không nên coi thường tầm quan trọng của văn quá doanh nghiệp đối với DevSecOps.

Làm sao để đặt vấn đề bảo mật thành trách nhiệm chung?

Nếu một tổ chức xây dựng, bán hoặc tiêu thụ sản phẩm phần mềm, thì mỗi nhân viên đều có tầm ảnh hưởng đến bảo mật. Về mặt cốt lõi, văn hoá trong DevSecOps là văn hoá chia sẻ tư duy, trách nhiệm và hoạt động thúc đẩy bảo mật chung của tổ chức. Tư duy khó mà có thể thay đổi chỉ sau một đêm, nhưng sự liên kết về ý thức trách nhiệm bảo mật có thể đạt được trong doanh nghiệp thông qua những hoạt động sau:

  • Cam kết đào tạo bảo mật nội bộ thường xuyên– bao gồm các Dev, kỹ sư DevOps và kỹ sư bảo mật.
  • Developer nên áp dụng các phương pháp và bảo mật source code an toàn.
  • Kỹ sư bảo mật nên đóng góp xây dựng ứng dụng cũng như đánh giá thiết kế phần mềm. Phòng bệnh hơn chữa bệnh, việc xác định và khắc phục sớm các vấn đề bảo mật trong vòng đời phát triển phần mềm sẽ luôn dễ dàng hơn là khắc phục sự cố bảo mật.

Xem thêm: Làm sao để nhân viên của bạn ghi nhớ kiến thức an ninh mạng lâu hơn?

Gỡ bỏ rào cản giữa các phòng ban chức năng và tăng cường cộng tác

Vì hoạt động DevSecOps là sự phối hợp của các hoạt động khác nhau trong tổ chức như phát triển phần mềm, bảo mật và các hoạt động IT khác, doanh nghiệp cần phải dỡ bỏ rào cản giữa các bộ phận chuyên môn khác nhau và thực hiện phối hợp giữa các team. Thông thường, các tổ chức hướng DevOps sẽ không có một khung thực hiện cụ thể cho DevSecOps.

Vậy nên, những vấn đề về bảo mật xảy ra đột ngột trong quá trình phát triển sản phẩm sẽ gây “sốc” bởi khối lượng công việc phát sinh khổng lồ đặt lên vai developers, gây tiêu tốn thời gian, nhân lực và vật lực không đáng có. Chưa nói đến việc, các Devs phải gánh áp lực lớn từ issue cùng lúc với công việc chính của dự án. Như vậy, các doanh nghiệp cần tăng cường tính cộng tác giữa các bộ phận chức năng để tối ưu hoá nguồn lực.

Để thúc đẩy cộng tác và các nhóm hoạt động như một nhóm gắn kết, các tổ chức cần thực hiện:

  • Xác định các key metrics mục tiêu để đánh giá hiệu quả của công tác bảo mật như:
  • % giảm sự cố bảo mật ứng dụng
  • % tăng tần suất triển khai
  • % giảm tỷ lệ thay đổi thất bại
  • % giảm lỗ hổng bảo mật
  • % artifacts được triển khai để sản xuất với SBOM/SLSA
  • Sự tham gia của các nhà phát triển phần mềm và nhóm DevOps trong suốt quá trình đánh giá và apply các công cụ.
  • Đảm bảo không có quy trình DevSecOps nào chỉ có một người duy nhất thực hiện một chức năng
  • Tối ưu hóa các lựa chọn về sử dụng công cụ và phương pháp bảo mật để nâng cao năng suất và tốc độ của developer.

Nguyên lý 2: “Shift-left” thông tin bảo mật, không “shift-left” khối lượng công việc.

Việc thực hiện một chương trình DevSecOps nghe có vẻ khá đơn giản khi chỉ cần di chuyển các bước kiểm tra bảo mật ngược dòng hơn trong vòng đời phát triển phần mềm. Thực tế, “shift-left” là con dao 2 lưỡi, sẽ tạo nên hoặc phá vỡ cơ hội thực hiện DevSecOps thành công của doanh nghiệp.

“Shift-left” bảo mật được xác định dựa trên ý tưởng rằng việc thực hiện kiểm tra bảo mật ứng dụng sớm hơn trong quy trình phát triển phần mềm (trái ngược với ngay trước khi sản xuất) sẽ mang lại cơ hội tổng thể tốt hơn để phát hiện các lỗ hổng cũng như khắc phục kịp thời. Và thông thường, công việc testing được thực hiện bỏi tester ở cuối giai đoạn, dẫn tới tester sẽ có rất nhiều việc làm và thường trở thành ”bottleneck”. Cho nên “Shift-left testing” có nghĩa là đưa việc testing đó từ “cuối” giai đoạn thành testing từ “đầu” giai đoạn trong chu trình phát triển phần mềm. Việc đảm bảo chất lượng không phải dành riêng cho tester nữa mà là trách nhiệm của cả team từ developer, BA, designer, …

Tuy nhiên, nếu các dev phải “gánh” toàn bộ khối lượng công việc trong chạy thử nghiệm, thu thập đầu ra của máy quét và khắc phục lỗ hổng, thì năng suất của các Dev trong việc phát triển phần nền sẽ bị giảm do quá tải công việc. Thay vào đó, cách tiếp cận tốt nhất là làm theo những nguyên tắc sau:

  • Bảo mật phải sở hữu khả năng điều phối và tự động hóa các thử nghiệm bảo mật ứng dụng trên toàn bộ CI/CD pipelines
  • Loại bỏ trùng lặp trong việc phát hiện lỗ hổng và ưu tiên các lỗ hổng được phát hiện từ các dev. Bên cạnh đó, kĩ sư bảo mật phải đảm bảo các dev có được danh sách lỗ hổng được xử lý đầy đủ một cách kịp thời.
  • Đẩy nhanh quá trình khắc phục lỗ hổng bằng cách cung cấp hướng dẫn dành cho các dev để hiểu và giải quyết từng lỗ hổng

Nguyên lý 3: Duy trì quản trị và biện pháp bảo vệ phù hợp

Do mọi thứ diễn ra rất nhanh trong DevOps nên sai sót rất dễ xảy ra. Nhưng ngay cả những lỗi hoặc thiếu sót nhỏ, chẳng hạn như CVE (Common Vulnerabilities and Exposures) bị bỏ sót hay thay đổi cấu hình trái phép trong quy trình phát triển, cũng có thể dẫn đến rủi ro tuân thủ và bảo mật nghiêm trọng. Vì thế, doanh nghiệp không thể đánh giá thấp giá trị của việc quản trị toàn diện và các biện pháp bảo vệ nghiêm ngặt trong toàn bộ môi trường phát triển phần mềm. Nếu doanh nghiệp thực hiện hoạt động DevSecOps hiệu quả, các bên liên quan đến doanh nghiệp cũng dễ dàng thực hiện đúng an toàn bảo mật. Tổ chức có thể thực hiện như sau để đảm bảo duy trì quản trị toàn diện

  • Thực thi Kiểm soát truy cập dựa trên vai trò (Role-based Access Control) chi tiết trong toàn bộ môi trường phát triển để đảm bảo sử dụng và vận hành đúng cách. RBAC tổng quát thường dựa trên một tiêu chí duy nhất, nhưng RBAC chi tiết cho phép nâng cao bảo mật bằng cách kiểm soát trên nhiều tiêu chí, chẳng hạn như thời gian trong ngày làm việc, nhóm users, phân cấp tổ chức, v.v.
  • Áp dụng chính sách cho dev để đảm bảo tuân thủ quy trình bảo mật. Tiêu chuẩn Open Policy Agent (OPA) là một cách tiếp cận chính sách code phù hợp.
  • Sử dụng templates để đồng bộ hoá và giảm thiểu các lỗi không đáng có. Doanh nghiệp nên sử dụng templates cho các phương pháp bảo mật tốt nhất, đặc biệt là liên quan đến việc thực hiện quét lỗ hổng.

Xem thêm: Các bước để giữ site luôn sạch và an toàn: Cập nhật


Nguyên lý 4: Tập trung vào bảo mật chuỗi cung ứng phần mềm

Thách thức đối với doanh nghiệp trong việc bảo mật các phần mềm ngày càng trở nên phức tạp, phần lớn là do có rất nhiều thành phần open source (OSS) của bên thứ 3 mà các developers sử dụng để xây dựng ứng dụng. Mỗi code này đều chứa các lỗ hổng tiềm ẩn mà người dùng có thể gặp phải trong sản phẩm cuối.

Do đó, các phần mềm chứa open-source là mục tiêu của hacker. Đã từng có các vi phạm nghiêm trọng xâm phạm Solarwinds, Log4j và Codecov, làm tổn hại đến một block xây dựng phần mềm và có khả năng ảnh hưởng đến hàng chục hoặc hàng trăm nghìn người tiêu dùng cuối cùng của phần mềm đó. Vì lý do này, DevSecOps nên mở rộng phạm vi ra toàn bộ chuỗi cung ứng phần mềm, cả bên trong và bên ngoài tổ chức, chứ không chỉ giới hạn trong source code.

Để đảm bảo an toàn cả chuỗi cung ứng phần mềm, nhóm DevSecOps phải:

  • Quản lý việc sử dụng các thành phần open-source trong toàn bộ CI/CD pipelines.
  • Tạo, quản lý và phân tích danh mục material (Software bills of materials - SBOM) cho các cấu trúc phần mềm. SBOM rất cần thiết để hiểu các thành phần và phần phụ thuộc trong ứng dụng, từ đó cho phép các tổ chức quản lý rủi ro phần mềm một cách hiệu quả.
  • Tạo và xác minh việc tuân thủ khung SLSA ngoài các yêu cầu tối thiểu của cấp 1. Khung SLSA là một phương tiện hiệu quả cao để chống. Nó cho phép tạo một bản ghi có thể kiểm chứng trong toàn bộ chuỗi cung ứng với thông tin liên kết danh tính và hệ thống với phần mềm. Thông tin này có thể được xác minh và trình ký trong suốt vòng đời phát triển phần mềm.
  • Thiết lập toàn bộ chuỗi hành trình đối với phần mềm và tất cả các cấu phần liên quan. Trong lĩnh vực phần mềm, chuỗi hành trình của sản phẩm là bằng chứng chi tiết về mọi điều xảy ra với một tạo phẩm phần mềm trong suốt quy trình phát triển, bao gồm cả người đã xây dựng hoặc sửa đổi phần mềm đó, biện pháp bảo mật nào các thử nghiệm mà nó đã trải qua và kết quả thử nghiệm là gì. Việc đạt được chuỗi hành trình hoàn chỉnh phần lớn là chức năng của nền tảng CI/CD cơ bản cộng với công cụ quy trình tích hợp và điều quan trọng là duy trì độ tin cậy của phần mềm từ khi phát triển đến triển khai.

Nguyên lý 5: Sử dụng tự động hóa và AI để 'bảo mật liên tục'

DevOps đã và đang thực hiện các hoạt động tích hợp và triển khai liên tục, do đó, DevSecOps cũng phải mang lại tính bảo mật liên tục. Một phần quan trọng tạo nên thành công của DevSecOps là khả năng bắt kịp (và thậm chí dẫn trước) tốc độ phát triển ứng dụng, vì vậy sử dụng tự động hoá và AI là chìa khoá để thúc đẩy sự phát triển. Dưới đây là một số khuyến nghị về cách thức và nơi mà tổ chức có thể áp dụng tự động hoá và AI:

  • Thực hiện quét bảo mật trên toàn bộ quy trình. Điều này đạt được dễ dàng nhất bằng cách tiếp cận nền tảng, trong đó nền tảng DevOps cơ bản tích hợp với nhiều công cụ quét SAST, SCA, Container và DAST và thực hiện quét khi quy trình đang chạy. Quản trị chính sách dưới dạng code là một hình thức tự động khác có liên quan.
  • Tự động sao chép và ưu tiên danh sách lỗ hổng bảo mật cho developers. Một trong những vấn đề gian nan nhất đối với developers là phải xử lý hàng núi dữ liệu output thô từ máy quét. Với mục đích tối ưu hóa thời gian khắc phục các lỗ hổng nghiêm trọng (cùng với việc duy trì năng suất của dev), việc tự động hóa quy trình loại bỏ trùng lặp và ưu tiên các lỗ hổng là điều bắt buộc với tổ chức.
  • Tạo hướng dẫn khắc phục lỗ hổng bằng AI. Để nâng cao hơn nữa tốc độ khắc phục và tối ưu nguồn lực, việc cung cấp các guidelines do AI tạo ra cho các lỗ hổng và hướng dẫn khắc phục theo quy định là một điểm lợi lớn cho các dev.

Kết luận

5 nguyên lý cốt lõi của DevSecOps trong bài viết này cho phép các nhóm DevSecOps xây dựng và duy trì nền tảng hoạt động vững chắc. Khi công nghệ DevOps hiện đại tiếp tục phát triển nhanh chóng, sẽ luôn có những vấn đề bảo mật tiềm ẩn. Miễn là các developers, kỹ sư DevOps và bảo mật phối hợp như một team thì công việc DevSecOps sẽ được hoàn thiện hơn.

Chia sẻ bài viết này