Security Testing trong vòng đời phát triển phần mềm (SDLC)

21/08/2023 560
Anh 2 1

Theo các chuyên gia, nếu tiến hành kiểm thử bảo mật sau giai đoạn triển khai phần mềm (software implementation phase) hoặc sau giai đoạn phát triển (deployment) thì chi phí sẽ luôn cao hơn so với việc tích hợp kiểm thử bảo mật trong các giai đoạn trước của vòng đời SDLC. Bởi vậy, dự án phát triển phần mềm cần nắm được quy trình bảo mật tương ứng được áp dụng trong các giai đoạn trong SDLC.

Các giai đoạn của SDLCQuy trình bảo mật
RequirementsPhân tích bảo mật cho các yêu cầu và kiểm tra tình trạng lạm dụng / trường hợp sử dụng sai
DesignPhân tích rủi ro bảo mật trong giai đoạn thiết kế. Phát triển test plan có bao gồm Security test trong đó
Coding and Unit TestingStatic and Dynamic Testing và Security White Box Testing
Integration TestingBlack Box Testing
System TestingBlack Box Testing và Vulnerability scanning
ImplementationPenetration Testing, Vulnerability Scanning
SupportPhân tích ảnh hưởng của bản vá lỗi

Kịch bản test (Test plan) bao gồm:

  • Các case test Security hoặc các scenarios
  • Dữ liệu test liên quan đến security testing
  • Các tools test được yêu cầu để thực hiện security testing
  • Phân tích kết quả kiểm thử dựa trên các tools bảo mật khác nhau

Anh 2

Phương pháp / Cách tiếp cận / Kỹ thuật Security Testing

Trong Security Testing, có nhiều phương pháp được sử dụng, tiêu biểu là 3 cái tên sau đây:

  • Tiger Box: Phương pháp này cần có công cụ hack và được thực hiện trên laptop có nhiều loại hệ điều hành khác nhau. Sở dĩ cần tài nguyên này là vì phần mềm sẽ tấn công ứng dụng để đánh giá lớp bảo mật trước cuộc tấn công mạng.
  • Blackbox:Tester được quyền kiểm tra mọi thứ về cấu trúc liên kết mạng và các công nghệ đi kèm.
  • Grey Box:Người kiểm thử được cung cấp một số thông tin quan trọng thay vì toàn bộ như Black Box. Đây là sự kết hợp giữa hai phương pháp Black Box và White Box.

Security Testing Roles bao gồm:

  • Hackers:truy cập trái phép vào hệ thống máy tính hoặc mạng
  • Crackers:đột nhập vào hệ thống để đánh cắp hoặc phá hủy dữ liệu
  • Ethical Hacker: tiến hành hầu hết các hoạt động phá hoại nhưng với sự cho phép của chủ sở hữu
  • Script Kiddies or packet monkeys:Các hacker có kỹ năng về lập trình nhưng thiếu kinh nghiệm.

Security Testing Tool

  • Intruder:Là một công cụ kiểm thử tự động nhằm giúp người dùng có thể tìm được những vấn đề trong môi trường số hóa. Công cụ này vạch ra các phương pháp kiểm thử bảo mật tối ưu và giám sát liên tục. Nhờ đó, hầu hết mọi doanh nghiệp đều sẽ được an toàn trước tin tặc.
  • Acunetix:Là phần mềm quét lỗ hổng website hiệu quả có tác dụng kiểm tra toàn bộ các lỗ hổng website bao gồm: SQL Injection, Cross Site Scripting và thực hiện việc quét nhiều lỗ hổng website khác.
  • Owasp:Là một dự án được phát triển bởi tổ chức phi lợi nhuận toàn cầu hướng đến việc tăng cường bảo mật phần mềm. Dự án này bao gồm nhiều công cụ kiểm thử. 
  • WireShark:Là một công cụ phân tích mạng mã nguồn mở và có thể được sử dụng trên Linux, Windows, OS X, Solaris, NetBSD, FreeBSD, v.v. các hệ thống khác.
  • W3af:Là công cụ tấn công ứng dụng web nhằm mục đích kiểm thử bảo mật. Nó có ba loại plugin, bao gồm phát hiện, kiểm tra và tấn công. Chúng phối hợp thực hiện để tìm ra mọi bất kỳ lỗ hổng trong website.
  • Owasp Zap
  • Owasp Zap chạy bằng Java chính vì vậy ta cần phải cài đặt JRE. Nếu bạn chưa cài JRE thì có thể vào Web Site Oracle download và cài đặt.
  • Cách cài đặt:
  • Bạn có thể download cài đặt Owasp Zap phiên bản mới nhất ứng với môi trường làm việc của bạn từ link phía dưới. https://github.com/zaproxy/zaproxy/wiki/Downloads.Download và cài đặt như một ứng dụng bình thường. Sau khi cài đặt xong ta khởi động ứng dụng và sẽ có giao diện như hình bên dưới.

Mở app  OWASP ZAP Chọn Yes => Start => Tạo site

Anh 1

Click Go to new screen sẽ đến màn Local Servers/Proxies

Anh 2

Click Proxy Properties => Màn Modify Main Proxy : chọn các mục như hình

Anh 3

Click Proxy Properties => Màn Modify Main Proxy : chọn các mục như hình

Anh 5

Chọn Automated scan

Anh 6

Nhập URL thực hiện scan => Bắt đầu thực hiện scan chọn Attack => Muốn dừng lại chọn Stop.Phần gạch đỏ là phần progress đang thực hiện.Logo hình pause là phần thực hiện tạm dừng scanLogo hình vuông-Stop là dừng lại việc san.Phần tô highlight màu vàng click vào sẽ là show scan progress detail.

Anh 7

Hình |>|> là khi click chọn sẽ thực hiện bỏ qua phần đó trước khi scan.Hình chữ V màu xanh là đã thực hiện scan.Hình tròn màu đỏ là do skipped scan bởi user action chọn |> |>.

Anh 8

Click vào Alert: Những mục sau khi scan có vấn đề sẽ được hiển thị

Anh 9

Mở file Report HTML tại nơi lưu trữ sau khi Generate Report

Anh 10

Thực hiện scan với hệ thống cần authentication.Thiết lập User Password cho những chức năng cần phải Login.Vào right click vào folder Site => Flax as context => Session properties.Chọn Authentication và thực hiện điền thông tin như ảnh => OK

Anh 11

Chọn mục User => Add và điền thông tin đăng nhập => OK

Anh 12

Kết quả scan

Anh 13

Security test là kiểm thửquan trọngnhất đối với một ứng dụng và kiểm tra xem dữ liệu tuyệt mật có thực sự được giữ bí mật hay không. Trong loại kiểm thử này, tester sẽ đóng vai trò của hacker và khai thác cáclỗ hổngcó thể có xung quanh hệ thống để tìm các lỗi liên quan đến bảo mật. Security test đóng vai trò rất quan trọng trong công nghệ kỹ thuật phần mềm đểbảo vệ dữ liệubằng mọi cách.

 
Join us