Phòng chống tấn công qua lỗ hổng Memcached

0
2050

1. Cách thức tấn công của Memcrashed

Cụ thể, kẻ tấn công sẽ gửi một gói tin fake địa chỉ IP của nạn nhân đến server memcached trên cổng 11211. Các truy vấn được gửi đến máy chủ chỉ một vài byte, nhưng số lượng phản hồi lại lên đến hàng chục nghìn lần, tạo ra một cuộc tấn công đáng kể. Bên cạnh đó, Memcached cho phép kết nối qua giao thức UDP – một trong những giao thức tốt nhất dùng trong việc khuếch đại.

Theo Cloudflare, một gói tin 15 bytes gửi đi có thể tạo ra 134KB phản hồi (khuếch đại 10.000 lần). Thực tế ghi nhận, hệ thống đã nhận được tới 750KB phản hồi – khuếch đại gấp 51.200 lần.

Theo Arbor Networks, các truy vấn giả mạo cũng hướng đến TCP cổng 11211, nhưng vì các truy vấn TCP không thể giả mạo nên cách tấn công này ít bị lạm dụng hơn.

Theo số liệu mới nhất từ Shohan, có gần 90.000 server chạy Memcached qua cổng 11211 đang mở. Và rất nhiều trong số đó đến từ các location thông dụng: Mỹ, Nhật, Hồng Kông… Cụ thể, các cuộc tấn công xảy ra khắp nơi trên toàn thế giới, nhưng chủ yếu là Bắc Mỹ và Châu Âu.

2. Cài đặt và bảo mật cho Memcached trên CentOS7

  • Cài đặt Memcached

Nếu bạn chưa cài đặt Memcached trên máy chủ của mình, bạn có thể cài đặt nó từ kho chính thức CentOS. Trước tiên, đảm bảo rằng chỉ mục gói ứng dụng của bạn được cập nhật gõ hoặc copy lệnh như sau:

sudo yum update

Tiếp theo, cài đặt gói bằng cách gõ hoặc copy lệnh như sau:

sudo yum install memcached

Chúng ta có thể cài đặt libmemcached, một thư viện cung cấp một số cung cụ để làm việc với máy chủ memcached của bạn, Gõ hoặc copy lệnh sau::

sudo yum install libmemcached

Memcached bây giờ đã được cài đặt như một dịch vụ trên máy chủ của bạn, cũng với các công cụ cho phép bạn kiểm tra kết nối của nó. Bây giờ chúng ta có thể tiếp tục cài đặt cấu hình

  • Cấu hình bảo mật memcached

Đầu tiên SSH vào VPS và mở file config của Memcached lên. Gõ hoặc copy lệnh sau:

vi /etc/sysconfig/memcached

Ở phần Options ta thêm vào -l 127.0.0.1 -U 0 để chặn băng thông bắn ra cũng như chặn luôn UDP

PORT=”11211″
USER=”memcached”
MAXCONN=”10024″
CACHESIZE=”20″
OPTIONS=”-l 127.0.0.1 -U 0″

Lưu lại rồi khởi động lại dịch vụ. Bạn cũng hoàn toàn có thể tải File config về máy tính, sửa sau đó up đè lên file config trên server.: gõ hoặc copy lệnh như sau

service memcached restart

Thực hiện thêm lệnh sau:
# iptables -I INPUT -p udp –dport 11211 -j DROP
# iptables -I INPUT -p udp -s 127.0.0.1 –dport 11211 -j ACCEPT

Kiểm tra lại bằng lệnh

netstat -plunt

Ta sẽ thấy UDP đã bị đóng, Memcached chỉ còn chạy trên TCP 11211  mà thôi

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address    Foreign Address State PID/Program
tcp        0 0 127.0.0.1:11211  0.0.0.0:* LISTEN 2383/memcache

Leave a Reply

avatar
  Subscribe  
Notify of