/ / Tấn công tràn bộ đệm là gì và bạn có thể ngăn chặn nó như thế nào?

Tấn công tràn bộ đệm là gì và bạn có thể ngăn chặn nó như thế nào?

Mỗi ngày, tin tặc trên toàn cầu đang phát hiện và khai thác các lỗ hổng mới trong các trang web, ứng dụng và thậm chí cả kiến ​​trúc hệ thống. Một điều phổ biến ở tất cả các thiết bị điện tử, dù cũ hay mới, là chúng được chạy bằng các chương trình được lưu trong bộ nhớ. Tin tặc đã khai thác điều này và tìm thấy các lỗ hổng được gọi là tràn bộ đệm.

Mặc dù không phải là mới, nhưng các cuộc tấn công tràn bộ đệm và lỗ hổng bảo mật đã và đang tàn phá không gian mạng. Ở đây, chúng tôi sẽ giải thích cho bạn các cuộc tấn công tràn bộ đệm là gì và cách bạn có thể ngăn chặn chúng.


Hiểu bộ đệm và bộ nhớ hệ thống

Để hiểu tấn công tràn bộ đệm là gì và cách thức hoạt động của nó, bạn cần biết bộ đệm là gì và bộ nhớ của máy tính hoạt động như thế nào.

Bộ nhớ ngăn xếp và bộ nhớ heap là hai tính năng chính của bộ nhớ máy tính. Chúng là cấu trúc dữ liệu được sử dụng để cấp phát bộ nhớ. Mặc dù chúng giống nhau, bộ nhớ ngăn xếp và bộ nhớ heap khác nhau theo nhiều cách.

Ngăn xếp, sử dụng khái niệm Last-in, First-out (LIFO), được sử dụng trong RAM (bộ nhớ truy cập ngẫu nhiên) để lưu trữ tạm thời các thực thi chương trình, trong khi heap chỉ định bộ nhớ bằng cách sử dụng cấp phát động cho các biến toàn cục. Nhưng điểm chung của chúng là bộ đệm.


Buffer là gì?

Bộ đệm là một vùng bộ nhớ được sử dụng để lưu trữ dữ liệu, rất có thể nằm trong RAM của máy tính, trong khi nó đang được di chuyển từ vị trí này sang vị trí khác. Những dữ liệu này thường là các chương trình cần được thực thi. Bộ đệm được lưu trữ trong ngăn xếp hoặc đống. Chúng tối ưu hóa việc thực thi dữ liệu.

Tràn bộ đệm là gì?

Tràn bộ đệm xảy ra khi bộ đệm nhận được nhiều dữ liệu hơn dung lượng lưu trữ của nó. Vì nó không thể xử lý lượng dữ liệu đó nên nó bị tràn.

Bây giờ, trong bộ nhớ của máy tính, ngay sau bộ đệm hoặc không gian đệm là một địa chỉ trả về. Địa chỉ trả về này thực sự được gọi là Con trỏ hướng dẫn mở rộng (EIP). Chức năng của nó là trỏ máy tính đến một chương trình được chỉ định khi được điền. Khi một bộ đệm có nhiều dữ liệu hơn nó có thể chứa và bị tràn, nó sẽ tràn vào địa chỉ trả về.


Để hiểu điều này, hãy giả sử bạn có một không gian đệm chỉ có thể chứa năm chữ cái. Vì vậy, nếu bạn điền các từ như “sugar” hoặc “peace”, thì dòng đệm có thể chứa nó. Nhưng khi bạn có một từ như “xác thực”, nó chắc chắn sẽ tràn ra ngoài. Điều này dẫn đến lỗi hoặc sự cố trong hệ thống. Nhưng tin tặc có thể khai thác lỗ hổng này để bắt đầu một cuộc tấn công tràn bộ đệm.

Tấn công tràn bộ đệm là gì và nó hoạt động như thế nào?

Các cuộc tấn công tràn bộ đệm xảy ra khi hacker chiếm quyền kiểm soát địa chỉ trả về hoặc EIP. Khi kẻ tấn công biết dung lượng bộ nhớ của hệ thống, chúng có thể cố tình ghi dữ liệu vào hệ thống đó chỉ để làm tràn bộ nhớ. Sau đó, họ đảm bảo rằng EIP hoặc địa chỉ trả về được ghi để trỏ đến một chương trình có thể cấp cho họ quyền truy cập vào hệ thống hoặc tiết lộ thông tin nhạy cảm được lưu trữ trên hệ thống.


Kẻ tấn công thậm chí có thể ghi một số dữ liệu có chứa mã độc và gây tràn bộ đệm. Sau đó, EIP được viết để chuyển hướng hệ thống trở lại mã độc hại và nó được thực hiện để chạy. Sau đó, hacker có được quyền kiểm soát hệ thống.

Có năm bước chính trong các cuộc tấn công tràn bộ đệm:

  1. Spiking
  2. Fuzzing
  3. Tìm phần bù
  4. Ghi đè EIP hoặc địa chỉ trả lại
  5. Khai thác lỗ hổng

Spiking là bước đầu tiên. Tại đây, tin tặc tìm thấy phần bộ nhớ của chương trình dễ bị tràn bộ đệm. Sau đó đến fuzzing, tương tự như tăng đột biến, nhưng ở đây, hacker gửi các ký tự đến chương trình để xem liệu nó có thể bị phá vỡ hay không. Sau khi thành công, kẻ tấn công tiến hành tìm khoảng trống, chính là nơi bộ đệm bị tràn. Điều này được thực hiện để biết kích thước của bộ đệm và địa chỉ trả về. Sau đó, hacker sẽ chèn một mã shell độc hại và điều khiển hệ thống.


Các loại tấn công tràn bộ đệm là gì?

Có hai kiểu tấn công tràn bộ đệm chính: tấn công dựa trên ngăn xếp và tấn công dựa trên đống.

1. Các cuộc tấn công tràn bộ đệm dựa trên ngăn xếp

Tấn công tràn bộ đệm dựa trên ngăn xếp là kiểu tấn công tràn bộ đệm phổ biến nhất. Chúng xảy ra khi bộ nhớ ngăn xếp của hệ thống bị chạy quá mức và bị khai thác. Nó còn được gọi là đập ngăn xếp.

2. Các cuộc tấn công tràn bộ đệm dựa trên đống

Loại tràn ngăn xếp này không phổ biến lắm, vì nó khó thực hiện và khai thác. Nó xảy ra khi bộ nhớ được cấp phát cho một chương trình bị tràn. Vào tháng 1 năm 2021, Google đã phát hiện ra lỗ hổng tràn bộ đệm dựa trên heap trong thành phần V8 của Chrome.

Làm thế nào bạn có thể ngăn chặn các cuộc tấn công tràn bộ đệm?

Các cuộc tấn công tràn bộ đệm có thể được giảm thiểu bằng cách sử dụng các biện pháp bảo vệ thời gian chạy hệ điều hành, ngôn ngữ lập trình an toàn, ngẫu nhiên hóa bố cục không gian địa chỉ và đảm bảo các biện pháp bảo mật thích hợp tổng thể.

1. Sử dụng bảo vệ thời gian chạy hệ điều hành

Bảo vệ thời gian chạy còn được gọi là kiểm tra giới hạn mảng thời gian chạy. Điều này đảm bảo rằng mọi chương trình chạy đều nằm trong không gian đệm hoặc bộ nhớ có sẵn. Và nó kiểm tra mọi dữ liệu được ghi vào bộ nhớ của hệ thống. Điều này gây khó khăn cho hacker khi ghi đè dữ liệu vào hệ thống và khai thác lỗ hổng.

2. Sử dụng ngôn ngữ lập trình an toàn

Các ngôn ngữ lập trình như C và C ++ không thực hiện kiểm tra giới hạn mảng thời gian chạy vì phải mất thêm mã để kiểm tra mọi chương trình được viết vào hệ thống và làm chậm nó. Do đó, chúng dễ bị tấn công tràn bộ đệm hơn. Sử dụng các ngôn ngữ an toàn hơn như C #, Java và Python sẽ tốt hơn vì chúng có nguy cơ bị tấn công tràn bộ đệm thấp hơn.

3. Sử dụng ngẫu nhiên hóa bố cục không gian địa chỉ (ASLR)

Biện pháp bảo mật này chỉ định ngẫu nhiên địa chỉ của các chương trình và chức năng trong bộ nhớ của hệ thống cho các vùng dữ liệu khác nhau. Nó khiến kẻ tấn công khó điều hướng qua các chức năng nhạy cảm trong bộ nhớ.

4. Đảm bảo các chính sách bảo mật nghiêm ngặt

Điều này liên quan đến việc giữ cho hệ thống được cập nhật thường xuyên, xác thực mọi dữ liệu được ghi vào hệ thống và chỉ định ít đặc quyền nhất cho người dùng. Với các chính sách bảo mật thích hợp được áp dụng, bạn sẽ không phải lo lắng về một cuộc tấn công tràn bộ đệm.

Giữ chặt chẽ bảo mật của bạn là điều cần thiết để chống lại các cuộc tấn công tràn bộ đệm

Theo một câu nói phổ biến trong lĩnh vực bảo mật, “chừng nào hệ thống còn được sử dụng bởi con người, thì lỗ hổng bảo mật vẫn tồn tại”, điều này đúng và không thể tránh khỏi. Tuy nhiên, người ta luôn có thể giảm nguy cơ bị tấn công bằng cách đảm bảo rằng các biện pháp bảo mật thích hợp được áp dụng và tuân thủ nghiêm ngặt.

Hãy nhớ rằng tin tặc liên tục tìm ra những cách mới để khai thác các lỗ hổng như thế này. Do đó, bạn phải đi trước họ bằng cách theo dõi những tiến bộ mới nhất trong lĩnh vực an ninh mạng.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *