Tôi đã nghe lý thuyết. Địa chỉ không gian Địa chỉ Ngẫu nhiên nhận thư viện và tải chúng tại các vị trí ngẫu nhiên trong không gian địa chỉ ảo, để trong trường hợp hacker tìm thấy lỗ hổng trong chương trình của bạn, anh ta không có địa chỉ đã biết trước để thực thi một cuộc tấn công trở về-libc chống lại, ví dụ. Nhưng sau khi suy nghĩ về nó trong một vài giây, nó không có ý nghĩa như một biện pháp phòng thủ.ASLR có thể có hiệu quả như thế nào?
Giả sử TargetLib giả định của chúng tôi (libc hoặc bất kỳ thứ gì khác mà hacker tìm kiếm) được tải tại địa chỉ ngẫu nhiên thay vì địa chỉ xác định. Bây giờ các hacker không biết trước thời gian mà TargetLib và các thói quen bên trong nó, nhưng cũng không phải mã ứng dụng. Nó cần phải có một số loại bảng tra cứu một nơi nào đó trong nhị phân để tìm các thói quen bên trong của TargetLib, và đó phải được ở một vị trí xác định. (Hoặc tại một địa điểm ngẫu nhiên, được chỉ định bởi một thứ khác. Bạn có thể thêm bao nhiêu người theo ý muốn, nhưng cuối cùng bạn phải bắt đầu tại một địa điểm đã biết.)
Điều này có nghĩa là thay vì chỉ mã tấn công của mình vị trí được biết đến của TargetLib, tất cả các hacker cần làm là trỏ mã tấn công của mình vào mục tra cứu của bảng ứng dụng cho TargetLib và dereference con trỏ đến thường trình đích, và cuộc tấn công không bị cản trở.
Có điều gì đó về cách ASLR hoạt động mà tôi không hiểu không? Bởi vì như được mô tả, tôi không thấy nó là gì hơn là một vết sưng tốc độ, cung cấp hình ảnh về an ninh nhưng không có chất thực sự. Tui bỏ lỡ điều gì vậy?
Bạn đã bao giờ gỡ lỗi Windows EXE ở cấp ASM chưa? Có một bảng nhập thực sự trong đó. Trình nạp không vá mã, (tất cả các nơi mã của bạn có thể gọi một số thường trình bên ngoài), nó vá bảng nhập khẩu, về cơ bản là một chuỗi dài các lệnh JMP, trình biên dịch tạo ra các CALL. –
Bộ nhớ không chỉ chia sẻ của nó ... – rook
@Mason Wheeler - không phải trong một thời gian dài, nhưng đó là điều tốt để biết. Trong khi đó làm cho nó dễ dàng hơn để xác định một địa chỉ cụ thể hiệu ứng ròng là giống nhau phải không? Nó thay đổi được biết đến là một ẩn số, mà chỉ đơn giản là làm cho cuộc tấn công khó khăn hơn. –