Mô Hình Đảm Bảo An Toàn Thông Tin Trong Quy Trình Phát Triển Phần Mềm (DevSecOps)

Khóa luận nghiên cứu mô hình đảm bảo an toàn thông tin trong quy trình phát triển và vận hành phần mềm DevSecOps, nâng cao bảo mật hiệu quả.

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2021

129
2
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

1. CHƯƠNG 1: MỞ ĐẦU

1.1. Lý do chọn đề tài

1.2. Mục tiêu nghiên cứu

1.3. Đối tượng nghiên cứu

1.4. Phạm vi nghiên cứu

1.5. Những đóng góp của khóa luận

1.6. Tính mới của đề tài

1.7. Khả năng ứng dụng thực tế của đề tài

1.8. Cấu trúc của khóa luận

2. CHƯƠNG 2: CƠ SỞ LÝ THUYẾT

2.1. Các mô hình phát triển phần mềm

2.1.1. Mô hình Waterfall

2.1.2. Mô hình CI/CD

2.1.3. Mô hình DevOps

2.1.4. Mô hình DevSecOps

2.1.5. Mô hình Microservices

2.2. Phát triển ứng dụng web

2.2.1. Bảo mật quá trình phát triển ứng dụng web

2.2.2. OWASP Zed Attack Proxy

3. CHƯƠNG 3: PHÂN TÍCH VÀ THIẾT KẾ MÔ HÌNH

3.1. Thiết kế mô hình

3.1.1. Phân tích và thiết kế mô hình

3.1.2. Mô hình tổng quan

3.1.3. Mô hình chi tiết

3.1.4. Mục đích của mô hình

3.2. Phân tích và thiết kế Jenkins pipeline

3.3. Quản lý và điều phối tập trung

3.4. Cơ sở dữ liệu

3.5. Trang web quản trị

3.6. Đặc điểm của mô hình

3.7. Triển khai mô hình

3.7.1. Mô hình triển khai

3.7.2. Cài đặt mô hình

3.7.3. Cấu hình NFS Server

3.7.4. Cấu hình cơ sở dữ liệu

3.7.5. Cài đặt các thành phần

3.7.6. Cấu hình các ứng dụng

3.7.7. Trang web có lỗ hổng bảo mật

3.7.8. Lỗ hổng SQL Injection

3.7.9. Lỗ hổng XSS

4. CHƯƠNG 4: ĐÁNH GIÁ KẾT QUẢ

4.1. Kịch bản thử nghiệm

4.2. Triển khai ứng dụng Web

4.3. Cập nhật tính năng cho ứng dụng

4.4. Cập nhật phiên bản của ứng dụng

4.5. Kết quả thử nghiệm

4.6. Thống kê trên trang web quản lý

4.7. Phát hiện các lỗi bảo mật

4.8. Triển khai ứng dụng

4.9. Thông báo tự động

4.10. Đánh giá mô hình đã triển khai

4.10.1. Ưu điểm của mô hình đã triển khai

4.10.2. Nhược điểm của mô hình đã triển khai

5. CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

5.1. Hướng phát triển

TÀI LIỆU THAM KHẢO

PHỤ LỤC

Tóm tắt

I. Tổng quan về Mô Hình Đảm Bảo An Toàn Thông Tin DevSecOps

Mô hình DevSecOps là sự kết hợp giữa phát triển phần mềm, vận hành và bảo mật. Mô hình này nhằm đảm bảo rằng an toàn thông tin được tích hợp vào mọi giai đoạn của quy trình phát triển phần mềm. Việc áp dụng DevSecOps giúp giảm thiểu rủi ro và tăng cường khả năng bảo mật cho các ứng dụng. Theo nghiên cứu của Trường Đại học Công nghệ Thông tin, việc tích hợp bảo mật từ đầu vào quy trình phát triển là rất quan trọng.

1.1. Khái niệm và vai trò của DevSecOps

