Task 6: Bật chế độ ngăn xếp không thực thi (Non-executable Stack Protection)

Một phần của tài liệu THỰC TẬP CƠ SỞ CHUYÊN NGÀNH AN TOÀN PHẦN MỀM NGHIÊN CỨU LỖ HỔNG TRÀN BỘ ĐỆM (BUFFER OVERFLOW VULNERABILITY LAB) (Trang 25 - 27)

có thể được phát hiện và ngăn chặn.

6. Task 6: Bật chế độ ngăn xếp không thực thi (Non-executable Stack Protection) Protection)

Việc ngẫu nhiên hóa địa chỉ đã bị tắt từ bước trước. Sau đó, chúng tôi biên dịch chương trình với StackGuard Protection bị tắt (do -fno-stack-protectionor) và ngăn xếp không thể thực thi (bằng cách thêm -z noexecstack). Sau đó, chúng tôi làm cho chương trình này trở thành chương trình gốc SET-UID. Khi chạy chương trình đã biên dịch này, chúng ta gặp lỗi lỗi phân đoạn. Điều này cho thấy rằng cuộc tấn công tràn bộ đệm đã không thành công và chương trình đã bị lỗi:

Lỗi này rõ ràng là do ngăn xếp không thể thực thi được nữa. Khi chúng ta thực hiện tấn công tràn bộ đệm, chúng ta cố gắng chạy một chương trình có thể dễ dàng cung cấp cho chúng ta quyền truy cập root và do đó rất độc hại. Nhưng chương trình này thường được lưu trữ trong ngăn xếp và chúng ta cố gắng nhập địa chỉ trả về trỏ đến chương trình độc hại đó. Bố cục bộ nhớ ngăn xếp chỉ ra rằng nó chỉ lưu trữ các biến và đối số cục bộ, cùng với các địa chỉ trả về và giá trị ebp. Nhưng tất cả các giá trị này sẽ không có bất kỳ yêu cầu thực thi nào và do đó không cần phải có ngăn xếp là có thể thực thi. Do đó, bằng cách loại bỏ tính năng thực thi này, các chương trình bình thường sẽ vẫn chạy như cũ mà không có tác dụng phụ, nhưng mã độc cũng sẽ được coi là dữ liệu chứ không phải mã. Nó không được coi là một chương trình mà là dữ liệu chỉ đọc. Do đó, cuộc tấn công của chúng tôi không thành công không giống như trước đây các cuộc tấn công của chúng tôi đã thành công vì ngăn xếp có thể thực thi được.

CHƯƠNG IV: KẾT LUẬN

Trong suốt khoảng thời gian thực tập cơ sở chuyên ngành là một khoảng thời gian dài để em tiếp thu những bài học kinh nghiệm thực tế. Được trực tiếp tham gia, nghiên cứu vào các bài tập, em mới thấy được mình học hỏi được nhiều điều, đây là quãng thời gian rất bổ ích cho em, để học hỏi và vận dụng những gì mình được học vào thực tế.

Với thời gian nghiên cứu không nhiều nhưng em hi vọng, với đề tài của mình, em có thể đưa ra những ý kiến, giáp pháp ứng dụng có ích cho đề tài Software Security đặc biệt là lỗ hổng tràn bộ đệm.

TÀI LIỆU THAM KHẢO

Du, W. (n.d.). Buffer-Overflow Vulnerability Lab. Retrieved from https://seedsecuritylabs.org/Labs_16.04/Software/Buffer_Overflow/

firmianay. (n.d.). buffer-overflow-vulnerability-lab.md. Retrieved from https://github.com/firmianay/Life-long-Learner/blob/master/SEED-labs/buffer- overflow-vulnerability-lab.md

li-xin-yi. (n.d.). Buffer-Overflow. Retrieved from

https://github.com/li-xin-yi/seedlab/tree/master/Buffer-Overflow

MeghaJakhotia. (n.d.). Buffer Overflow. Retrieved from https://github.com/MeghaJakhotia/ComputerSecurityAttacks/tree/master/Buffer %20Overflow

Một phần của tài liệu THỰC TẬP CƠ SỞ CHUYÊN NGÀNH AN TOÀN PHẦN MỀM NGHIÊN CỨU LỖ HỔNG TRÀN BỘ ĐỆM (BUFFER OVERFLOW VULNERABILITY LAB) (Trang 25 - 27)

Tải bản đầy đủ (PDF)

(27 trang)