O uso de software proprietário pela Administração Pública: uma decisão de retrocesso a sustentabilidade e a economia

Eu tive a oportunidade de publicar mais um artigo na Revista Espírito Livre e dessa vez o tema é sobre o uso de software livre pela administração pública, levantando o viés sobre a relação entre determinados fabricantes de software proprietário com órgãos públicos que impedem o uso de software livre.

O artigo completo você lê na página 26 da revista no link:

http://www.revista.espiritolivre.org/lancada-edicao-n-50-da-revista-espirito-livre

Ou o link direto para download:

Revista Espírito Livre – Roney Medice

Boa leitura.

Até a próxima!

Perícias com software livre – Parte 2

No primeiro momento, muitos peritos podem achar esse procedimento muito difícil de ser executado pois estão acostumados a utilizar ferramenta forense no ambiente gráfico, estilo o sistema operacional Windows e não rodar aplicativos por linha de comandos em que o usuário do sistema precisa digitar o comando. Porém, nem todos os casos envolverão sistema Windows e portanto, é aconselhável que os profissionais na área forense estejam preparados para exercer o trabalho de perito em qualquer ambiente operacional.

Pensando nessa dificuldade, vários projetos surgiram ao longo do tempo para facilitar o trabalho do perito forense que utiliza o software livre como ferramenta para análise de dados e busca de evidências. Algumas comunidades tecnológicas juntaram as principais ferramentas forense e agregaram em uma distribuição Linux que tinha como objetivo o desenvolvimento de tarefas forense, otimizando os recursos e facilitando o serviço do perito. Dessa forma, com apenas um CD (Compact Disc) contendo as principais ferramentas, diminui o risco de perder alguma informações por algum descuido do profissional no momento de duplicar um disco ou procurar por evidências pois como as ferramentas estão em um CD, não há o perigo de danificar o sistema operacional Linux instalado no computador suspeito, que não é executado nesse processo e sim o sistema operacional do CD.

Uma dessas distribuições forense criado com essa finalidade e muito utilizada é o Helix. É uma distribuição baseada no Ubuntu (tipo de distribuição do Linux) dedicada à investigação ou computação forense que foi modificada para que não alterasse nenhuma informação do sistema operacional do investigado. A vantagem de usar uma distribuição como o Helix é que no momento da etapa de investigação, não importa qual sistema operacional está instalado no computador suspeito pois o sistema utilizado para iniciar os trabalhos é o da própria distribuição. 1

Um projeto de conclusão de curso sobre computação forense, na Itália, originou outra distribuição forense baseada em Linux chamada CAINE. Nessa distribuição, as ferramentas forense estão organizadas por módulos e oferecem muitos programas com designer gráfico, facilitando o uso do programa pelo profissional. Algumas rotinas escritas em uma linguagem de computação estão presentes para facilitar o exame dos dados encontrados, utilizando como interface para o usuário um simples navegador de internet, como o Firefox, por exemplo.2

Também como resultado de um trabalho de conclusão de curso em segurança da informação em uma universidade no Rio Grande do Sul, o FDTK-Ubuntu é um projeto livre com a finalidade de reunir e manter uma distribuição para coleta e análise de dados em perícias forense. O FDTK (Forense Digital Toolkit) pode ser instalado no computador tornando-o uma estação forense. Prática essa adotada por peritos que preferem tornar um notebook um equipamento forense por ser leve, prático e móvel, facilitando o trabalho da investigação forense.3

Outra distribuição criada na Itália é o DEFT-Linux com o objetivo de auxiliar os investigadores e profissionais especializados em realizar uma análise forense em um computador, seja ele baseado em sistema operacional Windows ou Linux. Apesar da distribuição está toda em italiano, em breve surgirá nova versão em outros idiomas.4

Existe uma distribuição Linux que possui algumas ferramentas forense mas não é o objetivo principal da distribuição, o BackTrack5. É conhecido como a distribuição Linux para hackers, denominação dada pela mídia para aqueles indivíduos cujo propósito é meramente invadir sistemas ou equipamentos eletrônicos, burlando as normas impostas. Na realidade, hackers são pessoas com conhecimento aprofundado sobre um determinado assunto que possibilitam modificar software e hardware.6