DevSecOps là một phương pháp tiếp cận nhằm tích hợp bảo mật vào quy trình phát triển phần mềm. Điều này giúp đảm bảo rằng các lỗ hổng bảo mật được phát hiện và khắc phục sớm, từ đó giảm thiểu rủi ro cho tổ chức.

1.2. Lợi ích của việc áp dụng DevSecOps

Việc áp dụng DevSecOps mang lại nhiều lợi ích như tăng cường bảo mật, giảm thiểu thời gian phát triển và cải thiện khả năng phản ứng với các mối đe dọa. Các tổ chức có thể triển khai sản phẩm nhanh chóng mà vẫn đảm bảo an toàn thông tin.

II. Thách thức trong việc đảm bảo an toàn thông tin trong DevSecOps

Mặc dù DevSecOps mang lại nhiều lợi ích, nhưng cũng tồn tại nhiều thách thức trong việc triển khai. Các tổ chức thường gặp khó khăn trong việc tích hợp bảo mật vào quy trình phát triển mà không làm chậm tiến độ. Theo nghiên cứu, việc thiếu hụt nguồn lực và kiến thức về bảo mật là một trong những nguyên nhân chính.

2.1. Thiếu hụt nguồn lực và kiến thức

Nhiều tổ chức không có đủ nhân lực chuyên môn về bảo mật để triển khai DevSecOps hiệu quả. Điều này dẫn đến việc bảo mật không được chú trọng đúng mức trong quy trình phát triển.

2.2. Khó khăn trong việc tích hợp công cụ bảo mật

Việc tích hợp các công cụ bảo mật vào quy trình phát triển phần mềm có thể gặp khó khăn. Các công cụ này cần phải hoạt động đồng bộ với các công cụ phát triển khác để đảm bảo hiệu quả.

III. Phương pháp triển khai mô hình DevSecOps hiệu quả

Để triển khai DevSecOps hiệu quả, các tổ chức cần áp dụng một số phương pháp nhất định. Việc tự động hóa quy trình kiểm thử bảo mật và tích hợp các công cụ bảo mật vào pipeline phát triển là rất quan trọng. Theo tài liệu nghiên cứu, việc này giúp phát hiện sớm các lỗ hổng bảo mật.

3.1. Tự động hóa kiểm thử bảo mật

Tự động hóa kiểm thử bảo mật giúp giảm thiểu thời gian và công sức cần thiết để phát hiện các lỗ hổng. Các công cụ như SAST và DAST có thể được tích hợp vào quy trình phát triển để kiểm tra mã nguồn tự động.

3.2. Tích hợp công cụ bảo mật vào pipeline

Việc tích hợp các công cụ bảo mật vào pipeline CI/CD giúp đảm bảo rằng mọi thay đổi trong mã nguồn đều được kiểm tra về bảo mật trước khi triển khai. Điều này giúp giảm thiểu rủi ro và tăng cường an toàn thông tin.

IV. Ứng dụng thực tiễn của mô hình DevSecOps trong phát triển phần mềm

Mô hình DevSecOps đã được áp dụng thành công trong nhiều tổ chức, giúp cải thiện quy trình phát triển phần mềm và bảo mật. Các nghiên cứu cho thấy rằng việc áp dụng mô hình này đã giúp giảm thiểu thời gian phát triển và tăng cường khả năng bảo mật cho các ứng dụng. Một số tổ chức đã ghi nhận sự cải thiện rõ rệt trong việc phát hiện và khắc phục các lỗ hổng bảo mật.

4.1. Các trường hợp thành công trong ứng dụng DevSecOps

Nhiều tổ chức đã áp dụng DevSecOps và ghi nhận sự cải thiện trong quy trình phát triển. Họ đã giảm thiểu thời gian phát triển và tăng cường khả năng bảo mật cho sản phẩm của mình.

4.2. Kết quả nghiên cứu về hiệu quả của DevSecOps

