Cách cài đặt osquery trên Debian 10

theanh

Administrator
Nhân viên
osquery là một công cụ miễn phí và mã nguồn mở do Facebook phát triển, có thể được sử dụng để truy vấn thông tin liên quan đến hệ điều hành bao gồm, mức sử dụng bộ nhớ, các gói đã cài đặt, thông tin quy trình, người dùng đăng nhập, cổng lắng nghe và nhiều thông tin khác. Công cụ này có thể chạy trên một số hệ điều hành bao gồm Windows, Linux, FreeBSD và MacOS. Đây là một công cụ rất hữu ích cho nhiều trường hợp sử dụng để khắc phục sự cố về hiệu suất và hoạt động. Công cụ này đi kèm với rất nhiều công cụ giúp bạn thực hiện phân tích và giám sát hệ điều hành.

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách cài đặt và sử dụng osquery trên Debian 10.

Điều kiện tiên quyết​

  • Một máy chủ đang chạy Debian 10.
  • Mật khẩu gốc được cấu hình trên máy chủ của bạn.

Bắt đầu​

Trước khi bắt đầu, bạn nên cập nhật gói hệ thống của mình lên phiên bản mới nhất. Bạn có thể cập nhật tất cả các gói bằng lệnh sau:
Mã:
apt-get update -y
apt-get upgrade -y
Sau khi tất cả các gói được cập nhật, hãy khởi động lại hệ thống để áp dụng các thay đổi.

Cài đặt osquery​

Theo mặc định, osquery không có trong kho lưu trữ mặc định của Debian 10. Vì vậy, bạn sẽ cần thêm kho lưu trữ osquery vào hệ thống của mình.

Đầu tiên, hãy tải xuống và thêm khóa GPG bằng lệnh sau:
Mã:
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
Tiếp theo, hãy thêm kho lưu trữ osquery bằng lệnh sau:
Mã:
apt-get install software-properties-common -y
add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
Tiếp theo, hãy cập nhật kho lưu trữ và cài đặt osquery bằng lệnh sau:
Mã:
apt-get update -y
apt-get install osquery -y
Sau khi quá trình cài đặt hoàn tất, hãy khởi động dịch vụ osquery bằng lệnh sau:
Mã:
osqueryctl start osqueryd
Bạn cũng có thể xác minh trạng thái của osquery bằng lệnh sau:
Mã:
osqueryctl status osqueryd
Bạn sẽ thấy đầu ra sau:
Mã:
? osqueryd.service - Daemon osquery Đã tải: đã tải (/lib/systemd/system/osqueryd.service; đã tắt; cài đặt trước của nhà cung cấp: đã bật) Đang hoạt động: đang hoạt động (đang chạy) kể từ CN 2020-04-19 15:21:57 UTC; 6 giây trước Tiến trình: 25333 ExecStartPre=/bin/sh -c if [ ! -f $CONFIG_FILE ]; then echo {} > $CONFIG_FILE; fi (code=exited, status=0/SUCCESS) Tiến trình: 25334 ExecStartPre=/bin/sh -c if [ ! -f $FLAG_FILE ]; then touch $FLAG_FILE; fi (code=exited, status=0/SUCCESS) Tiến trình: 25336 ExecStartPre=/bin/sh -c if [ -f $LOCAL_PIDFILE ]; then mv $LOCAL_PIDFILE $PIDFILE; fi (code=exited, status=0/SUCCESS) PID chính: 25337 (osqueryd) Nhiệm vụ: 13 (giới hạn: 4701) Bộ nhớ: 6,4M CGroup: /system.slice/osqueryd.service ??25337 /usr/bin/osqueryd --flagfile /etc/osquery/osquery.flags --config_path /etc/osquery/osquery.conf ??25339 /usr/bin/osqueryd19/04 15:21:57 debian10 systemd[1]: Đang khởi động Daemon osquery...19/04 15:21:57 debian10 systemd[1]: Đã khởi động Daemon osquery.19/04 15:21:57 debian10 osqueryd[25337]: osqueryd đã bắt đầu [phiên bản=4.2.0]19/04 15:21:57 debian10 osqueryd[25337]: I0419 15:21:57.261158 25339 events.cpp:863] Nhà xuất bản sự kiện chưa được bật: auditeventpublisher: Xuất bản19/04 15:21:57 debian10 osqueryd[25337]: I0419 15:21:57.261485 25339 events.cpp:863] Nhà xuất bản sự kiện chưa được bật: syslog: Nhà xuất bản đã bị vô hiệu hóa v

Làm việc với osquery​

osquery đi kèm với ba thành phần hữu ích osqueryi, osqueryd và osqueryctl. osqueryi là một shell tương tác osquery và không giao tiếp với daemon. Bạn có thể sử dụng shell để thực thi các truy vấn và khám phá trạng thái hiện tại của hệ điều hành. osqueryd là daemon giám sát máy chủ có thể được sử dụng để lên lịch các truy vấn và ghi lại các thay đổi trạng thái của hệ điều hành. osqueryctl là một tập lệnh trợ giúp để kiểm tra cấu hình.

Bạn có thể chạy lệnh sau để kết nối với shell osquery:
Mã:
osqueryi
Bạn sẽ nhận được kết quả sau:
Mã:
Sử dụng cơ sở dữ liệu ảo. Cần trợ giúp, hãy nhập '.help'
Tiếp theo, hãy chạy lệnh .help để xem tất cả các tùy chọn có sẵn với osquery:
Mã:
osquery> .help
Bạn sẽ nhận được kết quả sau:
Mã:
Chào mừng đến với shell osquery. Vui lòng khám phá hệ điều hành của bạn!Bạn đang kết nối với cơ sở dữ liệu ảo 'trong bộ nhớ' tạm thời..all [TABLE] Chọn tất cả từ một bảng.bail ON|OFF Dừng sau khi gặp lỗi.echo ON|OFF Bật hoặc tắt lệnh echo.exit Thoát khỏi chương trình này.features Liệt kê các tính năng của osquery và trạng thái của chúng.headers ON|OFF Bật hoặc tắt hiển thị tiêu đề.help Hiển thị thông báo này.mode MODE Đặt chế độ đầu ra trong đó MODE là một trong những chế độ sau: csv Giá trị phân tách bằng dấu phẩy cột Cột căn trái xem .width dòng Một giá trị trên một dòng danh sách Giá trị phân cách bằng .separator string pretty Kết quả SQL được in đẹp (mặc định).nullvalue STR Sử dụng STRING thay cho giá trị NULL.print STR... In ký tự STRING.quit Thoát khỏi chương trình này.schema [TABLE] Hiển thị các câu lệnh CREATE.separator STR Thay đổi dấu phân cách được chế độ đầu ra sử dụng.socket Hiển thị đường dẫn socket tiện ích mở rộng osquery.show Hiển thị các giá trị hiện tại cho nhiều cài đặt khác nhau.summary Biệt danh cho lệnh show meta.tables [TABLE] Liệt kê tên của tables.types [SQL] Hiển thị kết quả của getQueryColumns cho truy vấn đã cho.width [NUM1]+ Đặt độ rộng cột cho chế độ "column".timer ON|OFF Bật hoặc tắt phép đo bộ đếm thời gian CPUosquery>
Có rất nhiều bảng có sẵn để truy vấn. Bạn có thể liệt kê tất cả các bảng bằng lệnh sau:
Mã:
osquery> .table
Bạn sẽ nhận được đầu ra sau:
Mã:
=> acpi_tables => apparmor_profiles => apt_sources => arp_cache => atom_packages => augeas => authorized_keys => block_devices => carbon_black_info => carves => chrome_extensions => cpu_time => cpuid = > crontab = > curl = > curl_certificate = > deb_packages = > device_file = > device_hash = > device_partitions = > disk_encryption = > dns_resolvers = > docker_container_labels = > docker_container_mounts
Bạn có thể tìm thấy nhiều thông tin hệ thống khác nhau bằng cách sử dụng bảng trên với osquery.

Giám sát hệ thống với osquery​

Bạn có thể theo dõi mức sử dụng bộ nhớ, thông tin quy trình, dung lượng đĩa, người dùng đăng nhập và nhiều thông tin khác với osquery.

