ASLR là gì, và nó bảo mật máy tính của bạn như thế nào?

Mục lục:

ASLR là gì, và nó bảo mật máy tính của bạn như thế nào?
ASLR là gì, và nó bảo mật máy tính của bạn như thế nào?

Video: ASLR là gì, và nó bảo mật máy tính của bạn như thế nào?

Video: ASLR là gì, và nó bảo mật máy tính của bạn như thế nào?
Video: 15 Phím Tắt Tuyệt Vời Mà Bạn Chưa Sử Dụng Đến - YouTube 2024, Tháng tư
Anonim
Address Randomization Randomization (ASLR) là một kỹ thuật bảo mật được sử dụng trong các hệ điều hành, được thực hiện lần đầu vào năm 2001. Các phiên bản hiện tại của tất cả các hệ điều hành chính (iOS, Android, Windows, macOS và Linux) đều có tính năng bảo vệ ASLR. Nhưng trong tuần qua, một phương pháp mới bỏ qua ASLR đã được tìm thấy. Vì vậy, bạn nên lo lắng?
Address Randomization Randomization (ASLR) là một kỹ thuật bảo mật được sử dụng trong các hệ điều hành, được thực hiện lần đầu vào năm 2001. Các phiên bản hiện tại của tất cả các hệ điều hành chính (iOS, Android, Windows, macOS và Linux) đều có tính năng bảo vệ ASLR. Nhưng trong tuần qua, một phương pháp mới bỏ qua ASLR đã được tìm thấy. Vì vậy, bạn nên lo lắng?

Đối với những người không có nền lập trình cấp thấp, ASLR có thể gây nhầm lẫn. Để hiểu nó, trước tiên bạn phải hiểu bộ nhớ ảo.

Bộ nhớ ảo là gì?

Bộ nhớ ảo là một kỹ thuật quản lý bộ nhớ với nhiều lợi ích, nhưng nó chủ yếu được tạo ra để giúp lập trình dễ dàng hơn. Hãy tưởng tượng bạn có Google Chrome, Microsoft Word và một số chương trình khác đang mở trên máy tính có RAM 4 GB. Nhìn chung, các chương trình trên máy tính này sử dụng nhiều hơn 4 GB RAM. Tuy nhiên, không phải tất cả các chương trình sẽ hoạt động mọi lúc, hoặc cần truy cập đồng thời vào bộ nhớ RAM đó.

Hệ điều hành phân bổ các phần bộ nhớ cho các chương trình gọi là các trang. Nếu không có đủ RAM để lưu trữ tất cả các trang cùng một lúc, các trang ít có khả năng cần được lưu trữ trên ổ cứng chậm hơn (nhưng rộng hơn). Khi các trang được lưu trữ là cần thiết, chúng sẽ chuyển đổi các không gian có ít trang cần thiết hơn trong RAM. Quá trình này được gọi là phân trang và đưa tên của nó vào tệp pagefile.sys trên Windows.

Bộ nhớ ảo giúp các chương trình quản lý bộ nhớ của riêng chúng dễ dàng hơn và cũng làm cho chúng an toàn hơn. Chương trình không cần phải lo lắng về nơi các chương trình khác đang lưu trữ dữ liệu hoặc còn lại bao nhiêu RAM. Họ chỉ có thể yêu cầu hệ điều hành cho bộ nhớ bổ sung (hoặc trả lại bộ nhớ không sử dụng) khi cần thiết. Tất cả chương trình nhìn thấy là một đoạn địa chỉ bộ nhớ liên tục duy nhất cho việc sử dụng độc quyền của nó, được gọi là các địa chỉ ảo. Chương trình không được phép xem bộ nhớ của một chương trình khác.

Khi một chương trình cần truy cập bộ nhớ, nó cung cấp cho hệ điều hành một địa chỉ ảo. Hệ điều hành liên lạc với đơn vị quản lý bộ nhớ của CPU (MMU). MMU dịch giữa các địa chỉ ảo và vật lý, trả về thông tin đó cho hệ điều hành. Không có chương trình nào tương tác trực tiếp với RAM.

ASLR là gì?

Địa chỉ bố trí không gian ngẫu nhiên (ASLR) chủ yếu được sử dụng để bảo vệ chống lại các cuộc tấn công tràn bộ đệm. Trong tràn bộ đệm, kẻ tấn công cung cấp chức năng như nhiều dữ liệu rác vì nó có thể xử lý, theo sau là một tải trọng độc hại. Tải trọng sẽ ghi đè lên dữ liệu mà chương trình dự định truy cập. Hướng dẫn chuyển đến một điểm khác trong mã là một tải trọng chung. Ví dụ, phương pháp JailbreakMe jailbreak iOS 4 nổi tiếng đã sử dụng tấn công tràn bộ đệm, khiến Apple thêm ASLR vào iOS 4.3.