Nghiên cứu cho thấy rằng việc áp dụng DevSecOps giúp giảm thiểu rủi ro bảo mật và tăng cường sự tin cậy của sản phẩm. Các tổ chức có thể triển khai sản phẩm nhanh chóng mà vẫn đảm bảo an toàn thông tin.

V. Kết luận và tương lai của mô hình DevSecOps

Mô hình DevSecOps đang trở thành xu hướng quan trọng trong phát triển phần mềm. Việc tích hợp bảo mật vào quy trình phát triển không chỉ giúp giảm thiểu rủi ro mà còn nâng cao hiệu quả công việc. Tương lai của DevSecOps hứa hẹn sẽ tiếp tục phát triển với sự xuất hiện của nhiều công nghệ mới và phương pháp bảo mật hiện đại.

5.1. Xu hướng phát triển của DevSecOps

Trong tương lai, DevSecOps sẽ tiếp tục phát triển với sự tích hợp của trí tuệ nhân tạo và học máy. Điều này sẽ giúp tự động hóa nhiều quy trình bảo mật và nâng cao khả năng phát hiện lỗ hổng.

5.2. Tầm quan trọng của bảo mật trong phát triển phần mềm

Bảo mật sẽ ngày càng trở nên quan trọng trong phát triển phần mềm. Các tổ chức cần chú trọng đến việc tích hợp bảo mật vào quy trình phát triển để đảm bảo an toàn thông tin cho người dùng.

10/07/2025
Khóa luận tốt nghiệp an toàn thông tin nghiên cứu và triển khai mô hình đảm bảo an toàn thông tin trong quy trình phát triển và vận hành phần mềm devsecops

Trích đoạn nội dung tài liệu

Mở đầu Trình bày lý do chọn đề tài, mục tiêu nghiên cứu, đối tượng nghiên cứu, phạm vi nghiên cứu, những đóng góp của khóa luận. Chương 2: Cơ sở lý thuyết Bao gồm nội dung liên quan đến các khái niệm, công nghệ, mô hình mà nhóm tác giả đã tìm hiểu trong quá trình thực hiện khóa luận. Những kiến thức được trình bày trong chương này là cơ sở đề thực hiện thiết kế và triển khai hệ thống DevSecOps. Ngoài ra, tại chương này còn mô tả về các công cụ kiểm thử bảo mật dé phát hiện các van đề về bao mật và bảo đảm an toàn thông tin cho ứng dụng web.

Chương 3: Phân tích và thiết kế mô hình Trình bày ý tưởng của nhóm tác giả khi thiết kế mô hình. Bao gồm mô hình của hệ thống, Jenkins pipeline để thực hiện CI/CD và ứng dung web quản lý bảo mật tập trung. Giải thích các thành phần trong hệ thống, mô tả chức năng của chúng trong mô hình, liệt kê các bước cần thiết đề triển khai mô hình. Chương 4: Đánh giá kết quả Đánh giá ưu nhược diém của mô hình trong kịch bản thử nghiệm.

Chương 5: Kết luận và hướng phát triển Tổng kết quá trình thực hiện khóa luận và dé xuất các hướng phát triển dé tài trong tương lai. CƠ SỞ LY THUYET 2. Các mô hình phát triển phan mềm 2. Waterfall Mô hình Waterfall được Winston W.

Royce đề xuất vào năm 1970 dé mô tả một quy trình phát triển phần mềm tuần tự [4], trong đó các giai đoạn trong quá trình phát triển phần mềm được thực hiện tuần tự từ trên xuống dưới (tương tự như dòng chảy của thác nước ngày càng chảy xuống). Mô hình xác định một số giai đoạn liên tiếp trong quy trình phát triển phần mềm phải được hoàn thành lần lượt và chỉ chuyên sang giai đoạn tiếp theo khi giai đoạn trước của nó được hoàn thành hoàn toàn. Vì lý do này, mô hình Waterfall mang tính chất đệ quy, trong đó mỗi giai đoạn có thể được lặp lại liên tục cho đến khi hoàn thiện.1 minh họa các giai đoạn khác nhau cua mô hình Waterfall.1: Các giai đoạn của mô hình Waterfall - Giai đoạn 1 (Requirements): Thường được gọi là Software Requirements Specification (SRS). Đây là một mô tả đầy đủ và toàn diện về các yêu cầu của phần mềm sẽ được phát triển.

