Saturday, January 18, 2025

[CrowdSec] – Phần 7 – Theo dõi Logs SSH bằng CrowdSec

-

Theo dõi log SSH là một thực hành quan trọng trong việc bảo vệ hệ thống và mạng của bạn.

Lưu ý giao thức SSH đã được theo dõi mặc định khi cài đặt CrowdSec, ví dụ dưới đây mình chỉ muốn hướng dẫn cho các bạn cách để tải một parsers và scenarios mới từ kho lưu trữ online xuống máy chủ CrowdSec của bạn.

Dưới đây là một số lý do tại sao bạn nên thực hiện việc này:

  • Phát hiện tấn công Brute Force: Cuộc tấn công Brute Force là một trong những hình thức phổ biến nhất của cuộc tấn công vào hệ thống SSH. Trong cuộc tấn công này, kẻ tấn công cố gắng đăng nhập vào máy chủ SSH bằng cách thử hàng loạt các tên người dùng và mật khẩu. Theo dõi log SSH giúp bạn phát hiện các hoạt động đáng ngờ như đăng nhập thất bại nhiều lần từ cùng một địa chỉ IP, điều này có thể là tín hiệu của một cuộc tấn công Brute Force.
  • Xác minh hoạt động đăng nhập hợp lệ: Bằng cách theo dõi log SSH, bạn có thể xác minh các hoạt động đăng nhập hợp lệ từ các người dùng đã được ủy quyền. Bất kỳ hoạt động đăng nhập bất thường hoặc không được ủy quyền có thể là dấu hiệu của việc xâm nhập hoặc sự kiểm soát đối với tài khoản SSH.
  • Giám sát bảo mật hệ thống: Log SSH cung cấp thông tin về những người dùng nào đã truy cập vào hệ thống, từ đâu họ truy cập, và khi nào họ truy cập. Điều này giúp bạn theo dõi và đánh giá bảo mật hệ thống và xác minh rằng không có hoạt động không bình thường.
  • Phân tích sự cố: Khi có vấn đề về bảo mật hoặc sự cố trên hệ thống, log SSH có thể cung cấp thông tin quan trọng để phân tích và giải quyết vấn đề. Bằng cách xem xét log, bạn có thể xác định nguyên nhân của các sự cố và đưa ra biện pháp sửa chữa.
  • Tuân thủ quy định bảo mật: Theo dõi log SSH cũng là một phần của việc tuân thủ các quy định bảo mật và tiêu chuẩn an ninh thông tin. Nó giúp bạn duyệt qua lịch sử truy cập và tuân thủ các yêu cầu bảo mật và quy định nội bộ.

Để theo dõi log của SSH bằng CrowdSec, bạn cần thực hiện các bước sau:

  • Cài đặt và cấu hình CrowdSec: Đảm bảo bạn đã cài đặt và cấu hình CrowdSec trên máy chủ của mình. CrowdSec sẽ là nơi thu thập, phân tích, và quản lý các log.
  • Cấu hình Log Acquisition: Để bắt đầu theo dõi log SSH, bạn cần cấu hình CrowdSec để thu thập log từ SSH daemon (sshd).

Mở file cấu hình log acquisition, thường là /etc/crowdsec/acquis.yamlvà bạn cần thêm một phần cấu hình mới cho log SSH vào file cấu hình này. Dưới đây là một ví dụ:

filenames:
  - /var/log/auth.log
labels:
  type: syslog

Trong ví dụ này, chúng ta đang cấu hình CrowdSec để thu thập log từ /var/log/auth.log, nơi các sự kiện SSH thường được ghi lại trên hệ thống Linux.

Lưu file cấu hình và khởi động lại CrowdSec Agent để áp dụng thay đổi:

sudo systemctl restart crowdsec

Tiếp theo hãy cài đặt Parser và Scenario:

Để CrowdSec có thể phân tích log SSH và thực hiện các hành động bảo mật, bạn cần cài đặt parsers và scenarios tương ứng. CrowdSec có một số parsers và scenarios mặc định cho SSH.

Để cài đặt parsers sử dụng lệnh cscli:

$ sudo cscli parsers install crowdsecurity/sshd-logs
WARN[20-08-2023 10:37:17] crowdsecurity/sshd-logs : overwrite          
INFO[20-08-2023 10:37:17] Enabled crowdsecurity/sshd-logs              
INFO[20-08-2023 10:37:17] Run 'sudo systemctl reload crowdsec' for the new configuration to be effective.

