Phân tích tấn công tới máy chủ Linux
Bài đăng này đã không được cập nhật trong 3 năm
Lời mở đầu
Có bao giờ bạn đặt câu hỏi rằng những giải pháp bảo mật liệu đã làm có chính xác hay chưa ? Điều gì thực sự xảy ra khi bạn là nạn nhân của những vụ tấn công đơn ? Kẻ tấn công đã làm những gì ? Hi vọng bài viết phần nào sẽ trả lời được những câu hỏi đó bằng cách phân tích những cuộc tấn công vào server của bạn. Công cụ được tôi sử dụng đó là Sysdig.
Cài đặt
Để cài đặt tự động sysdig chỉ cần chạy lệnh sau đây với root hoặc sudo.
curl -s https://s3.amazonaws.com/download.draios.com/stable/install-sysdig | sudo bash
Tìm hiểu cuộc tấn công máy chủ
Cấu hình sysdig khởi động với enable compression (-z) và tuỳ chọn capture 4906 bytes cho mỗi I/O buffer.
sysdig -s 4096 -z -w /mnt/sysdig/$(hostname).scap.gz
Có 3 thứ cần phải lưu tâm hàng đầu :
- Có cái nhìn tổng thể về các process
- Network
- I/O
Đầu tiền, chúng ta nhìn vào nhưng top process bằng network I/O trên máy chủ bị tấn công :
Có vẻ quá nhiều lưu lượng cho 1 máy chủ và quan trọng nó vẫn chưa đi vào hoạt động. Vậy tại sao lại vậy ? Tiếp theo chúng ta sẽ làm rõ hơn bằng cách nhìn vào các kết nối mạng :
Vậy có hơn 800MB UDP traffic. Điều này cho thấy máy chủ này đã bị DoS. Có thể kẻ tấn công đã cài đặt botnet, chúng ta sẽ cùng làm rõ điều này hơn.
Điều gì đây? Những kẻ tấn công đã tạo ra một thư mục ẩn trong /usr/bin với cái tên khá “thông minh” .shm, tải tập tin được archive tại URL ở trên. Dưới đây là những gì kẻ tấn công đã làm tiếp theo :
Chúng ta thấy kẻ tấn công đã tải 1 file pdf ẩn, có vẻ như nó là 1 perl script. Sau khi thực thi script đó kẻ tấn công đã xoá khỏi server. Muốn hiểu được rõ hơn chúng ta cần biết trong script đó có gì. Nhưng đương nhiên chúng cũng đủ thông minh khi cũng xoá hỏi từ URL trên. Thật may với công cụ Sysdig, nó ghi lại mọi quá trình hoạt động đó.
Đó là perl DoS client được điều khiển từ IRC, vị vậy những kẻ tấn công có thể dễ dàng quản lý hàng trăm hàng nghìn server bị tấn công. Chúng ta có thể đoán được botnet này có nhiệm vụ nhận UDP IRC message, sau đó sẽ flood toàn bộ network traffic. Hãy thử xem nếu một ai đó gửi đi 1 lệnh :
Như bạn thấy, bot đã nhận được kết nối TCP có chứa lệnh tấn công IP 39.115.244.150 trên cổng 800, đó cũng là IP chúng ta đã thấy ở đầu trong dach sách kết nối với hơn 800MB traffic. Nhưng có vẻ cuộc tấn công chưa dừng lại ở đây ☹
magixlabs là gì ? Mr.Google trả lời đó là 1 loại rootkit, nhưng điều chúng ta muốn là phân tích nó, vì vậy chúng ta lại sử dụng sysdig một lần nữa.
Ah, một loạt cái file nhị phân, chúng muốn thay thế những file nhị phân của hệ thống.
Có vẻ chúng rất tốt bụng đấy chứ, còn làm một bản copy để backup lại để cho chúng ta nếu có nhu cầu ☺. Nhưng gì chúng ta tìm được đó là 2 botnet IRC, các file nhị phân. Nhưng vẫn có điều còn chưa rõ đó là traffic UDP được tạo ra bởi tiến trình/usr/bin/httpd và /usr/local/apac.
$ sysdig -r trace.scap.gz -A evt.args contains /usr/local/apac ...
955716 06:13:20.225363385 0 perl (10200) < clone res=10202(perl) exe=/usr/local/apach args= tid=10200(perl) pid=10200(perl) ptid=7748(-bash) cwd=/tmp fdlimit=1024 flags=0 uid=0 gid=0 exepath=/usr/bin/perl ...
$ sysdig -r trace.scap.gz proc.pid = 10200
954458 06:13:20.111764417 0 perl (10200) < execve res=0 exe=perl args=.sloboz.pdf. tid=10200(perl) pid=10200(perl) ptid=7748(-bash) cwd=/run/shm fdlimit=1024 exepath=/usr/bin/perl
Kết luận
Chỉ cần sử dụng một công cụ đơn giản Sysdig, chúng ta có thể theo dõi khá chính xác được những hoạt động của hệ thống. Trong bài viết IP và URL được người viết bài lấy từ một số tài liệu trên internet nhằm để các bạn có thể hiểu rõ hơn. Mặt khác, những gì trong bài viết chỉ bó hẹp trong cách suy nghĩ của người viết bài, còn rất nhiều điều khác đang chờ chính các bạn tự khám phá.
All rights reserved