Fix lỗi bảo mật của Memcached

Fix lỗi bảo mật của Memcached

NGUYÊN LÝ KHAI THÁC LỖ HỎNG Hacker lợi dụng phản hồi của Memcached và gửi đến cho server bạn địa chỉ phản hồi là IP của nạn nhân thông qua giao thức UDP. Mặc định memcached hoạt động trên cổng 11211 và bind trên địa chỉ 0.0.0.0

Khi một ứng dụng được bind trên địa chỉ 0.0.0.0 thì có nghĩa là nó cho phép các địa chỉ IP ở bên ngoài (Internet) truy vấn. Do đó các hacker đã lợi dụng điều này để tạo ra các truy vấn tới Memcached trên server của bạn.

Vì sao lại chọn giao thức UDP, vì giao thức này không cần xác minh địa chỉ IP trước khi gửi gói tin. Nên địa chỉ mà hacker gửi là một fake IP của nạn nhân sẽ bị DDOS.

Memcached sẽ hoạt động như bản năng của nó lưu lại truy vấn và phản hồi truy vấn, với tốc độ truy suất nhanh của RAM tạo ra các phản hồi nhanh chóng tới địa chỉ fake IP mà hacker yêu cầu.  Điều này vô tình khiến máy chủ của bạn trở thành một công cụ tấn công DDOS.

1. Giải pháp fix lỗi 

Có hai giải pháp để fix lỗi này rất ngắn gọn:

  • Chỉ cho phép Memcached bind trên địa chỉ local 127.0.0.1 đây là địa chỉ localhost và hacker không thể giao tiếp với Memcached từ bên ngoài.
  • Sử dụng firewall (ví dụ CSF firewall) hoặc iptables không mở cổng 11211 trên giao thức UDP.

Giải pháp triệt để nhất vẫn là sửa lại cấu hình Memcached vì có thể có bạn không sử dụng firewall.

2. Hướng dẫn thực hiện

Bước 1: Thay đổi địa chỉ BIND của MEMCACHED

Vào VPS của bạn bằng tài khoản root và sửa file cấu hình của Memcached :

nano /etc/sysconfig/memcached

Nếu trên VPS của bạn chưa cài nano bạn có thể sử dụng lệnh vi để thay thế

vi /etc/sysconfig/memcached

Nội dung của file /etc/sysconfig/memcached

PORT=”11211″
USER=”memcached”
MAXCONN=”1024″
CACHESIZE=”64″
OPTIONS=””

Bạn sẽ thay thế dòng OPTIONS=”” bằng

OPTIONS=”-l 127.0.0.1 -U 0″

Chú ý: chữ “L” thường không phải số 1

Ý nghĩa cú pháp trên là chỉ cho phép Memcached được bind trên địa chri localhost và không cho phép giao thức UDP.

Bấm Ctrl + O để lưu.

Bấm Ctrl + X để thoát khỏi soạn thảo.

Bước 3: Khởi động lại Memcached

Để khởi động lại Memcached bạn gõ lệnh như sau:

service memcached restart

3: Kiểm tra kết quả

Kiểm tra xem Memcached đã bind trên địa chỉ local hay chưa bạn gõ lệnh sau:

netstat -ntpl | grep “memcached”

Memcached bind trên 127.0.0.1Nếu kết quả hiện ra như hình sau thì đã fix lỗi thành công.

Be the first to comment

Leave a Reply

Your email address will not be published.


*