5.1.2 Protecting Arguments in User MemoryAnother solution to the probl dịch - 5.1.2 Protecting Arguments in User MemoryAnother solution to the probl Việt làm thế nào để nói

5.1.2 Protecting Arguments in User


5.1.2 Protecting Arguments in User Memory
Another solution to the problem of preventing argument races is copying arguments into a read-only section of memoryin the address space of the untrusted process. Setting up this section can be accomplished either by dedicated kernel code or by forcing the process to mmap and mprotect a region of memory. Before system call arguments are checked, they can be copied into this region by Janus. This approach was taken by earlier versions of Janus that would create a read-only memory region by calling mmap in the context of the untrusted process when that process was “attached”, then keep track of the location of this scratch space in the untrusted application’s address space. The correctness of this approach relies on Janus judiciously guarding the mprotect, mmap and mremap interfaces to ensure that this read-only section of memory is not tampered with.
This approach is attractive, as much less work must be done in the kernel in order to implement it. The Subterfugue[1] system actuallydoes this using only ptrace, although the inefficiency of using ptrace to copy arguments makes this prohibitivelyexpensive, givena moreefficient mechanism this seems like an attractive approach. Concerns about assuring that access to the user scratch space was sufficiently restricted and efficiency lead us to abandon this approach in Janus.
5.1.3 Checking that Arguments Do Not Reside in Shared Memory
Argument races can only occur if arguments reside in unprotected shared memory. On approach to preventing this is restricting the interfaces that allow the creation of shared memory, such clone for creating multiple threads, certain uses of mmap and the SYSV facilities for creating shared memory areas.
For many applications this is a viable solution. Relatively few Linux applications use multi-threading. The same is true of the BSD-based operating systems, which until recently [31] did not provide kernel support for multi-threading. The use of other shared memory facilities is also not terribly widespread.
We can check that arguments do not reside in shared memory at user level by examining the permissions on the virtual memory area that arguments currently reside. This can be accomplished through the /proc filesystem under Linux. For this approach to be correct we must be ensure not only that the virtual memory area that an argument resides in is not shared, but also that the untrusted process has its own copy. For private mmaped memory regions this can be enforced by reading our of the process’s memory and writing them back to the same location to ensure that the process has a private copy. This is necessary as a privately mmaped files may reflect changes in the underlying file, a process is not guaranteed to get its own copy of an area of an mmaped file until it writes to that area.
While this approach enforces some limitation on the generality of a tool, it requires no kernel modifications and minimal effort on the part of the implementer.
0/5000
Từ: -
Sang: -
Kết quả (Việt) 1: [Sao chép]
Sao chép!
5.1.2 bảo vệ các đối số trong bộ nhớ người sử dụngMột giải pháp cho vấn đề ngăn chặn chủng tộc đối số sao chép đối số vào một phần chỉ đọc của memoryin không gian địa chỉ của trình không đáng tin cậy. Thiết lập phần này có thể được thực hiện bởi dành riêng cho hạt nhân mã hoặc bằng cách buộc trình mmap và mprotect một vùng bộ nhớ. Trước khi cuộc gọi hệ thống đối số được kiểm tra, họ có thể được sao chép vào khu vực này bởi Janus. Cách tiếp cận này được thực hiện bởi các phiên bản trước của Janus mà sẽ tạo ra một vùng bộ nhớ chỉ đọc bằng cách gọi điện thoại mmap trong bối cảnh của quá trình không đáng tin cậy khi quá trình đó "đính kèm", sau đó theo dõi các vị trí này không gian đầu trong không gian địa chỉ không đáng tin cậy của các ứng dụng. Sự đúng đắn của cách tiếp cận này dựa trên Janus khôn ngoan canh gác mprotect, giao diện mmap và mremap để đảm bảo rằng phần này chỉ đọc của bộ nhớ không được giả mạo với.Cách tiếp cận này là hấp dẫn, như ít làm việc phải được thực hiện trong hạt nhân để thực hiện nó. Subterfugue [1] Hệ thống actuallydoes này bằng cách sử dụng chỉ ptrace, mặc dù không hiệu quả của việc sử dụng ptrace để sao chép các đối số làm này prohibitivelyexpensive, givena moreefficient cơ chế này có vẻ như một cách tiếp cận hấp dẫn. Mối quan tâm về đảm bảo quyền truy cập vào không gian đầu người dùng bị hạn chế đầy đủ và hiệu quả dẫn chúng ta từ bỏ cách tiếp cận này ở Janus.5.1.3 kiểm tra đối số không nằm trong bộ nhớ chia sẻChủng tộc đối số chỉ có thể xảy ra nếu đối số nằm trong bộ nhớ dùng chung không được bảo vệ. Trên phương pháp tiếp cận để ngăn chặn điều này hạn chế giao diện cho phép việc tạo ra các bộ nhớ dùng chung, bản sao để tạo nhiều chủ đề, các ứng dụng nhất định của mmap và tiện nghi SYSV cho việc tạo các khu vực bộ nhớ dùng chung.Đối với nhiều ứng dụng, đây là một giải pháp khả thi. Tương đối ít Linux ứng dụng sử dụng đa luồng. Đó là sự thật của hệ điều hành dựa trên BSD, mà cho đến gần đây [31] đã không cung cấp hạt nhân hỗ trợ cho đa luồng. Sử dụng các tiện nghi khác của bộ nhớ dùng chung cũng là không terribly phổ biến rộng rãi.Chúng tôi có thể kiểm tra rằng đối số không nằm trong bộ nhớ dùng chung cấp độ người dùng bằng cách kiểm tra các cấp phép trên vùng bộ nhớ ảo đối số hiện đang cư trú. Điều này có thể được thực hiện thông qua hệ thống tập tin proc dưới Linux. Đối với cách tiếp cận này là chính xác chúng tôi phải đảm bảo không chỉ rằng khu vực bộ nhớ ảo mà một cuộc tranh cãi nằm trong không được chia sẻ, nhưng cũng có quá trình không đáng tin cậy có bản sao riêng của mình. Cho riêng mmaped bộ nhớ khu vực này có thể được áp dụng bằng cách đọc của chúng tôi trong quá trình của bộ nhớ và ghi chúng trở lại vào cùng một vị trí để đảm bảo rằng trình có một bản sao riêng. Điều này là cần thiết như một tư nhân mmaped tập tin có thể phản ánh những thay đổi trong các tập tin cơ bản, một quá trình không được bảo đảm để có được bản sao của riêng mình của một khu vực của một tập tin mmaped cho đến khi nó viết để khu vực đó.Trong khi cách tiếp cận này thi hành một số giới hạn về các quát của một công cụ, nó đòi hỏi không có sửa đổi hạt nhân và các nỗ lực tối thiểu trên một phần của công việc.
đang được dịch, vui lòng đợi..
 
