Sửa lỗi tràn bộ nhớ đệm trong win xp năm 2024

Trong lĩnh vực an ninh máy tính và lập trình, lỗi Buffer overflow hay tiếng Việt gọi là lỗi tràn bộ nhớ đệm/lỗi tràn bộ đệm là khi mà bộ nhớ bị ghi đè nhiều lần trên ngăn xếp. Lỗi này thường xuyên xảy ra do người dùng gửi một lượng lớn dữ liệu tới server ứng dụng, điều này làm cho dữ liệu bị bắt phải đè lên các vị trí bộ nhớ liền kề đó. Đây là một lỗi lập trình có thể gây ra một ngoại lệ truy nhập bộ nhớ máy tính và chương trình bị kết thúc, hoặc khi người dùng cố tình phá hoại, có thể lợi dụng lỗi này để phá vỡ an ninh hệ thống.

Nguyên nhân gây ra lỗi Buffer Overflow

  • Không thực hiện đầy đủ, hoặc không kiểm tra biên.
  • Các ngôn ngữ lập trình như C, bản thân nó đã luôn có những tiềm ẩn các lỗ hổng mà hacker dễ dàng có thể tấn công vào. Trong ngôn ngữ lập trình C còn tồn tại các hàm không kiểm tra những buffer được cấp phát trên stack có kích thước lớn hơn dữ liệu được copy và bộ đệm hay không.

Các cách khai thác lỗi Buffer Overflow

Tấn công Buffer overflow có thể thấy nguyên nhân gần tương tự với tấn công SQL Injection, khi người truy cập hay cả những hacker đưa các biên đầu vào, các dữ liệu tới vượt khỏi tầm xử lý của hệ thống thì điều này sẽ làm cho hệ thống bị treo, lỗi quá tải, chúng cũng sẽ từ chối xử lý dịch vụ và chính điều này sẽ tạo ra những lỗ hổng, các hacker từ đó chèn các mã độc hoặc các lệnh không đúng chiếm đoạt lấy quyền kiểm soat từ xa.

Khai thác lỗi Buffer Overflow trên stack

  • Để gây ra tình trạng lỗi tràn bộ đệm, hacker có thể ghi đè một biến địa phương nằm gần bộ đệm trong stack, biến này làm thay đổi hành vi của hệ thống để tạo điều kiện tấn công cho kẻ xấu.
  • Ghi đè lên địa chỉ trả về trong khung stack. Khi hàm trả về, thực thi sẽ vẫn tiếp tục tại địa chỉ mà hacker đã chỉ định, thông thường địa chỉ này thuộc khu vực bộ đệm chứa dữ liệu người dùng.

Lỗi Buffer Overflow trên Heap

  • Hiện tượng lỗi tràn bộ đệm xảy ra tại khu vực dữ liệu Heap hay cũng chính là hiện tượng tràn Heap, hacker có thể khai thác lỗ hổng này bằng các kỹ thuật [khác với các lỗi tràn stack].
  • Bộ nhớ heap là bộ phận thường để chứa dữ liệu của chương trình, nó được cấp phát tự động bởi các ứng dụng thời gian chạy.
  • Hacker thực hiện tấn công bằng cách phá những dữ liệu này để làm ứng dụng ghi đè lên các dữ liệu của nội bộ [ví dụ như các con trỏ của danh sách liên kết].

Một số cách khai thác lỗi Buffer overflow khác

Khai thác vào các lỗ hổng phần mềm thông qua các ngôn ngữ lập trình [đa số các phần mềm hiện nay được viết bằng ngôn ngữ lập trình C].

Ví dụ về tấn công qua Heap

Tấn công vào các website có lượng tương tác với người dùng khá, tốt nhưng lại không yêu cầu hay bắt buộc người dùng phải khai báo tên đăng nhập và mật khẩu đăng nhập tài khoản,…

Các biện pháp chống tràn bộ nhớ đệm

  • Kĩ càng lựa chọn ngôn ngữ lập trình: ngôn ngữ lập trình đóng một vai trò vô cùng quan trọng và mang ảnh hưởng lớn trong việc phát sinh, có khả năng xảy ra lỗi tràn bộ đệm.
  • Chỉ nên sử dụng các thư viện an toàn: thư viện được viết tốt, được test thử với các dạng dữ liệu trừu tượng mà các thư viện này tự động quản lý bộ nhớ.
  • Để hạn chế nhất việc phát sinh lỗi Buffer overflow, chương trình cần phải đảm bảo diễn ra việc xác nhận đầu vào. Khi có bất kì một field, form đăng ký, các phương pháp khác yêu cầu nhập đầu vào thì đều mang những nguy cơ tiềm ẩn về lỗ hổng cho việc tấn công. Không chỉ là những yếu tố như HTTP header, field, giao diện XML mà tất cả các giá trị input ở bất kì khu vực nào của ứng dụng phần mềm thì các bạn cũng cần phải có sự kiểm tra kĩ lưỡng.

Thông qua bài viết này, BKHOST cung cấp đến bạn các thông tin về khái niệm của Buffer overflow là gì, những nguyên nhân gây ra và cách phòng trách để bị tấn công lỗi tràn bộ đệm. Mặt khác, nếu như có bất kỳ thắc mắc nào về hosting , đăng ký tên miền, mua SSL giá rẻ… thì hãy đón đọc trên blog của BKHOST nhé!

E> Nâng cao tốc độ tập tin tráo đổi: Bộ nhớ ảo [tập tin tráo đổi] của bạn sẽ chạy nhanh nhất nếu nó không bị cắt vụn. Tuy nhiên, Disk Defragmenter không hoạt động trên các tập tin tráo đổi. Nếu có đĩa cứng thứ hai hoặc một ổ đĩa với 2 partition thì tiến hành dồn đĩa đối với partition hoặc ổ đĩa nào không chứa tập tin tráo đổi, rồi sau đó chuyển tập tin tráo đổi sang ổ đĩa hoặc partition đó. Để tối ưu hóa bộ nhớ ảo trong Windows XP, bạn nhấn Start.Control Panel [chọn Performance and Maintenance nếu bạn đang ở chế độ xem Category].System.Advanced. Bên dưới Performance chọn Settings và chọn Advanced.Change. Chọn một ổ đĩa trong hộp trên cùng và nhấn Custom size [xem hình 1]. Trong Windows 2000, bạn nhấn Start.Settings.Control Panel.System.Advanced.Performance Options.Change. Trong Windows 98 và Me, chọn Start.Settings.Control Panel.System.Performance.Virtual Memory. Chọn Let me specify my own virtual memory settings. Tập tin tráo đổi của bạn phải lớn gấp 2,5 đến 3 lần dung lượng RAM hệ thống. Nhập con số này vào cả hai hộp "Minimum" và "Maximum" [trong 2000 và XP là "Initial size" và "Maximum size"]. Nhấn OK và Yes [nếu cần] để chấp nhận thay đổi này.

Chủ Đề