Nó đòi hỏi các nhà phân tích hệ thống và phân tích nghiệp vụ phải xác định cả các yêu cầu chức năng và phi chức năng. Thông thường, các yêu cầu chức năng được xác định bang các trường hợp liên quan đến tương tác của người dùng với phần mềm. Các yêu cầu chức năng bao gồm như mục đích, phạm vi, quan điểm, chức năng, thuộc tính phần mềm; đặc điểm người dùng, đặc tả chức năng, yêu cầu giao diện và yêu cầu về cơ sở dit liệu. Ngược lại, các yêu cầu phi chức năng đề cập đến các tiêu chí, ràng buộc, giới hạn và các yêu cầu khác nhau được đặt ra đối với việc thiết kế và vận hành phần mềm.

Nó bao gồm các đặc tính như độ tin cậy, khả năng mở rộng, khả năng kiểm thử, tính sẵn sàng, khả năng bảo trì, hiệu suất và tiêu chuẩn chất lượng. Giai đoạn 2 (Design): La quá trình lập kế hoạch và giải quyết các van đề cho một giải pháp phần mềm. Nó yêu cầu các nhà phát triển phần mềm và thiết kế phần mềm xác định kế hoạch cho một giải pháp bao gồm thiết kế thuật toán, thiết kế kiến trúc phan mềm, mô hình khái niệm cơ sở dit liệu và thiết kế sơ đồ logic, thiết kế ý tưởng, thiết kế giao diện người dùng, định nghĩa cấu trúc dữ liệu. Giai đoạn 3 (Implementation): Day là quá trình chuyền đổi toàn bộ các yêu cầu (giai đoạn 1) và bản thiết kế (giai đoạn 2) thành môi trường sản xuất.

Giai đoạn 4 (Verification): Đây là một quá trình dé kiểm tra xem một giải pháp phần mềm có đáp ứng các yêu cầu, thông số kỹ thuật ban đầu và có đạt được mục đích dự kiến hay không. Giai đoạn này gồm hai quá trình là verification va validation. Verification là quá trình đánh giá phần mềm đề xác định xem các sản phẩm của một giai đoạn phát triển nhất định có thỏa mãn các điều kiện đặt ra khi bắt đầu giai đoạn đó hay không. Trong khi validation là quá trình đánh giá phần mềm trong quy trình phát triển hoặc khi kết thúc quy trình phát triển dé xác định xem nó có thỏa mãn các yêu cầu quy định hay không [5].

Hơn nữa, giai đoạn này là đầu ra đề thực hiện gỡ lỗi, trong đó các lỗi và những trục trặc hệ thong được tim thấy, sửa chữa và tinh chỉnh cho phù hợp. - Giai đoạn 5 (Maintenance): Đây là quá trình sửa đổi giải pháp phan mềm sau khi phân phối và triển khai dé tinh chỉnh đầu ra, sửa lỗi, cải thiện hiệu suất và chất lượng. Các hoạt động bảo trì bổ sung có thể được thực hiện trong giai đoạn này bao gồm điều chỉnh phần mềm phù hợp với môi trường của nó, đáp ứng các yêu cầu mới của người dùng và tăng độ tin cậy của phần mềm [6]. Agile Trong các mô hình phát triển phần mềm truyền thống (vi dụ như mô hình Waterfall), các nhóm phải làm việc với một kế hoạch chỉ tiết và có một danh sách đầy đủ các nhiệm vụ phải hoàn thành trong vài tháng tới hoặc trong toàn bộ vòng đời của sản phẩm.

