Kỹ thuật khai thác lỗi tràn bộ đệm năm 2024

TẤN CÔNG BỘ ĐỆM [BUFFER OVERFLOW]

  1. Buffer Overflow là gì?

1. Buffer

Trước khi tìm hiểu Buffer Overflow là gì, ta cần biết được khái niệm về

Buffer. Buffer [bộ đệm dữ liệu] là vùng lưu trữ dữ liệu tạm thời trong khi chờ để

được chuyển đến vị trí khác. Buffer Overflow [hay Buffer Overrun] sẽ xảy ra

khi khối lượng dữ liệu vượt quá khả năng lưu trữ của buffer. Do đó, khi chương

trình cố gắng ghi dữ liệu vào trong buffer, nó sẽ ghi đè lên các bộ nhớ liền kề

khác.

2. Buffer Overflow

Lỗi tràn bộ đệm [Buffer Overflow] là một điều kiện bất thường khi tiến

trình lưu trữ 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 bị 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 cả chương

trình [program flow control].

- VD: Một chương trình cần nhập dữ liệu của người dùng với kích thước tối đa

256 bytes. Hệ điều hành sẽ cấp phát một vùng trong bộ nhớ máy tính [đó chính

là một bộ đệm – buffer] dành cho chương trình để lưu trữ 256 bytes hoặc ít hơn.

Nếu người dùng nhập vào quá 256 bytes và chương trình không kiểm tra điều

này, tràn bộ đệm sẽ xảy ra.

3. Làm thế nào những kẻ tấn công khai thác lỗi Buffer Overflow?

Các hacker có thể cố tình đưa một input vào chương trình, làm cho

chương trình lưu trữ input đó vào một buffer không đủ bộ nhớ. Từ đó ghi đè lên

các phần bộ nhớ được kết nối với buffer.

Nếu hacker biết cách bố trí bộ nhớ của chương trình, chúng có thể cố tình

gửi các input mà buffer không thể lưu trữ. Từ đó ghi đè lên các executable code

bằng code của chúng. Chẳng hạn, hacker có thể ghi đè lên một con trỏ [một đối

Chủ Đề