5.2.1 Hành vi tốt là gì?
Ứng dụng Unix có thể có được quyền truy cập vào các tập tin mà không gặp phải cuộc đua liên kết tượng trưng. Điều này là quan trọng đối với các lập trình viên ứng dụng bình thường người, ví dụ, có thể muốn viết một máy chủ ftp mà an toàn kiểm tra hệ thống truy cập tập tin với một chính sách bảo mật. Các lập trình viên có thể thực hiện điều này bằng cách tận dụng thực tế là các thư mục làm việc hiện tại của một quá trình là nhà nước tư nhân và sẽ không thay đổi giữa thời gian đó nó thực hiện một kiểm tra trên một tập tin tương ứng với thư mục này, và thời gian mà các cuộc gọi hoàn tất. Các lập trình viên có thể tận dụng điều này để thực hiện một cuộc đua mở miễn phí bằng cách đệ quy mở rộng (thông qua readlink) và theo một con đường một phần tại một thời gian cho đến khi họ đã đạt đến một tập tin, hoặc cho đến khi họ đã phát hiện ra rằng con đường vi phạm chính sách. Một chuỗi tương tự như các cuộc gọi có thể được sử dụng để thực hiện các hoạt động hệ thống tập tin khác mà không có chủng tộc. Nếu chúng tôi đang giám sát một ứng dụng trình diễn như một chuỗi các cuộc gọi, chúng ta cũng có thể kiểm tra mỗi cuộc gọi trong chuỗi mà không có nguy cơ về một cuộc đua điều kiện. Này xuất phát từ thực tế đó, chúng tôi thực hiện kiểm tra của chúng tôi sau khi các ứng dụng làm cho các cuộc gọi, nếu không thể có một cuộc đua mà có thể đánh lừa các ứng dụng, không thể có một cuộc đua mà sẽ đánh lừa các màn hình. Rõ ràng đây là một mô hình hành vi rất cụ thể mà chúng ta thường không mong đợi các ứng dụng để phù hợp với. Tuy nhiên, chúng ta có thể chơi một số thủ thuật để ép buộc các ứng dụng vào luôn luôn phù hợp với mô hình hành vi tốt.
5.2.2 Thi hành hành vi tốt
Có một số cơ chế, chúng ta có thể sử dụng để "ép" một ứng dụng để phù hợp với định nghĩa của chúng ta về những hành vi tốt, tức là để truy cập hệ thống tập tin theo cách mà chúng ta có thể dễ dàng xác minh là an toàn.
đang được dịch, vui lòng đợi..