Tìm hiểu về lỗi tràn bộ đệm (Buffer Overflow)
Thông tin tài liệu:
Nội dung trích xuất từ tài liệu:
Tìm hiểu về lỗi tràn bộ đệm (Buffer Overflow) TÌM HIỂU VỀ LỖI TRÀN BỘ ĐỆM (BUFFER OVERFLOW) KS. Đào Hương Giang Tổ NCPT An toàn thông tin. Tóm tắt: Tấn công Buffer Overflow có nguyên nhân gần giống với tấn công SQL Injection, khi người dùng hay hacker cung cấp các biên đầu vào hay dữ liệu vượt quá khả năng xử lý của chương trình làm cho hệ thống bị treo dẫn đến từ chối dịch vụ hay có khả năng bị các hacker lợi dụng chèn các chỉ thị trái phép nhằm thực hiện các đoạn mã nguy hiểm từ xa. Vì vậy, trong bài báo này chúng ta sẽ tìm hiểu những khái niệm cơ bản nhất về tấn công tràn bộ đệm, các cách tấn công, cách phát hiện và cách phòng chống để nâng cao kiến thức và kỹ năng phòng chống lại các cuộc tấn công Buffer Overflow. 1. GIỚI THIỆU. Tác hại của lỗi Buffer Overflow. Lỗi tràn bộ đệm (Buffer Overflow) là - Lỗi tràn bộ đệm xảy ra khi một ứng dụng một điều kiện bất thường khi tiến trình lưu trữ cố gắng ghi dữ liệu vượt khỏi phạm vi bộ dữ liệu vượt ra ngoài biên của bộ nhớ đệm có đệm (giới hạn cuối hoặc cả giới hạn đầu chiều dài cố định. Kết quả là dữ liệu có thể đè của bộ đệm). lên các bộ nhớ liền kề. Dữ liệu bị ghi đè có - Lỗi tràn bộ đệm có thể khiến ứng dụng thể bao gồm các bộ nhớ đệm khác, các biến và ngừng hoạt động, gây mất dữ liệu hoặc dữ liệu điều khiển luồng chảy của cả chương thậm chí giúp kẻ tấn công kiểm soát hệ trình (program flow control). thống hoặc tạo cơ hội cho kẻ tấn công thực hiện nhiều thủ thuật khai thác khác nhau. 2. NỘI DUNG. 2.1. Các kiểu lỗi Buffer Overflow thường gặp. Stack overflow: sẽ xuất hiện khi buffer tràn trong stack space và là hình thức tấn công phổ biến nhất của lỗi tràn bộ đệm. Mục đích: - Ghi đè một biến địa phương nằm gần bộ Nguyên nhân gây ra lỗi Buffer Overflow nhớ đệm trong stack để thay đổi hành vi của các chương trình, ứng dụng: của chương trình nhằm phục vụ ý đồ của hacker. - Phương thức kiểm tra bên (boundary) không được thực hiện đầy đủ hoặc là được - Ghi đè địa chỉ trả về trong khung stack. bỏ qua. Khi hàm trả về thực thi sẽ được tiếp tục tại địa chỉ mà hacker đã chỉ rõ, thường là tại - Các ngôn ngữ lập trình như là ngôn ngữ C, một bộ đệm chứa dữ liệu vào của người bản thân nó đã tiền ẩn các lỗi mà hacker có dùng. thể khai thác. Ví dụ: - Các phương thức strcat(), strcpy(), sprintf(), bcopy(), gets(), canf() trong ngôn ngữ C có thể được khai thác vì các hàm này không kiểm tra những buffer được cấp phát trên stack có kích thước lớn hơn dữ liệu được copy vào buffer hay không. 289 2.2. Các kiểu khai thác lỗi Buffer Overflow. Khai thác lỗi tràn bộ đệm trên stack. - Ghi đè một biến địa phương nằm gần bộ nhớ đệm trong stack để thay đổi hành vi của chương trình nhằm tạo thuận lợi cho kẻ tấn công. - Ghi đè địa chỉ trả về trong một khung stack (stack frame). Khi hàm trả về, thực thi sẽ được tiếp tục tại địa chỉ mà kẻ tấn công đã chỉ rõ, thường là tại một bộ đệm chứa dữ liệu vào người dùng. - Nếu không biết địa chỉ của phần dữ liệu người dùng cung cấp, nhưng biết rằng địa chỉ của nó được lưu trong một thanh ghi, thì có thể ghi đè lên địa chỉ trả về một giá trị địa chỉ của một opcode mà opcode này sẽ có tác dụng làm cho thực thi nhảy đến phần dữ liệu người dùng. - Cụ thể: nếu địa chỉ đoạn mã độc hai muốn chạy được ghi trong một thanh ghi R, thì một lệnh nhảy đến vị trí chứ opcode cho một lệnh jump R, call R (hay một lệnh tương tự với hiệu ứng nhảy đến địa chỉ ghi ...
Tìm kiếm theo từ khóa liên quan:
Lỗi tràn bộ đệm Tấn công tràn bộ đệm Tấn công SQL Injection Hệ thống bị treo dẫn Cách phát hiện lỗi Buffer OverflowTài liệu cùng danh mục:
-
Giáo trình Cấu trúc dữ liệu và thuật toán trên C++
74 trang 343 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 7 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
16 trang 334 0 0 -
180 trang 274 0 0
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 252 0 0 -
173 trang 247 2 0
-
Bài giảng Phân tích thiết kế và giải thuật - Chương 2: Kỹ thuật thiết kế giải thuật
80 trang 244 0 0 -
Kiến thức phần cứng máy tính - Sửa chữa nâng cấp và cài đặt máy tính xách tay Tập 2
483 trang 243 3 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 242 0 0 -
Bài giảng Phân tích thiết kế phần mềm: Chương 6 - Trường ĐH Ngoại ngữ - Tin học TP.HCM
12 trang 239 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 228 0 0
Tài liệu mới:
-
Khảo sát tình trạng dinh dưỡng trước mổ ở người bệnh ung thư đại trực tràng
9 trang 20 0 0 -
94 trang 17 0 0
-
Tham vấn Thanh thiếu niên - ĐH Mở Bán công TP Hồ Chí Minh
276 trang 18 0 0 -
Kết hợp luân phiên sóng T và biến thiên nhịp tim trong tiên lượng bệnh nhân suy tim
10 trang 17 0 0 -
Đề thi giữa học kì 1 môn Ngữ văn lớp 9 năm 2024-2025 có đáp án - Trường THCS Nguyễn Trãi, Thanh Khê
14 trang 20 0 0 -
Đánh giá hiệu quả giải pháp phát triển thể chất cho sinh viên Trường Đại học Kiến trúc Hà Nội
8 trang 17 0 0 -
Tỉ lệ và các yếu tố liên quan đoạn chi dưới ở bệnh nhân đái tháo đường có loét chân
11 trang 18 0 0 -
39 trang 18 0 0
-
Đề thi học kì 1 môn Tiếng Anh lớp 6 năm 2024-2025 có đáp án - Trường TH&THCS Quang Trung, Hội An
6 trang 18 1 0 -
Tôm ram lá chanh vừa nhanh vừa dễRất dễ làm, nhanh gọn mà lại ngon. Nhà mình
7 trang 18 0 0