Monitor Amazon Cloudwatch Log kiểm soát truy cập qua SSH
Rõ ràng bảo mật là một vấn đề lớn trong ngành kỹ thuật, public cloud cũng không phải ngoại lệ . Nếu bạn search Google "top cloud security concerns", một trong những bài viết ở trên đầu có tiêu đề là "9 worst cloud security threats". Trong phần Account Or Service Traffic Hijacking : An intruder ...
Rõ ràng bảo mật là một vấn đề lớn trong ngành kỹ thuật, public cloud cũng không phải ngoại lệ . Nếu bạn search Google "top cloud security concerns", một trong những bài viết ở trên đầu có tiêu đề là "9 worst cloud security threats". Trong phần Account Or Service Traffic Hijacking :
An intruder with control over a user account can eavesdrop on transactions, manipulate data, provide false and business-damaging responses to customers, and redirect customers to a competitor's site or inappropriate sites
Tạm dịch là :
Một kẻ xâm nhập có quyền kiểm soát một tài khoản người dùng có thể nghe trộm các giao dịch, thao tác dữ liệu, cung cấp các phản hồi giả tạo và gây thiệt hại cho khách hàng và chuyển hướng khách hàng đến trang web của đối thủ cạnh tranh hoặc các trang web không phù hợp.
https://www.informationweek.com/cloud/infrastructure-as-a-service/9-worst-cloud-security-threats/d/d-id/1114085?
Trong bài viết này mình sẽ hướng dẫn cấu hình EC2 instance sử dụng CloudWatch agent để gửi security log đến CloudWatch. Nhóm CloudWatch log và Log Stream sẽ được tạo tự động cho bạn. Monitor security log bằng cách sử dụng pattern, CloudWatch sẽ chủ động gửi email thông báo tới email của bạn. Bạn cũng phải cấu hình dịch vụ Amazon Simple Notification Service (SNS) để gửi email thông báo.
Bài viết mặc dù tập trung vào việc ssh fail đến server theo mô hình phía dưới nhưng qua đó các bạn có thể sử dụng theo rất nhiều cách khác và monitor nhiều loại log cũng như metric khác nhau.
CloudWatch agent bắt buộc phải cài trên EC2 instance . Sau khi cài đặt thành công, bạn sẽ tiến hành chỉnh sửa file config. Việc đầu tiên là chúng ta sẽ tạo 1 instance, vào EC2 Service chọn Launch instance
Sau khi tạo xong instance, bạn sẽ có file private key download về máy. Cần set permission cho key pem này
framgias-MacBook-Air-2:~ ltminh88$ chmod 400 Downloads/letuanminhinfra.pem
SSH vào server, tuỳ vào loại ami bạn chọn, ở đây mình chọn Amazon AMI .
framgias-MacBook-Air-2:~ ltminh88$ ssh -i Downloads/letuanminhinfra.pem ec2-user@34.226.195.30
Cài đặt và khởi động dịch vụ awslogs
[root@ip-172-31-26-195 ~]# yum install awslogs.noarch [root@ip-172-31-26-195 ~]# service awslogs start
Xác nhận service đã chạy hay chưa
[root@ip-172-31-26-195 ~]# service awslogs start
Kiểm tra file awslogs đang được lưu ở đâu
[root@ip-172-31-26-195 ~]# ps -ef | grep -v grep | grep awslogs root 8381 1 0 09:01 pts/0 00:00:00 /usr/bin/python2.7 /usr/bin/aws logs push --config-file /etc/awslogs/awslogs.conf --additional-configs-dir /etc/awslogs/config
Chỉnh sửa file awslogs config
[general] state_file = /var/lib/awslogs/agent-state [SSHLogstream] datetime_format = %b %d %H:%M:%S file = /var/log/secure log_stream_name = {instance_id} log_group_name = SSHfail
Restart lại dịch vụ Awslogs
[root@ip-172-31-26-195 ~]# service awslogs restart
Trên màn hình AWS Management Console, chọn Services > Management Tools > CloudWatch > Logs. Bạn sẽ thấy group log đã được tạo 1 cách tự động, trong group này có log stream là tên của instance.
Trong màn hình AWS management console, Service > Messaging > SImple Notification Service.
Click Create topic
Copy Amazon Resource Name (ARN) trong Topic details
Tạo 1 subcription cho topic SSH failure. Từ SNS dashboard, click Create subscription
Topic ARN : Paste ARN mà bạn vừa copy Protocol : Email Endpoint : Địa chỉ email mà bạn muốn gửi đến
Sau khi tạo xong bạn sẽ nhận được 1 email thông báo confirm từ Amazon .
Click Confirm subscription. Giống như hình dưới là thành công
Từ AWS Management Console, Service > Management Tools > CloudWatch, tiếp tục chọn Alarms Click Create Alarm. Trong mục Select Metric, chọn Logs, lựa chọn IncomingLogEvents cho Metric Name. Điền các mục sau như hình bên dưới
Name : is : for : Period : Action :
Tạo partern cho SSH secure log Click Logs, chọn Create Metric Filter
Điền filter partern như sau :
[Mon, day, timestamp, ip, id, status = Invalid, ...]
Monitor Metric từ Log Từ AWS Management Console > Metric
Trong bài hướng dẫn này mình đã có thao tác sai trong việc SSH ngay lập tức sẽ nhận được email cảnh báo như dưới đây.