Monitorare il sistema con osquery
osquery è un ottimo software, grauito e multipiattaforma, creato da Facebook per interrogare e monitorare il sistema come se fosse un database.
Infatti useremo delle istruzioni SQL per interrogare qualsiasi aspetto del sistema.
E' disponibile per Linux, macOS, Windows e FreeBSD; e si compone di due parti:
- osqueryi -> la shella interattiva
- osqueryd -> un demone di monitoraggio che permette di schedulare queries e controllare eventuali cambiamenti
Noi vedremo solo il primo; innanzitutto scaricate il pacchetto adeguato al vostro sistema alla pagina di download.
Io l'ho testato su Ubuntu scaricando il pacchetto per Debian.
Una volta installato aprite un terminale e digitate questo comando:
$ osqueryi
Si avvierà la shell; qualcosa di familiare a chi ha usato i database.
Proviamo qualche query:
SELECT DISTINCT process.name, listening.port, process.pid
FROM processes AS process
JOIN listening_ports AS listening ON process.pid = listening.pid;
+---------------+------+-------+
| name | port | pid |
+---------------+------+-------+
| xfce4-session | 0 | 2116 |
| systemd | 0 | 1874 |
| dbus-daemon | 0 | 1979 |
| pulseaudio | 0 | 2255 |
| osqueryi | 0 | 10657 |
| dbus-daemon | 0 | 2177 |
| gvfsd-trash | 0 | 2521 |
+---------------+------+-------+
Come vedete, si possono addirittura eseguire JOIN; qui abbiamo interrogato i processi, ma le possibilità sono praticamente infinite:
SELECT device, device_alias, path, type
FROM mounts;
+-------------+-----------------------+---------------------------------+-----------------+
| device | device_alias | path | type |
+-------------+-----------------------+---------------------------------+-----------------+
| sysfs | sysfs | /sys | sysfs |
| proc | proc | /proc | proc |
| udev | udev | /dev | devtmpfs |
| devpts | devpts | /dev/pts | devpts |
| tmpfs | tmpfs | /run | tmpfs |
| /dev/sda1 | /dev/sda1 | / | ext4 |
| securityfs | securityfs | /sys/kernel/security | securityfs |
| tmpfs | tmpfs | /dev/shm | tmpfs |
| tmpfs | tmpfs | /run/lock | tmpfs |
| tmpfs | tmpfs | /sys/fs/cgroup | tmpfs |
| cgroup2 | cgroup2 | /sys/fs/cgroup/unified | cgroup2 |
| cgroup | cgroup | /sys/fs/cgroup/systemd | cgroup |
| pstore | pstore | /sys/fs/pstore | pstore |
| bpf | bpf | /sys/fs/bpf | bpf |
| cgroup | cgroup | /sys/fs/cgroup/hugetlb | cgroup |
| cgroup | cgroup | /sys/fs/cgroup/net_cls,net_prio | cgroup |
| cgroup | cgroup | /sys/fs/cgroup/perf_event | cgroup |
| cgroup | cgroup | /sys/fs/cgroup/memory | cgroup |
| cgroup | cgroup | /sys/fs/cgroup/cpuset | cgroup |
| cgroup | cgroup | /sys/fs/cgroup/freezer | cgroup |
| cgroup | cgroup | /sys/fs/cgroup/blkio | cgroup |
| cgroup | cgroup | /sys/fs/cgroup/rdma | cgroup |
| cgroup | cgroup | /sys/fs/cgroup/cpu,cpuacct | cgroup |
| cgroup | cgroup | /sys/fs/cgroup/devices | cgroup |
| cgroup | cgroup | /sys/fs/cgroup/pids | cgroup |
| systemd-1 | systemd-1 | /proc/sys/fs/binfmt_misc | autofs |
| hugetlbfs | hugetlbfs | /dev/hugepages | hugetlbfs |
| mqueue | mqueue | /dev/mqueue | mqueue |
| debugfs | debugfs | /sys/kernel/debug | debugfs |
| configfs | configfs | /sys/kernel/config | configfs |
| fusectl | fusectl | /sys/fs/fuse/connections | fusectl |
| /dev/loop0 | /dev/loop0 | /snap/lsd/51 | squashfs |
| /dev/loop1 | /dev/loop1 | /snap/core/6130 | squashfs |
| Documenti | /home/matte/Documenti | /media/sf_Documenti | vboxsf |
| tmpfs | tmpfs | /run/user/1000 | tmpfs |
| gvfsd-fuse | gvfsd-fuse | /run/user/1000/gvfs | fuse.gvfsd-fuse |
| binfmt_misc | binfmt_misc | /proc/sys/fs/binfmt_misc | binfmt_misc |
+-------------+-----------------------+---------------------------------+-----------------+
SELECT * FROM os_version;
+--------+---------------------------+-------+-------+-------+-----------------+-----------
| name | version | major | minor |platform | platform_like | codename |
+--------+---------------------------+-------+-------+-------+-------+----------+----------
| Ubuntu | 18.10 (Cosmic Cuttlefish) | 18 | 10 | ubuntu | debian | cosmic |
+--------+---------------------------+-------+-------+-------+-------+----------+----------
Nel sito ufficiale esiste la pagina Schema, dovete potete tutte le possibili "tabelle" e colonne da interrogare.
Buon divertimento!
Enjoy!
software osquery facebook
Commentami!