Kỹ thuật tấn công buffer overflow là gì? cách ngăn chặn buffer over

     

Tràn bộ đệm có lẽ là một dạng lỗ hổng bảo mật ứng dụng được biết đến những độc nhất. Hầu không còn các nhà phát triển này hầu như biết lỗ hổng là gì nhưng lại các cuộc tiến công tràn bộ đệm số đông vẫn tồn tại đang xảy ra bên trên các áp dụng kể cả đều ứng dụng new được cải tiến và phát triển lẫn hầu hết áp dụng đã có được xuất hiện từ tương đối lâu.

Bạn đang xem: Kỹ thuật tấn công buffer overflow là gì? cách ngăn chặn buffer over

Đang xem: Buffer overflow là gì

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

Lỗi tràn bộ đệm hay nói một cách khác là ( Buffer Overflow ) trình bày một sự khiếu nại không bình thường của chương trình Lúc quy trình lưu trữ tài liệu vượt ra phía bên ngoài biên của một bộ nhớ lưu trữ đệm được cấp phát có chiều dài nhất mực. Kết trái dẫn cho tài liệu có thể bị ghi đè lên những bộ nhớ lưu trữ cạnh bên. Dữ liệu bị ghi đè cổ hoàn toàn có thể bao hàm những bộ nhớ đệm khác, những biến đổi với các thanh hao ghi tinh chỉnh luồng sản phẩm tự của tất cả công tác. Tác hại của lỗi tràn cỗ đệm hoàn toàn có thể tạo ra có thể có tác dụng lỗi tài liệu, có tác dụng hỏng công tác hoặc gây nên câu hỏi xúc tiến mã độc.

Tràn cỗ đệm rất có thể ảnh hưởng cho tới các các loại ứng dụng, chúng thường là những kết quả của đầu vào không đúng định dạng hoặc không phân chia đầy đủ không khí tàng trữ mang lại cỗ đệm. Một ví dụ dễ dàng và đơn giản sau đây, phân bổ bộ lưu trữ mang lại đọc tin singin được thiết kế với nhằm ý muốn chờ tên người tiêu dùng với mật khẩu được nhâp vào là 8 byte. Vì vậy nếu như ai kia cố tình nhtràn lên 10 byte lịch trình rất có thể ghi thừa thừa tài liệu qua oắt con giới bộ đệm.


*
Kỹ Thuật Tấn Công Buffer Overflow Là Gì ? Buffer Overflow Là Gì 6

*
Kỹ Thuật Tấn Công Buffer Overflow Là Gì ? Buffer Overflow Là Gì 7

Tấn công tràn bộ đệm được chia thành nhì loại:

Stack-based buffer overflows: Hay nói một cách khác là tràn cỗ đệm trên staông chồng là một trong những giữa những cách làm tiến công phổ cập hơn. Nó tận dụng bộ nhớ lưu trữ ngăn uống xếp chỉ mãi mãi vào thời gian thực hiện của hàm.Heap-based attacks: Hay còn gọi là tràn bộ đệm trên vùng heap thường xuyên cực nhọc tiến hành rộng, liên quan tới sự việc làm cho lấp đầy không gian bộ lưu trữ được phân bổ cho 1 chương trình bên cạnh bộ nhớ lưu trữ được áp dụng cho các hoạt động chạy hiện nay.Tổ chức cỗ nhớ

Trước hết bọn họ để mắt tới lại một chút ít về cách tổ chức của bộ lưu trữ. Tổ chức của bộ nhớ lưu trữ bao hàm các phân đoạn đó là code, data, .bss, heap, stack:

*
Kỹ Thuật Tấn Công Buffer Overflow Là Gì ? Buffer Overflow Là Gì 8

*
Kỹ Thuật Tấn Công Buffer Overflow Là Gì ? Buffer Overflow Là Gì 9

Phân đoạn text/code: Lưu trữ mã lệnh đã làm được biên dịch của công tác, tài liệu sinh sống vùng này chỉ hiểu cùng có kích thước thắt chặt và cố định ( không biến đổi ) vì chưng vậy phần đông làm việc ghi lên vùng dữ liệu này phần lớn gây lỗi segmentation violation.Phân đoạn data: Lưu trữ những dữ liệu chung bao gồm khởi tạo quý giá nhỏng biến hóa toàn bộ cùng biến toàn bộ cần kích thước cố định.Phân đoạn .bss: Lưu trữ tài liệu chung cơ mà chưa được khởi chế tác quý giá như biến toàn thể cùng trở thành toàn bộ.Phân đoạn heap: Được sử dụng mang đến mục đích cấp phép bộ lưu trữ đụng từ tốt đến cao. Sở lưu giữ heap sẽ không còn auto được giải pngóng.Phân đoạn stack: Được sử dụng nhằm tàng trữ các tsay đắm số của hàm với những đổi mới toàn bộ trong những số đó bao hàm cả địa chỉ trả về trong các hàm được Gọi. Theo phong cách thiết kế vi giải pháp xử lý intel, staông xã được cấp phát bộ nhớ lưu trữ từ cao xuống rẻ. Dữ liệu trong số đội được Call là staông chồng frame cùng hoạt động theo bề ngoài LIFO (Last In First Out). khi call hàm, khởi sản xuất hàm và trở lại tự lịch trình bé đã khiến cho staông chồng thay đổi.

