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
Suricata là công cụ phát hiện mối đe dọa nguồn mở độc lập tốt nhất. Nó kết hợp Phát hiện xâm nhập (IDS), Phòng chống xâm nhập (IPS), Giám sát an ninh mạng (NSM) và xử lý PCAP.
Intrusion Detection Systems (IDS) và Intrusion Prevention Systems (IPS) đều tạo nên các phần của cơ sở hạ tầng mạng. IDS phân tích lưu lượng mạng để tìm chữ ký khớp với các cuộc tấn công đã biết trong khi IPS phân tích các gói và cũng có khả năng ngăn chặn gói tin được phân phối tùy thuộc vào cuộc tấn công được phát hiện. Suricata hoạt động bằng cách xác định, ngăn chặn và đánh giá các cuộc tấn công tinh vi nhất.
Suricata có các tính năng chính sau:
Quý Khách có thể tham khảo hướng dẫn SSH tới VPS/Server tại link: https://kb.pavietnam.vn/ssh-toi-server-linux-bang-putty.html
yum install epel-release -y
yum install suricata -y
Suricata được cài đặt từ repository OISF sẽ đi kèm file cấu hình bao gồm nhiều trường hợp sử dụng khác nhau. Theo mặc định cho Suricata là chế độ IDS, vì vậy khi chúng ta sử dụng Suricata cần cấu hình và tích hợp Suricata vào môi trường và biết rõ về các loại lưu lượng mà nó sẽ cảnh báo, chúng ta có thể chọn bật chế độ IPS.
Tuy nhiên, cấu hình mặc định vẫn có một vài cài đặt mà chúng ta để có thể cần thay đổi tùy thuộc vào môi trường và nhu cầu.
Suricata có thể bao gồm Community ID trong đầu ra JSON để giúp dễ dàng khớp các bản ghi sự kiện riêng lẻ với các bản ghi trong tập dữ liệu được tạo bởi các công cụ khác.
Nếu chúng ta định sử dụng Suricata với các công cụ khác như Zeek hoặc Elasticsearch , thêm Community ID ngay bây giờ là một ý tưởng hay.
Để bật tùy chọn Community ID, hãy mở /etc/suricata/suricata.yaml
bằng trình chỉnh sửa ưa thích của chúng ta:
vi /etc/suricata/suricata.yaml
Tìm đến dòng 120 # Community Flow ID
. Theo mặc định thì giá trị Community ID sẽ được tắt có giá trị là false
như vậy để bật giá trị Community ID chúng ta sẽ tiến hành chuyển false
thành true
như sau:
Chúng ta có thể cần ghi đè Network Interface mặc định hoặc các Interface mà chúng ta muốn Suricata kiểm tra lưu lượng truy cập. File cấu hình đi kèm với gói OISF Suricata mặc định kiểm tra lưu lượng trên thiết bị được gọi eth0
. Nếu hệ thống của chúng ta sử dụng giao diện mạng mặc định khác hoặc nếu chúng ta muốn kiểm tra lưu lượng truy cập trên nhiều giao diện, thì chúng ta sẽ cần thay đổi giá trị này.
Để xác định tên thiết bị của Network Interface mặc định, chúng ta có thể sử dụng lệnh như sau:
ip -p -j route show default
Trong đó các tuỳ chọn có ý nghĩa như sau:
-p
: định dạng đầu ra để dễ đọc hơn.-j
: in đầu ra dưới dạng JSON.Chúng ta sẽ nhận được đầu ra như sau:
Từ kết quả chúng ta có được thông tin từ dòng dev
cho biết thiết bị mặc định. Trong đầu ra ví dụ này, thì Network Interface sẽ là eth0
Bây giờ chúng ta có thể chỉnh sửa cấu hình của Suricata và xác minh hoặc thay đổi tên Network Interface bằng cách mở file cấu hình /etc/suricata/suricata.yaml
sử dụng trình chỉnh sửa ưa thích của bạn:
vi /etc/suricata/suricata.yaml
af-packet:
ở dòng thứ 580. Bên dưới dòng đó là Interface mặc định mà Suricata sẽ sử dụng để kiểm tra lưu lượng. Chỉnh sửa dòng này để phù hợp với Interface của chúng ta như đã thực hiện kiểm tra ở trên:af-packet:
đến dòng 650. Để thêm Interface mới, cần thực hiện chèn nó vào trước -interface: default
như ở ví dụ sau:
cluster-id
có giá trị duy nhất cho mỗi Interface.Suricata hỗ trợ Live Rule Reloading, có nghĩa là chúng ta có thể thêm, xóa và chỉnh sửa quy tắc mà không cần khởi động lại tiến trình Suricata đang chạy. Để bật tùy chọn Live Rule Reloading, hãy thực hiện di chuyển xuống cuối file cấu hình /etc/suricata/suricata.yaml
và thêm các dòng sau:
detect-engine:
- rule-reload: true
Với cài đặt này, chúng ta sẽ có thể gửi SIGUSR2 tín hiệu hệ thống đến quá trình đang chạy và Suricata sẽ tải lại mọi quy tắc đã thay đổi vào bộ nhớ.
Một lệnh như sau sẽ thông báo cho quá trình Suricata tải lại các bộ quy tắc của nó mà không cần khởi động lại quá trình:
kill -usr2 $(pidof suricata)
Trong đó $(pidof suricata)
của lệnh tìm ID tiến trình của Suricata đang chạy. Phần đầu kill -usr2
của lệnh sử dụng kill tiện ích để gửi SIGUSR2 tín hiệu đến ID tiến trình.
Theo mặc định, Suricata bao gồm một bộ quy tắc phát hiện giới hạn (trong thư mục /etc/suricata/rules), vì vậy việc bật Suricata vào thời điểm này sẽ chỉ phát hiện một lượng hạn chế lưu lượng truy cập không hợp lệ.
Suricata bao gồm một công cụ được gọi là suricata-update
có thể lấy các bộ quy tắc từ các nhà cung cấp bên ngoài. Chạy nó như sau để tải xuống bộ quy tắc cập nhật cho máy chủ Suricata:
suricata-update
Các dòng được đánh dấu cho biết đã tìm nạp quy tắc mới bởi suricata-update
và lưu chúng vào file cấu hình của Suricata. Nó cũng cho biết số lượng quy tắc đã được xử lý, trong ví dụ này, 43346 đã được thêm vào và 34518 đã được kích hoạt.
Công cụ suricata-update
này có thể tìm nạp các Ruleset từ nhiều nhà cung cấp bộ quy tắc miễn phí và thương mại. Một số bộ quy tắc như bộ ET Open mà chúng ta đã thêm là miễn phí, trong khi những bộ khác yêu cầu đăng ký trả phí.
Chúng ta có thể liệt kê nhóm nhà cung cấp Ruleset mặc định bằng cách sử dụng lệnh sau:
suricata-update list-sources
Ví dụ: Nếu chúng ta muốn thêm nhà cung cấp Ruleset tgreen/huntingquy
, chúng ta có thể bật bộ Ruleset này bằng cách sử dụng lệnh sau:
suricata-update enable-source tgreen/hunting
Bây giờ chúng ta đã chỉnh sửa file cấu hình của Suricata để bao gồm Community ID, network interface và bật live rule reloading, chúng ta nên kiểm tra cấu hình.
Suricata có chế độ kiểm tra tích hợp sẽ kiểm tra file cấu hình và mọi quy tắc bao gồm về tính hợp lệ. Thực thi lệnh sau:
suricata -T -c /etc/suricata/suricata.yaml -v
Trong đó:
-T
: Chạy Suricata ở chế độ thử nghiệm.-v
: Sẽ in một số thông tin bổ sung.-c
: Cho Suricata biết nơi tìm tệp cấu hình của nó.Quá trình kiểm tra có thể mất một chút thời gian tùy thuộc vào lượng CPU đã phân bổ cho Suricata và số lượng quy tắc đã thêm.
Với bộ quy tắc ET Open mặc định, chúng ta sẽ nhận được đầu ra như sau:
systemctl start suricata.service
systemctl status suricata.service
Như với lệnh chế độ kiểm tra, Suricata sẽ mất một hoặc hai phút để tải và phân tích cú pháp tất cả các quy tắc. Chúng ta có thể sử dụng lệnh tail
để theo dõi một thông báo cụ thể trong nhật ký của Suricata cho biết nó đã hoàn tất khởi động:
tail -f /var/log/suricata/suricata.log
Chúng ta sẽ nhận được một số dòng đầu ra. Tiếp tục đợi đầu ra cho đến khi nhận được một dòng như sau:
Bộ quy tắc ET Open mà chúng ta đã tải xuống chứa hơn 30000 quy tắc. Việc kiểm tra xem Suricata có đang phát hiện lưu lượng truy cập đáng ngờ với cấu hình mà chúng ta đã tạo hay không.
Thực thi lệnh sau tạo một yêu cầu HTTP, yêu cầu này sẽ trả về phản hồi phù hợp với quy tắc cảnh báo của Suricata:
curl http://testmynids.org/uid/index.html
Lệnh curl
sẽ xuất ra một phản hồi như sau:
uid=0(root) gid=0(root) groups=0(root)
Dữ liệu phản hồi ví dụ này được thiết kế để kích hoạt cảnh báo, bằng cách trả lại kết quả đầu ra của một lệnh như id vậy có thể chạy trên hệ thống từ xa bị xâm nhập thông qua web shell.
Bây giờ chúng ta có thể kiểm tra nhật ký của Suricata để có cảnh báo tương ứng. Có hai nhật ký được bật với cấu hình Suricata mặc định. Đầu tiên là trong /var/log/suricata/fast.log
và /var/log/suricata/eve.json
.
Đầu tiên chúng ta sẽ tiến hành check log tại file /var/log/suricata/fast.log
để kiểm tra xem sau khi thực thi lệnh curl
thì log Suricata sẽ tiến hành ghi những gì, chúng ta chạy lệnh:
grep 2100498 /var/log/suricata/fast.log
Chúng ta sẽ nhận thấy dòng thông báo như sau có chứa thông tin ATTACK_RESPONSE
kết quả đầy đủ như sau:
Tiếp theo chúng ta có thể kiểm tra log ghi tại file /var/log/suricata/eve.json
. Với file /var/log/suricata/eve.json
chúng ta cần sử dụng JSON để tiến hành phân tích file log này.
Suricata khuyến nghị sử dụng tiện ích jq
để đọc và lọc các mục nhập trong file này. Cài đặt jq
nếu jq
không có nó trên hệ thống của chúng ta bằng lệnh sau:
yum install jq -y
Sau khi cài đặt jq
thành công, chúng ta có thể lọc các eve.json bằng cách tìm kiếm ID 2100498 như lệnh sau:
jq ‘select(.alert .signature_id==2100498)’ /var/log/suricata/eve.json
Lệnh kiểm tra từng mục và in bất kỳ mục nhập nào có đối tượng, với signature_id khớp với giá trị 2100498 mà chúng ta đang tìm kiếm. Đầu ra sẽ giống như sau:
Chúng ta sẽ tiến hành thử nghiệm Rule ICMP của Suricata như sau:
Thực hiện ping đến VPS hoặc Server đã thiết lập Suricata, trong ví dụ này chúng ta sẽ tiến hành ping đến IP 45.117.171.146.
Quay trở lại VPS hoặc Server đã cài đặt và cấu hình Suricata chúng ta thực hiện check log realtime tại file /var/log/suricata/fast.log
bằng lệnh bên dưới:
Trong đó IP 112.213.91.149 là IP đang tiến hành ping đến server đã cài Suricata là 45.117.171.146
Như vậy qua 2 thử nghiệm trên chúng ta nhận thấy Suricata đã kiểm tra thành công lưu lượng mạng, khớp với quy tắc phát hiện và tạo ra một cảnh báo để phân tích hoặc ghi nhật ký tiếp theo.
========================================
P.A Việt Nam cung cấp đa dạng các cấu hình Máy Chủ Ảo và Máy Chủ Riêng
Cloud Server
Cloud Server Pro
Máy Chủ Riêng
Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/