O BackTrack é na realidade uma distribuição utilizada para realizar testes de penetração nos sistemas e verificar a integridade dos mesmos. Porém, existem algumas ferramentas dentro da distribuição que podem ser utilizadas pelo perito como apagar dos dados de uma mídia de armazenamento de dados de forma segura, criar uma imagem de um disco rígido em outro dispositivos, entre outros.

Contudo, apesar de existirem diversas distribuições com sistema operacional e ferramentas específicas para serem utilizadas nas etapas que envolvem uma investigação forense, o perito pode modificar e agregar valor a uma distribuição específica pois como são distribuições Open Source, cada profissional é livre para modificar e deixar os programas do seu jeito de trabalhar

 

Perícias com software livre – Parte 1

A investigação de um crime eletrônico leva o perito forense a buscar respostas à algumas questões fundamentais que incluem: quem, quando, onde, como e por quê? É um trabalho árduo e contínuo que o profissional sempre buscará responder a todas essas perguntas com o maior número de provas possíveis. A maior frustração de um perito é não conseguir respostas nem evidências que possam comprovar a existência de um crime eletrônico ou mesmo a sua autoria.

Para tanto, a utilização e manipulação correta de ferramentas forense podem trazer resultados fantásticos que vão responder as questões levantadas antes mesmo de se iniciar a etapa investigativa. Utilizar um software forense é ganhar tempo e colher muitas evidências sobre o crime praticado, beneficiando quem está investigando pois otimiza todo o trabalho do perito trazendo resultado em um menor tempo considerável e a parte interessada do caso, que pode ser a vítima do crime para achar o culpado ou simplesmente provar a autoria. Todavia, as respostas encontradas ou evidências levantadas, também podem satisfazer o suspeito do crime que na ausência de provas contra ele, poderá ser excluído do rol de possíveis autores do crime cometido.

O processo de busca de evidências ou recuperação de arquivos apagados pode ser feito mediante o uso de software livre, ou seja, não precisa de uma licença paga para utilizar a ferramenta. Esse tipo de programa tem o benefício de existir uma comunidade tecnológica interessada em sempre querer aperfeiçoar a ferramenta, recebendo sugestões e críticas através de fóruns na internet em que todos possuem a chance de participar no desenvolvimento e aperfeiçoamento do programa, sem ter um único dono da ferramenta.

Um software livre é “qualquer programa de computador que pode ser usado, copiado, estudado e redistribuído sem restrições”1. O benefício está em alcançar um número muito grande de potenciais usuários da ferramenta livre sem existir um custo financeiro para isso. Ganha o profissional que não precisa desembolsar dinheiro para utilizar o software, ganha a comunidade que sempre trocará informações a respeito do seu funcionamento desenvolvendo novas versões e ao mesmo tempo aumentado o conhecimento em computação forense e ganha a sociedade que através do uso sem restrições da ferramenta, o trabalho de investigação será realizado e os resultados não dependerão de aquisição por parte dos peritos para que respostas sejam encontradas.

Um grande exemplo e muito difundido de software livre é o tão conhecido Linux, que geralmente esse termo é utilizado para designar qualquer sistema operacional que utilize o núcleo Linux. Esse núcleo possui um código fonte que é aberto para toda a comunidade onde qualquer pessoa pode modificar, estudar o seu funcionamento, distribuir e outras ações dentro da concepção que o núcleo é de todos e por tanto, livre para modificações e otimizações.

O Linux é comparado com o sistema operacional Windows, existindo diversos programas que são previamente instalados e que compõem o bom funcionamento do sistema operacional. É através de um sistema operacional rodando Linux é que funcionam as ferramentas forense de software livre. Inclusive, alguns programas no Linux fazem o papel de uma ferramenta forense e que não foram desenvolvidos por empresas terceiras no mercado, apenas acompanham o sistema operacional.