Stack frame là 1 vùng của staông xã được thiết lập danh cho các quý giá được đưa vào staông xã. Địa chỉ trả về của frame được tàng trữ vào tkhô hanh ghi EBP ( so với vi giải pháp xử lý Hãng sản xuất Intel ). Ví dụ sau minc họa đến staông chồng frame, mang sử đó là một luồng call hàm của chương thơm trình:

*
Kỹ Thuật Tấn Công Buffer Overflow Là Gì ? Buffer Overflow Là Gì 10

Trong stack bao gồm 3 thanh khô ghi nhưng mà ta vẫn đề xuất phát âm thật cẩn thận nhằm nạm được chính sách hoạt động của stack:

EBP ( Extended Base Pointer ): Lưu địa chỉ của địa điểm mà lại dữ liệu trước tiên được nhtràn vào staông xã bởi vì vậy nó luôn được trỏ tới nền của frame hiện tạiESPhường. ( Extended Stack pointer ): Lưu ảnh hưởng tiếp theo nên được nhập vào stachồng cho nên nó luôn luôn trỏ cho tới đỉnh của stackEIPhường ( Extended Instruction Pointer ): Lưu tương tác tiếp sau của lệnh đề nghị được thực thi.

Quá trình Gọi hàm được chia thành ba bước nhỏng sau:

Khởi đầu (Prologue): bảo quản những tâm trạng staông xã, cấp phép vùng nhớCall hàm (call): đẩy EIPhường vào staông xã cùng nhảy tới tác động của hàmKết thúc (Epilogue): khôi phục lại trạng thái như trước đó Khi Hotline hàm

Ví dụ: add (3, 4)

Cmùi hương trình sẽ push 3 và 4 vào stack

thường thì những biến chuyển toàn bộ với tmê say số được truy vấn xuất qua độ dời của địa điểm (offset) so với EBPhường. Trong đó:

EBP-n: Local variablesEBP+n: Parameters

Qua kia trả sử bạn cũng có thể ghi đè lên nhỏ trỏ EIP với dữ liệu trỏ cho thúc đẩy của một vùng đựng mã triển khai mà họ mong thì điều gì sẽ xảy ra?Một ví dụ về tràn bộ nhớ đệm bên trên stachồng và bí quyết khai thác nó

Một ví dụ về tràn bộ lưu trữ đệm bên trên staông chồng cùng biện pháp khai thác nó

Phần mền trường thọ lỗ hổng tràn bộ đệm mình thực hiện nghỉ ngơi đây là Easy RM khổng lồ MP3 Converter. Mọi bạn hoàn toàn có thể tải nó về tại đây, Sau lúc thiết đặt xong:

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

Xem thêm:

Tyêu thích khảo chi tiết ở đây vày jdomain.vn cấm đoán viết lâu năm thừa :(.

Kết trái tôi đã chèn được đoạn code hiển thị dialog box windows tất cả nội dung là Hello World.

Hậu trái Khi sống thọ lỗ hổng tràn bộ đệmCode injectionDDOS hệ thốngLeo thang sệt quyền….Cách khắc phục và hạn chế lỗ hổng tràn bộ đệm

Đối với một số trong những ngữ điệu lập trình nhỏng C:

Knhị báo không khí bộ lưu trữ lớn hơn các lần đối với dữ liệu được nhập lệ.Xử lý các xâu bình yên. Tránh các lỗi thường xuyên chạm chán Khi xử lý xâu như: Unbounded string copies, Null-termination errors, Write outside array bounds, Off-by-one errors, Improper data sanitizationCác hàm đề nghị sử dụng:

Hay đối với các hệ quản lý điều hành cũng các hỗ trợ phương pháp đảm bảo an toàn bộ nhớ:

Address space randomization (ASLR): Di gửi bỗng nhiên bao phủ những địa chỉ không khí can hệ của những vùng dữ liệu. thường thì những cuộc tiến công tràn bộ đệm cần biết được khu vực lưu trữ của mã xúc tiến và Việc bỗng dưng không gian xúc tiến tạo cho vấn đề đó hầu hết bắt buộc xẩy ra.Data execution prevention: Gắn cờ ngẫu nhiên vào những Quanh Vùng nhất thiết của bộ nhớ là không được triển khai hoặc quan trọng triển khai, vấn đề này ngăn chặn bài toán chạy mã xúc tiến trong số vùng bị cấm.Structured exception handler overwrite protection (SEHOP): Giúp ngăn chặn mã độc tấn công tự Structured Exception Handling (SEH) — một khối hệ thống tích phù hợp nhằm làm chủ các nước ngoài lệ phần cứng cùng phần mềm. Do đó ngăn chặn kẻ tiến công có thể áp dụng nghệ thuật khai quật ghi đtrằn SHE. Tại Lever hàm, ghi đtrằn SHE đã đạt được bằng phương pháp sử dụng tràn bộ đệm dựa vào staông xã nhằm ghi đè lên trên phiên bản ghi đăng kí ngoại lệ được lưu trữ trên luồng của ngnạp năng lượng xếp.

Đây là một vài ghi chép của chính mình về vấn đề tràn bộ nhớ đệm. Xin gửi lời cảm ơn cho tới bạn Thầy môn Lập trình an ninh vẫn truyền xúc cảm cho chính mình về đa số kỹ năng hữu ích này.


Chuyên mục: Domain Hosting