Home » Tài Liệu kỹ thuật » bảo mật thông tin » Buffer Overflow là gì? mày mò về lỗi tràn bộ đệm

Buffer Overflow là gì?

Trước khi khám phá Buffer Overflow là gì, ta cần biết được định nghĩa về Buffer. Buffer (bộ đệm dữ liệu) là vùng lưu trữ dữ liệu tạm bợ thời trong lúc chờ và để được chuyển đến vị trí khác. Buffer Overflow (hay Buffer Overrun) sẽ xẩy ra khi cân nặng dữ liệu vượt quá kĩ năng lưu trữ của buffer. Bởi đó, lúc chương trình nỗ lực ghi dữ liệu vào vào buffer, nó vẫn ghi đè lên các bộ nhớ lưu trữ liền kề khác.

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


Lấy ví dụ, một buffer lưu trữ thông tin đăng nhập gồm thể được thiết kế theo phong cách sao mang đến input username cùng password là 8 byte. Do đó, với các transaction bao gồm input đến 10 byte, chương trình rất có thể ghi tài liệu thừa (2 byte) thừa quá giới hạn của buffer.


Vậy ảnh hưởng của Buffer Overflow là gì? hiện tượng Buffer Overflow hoàn toàn có thể gây ra ảnh hưởng xấu đến toàn bộ các loại phần mềm. Lý do thường là vì input không nên định dạng, hoặc không gian lưu trữ không được phân bổ đủ mang đến buffer. Nếu như transaction ghi đè lên các executable code (mã thực thi), chương trình bao gồm thể vận động không bao gồm xác, đưa ra công dụng sai, crash. Trong khi còn hoàn toàn có thể dẫn đến nhiều lỗi truy hỏi cập bộ nhớ lưu trữ khác.


*
*

Vậy giải pháp chống Buffer Overflow là gì? những developer rất có thể ngăn chặn lỗ hổng Buffer Overflow thông qua các biện pháp bảo mật với code. Hoặc đơn giản là thực hiện những ngữ điệu có tích hợp tài năng bảo vệ.

Bên cạnh đó, những hệ điều hành và quản lý hiện đại đều phải sở hữu thêm khả năng đảm bảo runtime. Vào đó, ba biện pháp bảo đảm an toàn phổ trở thành nhất là:

Address Space Layout Randomization (ASLR) – dịch rời ngẫu nhiên xung quanh các không gian add của vùng dữ liệu. Thông thường, các cuộc tấn công Buffer Overflow phải biét được địa chỉ của executable code, và vấn đề ngẫu nhiên các không gian địa chỉ sẽ hoàn toàn vô hiệu hóa cách thức tấn công này.Bảo vệ việc xúc tiến dữ liệu Falg một trong những vùng bộ lưu trữ là non-executable (không thể thực thi) hoặc executable (có thể thực thi) để chống chặn các cuộc tấn công chạy mã làm việc trong vùng non-executable.Structured exception handler overwrite protection (SEHOP) – giúp chống chặn những code độc hại tấn công SEH (Ngoại lệ bao gồm cấu trúc) – một hệ thống được tích hợp sẵn để làm chủ các nước ngoài lệ (exception) của phần cứng và phần mềm. Tự đó, phòng chặn những hacker lợi dụng kỹ thuật khai quật ghi đè SEH. Ở cấp độ chức năng, việc ghi đè SEH hoàn toàn có thể đạt được bằng phương pháp sử dụng một stack-based Buffer Overflow dể ghi đè một bạn dạng ghi đăng ký ngoại lệ, được lưu trữ trong stack của thread.

Xem thêm: Sự Khác Nhau Giữa Refund Và Reimburse Là Gì ? Định Nghĩa, Ví Dụ, Giải Thích

Dĩ nhiên, những biện pháp bảo mật về code hay hệ thống vẫn chưa hoàn toàn là đủ để ngăn chặn Buffer Overflow attack. Khi tổ chức triển khai phát hiện ngẫu nhiên lỗ hổng Buffer Overflow nào, đề nghị phải lập cập vá các ứng dụng bị hình ảnh hưởng. Đồng thời bảo vệ người dùng của phần mềm có thể truy cập được các bản vá đó.

Hy vọng sau bài viết này, các bạn có thể hiểu được Buffer Overflow là gì, ảnh hưởng của nó tương tự như các cách có thể ngăn ngăn được Buffer Overflow attack. Chúc chúng ta thành công!