Mèo của chúng tôi đang chạy đi lấy dữ liệu cho bạn ...
Cấu hình Suricata phát hiện tấn công DDoS

Cấu hình Suricata phát hiện tấn công DDoS

Suricata là một hệ thống phát hiện và ngăn chặn xâm nhập (IDS/IPS) mã nguồn mở, được nhiều chuyên gia an ninh mạng tin dùng. Với khả năng giám sát lưu lượng mạng một cách hiệu quả, Suricata có thể nhận diện và xử lý các mối đe dọa tiềm tàng, đặc biệt là trong các cuộc tấn công như DDoS.

Giới thiệu về Suricata

Cấu hình Suricata phát hiện tấn công DDoS

Khi thế giới ngày càng phụ thuộc vào công nghệ thông tin, việc bảo vệ hệ thống mạng trở nên quan trọng hơn bao giờ hết. Suricata nổi bật như một giải pháp mạnh mẽ cho nhu cầu này. Được phát triển bởi Open Information Security Foundation (OISF), Suricata không chỉ đơn thuần là một công cụ phát hiện, mà còn là một nền tảng hoàn chỉnh để bảo vệ mạng khỏi các mối đe dọa.

Suricata hỗ trợ phân tích lưu lượng mạng với khả năng hoạt động trên nhiều giao thức khác nhau. Điều này giúp nó có thể phát hiện các cuộc tấn công theo những cách tinh vi nhất. Không chỉ dừng lại ở việc phát hiện, Suricata còn có khả năng ngăn chặn các cuộc tấn công trước khi chúng có thể gây ra thiệt hại thực sự cho hệ thống.

Các tính năng chính của Suricata

Suricata không chỉ có nhiều tính năng hữu ích mà còn mang lại những lợi ích thiết thực trong việc bảo vệ mạng:

Phát hiện và ngăn chặn xâm nhập (IDS/IPS): Suricata có tùy chọn hoạt động ở chế độ IDS hoặc IPS, giúp người dùng linh hoạt trong việc lựa chọn cách bảo vệ tốt nhất cho mạng của mình. Trong chế độ IPS, Suricata không chỉ giám sát mà còn có thể chủ động ngăn chặn các lưu lượng đáng ngờ.

Phân tích giao thức: Suricata không chỉ đơn thuần phát hiện các cuộc tấn công mà còn phân tích sâu các giao thức như HTTP, HTTPS, DNS, FTP, và nhiều giao thức khác. Điều này giúp nâng cao khả năng phát hiện các mối đe dọa đa dạng.

Phân tích lưu lượng mạng: Với khả năng sử dụng các quy tắc Snort, Suricata có thể phát hiện các cuộc tấn công như quét mạng, khai thác lỗ hổng, và phần mềm độc hại. Những quy tắc này có thể được tùy chỉnh để phù hợp với từng môi trường khác nhau.

Tích hợp với hệ thống quản lý dữ liệu (SIEM): Suricata dễ dàng tích hợp vào các hệ thống SIEM như ELK Stack hoặc Splunk, giúp cung cấp cái nhìn tổng thể về tình hình an ninh mạng trong thời gian thực. Điều này cực kỳ quan trọng cho việc ứng phó nhanh chóng với các mối đe dọa.

Cấu hình và setup cơ bản về các quy tắc (rules)

Cấu hình Suricata là bước quan trọng để đảm bảo rằng hệ thống hoạt động hiệu quả và đáp ứng được nhu cầu bảo mật của tổ chức. Tệp cấu hình chính là suricata.yaml, nơi bạn có thể tùy chỉnh rất nhiều thông số để phù hợp với môi trường mạng của mình.

Cấu hình Suricata

Để bắt đầu sử dụng Suricata, trước tiên bạn cần cài đặt nó trên hệ thống của mình. Việc thêm kho lưu trữ phần mềm và tiến hành cài đặt rất đơn giản.

add-apt-repository ppa:oisf/suricata-stable
apt update
apt install suricata -y

 

Sau khi cài đặt xong, bước tiếp theo là tùy chỉnh tệp suricata.yaml.

Chế độ hoạt động: Bạn có thể chọn giữa IDS và IPS tùy theo nhu cầu và khả năng của hệ thống. Nếu bạn muốn một lớp bảo vệ mạnh mẽ hơn, thì chọn chế độ IPS sẽ là lựa chọn tốt nhất.

Giao diện mạng: Xác định giao diện mạng mà Suricata sẽ giám sát. Thông thường, điều này sẽ là eth0, nhưng có thể thay đổi tùy theo cấu hình mạng của bạn.

Quy tắc phát hiện: Liên kết các quy tắc với Suricata để phát hiện các mối đe dọa cụ thể. Các quy tắc này có thể được lấy từ nhiều nguồn khác nhau và có thể được tùy chỉnh để phù hợp với nhu cầu riêng của bạn.

Phân tích giao thức: Trong tệp cấu hình, bạn cũng có thể chỉ định các giao thức cần phân tích chi tiết. Bằng cách này, Suricata sẽ tập trung vào những gì quan trọng nhất đối với môi trường của bạn.

Nhật ký và báo cáo: Cuối cùng, tùy chỉnh cách Suricata ghi lại và lưu trữ các sự kiện phát hiện để dễ dàng theo dõi sau này.

Cấu hình Live Rule Reloading và Community ID

Một trong những tính năng hữu ích của Suricata là khả năng tải lại quy tắc mà không cần khởi động lại hệ thống. Điều này giúp duy trì tính liên tục trong quá trình giám sát.

Bật tính năng Community ID: Bằng cách kích hoạt tính năng Community ID, bạn có thể tạo ra mã nhận diện luồng duy nhất cho các kết nối, giúp tăng cường khả năng theo dõi và phân tích lưu lượng.

community-id: true

 

Ngoài ra, bạn có thể tải lại các quy tắc bằng lệnh sau:

kill -usr2 $(pidof suricata)

 

Nếu bạn muốn tải các quy tắc từ các nhà cung cấp bên ngoài, bạn có thể sử dụng lệnh:

suricata-update
suricata-update list-sources
suricata-update enable-source tgreen/hunting

 

Kiểm tra cấu hình: Sau khi thực hiện tất cả các bước trên, nhớ kiểm tra cấu hình để đảm bảo mọi thứ hoạt động đúng.

suricata -T -c /etc/suricata/suricata.yaml -v

 

Demo tấn công DDoS

Tấn công từ chối dịch vụ phân tán (DDoS) đang là vấn đề lớn trong lĩnh vực an ninh mạng. Để thể hiện khả năng của Suricata trong việc phát hiện các cuộc tấn công này, chúng ta sẽ thực hiện một demo đơn giản.

Tạo quy tắc phát hiện DDoS

Quy tắc phát hiện tấn công SYN Flood là một trong những quy tắc quan trọng nhất mà Suricata có thể sử dụng để ngăn chặn các cuộc tấn công DDoS. Một quy tắc đơn giản có thể được viết như sau:

alert ip any any -> any any (msg:"DDoS SYN Flood Detected"; flags:S; threshold: type both, track by_dst, count 100, seconds 1; sid:1000001; rev:1;)

 

Lệnh kiểm tra quy tắc đã được cấu hình có thể được thực hiện với:

sudo suricata -T -c /etc/suricata/suricata.yaml -v

 

Sau khi kiểm tra thành công, bạn có thể reset Suricata bằng lệnh sau:

sudo systemctl restart suricata

 

Thực hiện tấn công DDoS trên Kali Linux:

Để tiến hành thử nghiệm tấn công DDoS, chúng ta sẽ sử dụng các công cụ có sẵn trong Kali Linux. Điều này không chỉ giúp kiểm tra khả năng của Suricata mà còn cho phép bạn thấy rõ những gì diễn ra khi một cuộc tấn công thực sự xảy ra.

Theo dõi kết quả trên máy Ubuntu, bạn có thể xem các nhật ký cảnh báo với lệnh sau:

sudo tail -f /var/log/suricata/fast.log

 

Từ đó, bạn có thể thấy các cảnh báo từ Suricata. Ví dụ, nếu có các gói RST và ACK không hợp lệ, điều này có thể chỉ ra rằng đang có một cuộc tấn công DDoS hoặc một lỗi kết nối nào đó.