Các ngôn ngữ khác
Hỗ trợ công cụ dịch thuật: Albania, Amharic, Anh, Armenia, Azerbaijan, Ba Lan, Ba Tư, Bantu, Basque, Belarus, Bengal, Bosnia, Bulgaria, Bồ Đào Nha, Catalan, Cebuano, Chichewa, Corsi, Creole (Haiti), Croatia, Do Thái, Estonia, Filipino, Frisia, Gael Scotland, Galicia, George, Gujarat, Hausa, Hawaii, Hindi, Hmong, Hungary, Hy Lạp, Hà Lan, Hà Lan (Nam Phi), Hàn, Iceland, Igbo, Ireland, Java, Kannada, Kazakh, Khmer, Kinyarwanda, Klingon, Kurd, Kyrgyz, Latinh, Latvia, Litva, Luxembourg, Lào, Macedonia, Malagasy, Malayalam, Malta, Maori, Marathi, Myanmar, Mã Lai, Mông Cổ, Na Uy, Nepal, Nga, Nhật, Odia (Oriya), Pashto, Pháp, Phát hiện ngôn ngữ, Phần Lan, Punjab, Quốc tế ngữ, Rumani, Samoa, Serbia, Sesotho, Shona, Sindhi, Sinhala, Slovak, Slovenia, Somali, Sunda, Swahili, Séc, Tajik, Tamil, Tatar, Telugu, Thái, Thổ Nhĩ Kỳ, Thụy Điển, Tiếng Indonesia, Tiếng Ý, Trung, Trung (Phồn thể), Turkmen, Tây Ban Nha, Ukraina, Urdu, Uyghur, Uzbek, Việt, Xứ Wales, Yiddish, Yoruba, Zulu, Đan Mạch, Đức, Ả Rập, dịch ngôn ngữ.

Copyright ©2024 I Love Translation. All reserved.

E-mail: