Danh mục

Đề tài: Tìm hiểu về lỗi tràn bộ đệm, cách khai thác, các phòng chống (Demo)...

Số trang: 40      Loại file: pptx      Dung lượng: 1.54 MB      Lượt xem: 9      Lượt tải: 0    
tailieu_vip

Hỗ trợ phí lưu trữ khi tải xuống: 20,000 VND Tải xuống file đầy đủ (40 trang) 0
Xem trước 4 trang đầu tiên của tài liệu này:

Thông tin tài liệu:

Lỗi tràn bộ đệm là một điều kiện bất thường khi một tiến trình lưu dữ liệu vượt ra ngoài biên của bộ nhớ đệm có chiều dài cố định. Kết quả là dữ liệu có thể đè lên các bộ nhớ liền kề.
Nội dung trích xuất từ tài liệu:
Đề tài: Tìm hiểu về lỗi tràn bộ đệm, cách khai thác, các phòng chống (Demo)... LOGOCơ Sở An Toàn Thông Tin4. Tìm hiểu về lỗi tràn bộ đệm,cách khai thác, các phòng chống(Demo)... Nhóm 5 : Hoàng Hải Anh Đoàn Mạnh Hùng Trần Thu Lộc Đỗ Văn Trường LOGOTóm Tắt Nội Dung 1 Giới thiệu về buffer overflow. 2 Stack overflow. 3 Heap overflow. 4 Cách khai thác buffer overflow. 5 Cách phòng tránh buffer overflow. LOGOI.Tổng quan về buffer overflow Định nghia: Lỗi tràn bộ đệm là một điều kiện bất thường khi một tiến trình lưu dữ liệu vượt ra ngoài biên của bộ nhớ đệm có chiều dài cố định. Kết quả là dữ liệu có thể đè lên các bộ nhớ liền kề. Dữ liệu bi ghi đè có thề bao gồm các bộ nhớ đệm khác,các biến và dữ liệu điều khiển luồng chảy của chương trình (program flow control). Các lỗi tràn bộ đệm có thề làm cho tiến trình bị đổ vỡ hoặc cho ra kết quả sai. Các lỗi này có thể được kích hoạt bởi các dữ liệu vào được thiết kế đặc biệt để thưc thi các đoạn mả phá hoại hoặc để làm cho chương trình hoạt động không như mong đợi. Bằng cách đó các lỗi tràn bộ đệm gây ra nhiều lổ hổng bảo mật đối với phần mềm và tạo cơ sở cho nhiều thủ thuật khai thác. LOGOI.Tổng quan về buffer overflowv Trong các ngôn ngữ lập trình thì ngôn ngữ C dễ sinh ra các lỗi tràn nhớ mà attacker có thể khai thác .v Trong ngôn ngữ C,các chuỗi (string ) hay các buffer được thể hiện như sau: Con trỏ (pointer) sẽ chỉ trỏ vào byte đầu tiên của chuỗi haybuffer đó,và chúng ta xác định được kết điểm kết thúc khicon trỏ trỏ đến 1 byte null ->không xác định độ dài của đốitượng nhập vào ->có thể copy 1 buffer có độ dài lớn vào 1buffer có độ dài nhỏ hơn ->gây tràn nhớ(buffer overflow) LOGOI.Tổng quan về buffer overflowv Thông thường có 2 cách khai thác lỗi buffer overflow mà attacker có thể sử dụng:Ø Khai thác dựa vào các lỗ hỏng phần mền thông qua ngôn ngữ lập trình(phần mền viết bằng ngôn ngữ C)Ø Khai thác các trang web có tương tác người dùng nhưng không ràng buộc dữ liệu nhập vào như các trường username ,password.. LOGO I.Tổng quan về buffer overflowv Nguyên nhân gây ra các lỗi buffer overflow của các chương trình/ứng dụng:Ø Phương thức kiểm tra biên (boundary) không được thực hiện đầy đủ ,hoặc là được bỏ qua.Ø Các ngôn ngữ lập trình,như là ngôn ngữ C ,bản thân nó đã tiềm ẩn. các lỗi mà hacker có thể khai thác.Ø Các phương thưc strcat(),strcpy(),sprintf(),bcopy(), gets() ,và canf() trong ngôn ngữ C có thể được khai thác vì cáchàm này không kiểm tra xem những buffer được cấp phát trênstack có kích thước lớn hơn dữ liệu được copy cào buffer haykhông? Những chương trình /ứng dụng được lập trình không tốt khitạo ra nó (khả năng lập trình kém).I.Tổng quan về buffer overflow LOGOv Một lỗi buffer overflow xuất hiện khi buffer cố gắng cấp phát 1 không gian lưu trữ có dữ liệu lớn hơn khả năng lưu trữ của nóv Vd: LOGOI.Tổng quan về buffer overflowCó hai kiểu buffer overflow chính:Ø Stack overflowØ Heap over flow Stack và heap là địa điểm lưu trữ cung cấp cho cácbiến khi chạy. một chương trình .Biến được lưu trữ trongstack hoặc heap cho đến khi chương trình có nhu cầu sửdụng. Stack:là nơi lưu trữ tĩnh của không gian bộ nhớ. Heap là nơi lưu trữ động của không gian bộ nhớ ,đượcsinh ra khi chạy một chương trình. LOGOI.Tổng quan về buffer overflowv Thông thường có 2 cách khai thác lỗi buffer overflow mà attacker có thể sử dụng:Ø Khai thác dựa vào các lỗ hỏng phần mền thông qua ngôn ngữ lập trình(phần mền viết bằng ngôn ngữ C)Ø Khai thác các trang web có tương tác người dùng nhưng không ràng buộc dữ liệu nhập vào như các trường username ,password.. LOGOII.Stack overflowGiới thiệu về stack:v Stack là một kiểu cấu trúc giữ liệu hoạt động theo co chế LIFO (last in first out) được máy tính sử dụng để chuyền các đối số vào các hàm để tham chiếu đến các biến cục bộ.v Stack sẽ lưu giữ tất cả các thông tin mà hàm cầnv Stack được khởi tạo khi bắt đầu của một hàm và được “phóng thích” khi hàm kết thúc. LOGOII.Stack overflowv Stack overflow xuất hiện khi buffer tràn trong stack space.v Đoạn code độc hại sẽ được push vào stackv Lỗi t ...

Tài liệu được xem nhiều: