Làm mờ là gì? Hiểu kỹ thuật kiểm thử phần mềm để xác định lỗ hổng
Làm mờ là một kỹ thuật kiểm thử phần mềm bao gồm việc cung cấp đầu vào không hợp lệ hoặc không mong muốn cho chương trình và quan sát hành vi của nó để phát hiện các lỗi hoặc lỗ hổng tiềm ẩn. Mục tiêu của việc làm mờ là mô phỏng các tình huống trong thế giới thực trong đó người dùng có thể cung cấp thông tin đầu vào không chính xác hoặc độc hại và để xác định các rủi ro bảo mật tiềm ẩn hoặc các vấn đề về độ ổn định trong phần mềm.
Fuzzing thường liên quan đến việc tạo dữ liệu đầu vào ngẫu nhiên hoặc không mong muốn, chẳng hạn như các gói mạng không đúng định dạng, sai chính tả URL hoặc dữ liệu nhập không mong muốn của người dùng và đưa dữ liệu đó vào phần mềm để quan sát hành vi của nó. Sau đó, đầu ra của phần mềm được phân tích để phát hiện bất kỳ sự bất thường hoặc hành vi không mong muốn nào có thể chỉ ra lỗ hổng hoặc lỗi.
Có một số loại làm mờ, bao gồm:
1. Làm mờ tĩnh: Kiểu làm mờ này liên quan đến việc phân tích mã của phần mềm để xác định các lỗ hổng tiềm ẩn và sau đó tạo dữ liệu đầu vào nhắm mục tiêu cụ thể đến các lỗ hổng đó.
2. Làm mờ động: Kiểu làm mờ này liên quan đến việc tạo dữ liệu đầu vào ngẫu nhiên và đưa dữ liệu đó vào phần mềm để quan sát hành vi của nó và phát hiện bất kỳ điểm bất thường hoặc lỗ hổng nào.
3. Làm mờ giao thức: Kiểu làm mờ giao thức này liên quan đến việc kiểm tra các giao thức mạng, chẳng hạn như HTTP hoặc FTP, bằng cách gửi các gói không đúng định dạng hoặc không mong muốn và quan sát phản hồi của máy chủ.
4. Làm mờ hộp xám: Kiểu làm mờ này liên quan đến việc có một số kiến thức về hoạt động bên trong của phần mềm, chẳng hạn như các thuật toán được sử dụng và sử dụng kiến thức đó để tạo ra dữ liệu đầu vào được nhắm mục tiêu.
Fuzzing là một công cụ mạnh mẽ để xác định các lỗ hổng trong phần mềm, nhưng có thể mất thời gian -tiêu tốn và tốn nhiều tài nguyên. Do đó, nó thường được sử dụng như một phần của chiến lược thử nghiệm toàn diện bao gồm các loại thử nghiệm khác, chẳng hạn như thử nghiệm đơn vị và thử nghiệm tích hợp.