Phương pháp làm việc này hoàn toàn phụ thuộc vào việc phân tích yêu cau và lập kế hoạch một cách can thận ở đầu chu kỳ phát triển phần mềm. Bat kỳ thay đổi nào được đưa vào sẽ phải trải qua một quá trình ưu tiên quản lý kiểm soát thay đổi nghiêm ngặt. Mô hình Agile dựa trên cách tiếp cận lặp đi lặp lại quy trình phát triển. Thay vì lập kế hoạch chuyên sâu ngay khi bắt đầu dự án, các phương pháp Agile san sàng đáp ứng các yêu cầu thay đôi theo thời gian và khuyến khích phản hồi liên tục từ người dùng cuối.

Mục tiêu của mỗi lần lặp là tạo ra một sản phẩm hoạt động tốt. Mô hình Agile đề cập đến bat kỳ quy trình nào phù hợp với các khái niệm trong Tuyên ngôn Agile? được xuất bản vào năm 2001. Chu kỳ phát trién phan mềm của mô hình Agile được mô tả trong hình 2. Jeffries, "Manifesto for Agile Software Development".

URL: https://agilemanifesto.2: Các bước trong chu kỳ phát triển phần mềm của mô hình Agile Một số thuận lợi khi sử dung mô hình Agile: Các thay đôi trong quy trình phát trién phan mềm được chấp nhận. Mô hình Agile có lợi cho các dự án mà mục tiêu cuối cùng không được xác định rõ ràng. Khi dự án tiễn triển, các mục tiêu sẽ trở nên rõ ràng và nhóm phát triển có thé thích ứng. Phân phối nhanh hơn.

Tương tác nhóm làm việc mạnh mẽ. Khách hàng được lắng nghe: Khách hàng có nhiều cơ hội để xem công việc được giao, chia sẻ ý kiến đóng góp của họ. Những ý kiến của khách hàng có nhiêu tác động đên sản phâm cuôi cùng. Mặc dù mô hình Agile rất linh hoạt, tuy nhiên nó cũng đi kèm với một vài sự đánh đôi: Khó thiết lập ngày ban giao sản phẩm một cách chắc chăn, chuan xác.

Đội ngũ nhân viên phải có kiến thức: Các thành viên trong nhóm phải có kỹ năng cao trong nhiều lĩnh vực khác nhau và phải hiểu được phương pháp Agile. Cam kết về thời gian từ các nhà phát triển: Cần có sự tham gia và cộng tác tích cực trong suốt quy trình Agile. Việc này tốn nhiều thời gian hơn so với cách tiép cận truyên thông. Một số phương pháp được sử dụng để triển khai Agile như: Scrum, Kanban,.

Trong số đó, Scrum được sử dụng phổ biến nhất. Scrum là một mô hình phát triển dựa trên cách tiếp cận lặp đi lặp lại quy trình phát trién phan mềm và thường được sử dụng dé quản lý quy trình phát triển phan mềm phức tạp. Thuật ngữ Sprint trong mô hình Scrum thể hiện cho các công việc cần được thực hiện trong khoảng thời gian từ một đến bốn tuần. Dựa vào Sprint sẽ giúp cho nhóm phát triển phân phối phần mềm đều đặn.

Vào cuối mỗi Sprint, các bên liên quan và các thành viên trong nhóm phát triển tiến hành họp dé lập kế hoạch cho các bước tiếp theo. Chu kỳ phát triển phan mềm của mô hình Scrum được minh họa trong hình 2. Daily Scrum Je điệp SPRINT 1-4 WEEKS Pn Sprint =) ) ; = Review o—| Sprint Retrospective Product Sprint Planning Sprint Finished Backlog Meeting Backlog Work Hình 2.3: Chu ky phát trién phan mềm của mô hình Scrum Một số thuận lợi khi áp dụng mô hình Scrum: e Minh bạchhơn: Với các cuộc họp trực tiếp hàng ngày, cả nhóm biết được ai đang lam gi, nắm bắt các van dé đã được xác định trước. Từ đó, giúp cải thiện khả năng giao tiếp và cho phép nhóm xử lý các van đề ngay lập tức.

