Hay còn gọi là Kiểm thử bảo mật, 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. Kiểm thử bảo mật 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. 

 

Mục tiêu của kiểm tra bảo mật 

 

  • Để xác định các mối đe dọa trong hệ thống.
  • Để đo lường các lỗ hổng tiềm ẩn của hệ thống.
  • Để giúp phát hiện mọi rủi ro bảo mật có thể có trong hệ thống.
  • Để giúp các nhà phát triển khắc phục các vấn đề bảo mật thông qua mã hóa.

 

Các hình thức Security Testing

 

  • 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.
  • 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, 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.
  • Đánh giá bảo mật bằng cách tấn công vào hệ thống – Penetration testing: 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.
  • Đánh giá rủi ro – Risk Assessment: 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.
  • Kiểm toán an ninh – Security Auditing: Kiểm tra bảo mật nội bộ ứng dụng và OS.
  • 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.
  • 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.

 

Vai trò của Security testing

 

  • Xác định các mối đe dọa trong hệ thống.
  • Đo lường các lỗ hổng tiềm ẩn của hệ thống.
  • Giúp phát hiện mọi rủi ro bảo mật có thể có trong hệ thống.
  • Giúp các nhà phát triển khắc phục các vấn đề bảo mật thông qua mã hóa.

 

Những thuật ngữ thường dùng trong Security Testing

 

  • Vulnerability: Đây là điểm yếu trong ứng dụng website. Đây là lỗi trong ứng dụng, mã SQL / script hoặc sự hiện diện của virus.
  • URL Manipulation: Trong trường hợp chúng ta thực hiện thay đổi một số thông tin trong URL thì nó có thể dẫn đến hành vi ngoài ý muốn của máy chủ – Đây được gọi là thao tác URL.
  • SQL injection: Đây là quá trình người dùng cố ý chèn các câu lệnh SQL thông qua giao diện người dùng ứng dụng web vào với một số câu lệnh truy vấn sau đó được máy chủ thực thi.
  • XSS (Cross-Site Scripting): Khi một người dùng chèn tập lệnh html ở phía máy khách trong giao diện của ứng dụng web, phần chèn này hiển thị cho người dùng khác và nó được gọi là XSS.
  • Spoofing: Đó là việc tạo ra các trang web hoặc email giống như trò lừa bịp được gọi là Spoofing.

 

Các trường hợp và kịch bản Security Testing

 

  • Kiểm tra các quy tắc mật khẩu: kiểm tra mức độ bảo mật và chất lượng mật khẩu mà trang web yêu cầu.
  • Xác định các lỗ hổng liệt kê tên người dùng: kiểm tra xem lỗi có khác nhau hay không tùy thuộc vào việc có người dùng hay không.
  • Kiểm tra độ mạnh của mật khẩu: các yêu cầu tối thiểu để tạo mật khẩu.
  • Xác định các lỗ hổng khôi phục tài khoản: kiểm tra xem các cuộc tấn công có thể khôi phục tài khoản hay không (nghĩa là bằng cách thay đổi email hoặc mật khẩu).
  • Kiểm tra độ mạnh của tên người dùng: đảm bảo tên người dùng là duy nhất.
  • Xác định xác thực mở không thành công: kiểm tra xem hệ thống có cung cấp quyền truy cập mở ngay cả khi xác thực không thành công hay không.
  • Xác minh phạm vi cookie: kiểm tra xem cookie có nằm trong phạm vi miền hay không hoặc liệu kẻ tấn công có thể đánh cắp chúng hay không.

 

6 nguyên tắc của Security testing

 

  • Bảo mật: Giúp giới hạn quyền truy cập vào quyền truy cập nhạy cảm được quản lý bởi một hệ thống.
  • Tính toàn vẹn: Đảm bảo rằng dữ liệu nhất quán, chính xác và đáng tin cậy trong suốt vòng đời của nó và không thể bị sửa đổi bởi các thực thể trái phép.
  • Xác thực: Đảm bảo các hệ thống hoặc dữ liệu nhạy cảm được bảo vệ bằng cơ chế xác minh danh tính của cá nhân truy cập chúng.
  • Ủy quyền: Đảm bảo các hệ thống hoặc dữ liệu nhạy cảm kiểm soát đúng quyền truy cập cho người dùng được xác thực theo vai trò hoặc quyền của họ.
  • Tính khả dụng: Đảm bảo rằng các hệ thống hoặc dữ liệu quan trọng luôn sẵn sàng cho người dùng khi họ cần.
  • Chống thoái thác: Đảm bảo rằng dữ liệu được gửi hoặc nhận không thể bị từ chối, bằng cách trao đổi thông tin xác thực với dấu thời gian có thể chứng minh được.

About the Author

Huyền Vy

View all author's posts

Leave a Comment

Your email address will not be published. Required fields are marked *

Bài viết khác

Notion

  Là một ứng dụng quản lý công việc đa năng, hỗ trợ người dùng trong việc ghi chú, theo dõi nhiệm vụ, quản lý dự án, xây dựng wiki và lưu trữ cơ sở dữ liệu trong cùng một nền tảng. Là một ứng dụng viết ghi chú, nhưng nếu biết cách sử dụng, […]

Non-Functional Testing

Hay còn gọi là Kiểm thử phi chức năng, là kỹ thuật kiểm thử tập trung vào việc đánh giá các khía cạnh phi chức năng của hệ thống. Nó kiểm tra các tham số không được kiểm tra trong Function Testing (kiểm thử chức năng), chẳng hạn như hiệu suất, khả năng sử dụng, […]

Unit Testing

Hay còn gọi là Kiểm thử đơn vị, là một loại kiểm thử phần mềm tập trung vào việc kiểm tra các thành phần hoặc “đơn vị” nhỏ nhất và riêng biệt của mã nguồn. Một đơn vị có thể là một hàm (function), một phương thức (method), một lớp (class) hoặc một module. Mục […]

Smoke Testing

Hay còn gọi là Kiểm thử khói, là một loại kiểm thử phần mềm nhanh chóng, tập trung vào việc xác minh các chức năng cốt lõi và quan trọng nhất của ứng dụng có hoạt động ổn định hay không. Mục đích chính là để kiểm tra xem bản dựng (build) mới của phần […]

Functional Testing

Hay còn gọi là kiểm thử chức năng, là kỹ thuật kiểm tra phần mềm dựa trên từng chức năng để đảm bảo hệ thống đáp ứng đúng yêu cầu đã đặt ra. Đây là dạng kiểm thử hộp đen, trong đó tester không cần quan tâm đến mã nguồn mà chỉ so sánh chức […]

Testing Techniques

Hay còn gọi là các kỹ thuật kiểm thử, là các phương pháp và quy trình cụ thể được sử dụng để thiết kế và thực hiện các test case (trường hợp kiểm thử). Chúng cung cấp một cách tiếp cận có hệ thống để khám phá các lỗi (defects), đánh giá các thuộc tính […]