Kịch bản 1 - Triển khai DevSecOps cho dự án quản trị hệ thống (Administration

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Thiết kế và triển khai hệ thống phát triển phần mềm tự động và an toàn theo mô hình DevSecOps (Trang 110 - 115)

TRIỂN KHAI HE THONG VÀ DANH GIÁ KET QUA

4.11 Thông tin phần cứng

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

4.1.3.1 Kịch bản 1 - Triển khai DevSecOps cho dự án quản trị hệ thống (Administration

Dashboard)

Trong hệ thống đang cần một trang web phục vụ cho nội bộ của công ty, người

sử dụng chính ở đây là đội ngũ DevSecOps. Với mục đích người dùng có thể nắm bắt

được tình hình hệ thống một cách nhanh chóng, dé dàng, thuận tiện cho quá trình tích

hợp và phat triển sản phẩm. Để phát triển Administration Dashboard, độ ngũ cũng tiến

hành quá trình DevSecOps như các sản phẩm khác. Toàn bộ quá trình được triển khai

cụ thể qua các bước:

Hình 4.1: Tạo mới repository cho dự án Gitlab.

Sau khi dự án được khởi tạo, kỹ sư Devsecops sẽ gửi đường dẫn lưu mã nguồn

đến nhà phát triển, ngoài ra sẽ thêm các thành viên phát triển vào GitLab của dự

án.

* Bước 2: Tạo dự án trên Jenkins để khởi chạy quá trình triển khai và tích hợp liên

tục.

* Bước 3: Tạo mới dự án trên Rancher để triển khai dự án. Truy cập địa chỉ: http://10.102.196.123 để tiến hành tạo mới dự án Rancher. Sau khi tạo mới, Rancher sẽ khởi tạo Container từ Image sẵn có. Tiến hành expose port để truy cập đến dự án đã được triển khai.

* Bước 4: Tạo mới các File và viết script tích hợp mã nguồn phục vụ cho quá trình tự động và triển khai liên tục (Dockerfile, Jenkinsfile, build.sh, deploy.sh,

gitlab-ci.yml).

* Bước 5: Người lập trình tiến hành đẩy mã ngudn lên kho lưu trữ mà kỹ sư DevSecOps đã gửi trước đó, tiền hành khởi tạo 4 nhánh: Dev, Testing, Staging, Master. Sau khi đẩy thành công, quá trình tự động tích hợp và triển khai được tự

Pipeline dev

Stage View

®

mm 24⁄2

> an. = I I W5 Hình 4.2: Jenkins tiến hành build dự án trên nhánh Dev.

* Bước 6: Kỹ sư DevSecOps tiến hành kiểm tra quá trình build trên Jenkinsfile dựa vào hệ thống log Kibana đã build thành công.

91

Hình 4.3: Kết quả log Kibana thông báo Jenkins đã build thành công.

* Bước 7: Kỹ sư DevSecOps tiến hành truy cập SonarQube Server để tiến hành xem kết quả sau khi Quét. Kết quả trả về không xuất hiện bug, lỗ hổng.

© dashboard-administraton front

‘New code: since previous version ‘+a

bugs [ỉ] Vuneables [2ora ea â 24 cect mm zs

09 09 09 Line ode

Code Smells [Õ

2h® 15 0® 0

Duplealone [Ð)

O 2.2% 2 = cuaty cate

Oyplcatea Blocks upseatons on New Code

ual Proties

Hình 4.4: Kết qua sau khi SonarQube quét mã nguồn.

* Bước 8: Kỹ sư DevSecOps tiến hành truy cập OWASP Depedency Check để

kiểm tra các lỗ hổng ở các gói thư viện hỗ trợ (depedencies). Hệ thống chỉ phát

Hình 4.5: Kết quả sau khi Owasp Dependency Check quét mã nguồn.

* Bước 9: Kỹ sư DevSecOps tiến hành truy cập Arachni để kiểm tra các lỗ hổng

a) ©)

EEPEEEE Severities Elements r Trust td, 0m9

Olis

Hình 4.6: Kết quả sau khi Arachni quét toàn bộ dự án đã được triển khai.

93

* Bước 10: Kỹ sư DevSecOps tiến hành truy cập Kubei để tiền hành quét toàn bộ Container bao gồm Container đã được triển khai. Kết quả trả về Container bị lỗ hổng CVE-2019-19816, tuy nhiên đây không phải lã lỗ hổng từ mã nguồn của

dự án.

Hình 4.7: Kết quả sau khi Kubei tiền hành quét Containers.

* Bước 11: Kỹ sư tiễn hành truy cập trang web đã triển khai, địa chi IP va port đã cấu hình ở bước 3.

epee a) ee xhmn#s

QUAN TRIHE THONG

ơ

Hình 4.8: Kết qua sau khi triển khai du án thành công.

* Bước 12: Sau khi chạy toàn bộ dự án, nếu không có lỗi xảy ra, kỹ sư DevSecOps tiến hành gộp nhánh (merge) sang nhánh Testing. Quá trình tự động tích hợp và triển khai ở nhánh Testing này sẽ gồm các bước tương tự nhánh Dev từ bước 1 đến bước 11.

* Bước 13: Sau khi chạy toàn bộ dự án, nếu không có lỗi xảy ra gồm van dé bảo mật và luồng nghiệp vụ, kỹ sư DevSecOps tiến hành gộp nhánh (merge) sang nhánh Staging. Quá trình tự động tích hợp và triển khai ở nhánh Staging này sẽ gồm các bước tương tự nhánh Dev va Testing từ bước 1 đến bước 11.

* Bước 14: Sau khi chạy toàn bộ dự án, nêu không có lỗi xảy ra gồm vấn dé bảo mật và luồng nghiệp vụ, kỹ sư DevSecOps tiền hành gộp nhánh (merge) sang nhánh Master. Quá trình tự động tích hợp và triển khai ở nhánh Master này sẽ

gồm các bước tương tự nhánh Dev va Testing từ bước 1 đến bước 11. Sản phẩm

chính thức được phát hành (release).

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Thiết kế và triển khai hệ thống phát triển phần mềm tự động và an toàn theo mô hình DevSecOps (Trang 110 - 115)

Tải bản đầy đủ (PDF)

(157 trang)