Dùng lệnh sudo cscli parsers list để kiểm tra xem crowdsecurity/sshd-logs đã được cài đặt chưa, nếu bạn thấy nó trong danh sách kết quả thì bạn đã cài thành công.

$ sudo cscli parsers list

PARSERS
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
 Name                             📦 Status   Version   Local Path                                             
───────────────────────────────────────────────────────────────────────────────────────────────────────────────
 crowdsecurity/dateparse-enrich   ✔️ enabled   0.2       /etc/crowdsec/parsers/s02-enrich/dateparse-enrich.yaml 
 crowdsecurity/geoip-enrich       ✔️ enabled   0.2       /etc/crowdsec/parsers/s02-enrich/geoip-enrich.yaml     
 crowdsecurity/sshd-logs          ✔️ enabled   2.2       /etc/crowdsec/parsers/s01-parse/sshd-logs.yaml         
 crowdsecurity/syslog-logs        ✔️ enabled   0.8       /etc/crowdsec/parsers/s00-raw/syslog-logs.yaml         
 crowdsecurity/whitelists         ✔️ enabled   0.2       /etc/crowdsec/parsers/s02-enrich/whitelists.yaml       
───────────────────────────────────────────────────────────────────────────────────────────────────────────────

Để cài đặt scenarios sử dụng lệnh cscli scenarios install:

$ sudo cscli scenarios install crowdsecurity/ssh-bf
WARN[20-08-2023 10:44:34] crowdsecurity/ssh-bf : overwrite             
INFO[20-08-2023 10:44:34] Enabled crowdsecurity/ssh-bf                 
INFO[20-08-2023 10:44:34] Run 'sudo systemctl reload crowdsec' for the new configuration to be effective. 

$ sudo cscli scenarios install crowdsecurity/ssh-slow-bf
WARN[20-08-2023 10:44:45] crowdsecurity/ssh-slow-bf : overwrite        
INFO[20-08-2023 10:44:45] Enabled crowdsecurity/ssh-slow-bf            
INFO[20-08-2023 10:44:45] Run 'sudo systemctl reload crowdsec' for the new configuration to be effective.

Sau khi cài đặt, bạn có thể kiểm tra danh sách scenarios đã cài đặt bằng lệnh cscli scenarios list.

$ cscli scenarios list

SCENARIOS
────────────────────────────────────────────────────────────────────────────────────────────
 Name                        📦 Status   Version   Local Path                               
────────────────────────────────────────────────────────────────────────────────────────────
 crowdsecurity/ssh-bf        ✔️ enabled   0.1       /etc/crowdsec/scenarios/ssh-bf.yaml      
 crowdsecurity/ssh-slow-bf   ✔️ enabled   0.2       /etc/crowdsec/scenarios/ssh-slow-bf.yaml 
────────────────────────────────────────────────────────────────────────────────────────────

Cuối cùng theo hướng dẫn bạn hãy reload lại CrowdSec.

sudo systemctl reload crowdsec

Khi bạn đã cấu hình và cài đặt parsers và scenarios, CrowdSec sẽ bắt đầu theo dõi log SSH và bắt đầu phát hiện các hành vi không bình thường. Bạn có thể kiểm tra các cảnh báo và quyết định từ CrowdSec Dashboard hoặc sử dụng lệnh cscli alerts list để kiểm tra các cảnh báo trên dòng lệnh.

Lưu ý rằng cụ thể về cấu hình và cài đặt parsers và scenarios có thể thay đổi dựa trên phiên bản CrowdSec và hệ thống của bạn. Đảm bảo bạn tham khảo tài liệu hướng dẫn của CrowdSec và phiên bản cụ thể bạn đang sử dụng để có sự hỗ trợ chi tiết.

Để thêm thủ công một IP vào bộ lọc SSH Slow Brute Force (crowdsecurity/ssh-slow-bf), bạn có thể sử dụng lệnh cscli decisions add để tạo một quyết định ban đầu. Đây là cách bạn có thể thực hiện:

  • Đầu tiên, bạn cần biết địa chỉ IP mà bạn muốn chặn. Hãy đảm bảo rằng bạn đã xác định đúng địa chỉ IP mà bạn muốn thêm vào bộ lọc.
  • Sử dụng lệnh sau để thêm IP vào bộ lọc SSH Slow Brute Force:
