Malware Analysis

Trên Windows, có rất nhiều phần mềm cũng như giải pháp để phát hiện và ngăn chặn malware. Tuy nhiên, với Linux dường như có rất ít các giải pháp để phát hiện và ngăn chặn. Ở bài viết này, tôi sẽ hướng dẫn các bạn cách rà soát phần mềm độc hại bằng các công cụ có sẵn trên Linux.

Chúng ta đều biết malware có nhiều loại với mục đích cụ thể. Để thực hiện mục đích này, malware cần thực hiện nhiều hoạt động cụ thể, chính những hoạy động này sẽ để lại các dấu vết trên hệ thống, từ đó giúp ta điều tra và phát hiện chúng.

Rà soát  phần mềm độc hại (malware)

  • Kiểm tra mức độ tiêu tốn tài nguyên

Để kiểm tra tiến trình nào tiêu tốn tài nguyên hệ thống như CPU, RAM, chúng ta sử dụng lệnh: top

Ở đây, chúng ta kiểm tra xem tiến trình nào sử dụng nhiều CPU, RAM và các tên các tiến trình đáng ngờ.

Khi tìm thấy tiến trình đáng ngờ, bạn có thể xem thông tin chi tiết bằng lệnh:

ps -f –forest -C tên_tiến_trình


Để kết thúc tiến trình đáng ngờ, bạn dùng lệnh: kill -9 pid_tiến trình

(giả sử đây là tiến trình đáng ngờ)

  • Kiểm tra mức độ sử dụng ổ đĩa

Chúng ta sẽ dụng công cụ iotop. Danh sách các tiến trình đang chạy cùng với thông tin về việc sử dụng I/O đĩa hiện tại của chúng:

Để xem tiến trình nào đọc và ghi từ ổ đĩa trong mỗi 20 giây, ta dùng lệnh sudo pidstat -dl 20

  • Kiểm tra các cổng mở

Malware thường sẽ chạy trên một cổng nhất định, cố gắng mở cổng và thiết lập kết nối. Để xem các kết nối được thiết lập, ta dùng lệnh sudo ss -tupn

Khi thấy một kết nối đáng ngờ, chúng ta có thể chặn chúng bằng cách sử dụng iptables.

Để xem trạng thái của các cổng đang mở, chúng ta dùng lệnh sudo ss -tulpn

  • Phân tích cách tệp được mở

Để xem các tệp nào được mở có liên kết với một tiến trình cụ thể, chúng ta dùng lệnh sudo lsof | grep tên_tiến_trình. (để lọc cụ thể theo tiến trình sử dụng grep)

  • Kiểm tra các dịch vụ đang chạy

Liệt kê các dịch vụ trên hệ thống

Chúng ta dùng lệnh systemctl list-unit-files | grep active để kiểm tra các dịch vụ đang chạy.

  • Tìm các tệp được tạo gần đây

Dùng lệnh find /bin/ -mtime -30 (tìm các tệp được tạo trong 30 ngày trong thư mục)

Để xem tất cả các tệp được truy cập trong 30 ngày, ta dùng lệnh find / -atime 30
Để tìm tất cả các tệp đã được truy cập trong 60 phút trước đó, ta dùng lệnh find / -amin -60

Để tìm các thuộc tính (permission, owner, group) đã bị thay đổi trong 30 phút trước đó, ta dùng lệnh find / -cmin -30

Kiểm tra rà soát các tệp đáng nghi ngờ.

  • Kiểm tra các dịch vụ chạy cùng với hệ thống khi khởi động

Để kiểm tra các dịch vụ tự động chạy khi hệ thống khởi động, ta dùng lệnh systemctl list-unit-files | grep enabled

  • Kiểm tra Cron job.

    Để tránh sự phát hiện, phần mềm độc hại thường lập lịch để chạy một tác vụ nào đó trong khoảng thời gian xác định. Để đạt được điều này, malware thường sử dụng cron. Để kiểm tra tất cả các tác vụ đã được lập lịch cho tất cả user trên hệ thống , ta dùng lệnh for user in $(cut -f1 -d: /etc/passwd); do sudo crontab -u $user -l 2>/dev/null | grep -v ‘^#’; done

Tôi đã trình bày một số cách để kiểm tra, rà soát phần mềm độc hại khi cảm thấy hệ thống linux không an toàn. Hi vọng nó hữu ích đối với các bạn.

Cảm ơn và hẹn gặp lại.

                                  (dt97_Malware_Analysis)

Chia sẻ