10 e Tăng trách nhiệm giải trình của nhóm: Không có người quản lý dự án, thay vào đó, nhóm quyết định những công việc họ có thể hoàn thành trong mỗi Sprint và làm việc cùng nhau, có trách nhiệm giải trình. e Dễ dàng điều chỉnh các thay đổi: Với thời gian kéo dài trong mỗi Sprint ngắn và phản hồi liên tục, việc điều chỉnh các thay đôi trở nên dễ dàng hơn. e _ Tiết kiệm chi phi: Các thành viên trao đồi thông tin liên tục đảm bảo nhóm nhận thức được tất cả các vấn đề và thực hiện các thay đôi sớm hơn, từ đó giúp giảm chỉ phí và tăng chất lượng. - Một số khó khăn khi áp dụng mô hình Scrum: e Nhóm cần phải nam rõ các nguyên tắc Scrum, cũng như cần cam kết thực hiện các cuộc họp hàng ngày và không được rời khỏi dự án trong suốt quá trình phát triển.

e Scrum Master sai có thé làm hỏng mọi thứ: Scrum Master rất khác với một người quản lý dự án. Scrum Master không có quyên đối với nhóm, vì vậy người đó phải tin tưởng vào nhóm đề hoàn thành công aA viéc. e Các nhiệm vụ được xác định không rõ rang có thé dẫn đến chi phí và thời gian của dự án không chính xác. Mô hình CI/CD 2.

Continuous Integration - CI 2. Tổng quan Tích hợp liên tục (Continuous Integration - CI) là phương pháp phát triển phần mềm được thiết lập rộng rãi [7], trong đó các thành viên của nhóm phát triển phải thường xuyên tích hợp các thay đổi trong mã nguồn của họ vào một kho lưu trữ trung tâm (central repository), thường thì mỗi người tích hợp ít nhất một lần trong ngày - dẫn đến nhiều lần tích hợp mỗi ngày.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Tài liệu "Mô Hình Đảm Bảo An Toàn Thông Tin Trong Phát Triển Phần Mềm (DevSecOps)" cung cấp cái nhìn sâu sắc về cách thức tích hợp an toàn thông tin vào quy trình phát triển phần mềm thông qua mô hình DevSecOps. Mô hình này không chỉ giúp tăng cường bảo mật mà còn cải thiện hiệu suất và khả năng phản ứng của đội ngũ phát triển. Các điểm chính trong tài liệu bao gồm tầm quan trọng của việc tự động hóa kiểm tra an toàn, cách thức hợp tác giữa các nhóm phát triển và bảo mật, cũng như các công cụ và phương pháp tốt nhất để triển khai DevSecOps hiệu quả.

Độc giả sẽ nhận được nhiều lợi ích từ tài liệu này, bao gồm việc hiểu rõ hơn về cách thức bảo vệ ứng dụng trong suốt vòng đời phát triển, từ giai đoạn thiết kế đến triển khai. Để mở rộng kiến thức của mình, bạn có thể tham khảo thêm tài liệu Luận văn thạc sĩ xây dựng các ca kiểm thử an toàn thông tin cho ứng dụng web, nơi cung cấp các phương pháp kiểm thử an toàn cho ứng dụng web. Ngoài ra, tài liệu Khóa luận tốt nghiệp an toàn thông tin xây dựng hệ thống devops trên nền tảng mã nguồn mở và tích hợp các giải pháp bảo mật để tăng độ an toàn của hệ thống devops sẽ giúp bạn hiểu rõ hơn về việc xây dựng hệ thống DevOps an toàn và các giải pháp bảo mật cần thiết. Những tài liệu này sẽ là nguồn tài nguyên quý giá để bạn khám phá sâu hơn về an toàn thông tin trong phát triển phần mềm.