Buffer Overflow Là Gì

      74

Tràn bộ đệm chắc hẳn rằng là một dạng lỗ hổng bảo mật phần mềm được nghe biết nhiều nhất. Phần nhiều các nhà cải tiến và phát triển này hầu như biết lỗ hổng là gì nhưng những cuộc tấn công tràn bộ đệm đều vẫn còn đang xảy ra trên các ứng dụng kể cả những ứng dụng mới được cải cách và phát triển lẫn những áp dụng đã được sinh ra từ lâu.

Bạn đang xem: Buffer overflow là gì

Đang xem: Buffer overflow là gì

Tràn cỗ đệm là gì ?

Lỗi tràn cỗ đệm hay còn gọi là ( Buffer Overflow ) thể hiện một sự kiện không bình thường của lịch trình khi quy trình lưu trữ dữ liệu vượt ra phía bên ngoài biên của một bộ nhớ đệm được cấp phát có chiều dài nhất định. Hiệu quả dẫn đến dữ liệu có thể bị ghi đè lên trên các bộ lưu trữ liền kề. Dữ liệu bị ghi đè bao gồm thể bao hàm các bộ lưu trữ đệm khác, những biến và các thanh ghi điều khiển luồng trang bị tự của cả chương trình. Tai hại của lỗi tràn bộ đệm rất có thể gây ra rất có thể làm lỗi dữ liệu, làm cho hỏng lịch trình hoặc gây nên việc thực thi mã độc.

Tràn bộ đệm tất cả thể tác động tới mọi các loại phần mềm, bọn chúng thường là các tác dụng của đầu vào không đúng format hoặc không phân bổ đủ không gian lưu trữ cho bộ đệm. Một ví dụ đơn giản và dễ dàng dưới đây, phân bổ bộ lưu trữ cho thông tin đăng nhập được thiết kế với để mong đợi tên người dùng và mật khẩu được nhâp vào là 8 byte. Do vậy trường hợp ai đó cố tình nhập vào 10 byte chương trình có thể ghi quá quá tài liệu qua oắt giới bộ đệm.

*
*
*
*
*
*

Trong stack có 3 thanh ghi mà lại ta sẽ đề nghị hiểu thật kỹ để gắng được cơ chế hoạt động của stack:


EBP ( Extended Base Pointer ): Lưu showroom của vị trí nhưng dữ liệu đầu tiên được nhập vào stack vị vậy nó luôn luôn được trỏ cho tới nền của frame hiện nay tạiESP ( Extended Stack pointer ): Lưu địa chỉ cửa hàng tiếp theo buộc phải được nhập vào stack nên nó luôn trỏ cho tới đỉnh của stackEIP ( Extended Instruction Pointer ): Lưu showroom tiếp theo của lệnh cần được thực thi.

Quá trình điện thoại tư vấn hàm được chia thành ba bước như sau:

Khởi đầu (Prologue): giữ lại các trạng thái stack, cấp phát vùng nhớGọi hàm (call): đẩy EIP vào stack cùng nhảy tới add của hàmKết thúc (Epilogue): phục hồi lại trạng thái như lúc trước khi điện thoại tư vấn hàm

Ví dụ: add (3, 4)

Chương trình đang push 3 cùng 4 vào stack

Thông thường các biến toàn thể và tham số được truy hỏi xuất qua độ dời của địa chỉ (offset) đối với EBP. Trong đó:

EBP-n: Local variablesEBP+n: Parameters

Qua kia giả sử bạn có thể ghi đè lên con trỏ EIP với dữ liệu trỏ đến địa chỉ cửa hàng của một vùng đựng mã triển khai mà bọn họ muốn thì điều gì đang xảy ra?Một lấy ví dụ như về tràn bộ nhớ lưu trữ đệm bên trên stack cùng cách khai thác nó

Một lấy ví dụ như về tràn bộ lưu trữ đệm trên stack và cách khai thác nó

Phần mền mãi mãi lỗ hổng tràn bộ đệm mình thực hiện ở đó là Easy RM to MP3 Converter. Hồ hết người rất có thể tải nó về tại đây, Sau khi setup xong:

Đây là một trong những phần mềm chất nhận được convert trường đoản cú Realplayer streaming clips sang trọng Mp3 bằng cách load và lựa chọn 1 file bản thân muốn.

Xem thêm: How To Configure Contact Form 7 For Your Wordpress Site, Contact Form 7

Tham khảo cụ thể ở đây vày thietkewebhcm.com.vn không cho viết lâu năm quá :(.

Kết quả mình đã chèn được đoạn code hiển thị dialog box windows có nội dung là Hello World.


Hậu quả lúc tồn trên lỗ hổng tràn cỗ đệmCode injectionDDOS hệ thốngLeo thang sệt quyền….Cách hạn chế lỗ hổng tràn cỗ đệm

Đối với một số trong những ngôn ngữ lập trình sẵn như C:

Khai báo không gian bộ lưu trữ lớn hơn các lần so với dữ liệu được nhập vào.Xử lý những xâu an toàn. Tránh những lỗi thường gặp mặt khi cách xử trí xâu như: Unbounded string copies, Null-termination errors, Write outside array bounds, Off-by-one errors, Improper data sanitizationCác hàm bắt buộc sử dụng:

Hay so với các hệ điều hành và quản lý cũng đều cung cấp cơ chế đảm bảo an toàn bộ nhớ:

Address space randomization (ASLR): dịch rời ngẫu nhiên xung quanh các vị trí không gian địa chỉ cửa hàng của những vùng dữ liệu. Thông thường các cuộc tiến công tràn bộ đệm nên biết được nơi tàng trữ của mã triển khai và vấn đề ngẫu nhiên ko gian địa chỉ làm đến điều này hầu như không thể xảy ra.Data execution prevention: gắn thêm cờ bất chợt vào các khoanh vùng nhất định của bộ lưu trữ là không được triển khai hoặc cần yếu thực thi, vấn đề này ngăn chặn việc chạy mã thực thi trong số vùng bị cấm.Structured exception handler overwrite protection (SEHOP): Giúp ngăn ngừa mã độc tiến công từ Structured Exception Handling (SEH) — một khối hệ thống tích vừa lòng để quản lý các ngoại lệ phần cứng với phần mềm. Cho nên ngăn ngăn kẻ tấn công có thể sử dụng kỹ thuật khai quật ghi đè SHE. Ở cấp độ hàm, ghi đè SHE đạt được bằng phương pháp sử dụng tràn cỗ đệm dựa trên stack nhằm ghi đè lên phiên bản ghi đăng kí nước ngoài lệ được tàng trữ trên luồng của phòng xếp.

Đây là một trong những ghi chép của bản thân về sự việc tràn bộ nhớ đệm. Xin gởi lời cảm ơn tới bạn Thầy môn Lập trình an toàn đã truyền cảm giác cho mình về mọi kiến thức có ích này.