[tutorial] monitorando com sysdig: 1ª parte

Postagem de conteúdo sobre sistema operacional linux e outros sistemas baseado em unix
Post Reply
User avatar
Kodo no Kami
Admin
Admin
Posts: 643
Joined: Fri Jan 02, 2015 1:56 pm
Contact:

[tutorial] monitorando com sysdig: 1ª parte

Post by Kodo no Kami » Thu Nov 23, 2017 8:08 am

bom galera nesse tutorial vamos aprender um pouco sobre a ferramenta sysdig que nos permite monitorar eventos do sistema a nivel do kernel, para começar a gente baixa ela pelo repositorio da distro no meu caso usando o apt-get ou baixamos o pacote depededo da distro (e sim formatei o sistema deu pau no HD =/ , natal ta chegando quem quiser doar um HD to aceitando presentes kkkk )

Code: Select all

sudo apt-get install sysdig
Image

se a gente digitar apenas sysdig ele vai nos listar todas as informação de eventos de leitura, escrita, os arquivos abertos, comunicação sendo enviada ou recebida e etc.

Code: Select all

sudo sysdig
Image

podemos filtrar um processo especifico pelo seu nome usando o argumeto proc.name

Code: Select all

sudo sysdig proc.name="Discord"
Image

da mesma forma podemos fazer o mesmo pelo pid com o argumento proc.pid

Code: Select all

sudo sysdig proc.pid=8147
Image

tambem podemos filtrar todos os processos que foram executado em um diretorio especifico usando proc.cwd

Code: Select all

sudo sysdig proc.cwd="/home/kodo/Desktop/"
os processos pelo executavel em disco com o parametro proc.exe

Code: Select all

sudo sysdig proc.exe="/usr/sbin/apache2"
podemos filtrar apenas os descritores com o argumento fd.num, exemplo seria o stdout que é o numero 1

Code: Select all

sudo sysdig fd.num=1
ou pelo tipo do descritor se ele é um arquivo (file), se é um socket ipv4 ou ipv6 (ipv4/ipv6), um socket unix (unix), um evento ou um sinal (event/signal), ou ate mesmo um pipe (pipe). para isso usamos o parametro fd.type

Code: Select all

sudo sysdig fd.type="ipv6"
é possivel pegar os descritores que contem um IP especifico com o paramentro fd.ip

Code: Select all

sudo sysdig fd.ip=8.8.8.8
Image

para filtrar apenas o IP de destino usamos o parametro fd.rip

Code: Select all

sudo sysdig fd.rip=8.8.8.8
com o parametro fd.lip filtramos apenas o IP de origem

Code: Select all

sudo sysdig fd.lip=192.168.1.1
temos o parametro fd.port para filtrar uma porta especifica

Code: Select all

sudo sysdig fd.port=22
da mesma forma que o IP podemos usar o fd.rport para filtrar apenas a porta de destino

Code: Select all

sudo sysdig fd.rport=22
ou o fd.lport para filtrar apenas aquela porta de origem

Code: Select all

sudo sysdig fd.lport=33814
é possivel filtrar ate mesmo por rede usando fd.net

Code: Select all

sudo sysdig fd.net="192.168.1.0/24"
para a gente filtrar pelo nome do usuario usamos user.name

Code: Select all

sudo sysdig user.name="kodo"
Image

o mesmo pode ser feito pelo id do usuario com o parametro user.uid

Code: Select all

sudo sysdig user.uid=1000
pelo nome do grupo com parametro group.name

Code: Select all

sudo sysdig group.name="root"
ou ate pelo id do grupo com o parametro group.gid

Code: Select all

sudo sysdig group.id=0
é possivel filtrar eventos do syslog com o parametro syslog.serverity.str seguido do tipo de evento (emerg, alert, crit, err, warn, notice, info, debug)

Code: Select all

sudo sysdig syslog.severity.str="info"
Image

tambem podemos filtrar tipos de eventos especificos como write, read, open, close, select, poll, mmap, sendmsg, recvmsg entre outros com o parametro evt.type

Code: Select all

sudo sysdig evt.type="open"
Image

tambem é possivel filtar por categoria com o parametro evt.category, para especificar eventos de arquivos usamos file, para memoria o memory e para a rede usamos o net

Code: Select all

sudo sysdig evt.category="net"
o sysdig tambem existem filtros especificos para docker como o container.id que filtra pelo id dos containers

Code: Select all

sudo sysdig container.id=c4491982de4a
Image

tambem podemos filtrar pelo nome da image do docker

Code: Select all

sudo sysdig container.image="kalilinux/kali-linux-docker"
bom galera existem outros parametros que podemos especificar para filtragem, para exibir todos eles usamos o parametro -l

Code: Select all

sysdig -l
tambem podemos filtrar mais de um parametro ao mesmo tempo usando o "and" indicando a logica E entre os parametros especificados ou seja todos os parametros devem ser satisfeitos para ser filtrado, um exemplo seria filtrar o evento write do usuario kodo no processo Discord

Code: Select all

sudo sysdig user.name="kodo" and proc.name="Discord" and evt.type="write"
o mesmo pode ser feito com o "or" que seria equivalente a logica OR entre os parametros, um exemplo disso seria filtra o usario kodo ou o usuario root

Code: Select all

sudo sysdig user.name=kodo or user.name=root
da mesma forma podemos usar o not para a negação com isso a logica é invertida, um exemplo seria filtrar qualquer usuario que nao seja o kodo

Code: Select all

sudo sysdig not user.name=kodo
podemos salvar toda a captura em um arquivo usando o parametro -w seguido do nome do arquivo

Code: Select all

sudo sysdig -w kodo.scap
para a gente ler esse arquivo usamos o parametro -r

Code: Select all

sudo sysdig -r kodo.scap
alem de filtrar o conteudo podemos exibir uma saida formatada com parametros especificos, para isso usamos o -p seguido de uma string de formatação (usamos o sinal de porcentagem seguido do parametro para exibir ele). um exemplo seria exibir o nome do processo, o pid dele, os IPs e portas de origem e de destino

Code: Select all

sudo sysdig -p "%proc.name (%proc.pid) = %fd.lip:%fd.lport -> %fd.rip:%fd.rport"
Image

bom galera esse tutorial não termina aqui, vou fazer a segunda parte dele falando sobre chisels, então ate a proxima parte \o

by kodo no kami
Image

Conheça o sistema e manipule ele, se limite ao sistema e seja manipulado por ele ~kodo no kami

meu perfil yahoo

Post Reply

Return to “Linux / FreeBSD / Unix”