Bạn Tìm Gì Hôm Nay ...?
Tất cả đều có chỉ trong 1 nốt nhạc !
Nếu cần hỗ trợ chi tiết gọi 1900 9477
Ngày nay, trong bối cảnh bùng nổ thông tin của mạng Internet, bên cạnh các lợi ích mà Internet mạng lại, cũng đồng thời có vô số cuộc tấn công nhằm đánh cắp thông tin diễn ra hàng ngày, hàng giờ… Một trong số đó là Buffer Overflow , một loại tấn công gây nguy hiểm nhất đối với người dùng. Vậy Buffer Overflow là gì và các hình thức tấn công Buffer Overflow như thế nào, chúng ta cùng tìm hiểu qua bài viết này nhé.
Buffer Overflow (Lỗ hổng tràn bộ đệm) là lỗ hổng trong lập trình, cho phép dữ liệu được ghi vào một buffer có thể tràn ra ngoài buffer đó, ghi đè lên dữ liệu khác và dẫn tới hoạt động bất thường của chương trình.
Những kẻ tấn công khai thác Buffer Overflow nhằm kiểm soát, sửa đổi các quá trình hoặc biến nội bộ. Buffer Overflow nằm trong CWE và top 25 SANS lỗi phần mềm nguy hiểm nhất hiện nay đối với các nhà cung cấp lớn nhỏ.
Buffer Overflow xảy ra do nhiều nguyên nhân khác nhau, chẳng hạn như một tác nhân độc hại là code bất kỳ được gửi đầu vào đến chương trình. Các chương trình này có nhiệm vụ lưu trữ đầu vào đó trong Buffer và nếu quá mức cho phép thì các dữ liệu thừa sẽ được ghi vào bộ nhớ liền kề và ghi đề lên các dữ liệu tồn tại trước đó.
Các dữ liệu gốc trong Buffer là con trỏ đến địa chỉ tiếp theo của hàm bị tấn công. Kẻ tấn công có thể thay đổi các giá trị mới trỏ đến địa chỉ mong muốn như vị trí tải trọng khai thác đã được định vị. Điều này làm cho đường dẫn thực thi của quy trình và các quyền kiểm soát bị thay đổi đột ngột.
Ví dụ: Một chương trình cần người dùng nhập tên thì kẻ tấn công sẽ nhập lệnh thực thi có kích thước lớn.
Buffer Overflow không thực sự khả khi với các lệnh bởi nó còn yêu cầu địa chỉ trả về trỏ đến lệnh độc hại được xác định chính xác và rõ ràng. Nếu chương trình bị sập sẽ được khôi phục bằng cách truy cập địa chỉ quay lại. Tuy nhiên, địa chỉ này đã được thay đổi để trỏ đến lệnh mà kẻ tấn công đã chỉ định.
Các lệnh độc hại này tồn tại ở cả hai bên đệm dựa trên NOP giúp xác định phạm vi bộ nhớ dễ dàng hơn. Buffer Overflow tấn công vào bộ nhớ khá nhanh bởi các ngôn ngữ lập trình C hay C++ không có khả năng ngăn chặn truy cập hoặc ghi đè dữ liệu.
Một số ngôn ngữ lập trình hiện đại như C#, Java và Perl giúp hạn chế các vấn đề lỗi mã hoá ngăn chặn các nguy cơ từ Buffer Overflow. Đối với một số môi trường lập trình cho phép thao tác bộ nhớ trực tiếp và các tính năng như trình biên dịch, thư viện thời gian chạy hay tính năng ngôn ngữ.
Buffer Overflow có các kỹ thuật khai thác khác nhau dựa trên OS và ngôn ngữ lập trình nhắm vào bộ nhớ của máy tính để kiểm soát việc thực thi các chương trình. Các Buffer Overflow khác nhau sẽ được phân loại theo vị trí của Buffer trong bộ nhớ xử lý của thiết bị dựa trên heap-based.
Các loại tấn công Buffer Overflow:
Stack Buffer Overflow là hình thức tấn công phổ biến với các ngăn xếp lưu trữ dữ liệu theo cấu trúc xuất nhập trước. Ngoài ra với một môi trường lưu trữ liên tục cho phép triển khai các dữ liệu liên quan đến các lệnh gọi hàm như tham số, biến cục bộ và thông tin quản lý.
Các ngăn xếp chứa chương trình với các mục nhập thông tin của người dùng như tên và mật khẩu. Bằng cách ghi địa chỉ bộ nhớ trả về vào ngăn xếp đó và gửi đầu vào của người dùng đến địa chỉ trả lại được chỉ định sẵn trước đó của chương trình.
Mỗi ngăn xếp sẽ có kích thước giới hạn nhất định nên lập trình viên phát triển mã phải dành một không gian riêng cho nó. Nếu đầu vào của người dùng dài hơn dung lượng riêng và các chương trình không được khả thi thì ngăn xếp sẽ xảy ra hiện tượng Stack Buffer Overflow.
Các lập trình viên sử dụng Heap để để phân chia bộ nhớ không rõ kích thước dung lượng cần thiết tương thích với ngăn xếp và bộ nhớ được dự định sử dụng trên các lệnh gọi hàm. Vì vậy, kẻ tấn công dựa vào các không gian bộ nhớ riêng của chương trình để khai thác dữ liệu của bộ nhớ mở Heap.
Các ngôn ngữ lập trình giúp xác định chính xác kích thước tối đa của các Integer. Khi một phép toán đưa ra kết quả là một Integer quá lớn sẽ xảy ra hiện tượng Integer Overflow.
Ví dụ: Một bộ nhớ bất kỳ cần 8 bit để lưu trữ số 192 và nếu thêm số 64 thì kết quả sẽ là 256 không tương thích với bộ nhớ được phân bổ.
Kẻ tấn công thực hiện thay đổi các Format strings như printf và sprintf để lấy quyền truy cập vào các không gian bộ nhớ của thiết bị.
Kẻ tấn công nhắm vào Unicode Overflow khai thác các bộ nhớ lớn để lưu trữ string ở định dạng Unicode so với ASCII.
– Sử dụng biện pháp bảo vệ thời gian chạy OS giúp ngăn chặn Buffer Overflow:
– Luôn cập nhật các bản vá lỗi và phần mềm để khắc phục các lỗ hổng Buffer Overflow.
– Tuân thủ các nguyên tắc của POLP làm giảm khả năng xảy ra Buffer Overflow bằng cách cung cấp ít đặc quyền hơn hoặc hạn chế cung cấp quyền nếu phát hiện hành vi đáng ngờ.
– Sử dụng ngôn ngữ lập trình an toàn và phù hợp với bộ nhớ như Java, Python hoặc C # để quản lý hoạt động phân bổ bộ nhớ và xác thực đầu vào từ máy khách hoặc các quy trình khác.
– Thực hiện xác thực các dữ liệu của ứng dụng hoặc trang web để kiểm tra đầu vào và dữ liệu được truy cập từ người dùng đáng tin cậy.
Buffer Overflow là một hình thức tấn công nguy hiểm và cần có những phương pháp ngăn chặn hiệu quả hơn để bảo vệ chương trình hoặc ứng dụng của bạn. Thực tế cho thấy, các cuộc tấn công tràn bộ đệm vẫn thường xuyên xảy ra và gây hậu quả nghiêm trọng cho hệ thống vì nó có thể can thiệp trực tiếp vào mã nguồn.
Mặc dù nhiều viết đã chỉ ra các dạng cơ bản của tấn công Buffer Overflow và các cách phòng chống nhưng với sự phát triển của công nghệ, các hacker không ngừng phát triển các cách tấn công mới vào hệ thống.
Vì vậy, các bài viết chỉ có thể giúp người đọc phần nào biết đến cách tấn công Buffer Overflow và mức độ nguy hiểm của các cuộc tấn công bằng phương pháp Buffer Overflow để làm cơ sở phần nào giúp người đọc dựa vào đó để có thể nghiên cứu sâu hơn về cuộc tấn công này từ đó đưa ra những biện pháp phòng chống hiệu quả và triệt để nhất.
Xem thêm các bài viết khác tại đây.
P.A Việt Nam cung cấp đa dạng các Plan Hosting WordPress đáp ứng yêu cầu của khách hàng
WordPress Hosting phổ thông
WordPress Hosting chất lượng cao
WordPress VIP
Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/