Xin chào ! Nếu đây là lần đầu tiên bạn đến với diễn đàn, xin vui lòng danh ra một phút bấm vào đây để đăng kí và tham gia thảo luận cùng VnPro.
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • SAST và DAST

    DevSecOps (Phần 6): SAST và DAST – Hai "lớp lá chắn" bảo vệ ứng dụng ngay trong CI/CD Pipeline


    Một ứng dụng có thể build thành công, Unit Test đều đạt, nhưng vẫn tồn tại lỗ hổng bảo mật nghiêm trọng.

    Đó là lý do trong các CI/CD Pipeline hiện đại, sau Build và Test luôn có thêm một bước rất quan trọng:

    Security Testing.

    Mục tiêu không chỉ là kiểm tra xem ứng dụng có chạy được hay không, mà còn phải đảm bảo chạy an toàn trước khi được triển khai.
    Security Testing trong CI/CD gồm những gì?


    Thông thường, Security Testing được chia thành hai nhóm chính:
    • SAST (Static Application Security Testing)
    • DAST (Dynamic Application Security Testing)

    Hai kỹ thuật này bổ sung cho nhau và thường được triển khai dưới dạng các Job độc lập trong cùng một Stage của CI/CD Pipeline.
    1. SAST – Kiểm tra bảo mật từ Source Code


    SAST phân tích trực tiếp source code hoặc mã đã được biên dịch để tìm các lỗ hổng bảo mật mà không cần chạy ứng dụng.

    Đây là phương pháp Shift Left Security, giúp phát hiện vấn đề ngay từ khi developer vừa commit code.

    Một số lỗi SAST có thể phát hiện:
    • Hardcoded Password
    • Insecure Coding Practices
    • SQL Injection tiềm ẩn
    • Command Injection
    • Buffer Overflow
    • Sử dụng API không an toàn
    • Các lỗi thuộc OWASP Top 10

    Vì không cần thực thi ứng dụng nên SAST có tốc độ rất nhanh và thường được chạy ngay sau Build Stage.
    2. DAST – Tấn công ứng dụng giống như Hacker


    Nếu SAST "đọc mã nguồn", thì DAST hoạt động theo cách hoàn toàn khác.

    DAST không quan tâm bên trong source code.

    Thay vào đó, nó sẽ tương tác trực tiếp với ứng dụng đang chạy, giống như một người dùng hoặc một kẻ tấn công từ bên ngoài.

    DAST sẽ chủ động gửi các yêu cầu để tìm kiếm những lỗ hổng phổ biến như:
    • Cross-Site Scripting (XSS)
    • SQL Injection
    • Command Injection
    • Path Traversal
    • Lỗi cấu hình máy chủ (Insecure Server Configuration)

    Nói cách khác, DAST đánh giá mức độ an toàn của ứng dụng từ góc nhìn thực tế khi hệ thống đã được triển khai.
    SAST và DAST được triển khai như thế nào?


    Trong các hệ thống DevSecOps hiện đại, cả SAST và DAST thường được đóng gói dưới dạng Container.

    Pipeline sẽ:
    1. Tải (Pull) Docker Image của công cụ quét.
    2. Khởi chạy Container.
    3. Cấu hình mục tiêu cần quét.
    4. Thực hiện quá trình phân tích.
    5. Sinh ra Artifact chứa báo cáo lỗ hổng để nhóm phát triển xem xét.

    Việc container hóa giúp các công cụ bảo mật dễ triển khai, dễ cập nhật và hoạt động nhất quán trên mọi môi trường CI/CD.
    Điều gì xảy ra khi phát hiện lỗ hổng?


    Đây chính là điểm mạnh của DevSecOps.

    Giả sử công cụ SAST phát hiện ứng dụng vi phạm một quy tắc bảo mật thuộc OWASP Top 10.

    Khi đó:
    Developer Commit


    Build


    SAST Scan


    ❌ Vulnerability Found


    Job Failed


    Stage Failed


    Pipeline Stopped


    Security Report Generated

    Chỉ cần một Job thất bại, toàn bộ Stage sẽ được đánh dấu Failed, Pipeline dừng ngay lập tức và hệ thống sinh ra báo cáo chi tiết để developer phân tích nguyên nhân và khắc phục.
    Sau khi sửa lỗi thì sao?


    Quy trình DevSecOps không dừng ở việc phát hiện lỗ hổng.

    Sau khi sửa mã nguồn:
    1. Developer commit lại code.
    2. Pipeline được kích hoạt từ đầu.
    3. Toàn bộ Build, Test, SAST, DAST và các bước kiểm tra khác được thực hiện lại.
    4. Chỉ khi tất cả các kiểm tra đều thành công, Pipeline mới tiếp tục đến các Stage tiếp theo như Deploy.

    Nhờ vậy, nhóm phát triển không chỉ xác nhận rằng lỗ hổng đã được khắc phục, mà còn giảm nguy cơ vô tình tạo ra lỗi mới trong quá trình sửa chữa.
    Vì sao nên tích hợp Security Testing vào CI/CD?


    Khi Security Testing được thực hiện tự động sau mỗi lần commit, doanh nghiệp có thể:
    • Phát hiện lỗ hổng bảo mật ngay từ giai đoạn phát triển.
    • Ngăn mã nguồn không an toàn được triển khai lên Staging hoặc Production.
    • Tạo báo cáo bảo mật cho từng lần Build.
    • Rút ngắn thời gian xử lý sự cố vì biết chính xác commit nào gây ra vấn đề.
    • Đưa bảo mật trở thành một phần tự nhiên của quy trình phát triển thay vì một bước kiểm tra ở cuối dự án.


    Đến đây, chúng ta đã đi qua những thành phần quan trọng nhất của một CI/CD Pipeline hiện đại: từ Build, Static Code Analysis, Pipeline → Stage → Job, đến SASTDAST. Đây chính là nền tảng để triển khai DevSecOps, nơi chất lượng và bảo mật được kiểm tra liên tục trong suốt vòng đời phát triển phần mềm, thay vì chỉ đánh giá khi sản phẩm đã sẵn sàng phát hành.
    Attached Files
    Đặng Quang Minh, CCIE#11897 (Enterprise Infrastructure, Wireless, Automation, AI), CCSI#31417

    Email : dangquangminh@vnpro.org
    https://www.facebook.com/groups/vietprofessional/
Working...
X