Monitorando a atividade no meu computador.

16

Recentemente, descobri que alguém estava usando meu computador sem o consentimento, navegando em pastas, etc.

Eu poderia alterar todas as minhas senhas imediatamente, mas estou curioso para saber o que a parte intrusa estava procurando. Então eu gostaria de montar uma armadilha (sorriso maligno).

Qual software irá monitorar qualquer atividade no meu computador? Enquanto eu sei que a captura da minha tela funcionará aqui. Eu prefiro usar um arquivo de log.

Por exemplo:

/var/log/activity.log

[1 Aug 2010 20:23] /usr/bin/thunar accessed /multimedia/cctv-records/
[1 Aug 2010 20:25] /usr/bin/mplayer accessed /multimedia/cctv-records/00232.avi
[3 Aug 2010 02:34] /usr/bin/thunderbird was run
[3 Aug 2010 03:33] incomming ssh session from 12.32.132.123

As atividades que gostaria de registrar são:

  • Acesso a arquivos e pastas no sistema de arquivos
  • Comandos executados (do console ou de outra forma)
  • Sessões do usuário (sessões de login, ssh e tentativas malsucedidas)
por Stefan 23.11.2010 / 07:34

5 respostas

8

Você pode usar o mecanismo do kernel inotify para monitorar os arquivos acessados.

Primeiro, você deve verificar se inotify está ativado no kernel:

pbm@tauri ~ $ zcat /proc/config.gz | grep CONFIG_INOTIFY
CONFIG_INOTIFY=y
CONFIG_INOTIFY_USER=y

A próxima coisa a fazer é instalar inotify-tools . Instruções para várias distribuições que você poderia encontrar na página do projeto - ela deve estar em repositórios de todas as principais distribuições.

Depois disso, o inotify está pronto para funcionar:

inotifywait /dirs/to/watch -mrq

( m = não sai após um evento, r = recursivo, q = quiet)

Por exemplo - saída após ls /home/pbm

pbm@tauri ~ $ inotifywait /bin /home/pbm -mq 
/bin/ OPEN ls
/bin/ ACCESS ls
/bin/ ACCESS ls
/home/pbm/ OPEN,ISDIR 
/home/pbm/ CLOSE_NOWRITE,CLOSE,ISDIR 
/bin/ CLOSE_NOWRITE,CLOSE ls

O importante é definir corretamente os diretórios para o relógio:

  • não assiste / recursivamente - há muita leitura / gravação em /dev e /proc
  • não assiste seu diretório inicial de forma recursiva - quando você usa aplicativos, há muita leitura / gravação nos diretórios de configuração do aplicativo e nos diretórios de perfil dos navegadores

Em /proc/sys/fs/inotify/max_user_watches existe uma opção de configuração que mostra quantos arquivos podem ser assistidos simultaneamente. O valor padrão (para o Gentoo) não é tão alto, portanto, se você definir o observador como /home/ , poderá exceder o limite. Você poderia aumentar o limite usando echo (acesso root necessário).

echo 524288 > /proc/sys/fs/inotify/max_user_watches

Mas antes disso você deve ler sobre as consequências dessa mudança .

Opções que podem ser interessantes para você:

  • -d = modo daemon
  • -o file = saída para o arquivo
  • --format = formato especificado pelo usuário, mais informações em man inotifywait
  • -e EVENT = qual evento deve ser monitorado (por exemplo access , modify , etc, mais informações em man )
por 23.11.2010 / 19:59
7

O outro cara está com você? Se ele tiver acesso físico ou acesso root, ele pode apagar todos os seus traços e até plantar um bug para espionar você . Por outro lado, alguns traços são difíceis de apagar e é difícil pensar em tudo.

Várias coisas já estão registradas nos logs do sistema, geralmente em /var/log (alguns sistemas usam um local diferente, como /var/logs ou /var/adm ). Em uma configuração normal, todos os logins e montagens são registrados, entre outros. Se você está preocupado com o fato de os logs serem apagados, você pode configurar o log remoto (como fazer isso depende da implementação do syslog, mas geralmente é uma ou duas linhas para alterar em um arquivo de configuração no remetente e no receptor). / p>

Se você ou sua distribuição não desativou esse recurso, cada arquivo tem um tempo de acesso (“atime”) que é atualizado sempre que o arquivo é lido. (Se o sistema de arquivos estiver montado com a opção noatime ou relatime , o atime não será atualizado.) O atime pode ser falsificado com touch -a , mas isso atualiza o ctime, deixando um rastreio. (Mesmo raiz não pode remover diretamente este traço, você precisa ignorar o código do sistema de arquivos.)

Vários programas têm um histórico de sessão . É fácil de remover ou falsificar, se o intruso se lembrar disso. Bash mantém ~/.bash_history , os navegadores tendem a escrever muitas coisas em seu diretório de perfil e assim por diante. Você também pode encontrar erros ou avisos informando em ~/.xsession-errors ou /var/log/Xorg.0.log ou outro local dependente do sistema.

Muitos unices têm um recurso contabilidade do processo ¹. Veja, por exemplo, o manual de utilitários de contabilidade GNU , a entrada no Manual do FreeBSD ou o Linux howto ou o Guia do Solaris . Uma vez ativado, ele registra qual usuário iniciou o processo quando (registra execve chamadas) e talvez um pouco mais. Há muitas informações interessantes que não são registradas, como os arquivos acessados pelo processo.

Se você quiser monitorar todos os acessos a um sistema de arquivos, você pode fornecê-lo através de loggedfs . É muito fácil perceber se o cara pensa em olhar.

Existem programas de log mais abrangentes, mas eles podem exigir suporte adicional ao kernel. No Solaris, FreeBSD, NetBSD e Mac OS X, existe dtrace (há uma porta Linux em progresso, mas eu não saber se chegou a um estágio utilizável). Você também pode rastrear processos específicos por meio de uma interface para a chamada de sistema ptrace , por exemplo, strace no Linux; pode induzir uma desaceleração perceptível.

¹ Algo que não está na Wikipedia? Não, essa é uma conversa maluca.

    
por 23.11.2010 / 21:33
1

Dê uma olhada no Fail2ban e DenyHØsts .

    
por 23.11.2010 / 08:48
1

Isso não é exatamente o que você está procurando, mas alguns aplicativos mantêm uma lista de arquivos acessados recentemente. Além disso, o GNOME mantém essa lista, que pode ser acessada em seu Painel.

Outra correção é usar o Diário de Atividades do GNOME , embora da última vez que verifiquei, ele não guardou um registro de Atividade da CLI e estava interessado somente em atividades relacionadas a arquivos (leitura, edição), ignorando outras atividades.

Você também pode procurar dentro do diretório /var/log , onde vários programas armazenam seus registros.

    
por 23.11.2010 / 10:43
1

Assumindo ingenuidade suficiente ao lado do seu atacante, você pode simplesmente jogar script -qft $USER-$$ 2> $USER-$$-time em seu / seu script de login apropriado para monitorar suas interações terminais e repetir com os comandos apropriados de scriptreplay.

Para monitorar o acesso em nível de arquivo, eu recomendo anexar um strace -fe open com o log apropriado ao sshd e filtrar por sessões de login (ou talvez seja melhor fazer isso de. Aviso: Saídas enormes, já que fazer qualquer coisa em um ambiente moderno O sistema toca muito dos arquivos.Se você quiser apenas monitorar arquivos específicos, dê uma olhada em auditd e sua infra-estrutura de suporte.

Sessões e tentativas de login podem ser obtidas do syslog conforme outras respostas.

    
por 23.11.2010 / 17:32