Phân tích tấn công tới máy chủ Linux

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 :

1.png

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 : 2.png

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.

3.png

Đ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 :

4.png

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 đó.

5.png

Đó 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 :

6.png

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 ☹ 7.png

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.

8.png

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.

9.png

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