Mô tảLỗi tràn bộ đệm có lẽ là hình thức nổi tiếng nhất của phần mềm bảo mật dễ bị tổn thương. Hầu hết các nhà phát triển phần mềm biết những gì một lỗ hổng tràn bộ đệm là, nhưng tấn công tràn bộ đệm chống lại cả cũ và mới được phát triển các ứng dụng vẫn còn khá phổ biến. Một phần của vấn đề là do sự đa dạng trong cách tràn bộ đệm có thể xảy ra, và một phần là do các kỹ thuật dễ bị lỗi thường được sử dụng để ngăn chặn chúng.Tràn bộ đệm không phải là dễ dàng để khám phá và ngay cả khi một phát hiện, nó nói chung là vô cùng khó khăn để khai thác. Tuy nhiên, kẻ tấn công có quản lý để xác định tràn bộ đệm trong một mảng đáng kinh ngạc của sản phẩm và thành phần.Trong một khai thác lỗi tràn bộ đệm cổ điển, những kẻ tấn công sẽ gửi dữ liệu đến một chương trình, nó lưu trữ trong một bộ đệm nhỏ hơn cở thường ngăn xếp. Kết quả là rằng thông tin trên chồng gọi ghi đè, bao gồm các chức năng trả lại con trỏ. Các dữ liệu bộ giá trị của con trỏ trở lại vì vậy rằng khi chức năng trả về, nó chuyển kiểm soát để mã độc hại có trong dữ liệu của kẻ tấn công.Mặc dù loại lỗi tràn bộ đệm ngăn xếp là vẫn còn phổ biến trên một số nền tảng và trong một số cộng đồng phát triển, có rất nhiều của các loại lỗi tràn bộ đệm, bao gồm cả đống lỗi tràn bộ đệm và Off-của-một lỗi trong số những người khác. Một lớp học rất tương tự như lỗ hổng được gọi là định dạng chuỗi tấn công. Có là một số cuốn sách tuyệt vời mà cung cấp thông tin chi tiết về làm thế nào lỗi tràn bộ đệm tấn công việc, bao gồm cả tòa nhà an toàn phần mềm [1], viết mã an toàn [2], và The Shellcoder Handbook [3].Ở mức độ mã, bộ đệm tràn lỗ hổng thường liên quan đến việc vi phạm của các giả định một lập trình viên. Nhiều chức năng thao tác bộ nhớ bằng C/C++ không thực hiện các giới hạn kiểm tra và có thể dễ dàng ghi đè lên các giới hạn được phân bổ của bộ đệm họ hoạt động on. Chức năng thậm chí bị chặn, chẳng hạn như strncpy(), có thể gây ra lỗ hổng khi được sử dụng không chính xác. Sự kết hợp của thao tác bộ nhớ và các giả định sai lầm về kích thước hoặc trang điểm của một phần dữ liệu là nguyên nhân gốc rễ của hầu hết các tràn bộ đệm.Lỗi tràn bộ đệm lỗ hổng thường xảy ra trong mã đó:Dựa trên các dữ liệu bên ngoài để kiểm soát hành vi của nóPhụ thuộc vào tính chất của các dữ liệu được thi hành bên ngoài phạm vi ngay lập tức của mãLà rất phức tạp rằng một lập trình viên không thể dự đoán chính xác hành vi của nóLỗi tràn bộ đệm và ứng dụng WebKẻ tấn công sử dụng tràn bộ đệm để tham nhũng chồng thực hiện một ứng dụng web. Bằng cách gửi một cách cẩn thận crafted đầu vào cho một ứng dụng web, một kẻ tấn công có thể gây ra các ứng dụng web để thực thi mã tùy ý-có hiệu quả việc trên máy.Lỗi tràn bộ đệm có thể được xuất hiện trong máy chủ web hoặc máy chủ ứng dụng sản phẩm phục vụ các khía cạnh tĩnh và năng động của các trang web, hoặc các ứng dụng web riêng của mình. Tràn bộ đệm tìm thấy trong các máy chủ được sử dụng nhiều sản phẩm có khả năng trở thành được biết đến rộng rãi và có thể gây nguy hiểm đáng kể cho người dùng của các sản phẩm này. Khi ứng dụng web sử dụng thư viện, chẳng hạn như một thư viện đồ họa để tạo ra hình ảnh, họ mở bản thân để tiềm năng tấn công tràn bộ đệm.Tràn bộ đệm cũng có thể được tìm thấy trong ứng dụng web tùy chỉnh mã, và có thể thậm chí được nhiều khả năng cho thiếu của giám sát ứng dụng web thường đi qua. Lỗi tràn bộ đệm trong ứng dụng web tùy chỉnh ít có khả năng được phát hiện bởi vì sẽ thường có ít hơn đến nay tin tặc cố gắng tìm và khai thác các lỗ hổng trong một ứng dụng cụ thể. Nếu phát hiện trong một ứng dụng tùy chỉnh, khả năng khai thác lỗ hổng (khác hơn để sụp đổ các ứng dụng) được giảm đáng kể bởi thực tế là các mã nguồn và thông báo lỗi chi tiết cho các ứng dụng thường không có sẵn để các hacker.Hậu quảThể loại: tình trạng sẵn có: Tràn bộ đệm thường dẫn đến tai nạn. Các cuộc tấn công dẫn đến thiếu sẵn có là có thể, bao gồm cả việc đưa chương trình vào một vòng lặp vô hạn.Truy cập điều khiển (hướng dẫn chế biến): tràn bộ đệm thường có thể được sử dụng để thực thi mã tùy ý, mà thường là bên ngoài phạm vi của chính sách bảo mật tiềm ẩn của chương trình.Khác: Khi các hậu quả là tùy ý mã thực hiện, điều này có thể thường được sử dụng để subvert bất kỳ dịch vụ nào khác của an ninh.Thời gian tiếp xúcYêu cầu đặc điểm kỹ thuật: sự lựa chọn có thể được thực hiện để sử dụng một ngôn ngữ đó không phải là dễ bị những vấn đề này.Thiết kế: Giảm nhẹ các công nghệ như Két an toàn-chuỗi thư viện và container abstractions có thể được giới thiệu.Thực hiện: Nhiều logic lỗi có thể dẫn đến tình trạng này. Nó có thể trầm trọng hơn do thiếu hoặc mis¬use của giảm nhẹ công nghệ.
đang được dịch, vui lòng đợi..