Layoutmarvin_03Layoutmarvin_04Layoutmarvin_05
Página Inicial
 
Apostilas
Espaço Aluno
Programas
Login
Links
Termo de Uso
 
 
Categorias
3g
android
Banco de Dados
Biometria
Broffice
C
Celular
Delta
Embedded
Firefox
GNOME
Google
Grails
Groovy
GTK
Hibernate
J2ME
Java
Javascript
Jogos
Kernel
Linux
NS2
Off-Topic
Programação
Rails
RSSF
Ruby
Ruby on Rails
Segurança
Shell
Shell Script
Software Livre
Sysadmin
Ubuntu
Videogames
Videos
Vim
Virtualbox
Google
 
Bem Vindo(a)

Segurança: Rootkits

Por marvinlemos - marvinlemos@gmail.com

A definição de MALWARE encontrada na wikipedia é de um "software destinado a infiltrar-se em um sistema de computador alheio de forma ilícita com o intuito de causar algum dano ou roubo de informações(confidenciais ou não)". Podemos citar, como exemplo, os vírus, cavalos-de-tróia, spyware, dentre outros. No mundo unix-like, uma categoria bastante conhecida de malware são os rootkis. Uma classe de softwares cujo objetivo consiste em ocultar processos, arquivos ou dados do sistema do sistema operacional.

Um atacante, após comprometer, com sucesso, um determinado alvo, busca esconder seus vestígios, bem como deixar alguma porta aberta para que ele possa voltar outras vezes. Os rootkits ajudam nesse sentido, uma vez que é possível esconder processos, conexões de redes, arquivos, dentre outros, dos administradores.

Originalmente, os rootkits surgiram como versões recompiladas de programas unix. Por exemplo, um versão do netstat com um cavalo-de-tróia embutido conseguiria esconder as conexões de redes estabelecidas pelo atacante, enquanto um ps, igualmente comprometido, poderia ocultar processos ilícitos.

Leia o resto da matéria AQUI

Comentar
 

Alguns Aspectos sobre TCC para cursos relativos à computação

Por weylerlopes - weylerl@hotmail.com

Um dos requisitos básicos para conclusão de curso em praticamente todas as instituições de ensino superior é o trabalho de Conclusão de Cursos(TCC).

Alunos comumente se deparam com as mesmas dificuldades na implementação de um TCC. Visando atacar essas dificuldades, assim como algumas questões recorrentes, com base na nossa experiência com orientação, resolvemos abordar nesse documento itens que venham servir para dar suporte e elucidar algumas dúvidas referentes ao referido assunto.

Leia mais AQUI

Comentar
 

Linux: comando lsof

Por marvinlemos - marvinlemos@gmail.com

O LSOF é um comando bastante útil para quem trabalha com sistemas UNIX like. Como diz o ditado, "no Unix tudo é um arquivo", ou seja, quase todas as atividades de um sistema unix like possuem uma relação com arquivos abertos. Por exemplo: arquivos regulares, arquivos de blocos especiais, executáveis, sockets e por aí vai. O lsof é útil no sentido que permite coletar e sintetizar de forma centralizada todas essas informações. Informações que podem ser úteis, por exemplo, para investigar uma suspeita de ataque.

O lsof utiliza um formato tabular para mostrar as informações filtradas:

    - Nome do Processo: COMMAND
    - ID do Processo: ID
    - Nome da Conta de usuário sob a qual o processo está rodando: USER
    - Descritor do arquivo: FD
    - Tipo do Arquivo: TYPE
    - Dispositivo: DEVICE
    - Tamanho: SIZE
    - Conexão: NODE
    - Nome Completo: NAME

É possível manipular a saída para processá-la com outras ferramentas, com o uso do lsof -F.

Uma coluna interessante é o Descritor de Arquivo, o qual representa a forma como o processo vê o arquivo. Alguns valores desse campo podem ser:

    - cwd: representa o diretório corrente da aplicação
    - txt: representa um arquivo binário, geralmente uma biblioteca ou um arquivo executável

Além disso, pode aparecer um número, o qual representa o descritor propriamente dito. Mais sobre descritores pode ser encontrado aqui.

Outra coluna bastante útil é o tipo do Arquivo, que pode ser:

    - REG: arquivo regular
    - DIR: diretório
    - CHR: arquivo de dispositivo do tipo caractere
    - BLK: arquivo de dispositivo do tipo bloco
    - UNIX: sockets UNIX
    - FIFO: arquivos de pipes
    - IPv4: conexões de rede IP


Utilizar o lsof sem parâmetros retornará uma lista bastante grande e de difícil interpretação. Por isso é interessante sempre utilizá-lo com alguma opção de linha de comando.

Um uso bastante comum do lsof é utilizá-lo para descobrir qual processo está travando uma mídia removível. A opção "-t /nome_do_diretório" retorna uma lista de ID's de processos que estão usando aquele diretório. Por exemplo:

$ umount /dev/cdrom
umount: /cdrom: device is busy
$ kill -9 `lsof -t /dev/cdrom`
$ umount /dev/cdrom

