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.