Ktl-icon-tai-lieu

buffer overflow

Được đăng lên bởi hns951993
Số trang: 5 trang   |   Lượt xem: 662 lần   |   Lượt tải: 10 lần
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.

Tác hại của lỗi Buffer Overflow.

GIỚI THIỆU.

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).

- Lỗi tràn bộ đệm xảy ra khi một ứng dụng
cố gắng ghi dữ liệu vượt khỏi phạm vi bộ
đệm (giới hạn cuối hoặc cả giới hạn đầu
của bộ đệm).
- Lỗi tràn bộ đệm có thể khiến ứng dụng
ngừng hoạt động, gây mất dữ liệu hoặc
thậm chí giúp kẻ tấn công kiểm soát hệ
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ộ
nhớ đệm trong stack để thay đổi hành vi
của chương trình nhằm phục vụ ý đồ của
hacker.

Nguyên nhân gây ra lỗi Buffer Overflow
của các chương trình, ứng dụng:
- Phương thức kiểm tra bên (boundary)
không được thực hiện đầy đủ hoặc là được
bỏ qua.

- Ghi đè địa chỉ trả về trong khung stack.
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
một bộ đệm chứa dữ liệu vào của người
dùng.

- Các ngôn ngữ lập trình như là ngôn ngữ C,
bản thân nó đã tiền ẩn các lỗi mà hacker có
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ộ đ...
289
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 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 dliệu vượt quá khnăng xử của
chương trình làm cho hthống bị treo dẫn đến từ chối dịch vụ hay khả năng bị các hacker lợi
dụng chèn các chthị trái phép nhằm thực hiện các đoạn mã nguy hiểm txa. Vì vậy, trong bài
báo này chúng ta stìm hiểu những khái niệm 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.
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ữ
dliệ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 thể đè
lên các bnhliền kề. Dữ liệu bị ghi đè
thể bao gồm các bộ nhớ đệm khác, các biến và
dliệu điều khiển luồng chảy của cả chương
trình (program flow control).
Nguyên nhân gây ra lỗi Buffer Overflow
của các chương trình, ứng dụng:
- Phương thức kiểm tra bên (boundary)
không được thực hiện đầy đủ hoặc được
bỏ qua.
- Các ngôn nglập trình như là ngôn ngữ C,
bản thân đã tin ẩn các lỗi mà hacker
thể khai thác.
- Các phương thức strcat(), strcpy(),
sprintf(), bcopy(), gets(), canf() trong ngôn
ng C thể được khai thác vì các hàm
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.
Tác hại của lỗi Buffer Overflow.
- Lỗi tràn bđệm xy ra khi một ng dụng
cgắng ghi dữ liệu vượt khỏi phạm vi bộ
đệm (giới hạn cuối hoặc cả giới hạn đầu
của bộ đệm).
- Lỗi tràn bộ đệm có thể khiến ứng dụng
ngừng hoạt động, gây mất dữ liệu hoc
thậm chí giúp k tấn công kiểm soát h
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 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ộ
nh đệm trong stack để thay đổi hành vi
của chương trình nhằm phục vụ ý đồ của
hacker.
- Ghi đè địa chỉ trả v trong khung stack.
Khi m tr v thực thi sẽ được tiếp tục tại
địa chỉ hacker đã chrõ, thường là tại
một bộ đệm chứa dữ liệu vào của người
dùng.
Ví dụ:
buffer overflow - Trang 2
buffer overflow - Người đăng: hns951993
5 Tài liệu rất hay! Được đăng lên bởi - 1 giờ trước Đúng là cái mình đang tìm. Rất hay và bổ ích. Cảm ơn bạn!
5 Vietnamese
buffer overflow 9 10 970