sudo cscli decisions add --type ban --duration 1h --reason "SSH brute force" --scope "IP" --value "your_ip_address"
  • Thay your_ip_address bằng địa chỉ IP thực tế mà bạn muốn chặn.
    • --type ban: Đây là loại quyết định, và trong trường hợp này, nó sẽ là một quyết định ban.
    • --duration 1h: Độ dài thời gian mà IP sẽ bị chặn. Trong ví dụ này, IP sẽ bị chặn trong 1 giờ.
    • --reason "SSH brute force": Lý do cho việc chặn IP. Bạn có thể thay đổi lý do này tùy theo tình huống.
    • --scope "IP": Phạm vi của quyết định, trong trường hợp này là IP.
    • --value "your_ip_address": Địa chỉ IP bạn muốn thêm vào bộ lọc.
  • Lệnh này sẽ thêm IP vào bộ lọc và chặn nó trong khoảng thời gian được chỉ định (1 giờ trong ví dụ trên). Sau khi thời gian chặn kết thúc, IP sẽ được tự động mở khóa.

Ví dụ:

$ sudo cscli decisions add --type ban --duration 5m --reason "SSH brute force" --scope "IP" --value "192.168.13.225"
INFO[20-08-2023 13:19:20] Decision successfully added

Bạn có thể dùng lệnh sudo cscli decisions list để xem nó.

$ sudo cscli decisions list
╭───────┬────────┬───────────────────┬─────────────────┬────────┬─────────┬────┬────────┬────────────────┬──────────╮
│  ID   │ Source │    Scope:Value    │     Reason      │ Action │ Country │ AS │ Events │   expiration   │ Alert ID │
├───────┼────────┼───────────────────┼─────────────────┼────────┼─────────┼────┼────────┼────────────────┼──────────┤
│ 30008 │ cscli  │ Ip:192.168.13.225 │ SSH brute force │ ban    │         │    │ 1      │ 3m6.240960135s │ 10       │
╰───────┴────────┴───────────────────┴─────────────────┴────────┴─────────┴────┴────────┴────────────────┴──────────╯

Bạn cũng có thể vào phần Alert trên Dashboard để xem nó.

Hoặc phần Decisions.

Bạn cũng có thể xem nó ở phần logs.

$ tail -f /var/log/crowdsec.log 
time="20-08-2023 12:19:44" level=info msg="(81ad445998a76a0c0d2e3e6ba3f67221JcDmzVijYfuI99EW/cscli) Block all access from IP 192.168.13.228 by ip 192.168.13.225 : 1m ban on Ip 192.168.13.225"
time="20-08-2023 12:20:54" level=info msg="(81ad445998a76a0c0d2e3e6ba3f67221JcDmzVijYfuI99EW/cscli) Block all access from IP 192.168.13.228 by ip 192.168.13.225 : 5m ban on Ip 192.168.13.225"
time="20-08-2023 12:26:08" level=info msg="(81ad445998a76a0c0d2e3e6ba3f67221JcDmzVijYfuI99EW/cscli) Block all access from IP 192.168.13.228 by ip 192.168.13.225 : 5m ban on Ip 192.168.13.225"
time="20-08-2023 12:26:59" level=info msg="capi metrics: metrics sent successfully"
time="20-08-2023 12:47:28" level=info msg="Starting community-blocklist update"
time="20-08-2023 12:47:32" level=info msg="capi/community-blocklist : 0 explicit deletions"
time="20-08-2023 12:47:32" level=warning msg="sqlite is not using WAL mode, LAPI might become unresponsive when inserting the community blocklist"
time="20-08-2023 12:47:33" level=info msg="crowdsecurity/community-blocklist : added 15000 entries, deleted 14897 entries (alert:9)"
time="20-08-2023 12:56:59" level=info msg="capi metrics: metrics sent successfully"
time="20-08-2023 13:19:20" level=info msg="(81ad445998a76a0c0d2e3e6ba3f67221JcDmzVijYfuI99EW/cscli) SSH brute force by ip 192.168.13.225 : 5m ban on Ip 192.168.13.225"

Và đây là kết quả khi bạn dùng IP 192.168.13.181 để SSH vào server này, kết quả bạn sẽ không nhận được một phản hồi nào kể cả phản hồi đóng kết nối.

Như vậy theo cộng đồng list thì toàn bộ các IP đã được list ở phần Decisions sẽ bị chặn hết.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories