Ubuntu có sử dụng các tính năng bảo mật như DEP và ALSR không?


11

Tôi thường đọc rằng các tính năng như DEP (Ngăn chặn thực thi dữ liệu) và ASLR (Ngẫu nhiên bố trí không gian địa chỉ) được cung cấp trên Windows. Trên Windows, bạn được cấp một số quyền kiểm soát khi bật DEP cho các chương trình 32 bit.

  • Các tính năng này có sẵn trong Ubuntu không
  • Có điều gì chúng ta cần làm để bật các tính năng này không?

Câu trả lời:


20

Có cho cả hai. Chúng được bật theo mặc định; bạn không cần phải làm gì để kích hoạt nó. Câu trả lời dài hơn sau ...

DEP được sử dụng theo mặc định trong Ubuntu. Điều này được thực hiện thông qua bit NX nếu CPU hỗ trợ hoặc mô phỏng qua phân đoạn bộ nhớ nếu CPU không hỗ trợ. Để biết thêm chi tiết, xem mục tính năng bộ nhớ không thể thực thi .

ASLR được sử dụng theo mặc định trong Ubuntu trên bất kỳ phân đoạn bộ nhớ nào có thể được định vị lại (stack, library, heap, mmap). Phần duy nhất của chương trình không thể định vị lại theo mặc định là vùng mã chính (đoạn "văn bản"). Các chương trình cần được biên dịch đặc biệt dưới dạng PIE (vị trí thực thi độc lập) để cho phép điều này. Nhiều chương trình nhạy cảm đã được xây dựng theo cách này. Để biết thêm chi tiết, xem danh sách

Nhiều tính năng bảo mật bổ sung cũng có sẵn theo mặc định trong Ubuntu. Xem tài liệu về tính năng bảo mật của Ubuntu để biết danh sách đầy đủ.


1

Nhân Linux, theo mặc định, sử dụng các công nghệ tương tự, tuy nhiên chúng khác với các phiên bản Windows. Nếu bộ xử lý của bạn có khả năng thiết lập bit NX (hầu hết các CPU hiện đại), thì kernel sẽ sử dụng nó. Ngoài ra còn có một triển khai yếu trong ASLR trong kernel và những cái mạnh hơn có thể được cài đặt, nhưng không được cài đặt theo mặc định trên Ubuntu.


3
Hiện tại tôi không thể tìm thấy tài liệu tham khảo (bài viết trên Wikipedia en.wikipedia.org/wiki/ASLR không có các bit so sánh entropy), nhưng tôi hiểu rằng Windows ASLR yếu hơn Linux. Và nếu bạn muốn ASLR hoạt động nặng hơn so với mặc định của Linux, bạn có thể xây dựng kernel của riêng mình bản vá PaX, cung cấp entropy cao hơn với chi phí tương thích nhỏ.
Kees Cook

Một bài viết hay phá vỡ sự khác biệt cert.org/bloss/certcc/post.cfm?EntryID=191 tất nhiên, sẽ không hoàn chỉnh với một số tranh luận về các chi tiết tốt hơn: D reddit.com/r/netsec/comments/ 1xjwde / Thẻ
Univ426

0

Nói chung và nói một cách đơn giản, bạn sẽ cần một phiên bản PAE của kernel cho việc này. Để biết thông tin chi tiết về chủ đề này xem tóm tắt này .


3
PAE chỉ cần thiết cho NX phần cứng. 64 bit đã là PAE, vì vậy, trên 32 bit nếu bạn không chạy kernel PAE hoặc phần cứng của bạn thiếu bit NX, Ubuntu mô phỏng tính năng NX bằng cách sử dụng phân đoạn bộ nhớ.
Kees Cook

@Kees Cook: Cảm ơn thông tin. OP hỏi về 32bit. Trên hệ thống của tôi (Ubuntu 10.10 32 bit) dmesgnói NX (Execute Disable) protection cannot be enabled: non-PAE kernel. Mặt khác, khi tôi chạy thử nghiệm từ bazaar.launchpad.net/~ubfox-bugcontrol/qa-regression-testing/ , dường như không được thực thi, nhưng không phải cho các thử nghiệm -pie-rie. Vì vậy, nó hơi khó hiểu đối với tôi.
sắp xếp

2
thật không may, báo cáo dmesg ngày 10.10 và sau đó có một lỗi mà nó không nói khi mô phỏng NX được kích hoạt trên phần cứng với NX nhưng không có kernel PAE: kernel.ub Ubuntu.com/git?p=ubfox/iêu
Kees Cook

1
(Điều này đã được báo cáo là một lỗi bây giờ: bug.launchpad.net/ubfox/+source/linux/+orms/745181 )
Kees Cook
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.