Tìm hiểu về Security Testing – Kiểm thử bảo mật phần mềm

Security Testing - Kiểm thử bảo mật

Security Testing - Kiểm thử bảo mật

Security Testing - Kiểm thử bảo mật
Security Testing – Kiểm thử bảo mật

Security Testing là gì?

Kiểm thử bảo mật (Security Testing) là một trong những phần quan trọng trong phát triển phần mềm, nhằm đảm bảo các hệ thống và ứng dụng trong một tổ chức không có bất kỳ sơ hở nào có thể gây ra các tổn thất về an toàn bảo mật.

Việc Kiểm thử bảo mật đối với bất kỳ hệ thống nào đều là tìm kiếm tất cả các lỗ hổng và điểm yếu trong hệ thống mà dẫn đến rò rỉ thông tin của tổ chức.

Tại sao cần phải Security Testing

Mục đích của Security Testing là xác định các mối đe dọa và các lỗ hổng trong hệ thống. Nó giúp xác định tất cả các rủi ro về an toàn bảo mật trong hệ thống và giúp các nhóm phát triển phần mềm trong việc khắc phục các vấn đề này.

Điều gì xảy ra nếu tất cả các tài liệu mật của tổ chức bạn bị đánh cắp, hoặc điều đó xảy ra với một trong những khách hàng của bạn? Một lỗ hổng trong ứng dụng của bạn hoàn toàn có thể làm tê liệt kinh doanh của bạn và danh tiếng của mình trên thị trường. Tất nhiên, điều này có thể dẫn đến thảm họa khi một lỗ hổng trong ứng dụng của bạn được khai thác bởi một bên thứ ba với những hậu quả như:

  • Thiệt hại to lớn đến thương hiệu của tổ chức
  • Vĩnh viễn mất niềm tin của khách hàng
  • Thời gian chết của phần mềm tàn phá năng suất tổ chức – năng suất của tổ chức thời gian sau khi khắc phục thiệt hại
  • Chi phí khắc phục lỗ hổng tốn kém
  • Các vụ kiện dân sự và hình phạt pháp lý.

Do đó, một phần mềm mà không có khả năng bảo vệ dữ liệu và không có khả năng duy trì các dữ liệu theo yêu cầu là không thê sử dụng. Security Testing là có thể coi là một trong những thử nghiệm quan trọng nhất đối với một ứng dụng.

Các hình thức của Kiểm thử bảo mật

Các hình thức của kiểm thử bảo mật
Các hình thức của kiểm thử bảo mật

Theo ISECOM (Open Source Security Testing) có 7 hình thức Kiểm thử bảo mật:

  1. Rà soát các lỗ hổng tiềm ẩn – Vulnerable Scanning: thực hiện thông qua các phần mềm để tự động scan một hệ thống nhằm phát hiện ra các lỗ hổng dựa trên các signatures đã biết.
  2. Rà soát các điểm yếu của hệ thống – Security Scanning: bao gồm việc xác định các điểm yếu của mạng và hệ thống, sau đó cung cấp các giải pháp nhằm giảm thiểu các rủi ro này. Có thể thực hiện bằng thủ công hoặc tự động.
  3. Đánh giá bảo mật bằng cách tấn công vào hệ thống – Penetration testing: Đây là loại kiểm thử mô phỏng cuộc tấn công từ phía một hacker thiếu thiện ý. Kiểm thử bao gồm việc phân tích một hệ thống cụ thể, tìm ra các lỗ hổng tiềm ẩn bằng cách tấn công từ bên ngoài.
  4. Đánh giá rủi ro – Risk Assessment: Kiểm thử này liên quan đến phân tích các rủi ro bảo mật nhận thấy được. Các rủi ro được phân loại là Low, Medium, High. Loại kiểm thử này đưa ra các khuyến nghị nhằm giảm thiểu các rủi ro.
  5. Kiểm toán an ninh – Security Auditing: Kiểm tra bảo mật nội bộ ứng dụng và OS.
  6. Tấn công vào hệ thống tìm các điểm yếu bảo mật – Ethical hacking: Các hacker thiện ý thực hiện phương pháp tương tự như những kẻ tấn công “thiếu thiện ý”, với mục tiêu tìm kiếm các điểm yếu bảo mật và xác định cách thức để thâm nhập vào mục tiêu, nhằm đánh giá mức độ thiệt hại do các lổ hỗng này gây ra, từ đó đưa ra cảnh báo cùng những phương án gia cố, kiện toàn bảo mật thích hợp.
  7. Posture assessment: Kết hợp Security Scanning, Ethical hacking và Risk Assessment đánh giá bảo mật tổng thể một tổ chức.

Phương pháp Kiểm thử bảo mật

  • Tiger Box: được thực hiện trên một máy tính xách tay trong đó có một bộ sưu tập của các hệ điều hành và các công cụ hack. Thử nghiệm này giúp kiểm tra sự thâm nhập và kiểm tra bảo mật để tiến hành đánh giá các lỗ hổng và các cuộc tấn công.
  • Black Box: Tester được ủy quyền để làm thử nghiệm trên tất cả mọi thứ về các cấu trúc liên kết mạng lưới và công nghệ.
  • Grey Box: là sự kết hợp của mô hình black box và white box

Đọc thêm về Kỹ thuật kiểm thử hộp đen.

Tích hợp các quy trình bảo mật với các SDLC

Các giai đoạn của SDLCQuy trình bảo mật
Yêu cầuPhâ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
Thiết kếPhân tích rủi ro bảo mật cho thiết kế. Xây dựng kế hoạch kiểm tra bao gồm các bài kiểm tra an ninh
Coding & Unit testingWhite Box Testing
Integration TestingBlack Box Testing
System TestingBlack Box Testing và Vulnerability Scanning
Thực hiệnPenetration Testing, Vulnerability Scanning
  
SupportPhân tích tác động

Test scenarios mẫu cho Security Testing

Các kịch bản thử nghiệm mẫu để cung cấp một cái nhìn thoáng hơn trong Security Testing

  • Mật khẩu phải ở trong định dạng mã hóa
  • Ứng dụng hoặc hệ thống không nên cho phép người dùng không hợp lệ
  • Kiểm tra thời gian cookie và session cho ứng dụng
  • Đối với các trang web tài chính, nút Back của Browser lại không nên được hoạt động.

Kết luận:
Security Testing là loại kiểm thử quan trọng nhất đối với một ứng dụng và giúp xác định liệu các dữ liệu quan trọng có được đảm bảo bí mật hay không.
Với loại kiểm thử này, kiểm thử viên đóng vai trò kẻ tấn công và tấn công hệ thống để tìm ra các lỗ hổng bảo mật.