Trước tiên, hãy khởi chạy shell osquery bằng lệnh sau:
Mã:
osqueryi
Tiếp theo, bạn có thể lấy thông tin về tên máy chủ hệ thống, lõi CPU và bộ nhớ vật lý bằng lệnh sau:
Mã:
osquery> select hostname,cpu_physical_cores,physical_memory from system_info;
Bạn sẽ nhận được kết quả sau:
Mã:
+------------+--------------------+-----------------+| hostname | cpu_physical_cores | physical_memory |+------------+--------------------+-----------------+| debian10 | 1 | 1032937472 |+------------+------------------+-----------------+
Để lấy thông tin về tệp ssh_config, hãy chạy truy vấn sau:
Mã:
osquery> select * from ssh_configs;
Bạn sẽ nhận được kết quả sau:
Mã:
W0419 15:47:17.043509 25397 virtual_table.cpp:959] Theo mặc định, bảng ssh_configs trả về dữ liệu dựa trên người dùng hiện tại, hãy cân nhắc JOINing với bảng usersW0419 15:47:17.043740 25397 virtual_table.cpp:974] Vui lòng xem tài liệu hướng dẫn về bảng: https://osquery.io/schema/#ssh_configs+-----+--------+--------------------------+---------------------+| uid | block | option | ssh_config_file |+-----+--------+--------------------------+---------------------+| 0 | host * | sendenv lang lc_* | /etc/ssh/ssh_config || 0 | host * | hashknownhosts yes | /etc/ssh/ssh_config || 0 | host * | gssapiauthentication yes | /etc/ssh/ssh_config |+-----+--------+--------------------------+---------------------+osquery>
Để có danh sách tất cả người dùng trong hệ thống của bạn, hãy chạy truy vấn sau:
Mã:
osquery> SELECT * FROM users;
Bạn sẽ nhận được kết quả sau:
Mã:
+-------+-------+------------+----------------------+-----------------+-----------------------+----------------------+-------------------+-------------------+------+| uid | gid | uid_signed | gid_signed | username | description | directory | shell | uuid |+-------+-------+-------------+-------------+-------------------+-----------------------------------+----------------------+-------------------+------+| 0 | 0 | 0 | 0 | gốc | gốc | /gốc | /bin/bash | || 1 | 1 | 1 | 1 | daemon | daemon | /usr/sbin | /usr/sbin/nologin | || 2 | 2 | 2 | 2 | thùng | thùng | /bin | /usr/sbin/nologin | || 3 | 3 | 3 | 3 | sys | sys | /dev | /usr/sbin/nologin | || 4 | 65534 | 4 | 65534 | đồng bộ | đồng bộ | /bin | /bin/đồng bộ hóa | || 5 | 60 | 5 | 60 | trò chơi | trò chơi | /usr/trò chơi | /usr/sbin/nologin | || 6 | 12 | 6 | 12 | man | man | /var/cache/man | /usr/sbin/nologin | || 7 | 7 | 7 | 7 | lp | lp | /var/spool/lpd | /usr/sbin/nologin | |
Nếu bạn muốn liệt kê tất cả người dùng không thuộc hệ thống trong hệ thống của mình, hãy chạy truy vấn sau:
Mã:
osquery> select * from users where uid  select * from logged_in_users where type = 'user';
Bạn sẽ nhận được kết quả sau:
Mã:
+------+-------+--------------+------------+-------+| type | user | tty | host | time | pid |+------+------+-------+--------------+------------+-------+| user | root | pts/0 | 27.61.217.59 | 1587309538 | 19279 || user | root | pts/1 | 27.61.217.59 | 1587310737 | 25378 || người dùng | root | pts/2 | 27.61.217.59 | 1587310997 | 25394 |+------+------+-------+--------------+------------+---------+
Để hiển thị thông tin bộ nhớ của hệ thống, hãy chạy truy vấn sau:
Mã:
osquery> select * from memory_info;
Bạn sẽ nhận được kết quả sau:
Mã:
+--------------+--------------------+-----------+-----------+-----------+--------------+------------+-----------+| memory_total | memory_free | buffers | cached | swap_cached | active | inactive | swap_total | swap_free |+--------------+-------------+----------+------------+-------------+------------+-----------+------------+-----------+| 4138455040 | 2407211008 | 79745024 | 1384751104 | 0 | 556371968 | 954744832 | 0 | 0 |+--------------+--------------+------------+------------+-------------+-----------+-----------+------------+-----------+osquery>
Để tìm tải trung bình của hệ thống, hãy chạy truy vấn sau:
Mã:
osquery> select * from load_average;
Bạn sẽ nhận được kết quả sau:
Mã:
+--------+----------+| period | average |+-------+----------+| 1m | 0.000000 || 5m | 0.000000 || 15m | 0.000000 |+-------+----------+osquery>
Để có danh sách năm gói đầu tiên trong hệ thống của bạn, hãy chạy truy vấn sau:
Mã:
osquery> select * from deb_packages top limit 5;
Bạn sẽ nhận được kết quả sau:
Mã:
+-------------------+------------+--------------+------+-------+----------+| name | version | source | size | arch | revision |+-------------------+------------+--------------+------+-------+-------+| acpi-support-base | 0.142-8 | acpi-support | 43 | all | 8 || acpid | 1:2.0.31-1 | | 146 | amd64 | 1 || adduser | 3.118 | | 849 | all | || apparmor | 2.13.2-10 | | 1833 | amd64 | 10 || apt | 1.8.2 | | 4064 | amd64 | |+-------------------+------------+--------------+------+--------+----------+
Để biết thông tin về các tiến trình đang chạy trong hệ thống của bạn, hãy chạy truy vấn sau:
Mã:
osquery> SELECT DISTINCT processes.name, listening_ports.port, processes.pid FROM listening_ports JOIN processes USING (pid) WHERE listening_ports.address = '0.0.0.0';
Bạn sẽ nhận được kết quả sau:
Mã:
+------+------+-----+| name | port | pid |+------+------+-----+| sshd | 22 | 729 |+------+------+-----+
Để tìm tất cả các lần đăng nhập trước đó, hãy chạy truy vấn sau:
Mã:
osquery> select * from last;
Bạn sẽ nhận được kết quả sau:
Mã:
+----------+-------+-------+-------+------------+--------------+| username | tty | pid | type | time | host |+----------+-------+-------+------+------------+--------------+| gốc | điểm/0 | 1448 | 7 | 1587365277 | 27.61.217.41 || gốc | điểm/1 | 13392 | 7 | 1587368569 | 27.61.217.41 || | điểm/0 | 1004 | 8 | 1587376329 | || | điểm/1 | 13321 | 8 | 1587376821 | || | ttyS0 | 748 | 8 | 1587465619 | || | tty1 | 749 | 8 | 1587465619 | || gốc | pts/0 | 1057 | 7 | 1587465664 | 27.61.217.9 || root | pts/1 | 1375 | 7 | 1587465846 | 27.61.217.9 |+----------+-------+-------+------+------------+--------------+
Để liệt kê tất cả các công việc được lên lịch bởi crontab, hãy chạy truy vấn sau:
Mã:
osquery> select command, path from crontab ;
Bạn sẽ nhận được kết quả sau:
Mã:
+-------------------------------------------------------------------------------------------------------------------------------------------+-------------------+| lệnh | đường dẫn |+----------------------------------------------------------------------------------------------------------------------------------------------------+-------------------+| root cd / && run-parts --report /etc/cron.hourly | /etc/crontab || root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) | /etc/crontab || root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) | /etc/crontab || root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) | /etc/crontab || root if [ -x /usr/share/mdadm/checkarray ] && [ $(date +\%d) -le 7 ]; then /usr/share/mdadm/checkarray --cron --all --idle --quiet; fi | /etc/cron.d/mdadm |
Để tìm tất cả các cổng mở trong hệ thống của bạn, hãy chạy truy vấn sau:
Mã:
osquery> select * from listening_ports;
Bạn sẽ nhận được kết quả sau:
Mã:
+------+---------+----------+----------+----------+----------------------------------------+---------------+| pid | port | protocol | family | address | fd | socket | path | net_namespace |+------+------+----------+--------+-------------+------+--------+---------------------------------------+---------------+| 444 | 53 | 6 | 2 | 127.0.0.53 | 13 | 14910 | | 4026531993 || 729 | 22 | 6 | 2 | 0.0.0.0 | 3 | 16940 | | 4026531993 || 664 | 3306 | 6 | 2 | 127.0.0.1 | 69 | 15824 | | 4026531993 || 544 | 6379 | 6 | 2 | 127.0.0.1 | 6 | 15472 | | 4026531993 || 729 | 22 | 6 | 10 | :: | 4 | 16951 | | 4026531993 || 544 | 6379 | 6 | 10 | ::1 | 7 | 15473 | | 4026531993 || 759 | 80 | 6 | 10 | :: | 4 | 17009 | | 4026531993 || 444 | 53 | 17 | 2 | 127.0.0.53 | 12 | 14909 | | 4026531993 || 405 | 58 | 255 | 10 | :: | 15 | 16039 | | 4026531993 |
Để liệt kê 5 tiến trình hoạt động tích cực nhất, hãy chạy truy vấn sau:
Mã:
osquery> select count(pid) as total, name from processes group by name order by total desc limit 5;
Bạn sẽ nhận được kết quả sau:
Mã:
+-------+---------+| total | name |+-------+---------+| 4 | sshd || 3 | apache2 || 2 | systemd || 2 | bash || 2 | agetty |+-------+---------+

Kết luận​

Trong hướng dẫn trên, chúng ta đã tìm hiểu cách cài đặt và sử dụng osquery trong Debian 10. osquery là công cụ rất hữu ích để tìm bất kỳ cửa hậu, phần mềm độc hại hoặc bất kỳ tiến trình zombie nào trong hệ thống của bạn. Để biết thêm thông tin về osquery, hãy truy cập trang tài liệu osquery.
 
Back
Bên trên