Um exemplo é o comando dd que é instalado por padrão na maioria das distribuições Linux e muito utilizado para determinadas tarefas forenses como copiar exatamente o conteúdo de uma pasta ou arquivo para outra mídia de armazenamento sem deixar de copiar nenhum dado. Essa cópia é conhecida como cópia “bit a bit”, ou seja, se o perito forense precisar copiar o conteúdo de um disco rígido interno de um computador para um disco rígido externo, através do comando dd o perito irá copiar fielmente as informações contidas no disco inclusive os espaços em branco que existam no disco, locais esses que ainda não foram gravados com nenhum tipo de dado. O resultado dessa operação é que o disco rígido externo ficará com a mesma aparência e as mesmas informações como se fosse o disco interno do computador, literalmente.2

O comando a ser executado para copiar as informações de um disco rígido para outro é o seguinte:

# dd if=/dev/sda1 of=/media/hda2

Normalmente, os comandos mais sensíveis precisam ser executados com permissão de administrador do sistema, que no caso do Linux, utilizamos a conta de usuário root que é a conta padrão do sistema que possui total acesso no Sistema Operacional. Quando um comando a ser executado tiver o símbolo # (cerquilha) antes do comando, será necessário rodar o comando com permissão de administrador. No comando acima, o perito vai copiar todas as informações do disco rígido sda1 (if=/dev/sda1) para o disco rígido destino hda2 (of=/media/hda2).

Uma outa função que esse mesmo comando pode realizar é o que chamamos de esterilização de mídias que consiste em apagar todos os vestígios de dados contidos em uma determinada mídia para que ela sirva como um local de duplicação de disco rígido. Por exemplo, digamos que o disco rígido hda2 utilizado no comando acima precisa ser alocado em outro processo de investigação que será necessário copiar outro disco rígido interno de um computador. O perito forense não precisa mais do disco rígido externo e então, antes que esse disco externo seja utilizado em outro caso forense, é preciso apagar todas as informações nesse disco para possibilitar realizar novas cópias de dados sem prejuízo das informações.

Dessa forma, o profissional vai executar o seguinte comando:

# dd if=/dev/urandom of/media/hda2

Observe que a única diferença do comando anteriormente executado está na parte “if=/dev/unrandom” que fará com que o sistema operacional copie dados de locais aleatórios e assim, sobrescreva no disco rígido externo todas as informações ali gravadas. O mesmo comando pode ter diversas finalidades forense onde no primeiro momento o objetivo é copiar as informações entre dois discos rígidos e no segundo momento, apagar todas as informações copiadas no segundo disco rígido para que possa ser reutilizado em outros casos forense.

Nova missão da TI é ficar de olho nos funcionários na internet

Tem crescido o número de departamentos de TI que incorporam a tarefa de rastrear as atividades dos funcionários na internet. O objetivo é monitorar se os profissionais divulgam informações não autorizadas da empresa, acessam conteúdos inapropriados, usam o nome da organização de forma indevida ou, ainda, perdem a produtividade por conta de redes sociais, blogs e outros canais de comunicação.

Para a diretora-executiva da ePolicy Institute, consultoria focada em vigilância cibernética, Nancy Flynn, a TI representa a área mais adequada para esse tipo de tarefa, uma vez que tem as ferramentas e o conhecimento necessários para executar essa função de ‘espionagem’. E o trabalho não se restringe apenas à internet, mas passa por mensagens de texto no celular, conversas telefônicas e até rastreamento por meio de GPS embutido nos smartphones.

Apesar de ainda não ter estatísticas precisas sobre áreas de TI que executam esse monitoramento, Nancy afirma que o setor de espionagem virtual de funcionários é um segmento que deve crescer bastante nos próximos anos e será uma das atividades fundamentais do departamento de tecnologia da informação.

O professor da universidade norte-americana Florida Institute of Technolgy´s Nathan M. Bisk Colleg of Business, Michael Workman, considera que nem sempre os profissionais de TI estão satisfeitos com essa missão de espionar outros funcionários. Para Workman, existem hoje dois grandes grupos: o dos especialistas em segurança, que percebem a atividade de monitoramento como fundamental; e o dos generalistas – como o caso dos administradores de rede – que não entendem a necessidade de exercer essa tarefa.

