Buffer overflow attack là gì

      14

Knhì thác lỗi tràn bộ đệm được được cho là đầu năm 1988, và đến năm 1996 đã có bài giải đáp từng bmong đến việc knhì thác các lỗ hổng tràn bộ đệm trên stack. Lỗi tràn bộ đệm là khi bộ nhớ bị ghi đè nhiều lần bên trên ngnạp năng lượng xếp. Thông thường nó xảy ra vì chưng người dùng gởi một lượng lớn dữ liệu đến hệ thống ứng dụng, kết quả là dữ liệu đó sẽ đè lên các vị trí bộ nhớ liên kề.

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

Tấn công buffer overflow có nguyên ổn nhân gần như thể với tấn Squốc lộ Injection , khi người tiêu dùng giỏi hacker cung cấp các biên đầu vào tốt dữ liệu vượt quá khả năng xử lý của chương trình làm đến hệ thống bị treo, dẫn tới từ chối dịch vụ xuất xắc có tài năng bị các hacker lợi dựng chèn các sai khiến trái phép nhằm thực hiện các đoạn mã nguy hiểm từ xa. Nguyên ổn nhân chính có thể là do:

Phương thơm thức chứng thực biên ko được thực hiện đầy đủ hoặc là được bỏ qua.Các ngôn ngữ lập trình, nlỗi C bản thân nó đã tiềm ẩn các lỗi mà hacker có thể knhị thác. Trong C xem thêm các hàm không kiểm tra những buffer được cấp phát bên trên staông chồng có kích thcầu lớn hơn dữ liệu được copy và bộ đệm hay không.

Nội dung

2.1 Các kiểu knhị thác lỗi buffer overlfow

Khai thác lỗi tràn bộ đệm trên stack:

Ghi đè một biến địa phương thơm nằm gần bộ đệm trong staông chồng để gắng đổi hành vi của chương thơm trình nhằm tạo thuận lợi đến kẻ tấn côngGhi đè địa chỉ trả về vào một size stachồng. khi hàm trả về, thực thi sẽ được tiếp tục tại địa chỉ mà kẻ tấn công đã chỉ rõ, thường là tại một bộ đệm chứa dữ liệu vào người dùng

Ví dụ: lúc dữ liệu tràn xuống staông xã của một hàm (function) đang làm việc thì tài liệu có thể đè cổ vào liên tưởng trả về (return address) của hàm khiến cho nó trỏ đi nơi khác. Kẻ tấn công (Intruder) có thể vứt một quãng mã vào “chỗ khác” này để phá phách, truy cập dữ liệu, vv... (chỗ khác này thường xuyên là nằm ở chính bộ đệm đang bị tràn.)

Knhị thác lỗi tràn bộ đệm trên heap

Một hiện tượng tràn bộ đệm xảy ra tỏng quần thể vực dữ liệu heap được phát âm là hiện tượng tràn heap và có thể khai thác được bằng các kỹ thuật khác với các lỗi trần stackBộ nhớ heap được cấp phát động bởi các ứng dụng thời gian chạy và thường chứa dữ liệu của chương thơm trình.Việc knhị thác được thực hiện bằng cách phá dữ liệu này theo các cách tuyệt đỉnh để làm cho ứng dụng ghi đè lên các cấu trúc ́dữ liệu nội bộ, chẳng hạn các nhỏ trỏ của danh sách liên kết.

Một số cách knhì thác khác:

Khai thác dựa vào các lỗ hổng phần mềm thông qua ngôn ngữ lập trình (phần mềm thương thơm được viết bằng ngôn ngữ C).Knhị thác các trang web có tương tác người dùng cơ mà không ràng buộc dữ liệu nhập nlỗi username, password...

Xem thêm: Chuyển Uefi Sang Legacy Dell, Cách Chuyển Legacy Bios Sang Uefi

2.2 Cách phát hiện lỗi buffer overflow:

Bạn thử copy 1 số ngulặng, dẫu vậy cố gắng vì bạn giữ hộ 1 lượng lớn dữ liệu để nó chiếm không gian bộ nhớ gấp đôi bộ nhớ dành mang lại số nguyên ổn. Với việc copy tùy ý, lượng dữ liệu lớn này sẽ được copy vào quần thể vực kế tiếp và được đặt trong ngăn xếp. thường thì dữ liệu này được lôi ra khỏi ngnạp năng lượng xếp và thực thi. Điều này có thể ngay lập tức lập tức làm hỏng hóc vùng nhớ dữ liệu khác. Lỗi tràn bộ đệm được sử dụng để tấn công vào máy chủ giành quyền kiểm soát mà bình thường ko hề xảy ra hoặc nó khởi động cmùi hương trình từ ngăn uống xếp.Một trình biên dịch mà phát âm các thuộc tính của tlỗi viện thời gian tiêu chuẩn sẽ biết rằng bộ đệm bây giờ chứa dữ liệu từ một thời điểm không xác định trong hệ thống tập tin bên ngoài chương trình và có kỹ năng bị nguy hiểmSự dụng phân tích mã nguồn để tìm lỗi tràn bộ đệm vào mã thực thi một các chính xác yêu cầu phải phát âm biết sâu về code. Và công nghệ của trình biên dịch được thiết kế với mục đích tìm kiếm lỗi tràn bộ đệm hiệu quả và chính xác hơn các phương pháp khác.

2.3 Biện pháp ngnạp năng lượng chặn

Việc xử lý trmong lúc phát âm có thể làm giảm bớt lỗi tràn bộ đêm nhưng lại không thể ngnạp năng lượng chặn được một cách hay đối. Xử lý bao gồm:

Chuyển từ chữ hoa thành chữ thườngLoại bỏ các ký tự nổi bật và lọc các xâu ko chứa kí tự là chữ số hoặc chữ cái.Ngoài ra vẫn còn có các kỹ thuật để kiêng việc lọc và xử lý này:Alphanumeric code: Mã gồm toàn chữ và số.Polumorphic code: mã đa hình.Seft-nodifying code: mã tự sửa đội.Tấn công kiểu return - lớn - libc

Vì vậy, để rời những nguy cơ tiềm ẩn bị khai quật lỗi buffer overflow bọn họ bắt buộc áp dụng những giải pháp chống tách kết quả hơn:

Lựa chọn ngôn ngữ lập trình: ngôn ngữ lập trình có một hình ảnh hưởng lớn đối với sự xuất hiện lỗi tràn bộ đệmSử dụng các tlỗi viện an toàn: các tlỗi viện đưuọc viết hay và đã được kiểm thử dành mang lại các kiểu dữ liệu trừu tượng mà các thỏng viện này thực hiện tự động việc quản lý bộ nhớĐể bảo vệ chống tràn bộ đệm, việc xác nhận đầu vào là rất cần thiết. Bất kỳ field, form đăng ký, hoặc bất kỳ phương pháp khác mà có nhập đầu vào đều có thể có một lỗ hổng tiềm tàng của việc tràn bộ đệm. Điều này không chỉ có gồm một form field, HTTP.. header, đồ họa XML, hoặc bất kỳ giá trị nguồn vào làm sao không giống. Bạn hãy suy nghĩ mang đến tất cả hầu hết quý giá input đầu vào ở bất kỳ Quanh Vùng làm sao của vận dụng phần mềm.

Xem thêm: Cách Kiểm Tra Xem Win Đã Active Chưa Đơn Giản, Cách Kiểm Tra Win 10 Đã Active Chưa Đơn Giản

=> Một số giữa những điều đơn giản dễ dàng rộng là dev phải thực hiện tùy chỉnh thiết lập kích thước giới hạn được cho phép của các cực hiếm đầu vào. Mặc mặc dù ai kia có thể có một chiếc tên với 100 kí từ bỏ trong số đó, số lượng giới hạn form size của các field nhập dữ liệu. Quý Khách cần phải biết đúng đắn form size của dữ liệu tiềm năng này hoàn toàn có thể đạt cho. Như vậy có thể dễ dàng và đơn giản như setting thẻ HTML vào đầu vào field, hoặc sử dụng một vài javascript để khám nghiệm cùng validate input field. Nhưng việc được lưu ý điều này là chưa đầy đủ. Một hacker sẽ không theo đúng vấn đề áp dụng trình chăm bẵm mà đang tự động hóa mix kích cỡ quý giá nguồn vào với thực hiện javascript validate input đầu vào. Một hacker rất có thể với vẫn áp dụng đồ vật gi không giống. Một hacker sẽ viết code của bao gồm anh ấy, áp dụng netcat, hoặc một số hình thức không giống của một trình chăm nom để sở hữu được xung quanh đa số bình chọn đơn giản và dễ dàng.

Tài liệu tsi mê khảo https://crypto.stanford.edu/cs155/papers/cowan-vulnerability.pdf


Chuyên mục: Kiến thức Hosting