Câu hỏi sau đây đã đưa ra một số lần khi kiểm tra tính bảo mật của hệ thống hoặc mô hình.
Động lực: Lỗi bảo mật phần mềm thường không phải do lỗi do đầu vào hợp lệ, mà là lỗi do đầu vào không hợp lệ đủ gần với đầu vào hợp lệ để vượt qua nhiều kiểm tra tính hợp lệ đơn giản. Ví dụ cổ điển tất nhiên là tràn bộ đệm, trong đó đầu vào là hợp lý, ngoại trừ việc nó quá lớn. Trình biên dịch và các công cụ khác có thể giúp giải quyết các vấn đề này bằng cách sửa đổi bố cục của ngăn xếp và đống và bằng các kỹ thuật che giấu khác. Một cách khác là loại bỏ các vấn đề từ chính mã nguồn. Một kỹ thuật gọi là làm mờ các chương trình với các đầu vào gần với các đầu vào dự kiến, nhưng ở một số nơi không hợp lý (giá trị lớn cho các trường số nguyên hoặc chuỗi). Tôi muốn hiểu fuzzing (như một ví dụ) từ một quan điểm chính thức hơn.
Giả sử rằng không gian đầu vào hợp lệ được mô tả bởi các ràng buộc . Hãy M là tập hợp các giải pháp hạn chế như vậy, cụ thể là M = { m ∈ M | m ⊨ Φ } , nơi M là không gian đầu vào càng tốt.
Tôi đang tìm kiếm công việc mô tả các khái niệm sau:
Các cách thư giãn các ràng buộc thành trước hết là và , theo một nghĩa nào đó, là cú pháp cú pháp của .Φ ' Φ ⇒ Φ ' Φ ' ∧ ¬ Φ Φ
"Penumbra" là một từ tôi đã chọn để mô tả khái niệm này. Nó cũng có thể được gọi là cái gì khác.
Tôi tìm thấy nguồn cảm hứng trong hình thái toán học , do đó ẩn dụ hình ảnh của tôi, nhưng hai thế giới tách biệt nhau. Có công việc hữu ích nào ở đó không? Hoặc có lẽ trong thế giới của bộ thô ?
Bất cứ ai có thể làm sáng tỏ?