EXEMPLOS DO LSOF
-----------------------------
lsof - Sem parâmetros, mostra um panorama.
lsof /bin/bash - Lista todos os processos que usam o bash.
lsof -p PID - Lista os arquivos abertos pelo processo identificado pela ID informada.
lsof +D /tmp - Lista todos os processos abertos em /tmp e seus subdiretórios sem links simbólicos.
lsof -u USER - Lista todos os arquivos abertos para o usuário especificado.
lsof -u ^root - Lista todos os arquivos abertos, exceto aqueles abertos pelo superusuário.
lsof -d txt - Lista todas as entradas com o descrito txt, ou seja, arquivos executáveis
lsof +L1
- Mostra todos os arquivos apagados que ainda estão abertos, e, portanto, ainda ocupam espaço em disco.
lsof -i - Arquivos relacionados à rede.

Como podemos percebr, o lsof é um comando bastante poderoso e com muitos recursos. Para que quiser conhecer mais, recomendo a revista LINUX MAGAZINE n. 29 e os seguintes sites:

http://www.netadmintools.com/html/lsof.man.html
http://dmiessler.com/study/nix/commands/lsof/
http://www.ibm.com/developerworks/aix/library/au-lsof.html

Publicado em: [ Linux ] [ Sysadmin ]
Comentar
 

Shell Script: /dev/null

Por marvinlemos - marvinlemos@gmail.com

Quem trabalha com sistemas operacionais do tipo UNIX, hoje em dia principalmente o Linux, deve ter, ou espera-se que tenha, conhecimento de um arquivo chamando /dev/null. É um dispositivo especial que descarta qualquer informação redirecionada a ele e não retorna nenhuma informação para processos que a leiam, na verdade ele retorna um "EOF" (End-of-file). Por esse motivo, na programação UNIX, ele é conhecido como bit bucket ou "buraco-negro". Eu, carinhosamente, chamo de "Dimensão-X". :P

Qual a função de um dispositivo que descarta tudo que é redirecionado a ele? Muitas vezes precisamos descartar o fluxo de saída de algum processo que, por um motivo ou outro, não nos interessa.

Vamos analisar o exemplo abaixo:

if grep "$1" /etc/passwd > /dev/null; then
   echo "usuário cadastrado no sistema!!!"
else
   echo "usuário não existe!!!"
fi

Neste exemplo, queremos apenas testar se o conteúdo da variável "$1" (parâmetro passado em linha de comando) existe no arquivo /etc/passwd. Entretanto, ao executar o shell script, caso o grep encontrasse alguma coisa, veríamos sua saída na tela, juntamente com a mensagem: "usuário cadastrado no sistema!!!". Desejamos exibir apenas a última mensagem, por isso redirecionamos a saída do comando para a /dev/null. :P

Publicado em: [ Linux ] [ Sysadmin ] [ Shell ]
Comentar
 

Shell Script: Código de Retorno

Por marvinlemos - marvinlemos@gmail.com

Quando trabalhamos com shell script, um recurso bastante útil e poderoso consiste em verificar o código de retorno(ou código de escape) de um comando.
O que seria esse código de retorno? Basicamente um valor que o shell usa para representar o sucesso ou falha de um comando. Esse valor é armazenado dentro da variável ?. Sempre após a execução de um determinado comando, o shell armazena, dentro desta variável, o valor 0 (zero) para indicar sucesso. Qualquer outro número diferente de zero representa uma falha.

Vamos olhar o exemplo abaixo:

$ ls /etc/passwd
/etc/passwd
$ echo $?
0

$ ls /etc/passwd2
ls: /etc/passwd2: No such file or directory
$ echo $?
1

Podemos perceber que o código de retorno para o primeiro comando foi 0, pois o mesmo foi executado com sucesso (o arquivo /etc/passwd existe). Entretanto, o segundo comando obteve uma falha, uma vez que o arquivo /etc/passwd2 não existe nesse sistema hipotético.
Uma observação muito importante é necessária ser feita nesse ponto: Após a execução de vários comandos encadeados através de um pipe ( | ), o código de retorno irá refletir apenas o último comando do pipe. Casos seja necessário descobrir o código de cada um dos comandos, basta visualizar o conteúdo da variável PIPESTATUS. Nada mais do que um array que o shell usa para armazenar todos os códigos de retorno dos comandos que compõe o pipe.

Exemplo:

# cat /etc/passwd | grep ROOT | wc –l
0
# echo ${PIPESTATUS[*]}
0 1 0

Neste caso, o primeiro 0 corresponde ao retorno do comando cat, o 1 ao retorno do grep e o último 0 ao retorno do wc. Perceba que o grep retornou 1 pois o mesmo não encontrou a expressão "ROOT" dentro do arquivo "/etc/passwd".

Publicado em: [ Linux ] [ Sysadmin ] [ Shell ]
Comentar
 
Mais notícias -->  1 ... 37 38 39 40

 

©2007 Existem pinguins que resistem ao calor. Powered by Marcus Vinicius. All Letft´s for Marvinlemos.net and Marvinlemos.org. Produzido por: Arte Gráfic@ * Made in Brazil