Sau thời gian dài lên kế hoạch với nhiều lần tạm hoãn, Microsoft cuối cùng cũng đã chính thức phát hành tiện ích phổ biến Sysiternals Procmon phiên bản Linux để người dùng có thể theo dõi hoạt động của các tiến trình đang chạy ngay trên hệ điều hành nguồn mở này.
Procmon trên Linux
Procmon là gì?
Có lẽ nhiều người dùng Windows không còn xa lạ với công cụ này. Procmon là một tiện ích hệ thống, giúp người dùng dễ dàng theo dõi các cuộc gọi hệ thống (system calls), truy cập Registry và file activity liên quan đến các quy trình đang chạy trong hệ điều hành.
Việc theo dõi các quy trình này cho phép người dùng chẩn đoán sớm các sự cố có thể xảy ra trên hệ thống, chẳng hạn như xung đột ứng dụng, sử dụng tài nguyên quá mức, hoặc thậm chí lây nhiễm phần mềm độc hại.
Sự ra mắt của công cụ Procmon nguồn mở phiên bản dành cho Linux đóng vai trò khá quan trọng, giúp người dùng Linux có thêm một công cụ hỗ trợ theo dõi các quy trình đang chạy trên hệ thống tương tự như Windows, có thể thấy trong bản demo bên dưới:
Cách cài đặt và build Procmon trên Linux
Yêu cầu hệ thống
- Hệ điều hành: Ubuntu 18.04 LTS với kernel >= 4.18 và kernel <= 5.3.
- cmake >= 3.13 (chỉ build-time)
- libsqlite3-dev >= 3.22 (chỉ build-time)
Cài Procmon
Đăng ký Microsoft key và feed:
wget -q https://packages.microsoft.com/config/ubuntu/$(lsb_release -rs)/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
Sau đó dùng câu lệnh sau để cài Procmon:
sudo apt-get update
sudo apt-get install procmon
Build Procmon từ mã nguồn
Cài dependency:
sudo apt-get -y install bison build-essential flex git libedit-dev \
libllvm6.0 llvm-6.0-dev libclang-6.0-dev python zlib1g-dev libelf-dev
Build và cài BCC:
git clone --branch tag_v0.10.0 https://github.com/iovisor/bcc.git
mkdir bcc/build
cd bcc/build
cmake .. -DCMAKE_INSTALL_PREFIX=/usr
make
sudo make install
Build Procmon:
git clone https://github.com/Microsoft/Procmon-for-Linux
cd Procmon-for-Linux
mkdir build
cd build
cmake ..
make
Build package Procmon:
Các gói phân phối cho Procmon trên Linux được build bằng cách sử dụng cpack. Để build package deb cho Procmon trên Ubuntu bạn chỉ cần chạy:
cd build
cpack ..
Cách sử dụng Procmon
Khi sử dụng Procmon trên Linux, người dùng có thể chỉ định ID tiến trình mà mình muốn theo dõi hoặc các cuộc gọi hệ thống cụ thể bằng những đối số sau:
Usage: procmon [TÙY CHỌN]
Có các TÙY CHỌN bao gồm:
- -h/--help: In màn hình trợ giúp này
- -p/--pids: Phân tách danh sách id tiến trình bằng dấu phẩy để giám sát
- -e/--events: Phân tách danh sách các cuộc gọi hệ thống bằng dấu phẩy để giám sát
- -c/--collect [ĐƯỜNG DẪN TIỆP]: Tùy chọn để khởi động Procmon ở chế độ không đầu cuối
- -f/--file ĐƯỜNG DẪN TIỆP: Mở tệp theo dõi Procmon
Ví dụ: để giám sát các tiến trình có id 738 và 2657, bạn nhập lệnh sau:
sudo procmon -p 738,2657
Để theo dõi PID 738 và liệt kê tất cả các cuộc gọi đọc/ghi, bạn sử dụng lệnh sau.
sudo procmon -p 738 -e read,write
Để biết thêm thông tin về cách sử dụng Procmon trong Linux, bạn có thể tham khảo chuyên trang GitHub của dự án này tại địa chỉ: github.com/microsoft/ProcMon-for-Linux