Fonte: IDG Now (http://idgnow.uol.com.br/seguranca/2010/06/22/nova-missao-da-ti-e-ficar-de-olho-nos-funcionarios-na-web/)

Reconhecendo um sistema operacional com o ping

Recentemente, li um pequeno texto no site da Dicas-L a respeito de como se pode utilizar o comando ping como uma forma de detectar um sistema operacional remoto. Aliás, sempre que posso, ensino em sala de aula esse recurso.

Resumindo um pouco do que se trata. Para que sistemas operacionais diferentes possam se comunicar normalmente em uma rede, é preciso que todos “falem” a mesma língua. No caso da Internet e na maioria das redes da atualidade, essa língua significa os protocolos que compõem a arquitetura TCP/IP cujas especificações, conhecidas como RFC (Request For Comments) são públicas e podem, portanto, ser consultadas livremente através do site http://www.ietf.org. Em outras palavras, cada fabricante deve consultar essa documentação para implementar em seu sistema operacional os protocolos da arquitetura TCP/IP, seguindo as recomendações que irão garantir a correta interoperabilidade em rede.

Muitos dos aspectos descritos nas RFCs devem ser seguidos à risca pelos desenvolvedores e isso é uma tarefa trabalhosa e que requer bastante experiência. Por outro lado, existem alguns aspectos das especificações que devem ser definidos de acordo com cada fabricante. São essas decisões particulares na implementação da pilha TCP/IP que ajudam no desenvolvimento das ferramentas de “OS fingerprinting”, que visam reconhecer o tipo e a versão de um sistema operacional remotamente. O NMAP talvez seja o melhor exemplo desse tipo de ferramenta.

Em especial, existe um campo no cabeçalho do protocolo IP chamado TTL (Time-To-Live). O objetivo desse campo é evitar que, por exemplo, por problemas de roteamento, um pacote IP fique trafegando indefinidamente de roteador em roteador. Inicialmente, o campo indicava o tempo que um pacote IP poderia ficar “em trânsito” para seu destino. A dificudade técnica logo apareceu uma vez que era difícil para cada roteador controlar quanto tempo exatamente um pacote havia ficado sobre seu controle.

Outras dificuldades técnicas também mostraram que essa forma de controle era inviável. Por conta disso, o entendimento do TTL mudou e passou a ser entendido como a quantidade de “saltos” entre roteadores (do inglês, hops) que um pacote pode dar até alcançar seu destino final. Com isso, cada roteador que recebe um pacote e o repassa adiante decrementa, antes de enviá-lo, em 1 o valor do TTL. Se o pacote não tiver mais “crédito” para continuar trafegando, o roteador que o recebeu e identificou, em primeira mão, a impossibilidade de entregá-lo ao seu destino final, descarta o pacote e encaminha ao originador uma mensagem de TTL Time Exceeded, através do protocolo ICMP.

Pois bem, voltando ao assunto das RFCs, o TTL é um dos campos cujo valor default, utilizado em um pacote assim que ele é criado, fica a cargo de cada sistema operacional. Com isso, os sistemas operacionais mais conhecidos do mercado acabaram adotando valores diferentes. Por exemplo, o Microsoft Windows costuma adotar como valor padrão para o TTL o valor de 128. Já sistemas GNU/Linux costumam utilizar o valor de 64. O Solaris, por sua vez, adota o máximo que o campo permite: 255. É essa particularidade que torna simples a investigação de um sistema operacional, remotamente, apenas pelo resultado do ping.

Diante disso, ao executar o comando ping para uma determinada máquina, basta verificar o valor do TTL apresentado como resultado e identificar de qual padrão ele aproxima-se mais. Por exemplo, no exemplo abaixo o valor de TTL de 57 está mais próximo de 64 do que de 128 (Microsoft Windows) e 255 (Solaris). Nesse caso, pode-se suspeitar que trata-se de um sistema GNU/Linux.

Suspeitar? Isso mesmo. Apesar desse comportamento refletir a realidade na maioria dos casos, é importante tomar cuidado com o fato de que esses valores podem ser alterados, principalmente por sistemas que, como o GNU/Linux, possuem alguns recursos que permitem interagir diretamente com o kernel e, consequentemente, com a pilha TCP/IP do seu sistema operacional.

Por exemplo, para alterar em tempo real o valor do TTL utilizado por seu ambiente GNU/Linux, basta, como root, executar o seguinte comando:

  # echo 1 > /proc/sys/net/ipv4/ip_default_ttl

Depois, para consultar o valor atual, basta utilizar o cat:

  # cat /proc/sys/net/ipv4/ip_default_ttl

Conhecer bem o comportamento da pilha TCP/IP dos diversos sistemas operacionais é fundamental para exercer a função de administrador de sistemas. A detecção de um sistema operacional por meio do valor do TTL é um recurso importante e ágil, desde que seja considerado em um ambiente de rede controlado onde se pode assumir que apenas os valores padrões do TTL estão sendo utilizados. Por outro lado, caso trata-se de um ambiente não restrito, considere utilizar outras técnicas e ferramentas.

Fonte: Dicas-l (http://www.dicas-l.com.br/index.xml)

Recuperando Senha do root sem Live-CD

Passei por maus bocados recentemente. Perdi a senha do root do servidor e não me lembrava mais de jeito nenhum da bendita senha. Uma das formas de fazer a recuperação da senha do root, como todos sabem, é utilizando um Live-CD. O problema era que eu não tinha esse bendito Live-CD pra recuperar a senha e eu precisava fazer uma manutenção rápida e o servidor não podia ficar parado por mais tempo (essa é a sina de todo administrador de redes) então tive que fazê-lo sem o CD.

Irei demonstrar pra vocês o passo-a-passo que segui. Acho que poderá ser útil pra quem estiver no mesmo caso que eu.

  1. Você precisa reiniciar a máquina e editar a linha de boot do GRUB. Teclar a tecla “e” para editar as linhas de inicialização do GRUB. Adicione, no final da linha, o seguinte init=/bin/bash e depois tecle “b” para iniciar o sistema. No caso do Lilo, entrar no prompt dele e na hora da inicialização digitar Linux init=/bin/bash.
  2. Irá aparecer o prompt diferente do normal indicando que vc tem acesso de root. Mas sem poder gravar em nenhuma arquivo no / você terá que montar o diretório raiz e seguir os passos:
      # mount -o remount,rw / #Remontar como read-write o /
      # mount -a #Montar tudo em /etc/fstab
      # mount #Mostrar se o / foi remontado como read-write
    

    A partir daqui você poderá editar os arquivos. Como no meu caso as senhas estavam em /etc/shadow tive que editar esse arquivo

      # vi /etc/shadow
    

    Se esse recurso não tiver habilitado altere o /etc/passwd. Apague o conteúdo que estiver no segundo campo depois de root root:$1$fmdlkdjslj¨5$rdgd:14693:0:99999:7::: e deixe assim: root::14693:0:99999:7:::. Salve o arquivo e continue.

      # sync #Escrever o que tiver no buffer em disco
      # umount -a #Desmontar o sistema de arquivos
      # mount -o remount,ro / #Remontar como read-only
      < Ctrl>< Alt>< Del> #Para reiniciar
      login: root # Digite root sem senha
      # passwd #Depois altere a senha do root

Fonte: Dicas-L (http://www.dicas-l.com.br/index.xml)

Palestra Forense Computacional em Linux para Dummies

Colaboração: Rubens Queiroz de Almeida


Uma das palestras de maior repercussão no IV Ensol (Encontro Nordestino de Software Livre), aplaudida entusiasticamente pelos participantes, foi ministrada por Eriberto Mota. A palestra, chamada “Forense Computacional em Linux para Dummies”, é na verdade (na minha opinião) um curso completo de análise forense de computadores com utilitários do sistema GNU/Linux.

O palestrante demonstrou passo a passo o que fazer para analisar um computador e descobrir informações relativas a fraude ou invasão. Foram demonstrados os cuidados que se deve ter para que informações vitais não sejam apagadas por engano e como fazer para preservar ao máximo todos os dados e quais os utilitários que podem ser usados para esta finalidade. Demonstrou-se também como recuperar dados de um pendrive com todos os arquivos apagados. Interessante foi um caso real relatado em que, a partir de um arquivo word apagado, com base em informações contidas nas metadados do arquivo, se conseguiu identificar uma pessoa que até então não estava envolvida nas investigações de um caso de fraude.

Os originais da palestra, que estão disponíveis para download no site do autor, são um ótimo referencial para especialistas em segurança e para interessados no assunto. (cópia local).

Eriberto Mota é também autor do livro Descobrindo o Linux, publicado pela Editora Novatec.

Fonte: http://www.dicas-l.com.br/index.xml

Canivete Suíço do Shell disponível para download gratuito

Colaboração: Aurélio Marinho Jargas

Data de Publicação: 12 de maio de 2010

O Canivete Suíço do Shell é uma referência rápida do shell do Unix/Linux/Mac, com várias tabelas que resumem comandos, operadores, opções, conceitos, exemplos, dicas e listagens. Nada de texto, só tabelas. Bom para ter sempre à mão para tirar dúvidas.

Este documento existe em meu site desde 2003 e sempre foi muito acessado. Em dezembro de 2006 fiz uma versão especial para impressão (PDF de quatro páginas) e comecei a vendê-la por 5 reais. Satisfeito com o resultado, encerrei as vendas em dezembro de 2009 e agora estou liberando o PDF gratuitamente para quem quiser baixar. Aproveite!

http://aurelio.net/shell/canivete-pdf.html

Fonte: http://www.dicas-l.com.br/index.xml

Balanceamento de carga com Iptables

Balanceamento de Carga com Iptables
===================================

Colaboração: Everson de Oliveira

Neste artigo vamos mostrar um modo simples e rapido de balanceamento de carga utilizando regras de IPTABLES.

Cenário:
========
user > Firewall IPTables >

> Server Apache A

> Server Apache B

Obs: Vale lebrar que o conteúdo deverá ser igual nos dois servidores, isto é, caso queira colocar isso em produção.

Vamos ao que interesa. Apenas faça o seguinte:

# Regra 1
$IPTABLES -A PREROUTING -t nat -d 200.xxx.xxx.1 -j DNAT –to 192.168.1.1-192.168.1.2

# Regra 2
$IPTABLES -A POSTROUTING -t nat -s 192.168.1.1 -j SNAT –to 200.xxx.xxx.1

# Regra 3
$IPTABLES -A POSTROUTING -t nat -s 192.168.1.2 -j SNAT –to 200.xxx.xxx.1

Repare que utilizei –to 192.168.1.1-192.168.1.2 (dois hosts). Poderia usar –to 192.168.1.1-192.168.1.10 (que significa que estarei dispondo de um range de 10 hosts no load balance).

Everson de Oliveira é Analista de Redes da Escola do Futuro – USP

Fonte: http://www.dicas-l.com.br/dicas-l/20090915.php

Gerando hash MD5 dos arquivos no linux

Uma forma bastante interessante de se manter um controle sobre os arquivos, principalmente os de sistema, é gerar o hash dos principais arquivos e guardar em uma tabela para futuras pesquisas.

Gerando o hash de um arquivo, se houver qualquer tipo de alteração nele, ao rodar novamente o cálculo do hash MD5, o resultado do hash será diferente do resultado original.

No linux, você pode gerar o hash MD5 de um arquivo digitando o seguinte comando:

md5sum arquivo

Por exemplo, um cálculo de hash em um arquivo ficaria assim o resultado:

md5sum dic.txt

8f1d3d9518b9a09acf68c9db12ef29ac  dic.txt

Vamos alterar esse arquivo, acrescentando uma linha e após salvar, gerando novamente a função hash, teremos um novo resultado:

md5sum dic.txt

49526713e47393a7ffcb532fcff8fe9a  dic.txt

Ou seja, dessa forma, você poderá fazer um hash md5 de seus arquivos e quando precisar, verificar o hash para saber se ocorreu alguma alteração.