Lỗi tràn bộ đệm yêu cầu kẻ tấn công phải biết vị trí của mỗi phần trong bộ nhớ. Việc tìm ra điều này thường là một quá trình thử và sai. Sau khi xác định điều đó, họ phải tạo ra một trọng tải và tìm một nơi thích hợp để tiêm nó. Nếu kẻ tấn công không biết mã đích của chúng nằm ở đâu, nó có thể khó hoặc không thể khai thác nó.

ASLR làm việc cùng với quản lý bộ nhớ ảo để ngẫu nhiên vị trí của các phần khác nhau của chương trình trong bộ nhớ. Mỗi khi chương trình được chạy, các thành phần (bao gồm cả ngăn xếp, đống và thư viện) được chuyển đến một địa chỉ khác trong bộ nhớ ảo. Những kẻ tấn công không còn có thể biết được mục tiêu của họ là thông qua thử thách và lỗi, bởi vì địa chỉ sẽ khác nhau mỗi lần. Nói chung, các ứng dụng cần phải được biên dịch với sự hỗ trợ ASLR, nhưng điều này đang trở thành mặc định và thậm chí được yêu cầu trên Android 5.0 trở lên.

Vậy ASLR vẫn bảo vệ bạn?

Thứ ba tuần trước, các nhà nghiên cứu từ SUNY Binghamton và Đại học California, Riverside, đã trình bày một bài báo gọi là Jump Over ASLR: Các dự đoán chi nhánh tấn công để bỏ qua ASLR. Bài báo nêu chi tiết cách tấn công Branch Target Buffer (BTB). BTB là một phần của bộ xử lý tăng tốc nếu phát biểu bằng cách dự đoán kết quả. Sử dụng phương pháp của tác giả, có thể xác định vị trí của các hướng dẫn chi nhánh đã biết trong chương trình đang chạy. Cuộc tấn công được đề cập đã được thực hiện trên một máy Linux với bộ xử lý Intel Haswell (được phát hành đầu tiên vào năm 2013), nhưng có thể được áp dụng cho bất kỳ hệ điều hành và bộ vi xử lý hiện đại nào.

Điều đó nói rằng, bạn không nhất thiết phải tuyệt vọng. Bài báo cung cấp một vài cách mà các nhà phát triển phần cứng và hệ điều hành có thể giảm thiểu mối đe dọa này. Kỹ thuật ASLR hạt mịn hơn, mới hơn sẽ đòi hỏi nhiều nỗ lực hơn từ kẻ tấn công, và tăng số lượng entropy (ngẫu nhiên) có thể làm cho Jump Over tấn công không khả thi. Nhiều khả năng, các hệ điều hành và bộ vi xử lý mới hơn sẽ miễn nhiễm với cuộc tấn công này.

Vì vậy, những gì còn lại cho bạn làm? Vượt qua bỏ qua là mới, và chưa được phát hiện trong tự nhiên. Khi kẻ tấn công khai thác nó, lỗ hổng sẽ làm tăng khả năng gây sát thương mà kẻ tấn công có thể gây ra trên thiết bị của bạn. Mức truy cập này chưa từng có; Microsoft và Apple chỉ triển khai ASLR trong các hệ điều hành của họ được phát hành năm 2007 và sau đó. Ngay cả khi kiểu tấn công này trở nên phổ biến, bạn sẽ không còn tệ hơn bạn đã trở lại trong những ngày của Windows XP.

Hãy nhớ rằng những kẻ tấn công vẫn phải lấy mã của họ trên thiết bị của bạn để gây hại. Lỗ hổng này không cung cấp cho họ thêm bất kỳ cách nào để lây nhiễm cho bạn.Như mọi khi, bạn nên thực hiện theo các phương pháp bảo mật tốt nhất. Sử dụng phần mềm chống vi-rút, tránh xa các trang web và chương trình sơ sài và giữ cho phần mềm của bạn được cập nhật. Bằng cách làm theo các bước này và giữ các diễn viên độc hại khỏi máy tính của bạn, bạn sẽ an toàn như trước đây.

Hình ảnh tín dụng: Steve / Flickr

Đề xuất: