terça-feira, 31 de janeiro de 2012

Posição atual da Estação Espacial Internacional

A Estação Espacial Internacional (ISS) viaja em uma velocidade média de 27,7 mil quilômetros por hora, realizando 15,7 órbitas por dia, numa altitude entre 278 km e 460 km. A estação leva até 6 minutos para cruzar o céu de um observador terrestre.

A ISS é o maior e mais brilhante objeto feito pelo homem em órbita, apresenta uma magnitude que varia de acordo com a distância à terra e com o reflexo da luz solar. Algumas estimativas apontam para um brilho de magnitude até -8, com a luz do Sol brilhando diretamente pelos painéis solares.

O site AstroViewer (http://www.astroviewer.com/), além de conter um mapa interativo do céu noturno, possui uma página que mostra a posição atual da ISS (http://iss.astroviewer.net/) e seu caminho sobre a superfície terrestre, com atualizações a cada segundo.

Neste site, também é possível especificar a localização do observador terrestre, e assim, obter uma lista das oportunidades de observação da ISS, com data, hora, duração, magnitude e direção. Tudo muito bem ilustrado através de um mapa da localização e com o caminho da ISS.

Ah! Ainda é possível gerar um código HTML para incorporar o mapa em sua página.

A observação da Estação Espacial Internacional depende de alguns fatores como altura em relação ao horizonte, reflexão da luz solar e céu noturno. As melhores condições de observação ocorrem antes do nascer do Sol e depois do pôr do Sol.



segunda-feira, 30 de janeiro de 2012

Brincadeira de adivinhar um número na calculadora

Algumas calculadoras, mesmo as simples, possuem uma funcionalidade na tecla = (igual), talvez associada à função de repetição ou função de cálculo contínuo, que quando pressionada, após a exibição do resultado de um cálculo, repete a última operação.

Para testar se a calculadora possui esta funcionalidade, por exemplo, tecle 1 + 1 e tecle = repetidamente. Se o resultado receber incrementos de 1 a cada pressionamento da tecla = então a calculadora possui esta funcionalidade.

Nestas calculadoras é possível fazer uma brincadeira de adivinhação de um número. Uma pessoa programa a calculadora, escolhendo um número de quantos dígitos desejar e passa a calculadora para outra pessoa, a qual irá descobrir o número digitando seus palpites.

Para programar a calculadora nesta brincadeira, entre com um número de quantos dígitos preferir. Um bom tamanho é um número de quatro dígitos. Divida este número por ele mesmo e tecle =. O resultado será obviamente 1. Pronto, a calculadora está programada. Não tecle mais nada e passe a calculadora para a outra pessoa.

Exemplo, sequência de teclas para programar o número 3647:

3 6 4 7 : 3 6 4 7 =

Para realizar as tentativas a pessoa deve digitar os números e teclando = após cada palpite. Se o palpite for menor que o número correto, o resultado será menor que 1 (zero vírgula alguma coisa). Se o palpite for maior que o número correto, o resultado será maior que 1 (um vírgula alguma coisa). Quando acertar o número, o resultado será exatamente 1.

Exemplo, adivinhando o número acima:

[Palpite 1] 5 5 5 5 = (a calculadora retorna 1,5232 - o palpite é maior)
[Palpite 2] 3 3 3 3 = (a calculadora retorna 0,9139 - o palpite é menor)
[Palpite 3] 3 6 4 7 = (a calculadora retorna 1 - o palpite está certo)

A brincadeira se desenvolve nestas tentativas, digitando um número e teclando =, para que o resultado se aproxime de 1. Quanto maior o número de dígitos, maior a dificuldade. Pode-se informar ao adivinhante quantos dígitos tem o número, ou não.

Ainda não encontrei uma documentação que explique esta funcionalidade das calculadoras, não é exatamente a função de cálculo contínuo pois esta função aproveita o resultado na operação seguinte. Nas tentativas, quando digita-se o palpite e a tecla =, o resultado das operações é o palpite dividido pelo número certo.

Infelizmente não é toda calculadora que aceita esta brincadeira. Nas mais simplezinhas costuma funcionar. Numa científica, toda poderosa, provavelmente não. Em uma com RPN, acredito que não.

Vantagens e desvantagens entre Desktop e Laptop

Um dilema bastante comum para quem vai comprar um computador é a escolha entre um desktop e um laptop (notebook). Principalmente quando pretende ter apenas um computador.

Um computador para uso pessoal deve atender o propósito mais geral possível. Os usos mais comuns são: acesso à Internet, editores de textos e planilhas, jogos, imagens, vídeos e músicas. Uns usuários fazem mais uma coisa, outros não e por aí vai.

Para uso profissional a existência de um pré-requisito ajuda na definição do modelo. Um desenhista da Pixar necessitará de uma placa de vídeo super potente. Um executivo que viaja pelas filiais pode necessitar de transporte. A escolha fica mais fácil assim.

Enumerei, talvez algumas, das vantagens e desvantagens de se ter um desktop e um notebook. Possivelmente terão outras. Praticamente, nesta minha análise, a vantagem de um é a desvantagem do outro e vice-versa. Veja:

Desktop

Vantagens:

1) Processamento maior - Tanto a unidade central de processamento como o processador gráfico e demais chipsets serão versões completas, com desempenho total.
2) Tela do monitor maior - Os monitores para desktop podem ser maiores nas polegadas e também com maior número de pixels.
3) Maior espaço em HD - Um gabinete pode comportar mais de um disco rígido e eles podem ser de 3,5", o que permite modelos com grande capacidade (2 TB).
4) Teclado mais confortável - Os teclados para desktop são grandes, com teclas maiores e com melhor ergonomia.
5) Menor risco de roubo - Como não será transportado com frequência e por ser maior e mais pesado, dificulta o roubo.
6) Manutenção mais fácil - É mais fácil abrir e trocar um componente. O custo das peças são menores também.
7) Upgrade mais fácil - Os diversos componentes podem ser independentes e assim podem ser trocados separadamente. Por exemplo, trocar uma placa de vídeo por uma melhor.
8) Preço mais barato - Por um mesmo preço pode-se obter um desktop mais potente e com maior capacidade, ou, com as mesmas características de hardware, um desktop custa menos.
9) Mais resistente - Os gabinetes são mais robustos, como também as peças internas.

Desvantagens:

1) Não é portátil - Não dá para transportar facilmente.
2) Bateria inexistente - Só funciona conectado à rede elétrica e necessita de um nobreak para que não desligue caso a energia da rede seja interrompida.
3) Consome mais energia - O hardware não é otimizado para poupar energia e os componentes necessitam de uma fonte potente.
4) Ocupa mais espaço - Monitor, gabinete, teclado, mouse, caixas de som, não é qualquer mesa que comporta tudo isso.
5) Pesado - Só o monitor já pode pesar mais que um notebook e o gabinete é o item mais pesado.
6) Mais cabos - Para ligar todas as peças usam-se diversos cabos, tudo espalhado.
7) Tudo separado - O monitor é uma peça à parte, o gabinete outra, mais teclado, mais mouse, mais caixas de som. Por exemplo, se for embalar para transporte é preciso cuidar de cada item separadamente.


Notebook

Vantagens:

1) Portátil - Pequeno, leve, é fácil transportar, pode caber até em uma pasta ou bolsa.
2) Bateria - Já vem com bateria por padrão, e assim, além de permitir o uso fora da rede elétrica, serve como um nobreak caso a energia da rede seja interrompida.
3) Consome menos energia - Funciona com uma fonte pequena e econômica, todo o hardware é otimizado para poupar energia.
4) Ocupa menos espaço - Com dimensões reduzidas, cabe em uma mesa pequena, pode ser guardado em um pequeno espaço.
5) Leve - Podendo pesar apenas 1 kg ou 2 kg, pode-se até usar no colo.
6) Menos cabos - Se usar na rede elétrica, um cabo basta, e usando na bateria pode ser completamente "wireless".
7) Tudo em um - Em uma mesma peça tem-se monitor, CPU, teclado, touchpad, caixas de som, webcam etc.

Desvantagens:

1) Processamento limitado - Os processadores são otimizados para consumir pouca energia e com isso possuem um desempenho reduzido.
2) Tela do monitor menor - As telas estão limitadas à largura do notebook e ainda costumam ter um número de pixels menor.
3) Menos espaço em HD - Além de ter espaço para somente um disco rígido em seu interior, é utilizado um modelo de menor dimensão (2,5"), que consequentemente, possui menor capacidade.
4) Teclado reduzido - Os teclados estão limitados à largura do notebook e geralmente possuem teclas compactas e em menor número (aproveita-se muitas funções numa mesma tecla).
5) Risco de roubo - Por ser fácil de esconder, carregar e estar sujeito a um passeio pela rua, o risco de um assalto é maior.
6) Manutenção complicada - A abertura e desmontagem é complicada e delicada. Os componentes estão agregados uns aos outros, geralmente, se for trocar tem que trocar tudo.
7) Upgrade limitado - Não é qualquer componente que pode ser trocado. Geralmente somente o processador, memória e disco rígido permite troca.
8) Preço mais caro - Por ser um hardware mais refinado, seu custo é maior.
9) Frágil - As peças internas são mais delicadas e a carcaça mais fina e leve, um pequeno impacto pode ser fatal.


Alguns perfis de usuários tornam mais fácil a escolha. Quem dá preferência aos jogos, escolha o desktop, sua capacidade gráfica será necessária para suportar as animações. Os jogos pesados, especialmente os atuais, não funcionarão nos notebooks. O desktop também será necessário para quem precisa ter muito espaço em disco. Os HDs de notebooks não irão suportar mais de 1 Terabyte, pelo menos na tecnologia atual.

Quem usa apenas navegação na Internet, e-mails, comunicação instantânea, suíte para escritório, visualizar e editar fotos, e ouvir músicas, tanto faz desktop ou notebook. Quem precisa levar o computador de um lugar ao outro, quem viaja bastante e gosta de usar o próprio computador para as tarefas pessoais, é melhor um notebook.

O maior medo de quem tem um notebook é realmente o roubo. O proprietário de um deve ficar atento para não dar bobeira, principalmente na rua. O uso de criptografia no disco rígido é altamente recomendável, além de backups com maior frequência.

Quem se acostuma com um notebook dificilmente volta a ter um desktop. No geral é bem mais prático. O desktop é mais para quem joga, considerando os usuários domésticos.

As vantagens e desvantagens não se aplicam aos desktops do tipo All-in-One, pois eles podem possuir características semelhantes a de um notebook. Também não se aplicam aos netbooks, estes são equipamentos bem mais enxutos tornando impraticável a comparação com os desktops.

Espero não ter dificultado ainda mais a sua escolha!

quinta-feira, 26 de janeiro de 2012

Agilizando downloads pela linha de comando

Uma linha de comando executada em um prompt do shell pode agilizar muitos downloads, especialmente quando as URLs se diferem em valores sequenciais ou quando temos páginas com muitos links. Fica muito mais rápido todo o trabalho.

Neste primeiro caso de exemplo, temos uma série de arquivos numerados (man01.pdf, man02.pdf ...) com um início de endereço comum. O uso de um simples laço de repetição executará o programa wget para cada arquivo:

for (( i=1; i<=9; i++ )) do wget http://manuais.com/pdf/man0$i.pdf; done

Já neste segundo exemplo, temos duas variações ocorrendo nos nomes dos arquivos, com letras e números (manBR01.pdf, manBR02.pdf, ..., manUS01.pdf, manUS02.pdf, ...). O uso de dois laços aninhados irão gerar todas as respectivas URLs dos arquivos:

for c in BR US ES; do for (( i=1; i<=6; i++ )) do wget http://manuais.com/pdf/man"$c"0"$i".pdf; done; done

Apesar de nos exemplos ocorrerem apenas variações nos nomes dos arquivos, elas podem ocorrer em qualquer parte da URL. Bastando somente posicionar a variável no endereço.

Neste terceiro e último exemplo, temos uma página fornecendo links de diversos arquivos, não necessariamente sequenciais, sendo formatada para que somente as URLs sirvam de parâmetro para o programa wget:

for x in $(lynx -dump http://manuais.com/ | awk '{print $2}' | grep .pdf); do wget $x; done

Entendendo melhor este último exemplo. A opção -dump do programa lynx formata a página para texto puro na saída padrão e gera no final uma relação dos links encontrados. Esta relação das referências é que será utilizada. A ferramenta awk filtra e exibe somente a segunda coluna do texto, e a ferramenta grep filtra e exibe somente as linhas contendo a string especificada. Todo resultado deste texto alimentará o laço.

Nestes exemplos, todos os arquivos baixados serão salvos no diretório corrente. Os comandos deverão ficar em uma única linha, estão quebrados pois são extensos para a página. Uma longa lista poderá correr em sua tela, serão execuções sequenciais do programa wget, um downloader não-interativo para rede.

É vantajoso usar uma linha de comando ao invés de ficar clicando repetidamente em uma página, por todos os links. O tempo economizado é grande, além do conforto. Se encontrar uma página com um certo padrão nos links, não hesite, use a linha de comando!

terça-feira, 24 de janeiro de 2012

Como a senha de usuário é armazenada no Linux?

O Linux é um sistema multiusuário pois permite acesso simultâneo de múltiplos usuários ao computador. O sistema controla o acesso em contas de usuário para distinguir as pessoas diferentes que o usam. Cada usuário tem uma conta pessoal com um nome e uma senha.

Toda conta no sistema Linux tem uma entrada no arquivo '/etc/passwd'. Este arquivo contém entradas, uma linha por usuário, que especificam diversos atributos para cada conta. Cada entrada neste arquivo tem o mesmo formato, com campos separados por "dois pontos":

nome_do_usuário:senha:UID:GID:Nome Real:/diretório/pessoal:shell

Exemplo de arquivo '/etc/passwd':

root:x:0:0:root:/root:/bin/bash
daemon:x:2:2:daemon:/sbin:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
ftp:x:14:50:FTP User:/var/ftp:/sbin/nologin
nobody:x:99:99:Nobody:/:/sbin/nologin
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
fulano:x:500:500:Fulano da Silva:/home/fulano:/bin/bash
siclano:x:501:501:Siclano Souza:/home/siclano:/bin/bash
beltrano:x:502:503::/home/beltrano:/bin/bash

As distribuições atuais utilizam adicionalmente uma ferramenta de proteção de senha, o 'shadow'. Esta ferramenta serve para ocultar a representação criptografada das senhas do arquivo '/etc/passwd', substituindo por um x, e então armazenando-as no arquivo '/etc/shadow', que não possui permissão de leitura aos usuários comuns. O arquivo '/etc/shadow' armazena as senhas em um formato criptografado, com algumas informações adicionais relacionadas as senhas dos usuários. Contém uma entrada por linha, separada em campos, para cada usuário definido no '/etc/passwd'.

nome_do_usuário:senha:última alteração:mínimo:máximo:aviso de expiração:inativo:expiração:

O primeiro campo contém o nome que identifica a conta, o segundo contém a representação criptografada da senha do usuário. Os campos seguintes contém: dias passados desde 01/01/1970 da última alteração da senha; dias nos quais antes a senha não pode ser alterada; dias nos quais a senha precisa ser alterada; dias prévios para aviso de expiração; dias após expiração nos quais a conta será considerada inativa ou desativada; dias desde 01/01/1970 para a conta expirar e o último campo é reservado para uso futuro.

Exemplo de arquivo '/etc/shadow':

root:$6$utLIMf6gY40$Eoe.2M7uqTK1UBtnz3yz4T:14768:0:99999:7:::
daemon:*:14715:0:99999:7:::
lp:*:14715:0:99999:7:::
shutdown:*:14715:0:99999:7:::
ftp:*:14715:0:99999:7:::
nobody:*:14715:0:99999:7:::
postgres:!!:14855::::::
fulano:$6$nsd3oKxkg0$kIEvBac347MZXYfOnrc56ybz:14768:0:99999:7:::
siclano:$6$AaNgoXJSPsv/$cupVfet0y4cIYLpPSWyNQM:14771:0:99999:7:::
beltrano:$6$Qc3AYPleBx0$ikGowHMwzkqRz9QGZzQfwfu:14770:0:99999:7:::

As senhas armazenadas no arquivo '/etc/passwd', ou atualmente no arquivo '/etc/shadow', são codificadas na forma de hashes, gerados pela função crypt(). Atualmente as distribuições Linux utilizam como padrão o algoritmo SHA-512 ao invés do método DES tradicional do Unix.

A função crypt() recebe dois argumentos, a senha digitada pelo usuário e uma string denominada "salt". Esta string tem o propósito de "salgar" ou "inchar" o hash gerado pelo algoritmo de dispersão. Assim, o hash armazenado não é simplesmente proveniente da senha mas da senha mais o salt. Isto dificulta uma tentativa de descoberta por uso de "hash tables" pois a função crypt() precisa ser executada em cada comparação.

A versão da função crypt() na glibc2 possui uma caracteristica adicional. A string salt pode iniciar com caracteres que identificam o algoritmo de criptografia, ao invés do DES tradicional. Estes caracteres seguem o padrão $ID$, onde ID é um valor referente a um dos algoritmos a seguir:

ID     Algoritmo
1      MD5
2a     Blowfish
5      SHA-256
6      SHA-512

A string completa com o hash, que representa a senha, é armazenada no arquivo '/etc/shadow' no formato $ID$SALT$SENHA. O caractere "$" (cifrão) delimita cada item da string. Por exemplo a linha a seguir (Nota: há uma quebra de linha no meio do hash para facilitar a apresentação, no arquivo é somente uma única linha):

nome_do_usuário:$6$eKn9QGMQ$Ofi1OoClVpw/cCbTsD4YUKgfurcQoBxsZ9Tlk5VBjTp
AjSYFt.M9shPtQVnouNr4/3PRDP/eMqkoWQpuBxsRk1:15362:0:99999:7:::

Os caracteres em salt e na senha criptografada são extraídos do conjunto {a-z A-Z 0-9 ./}. Em um sistema Linux, o salt é criado de forma aleatória durante a configuração da senha do usuário.

A seguir um código exemplo utilizando a função crypt(), em linguagem C, que retorna a string completa $ID$SALT$SENHA (compilar no GCC com a opção -lcrypt):

#include <stdio.h>
#include <unistd.h>
#include <crypt.h>

int main(void) {
  char salt[] = "$6$eKn9QGMQ";
  char *password;
 
  password = crypt(getpass("Password:"), salt);
 
  puts(password);
  return 0;
}

A função crypt() também está incluída em outras linguagens de programação, como Perl, PHP, Python e Ruby. Na linguagem Perl pode-se usar a linha de comando a seguir, no prompt do shell, para invocar o interpretador Perl com a função crypt():

$ perl -e 'print crypt("senha","\$algoritmohash\$salt\$") . "\n"'

Por exemplo:

$ perl -e 'print crypt("1234","\$6\$eKn9QGMQ\$") . "\n"'

Como visto, o sistema Linux possui um mecanismo interessante e bastante eficiente para controlar as contas e senhas dos usuários. Veja mais no artigo "Administrando usuários e grupos no sistema Linux" (http://dan-scientia.blogspot.com/2010/07/administrando-usuarios-e-grupos-no.html).

domingo, 22 de janeiro de 2012

Problema de Lógica: O relógio quebrado

O relógio do quarto de Pedro está quebrado. A cada hora o relógio adianta 36 minutos. No entanto, exatamente uma hora atrás, o relógio parou mostrando 8:24 da manhã. Pedro sabe que o relógio mostrou o horário certo às 2 horas da manhã. Que horas são agora?






RESPOSTA






O relógio, de forma incorreta, funcionou das 2 horas da manhã até 8:24, quando parou, desta forma, funcionou por 6 horas e 24 minutos, ou 384 minutos. Cada 96 minutos deste tempo em funcionamento, na realidade correspondem a uma hora pois o relógio adianta 36 minutos a cada 60 minutos.

Dividindo o tempo em que o relógio esteve em funcionamento (384) pelos minutos que correspondem a uma hora real (96), percebe-se que o relógio funcionou por 4 horas (384/96). Pelo horário real, o relógio funcionou das 2 horas da manhã até 6 horas, que foi uma hora atrás, portanto, agora são 7 horas da manhã.

hora certa    hora no relógio
   2:00            2:00
   3:00            3:36
   4:00            5:12
   5:00            6:48
   6:00            8:24
   7:00

sábado, 21 de janeiro de 2012

Extrair o áudio de um DVD

No ambiente Linux existe um reprodutor multimídia com o qual é possível, dentre muitas funcionalidades, extrair o áudio de um filme em DVD. Trata-se do MPlayer (http://www.mplayerhq.hu/), uma aplicação de linha de comando com código aberto.

O MPlayer suporta e reproduz dezenas de formatos de vídeos, incluindo uma mídia física no formato DVD, utilizando a opção 'dvd://número_do_título'. Para especificar a saída de áudio em um arquivo usa-se a opção do driver de saída de áudio '-ao' com a subopção 'pcm', onde '-ao pcm' especifica o driver de saída de áudio raw PCM/wave para escrita em arquivo. A subopção pcm permite 'file=arquivo.wav' para especificar o nome do arquivo que será gerado.

Opções adicionais podem ser utilizadas caso houver interesse ou necessidade, por exemplo, a opção '-ss hh:mm:ss' inicia em determinada posição do vídeo, '-endpos segundos' encerra na posição dada, '-alang LL' especifica a linguagem do áudio, '-chapter capítulo' especifica o capítulo para reprodução e '-dvd-device /dev/XXX' especifica o caminho para o dispositivo DVD.

Um exemplo de linha de comando é apresentado a seguir, reproduzindo o título 1 do DVD, encerrando após 8 segundos e gerando o arquivo title1.wav:

$ mplayer dvd://1 -endpos 8 -ao pcm:file=title1.wav

Com este arquivo wave em mãos, pode-se converter pra qualquer outro formato de áudio que desejar, com a ferramenta que desejar. O formato de áudio raw PCM/wave é um dos melhores para manter o áudio na íntegra, sem qualquer compactação com perda de dados.

O MPlayer está disponível também para outras plataformas e sistemas, consulte a documentação. Existem muitas interfaces gráficas para o MPlayer mas para explorar todas as opções, a linha de comando é necessária.

sábado, 7 de janeiro de 2012

LinEn e FTK Imager, aquisição forense em Linux

Na computação forense, a técnica de aquisição de dados consiste no procedimento de cópia da informação armazenada em um computador. Para a evidência digital estar preservada em sua forma original, a melhor forma de armazenamento é na criação de um arquivo imagem. Todo o conteúdo de um disco rígido pode ser armazenado em um único arquivo imagem, que é uma cópia exata bit-a-bit.

Apesar de existirem diversas ferramentas livres para criação de arquivo imagem, existem duas ferramentas proprietárias que são excelentes para aquisição forense, a EnCase Acquisition (Guidance Software) e a FTK Imager (AccessData). Estas duas ferramentas possuem versões para Linux.

O utilitário LinEn é uma versão para Linux da ferramenta de aquisição EnCase para DOS. O LinEn é similar ao EnCase para DOS mas oferece todas as vantagens de uma execução em ambiente Linux. Por rodar em um sistema 32-bit, o LinEn proporciona uma grande vantagem na performance, comparado ao sistema DOS. O LinEn possui dois modos de operação: o modo de linha de comando e o modo de interface.

No modo de linha de comando, todas as informações necessárias para aquisição da imagem devem ser especificadas em opções.

Principais opções:

-cl            Usada para executar o LinEn no modo de linha de comando.
               Requerida quando usadas as opções -k, -o ou -verify.
-k             Realiza a aquisição do dispositivo no modo de linha de comando.
-dev caminho   Caminho para o dispositivo para ser adquirido ou hasheado.
               Requerido para aquisição ou cálculo do hash.
-p caminho     Caminho para o arquivo de evidência quando usada -k ou -verify.
               Requerido para aquisição ou verificação.
-m nome        Nome da evidência. Requerido para aquisição.
-c número      Número do caso da evidência. Requerido para aquisição.
-x examinador  Nome do examinador. Requerido para aquisição.
-r número      Número do dispositivo da evidência. Requerido para aquisição.
-d compressão  Compressão usada na aquisição. Deve ser um número entre 0 e 2.
               0=sem, 1=rápido, 2=melhor. Requerido para aquisição.
-a caminho     Caminho alternativo se o caminho original ficar cheio.
-n nota        Notas para ser armazenadas no arquivo de evidência.
-l tamanho     Tamanho máximo para os arquivos de evidência em MB (mínimo=1, padrão=640).
-t             Desliga o hash MD5 enquanto calcula o hash ou na aquisição da evidência.
-1             Ativa cálculo hash SHA1 enquanto calcula o hash ou na aquisição da evidência.
-v             Modo verboso.
-o             Calcula o hash. Deve ser usada com -cl e -dev.
               As opções -t e -1  definem qual hash será calculado.
-verify        Verifica o arquivo de evidência. Deve ser usada com -cl e -p.

Exemplos:

Aquisição pela linha de comando:

# linen -cl -k -dev /dev/sda1 -p /root/tempo/evidencia.e01 -m "disco suspeito" -c Caso123 -x "Sr Perito" -r "HD 123" -d 2 -n "Adquirido pelo LinEn" -l 50 -1 -verify -v

Verificação do arquivo de evidência:

# linen -cl -verify -p /root/tempo/evidencia.e01

Calcular hash MD5 e SHA1 do dispositivo:

# linen -cl -o -dev /dev/hda -1

O modo de interface do LinEn é iniciado com a execução sem opções:


Para iniciar uma aquisição pressione o botão "Acquire" e prossiga com as informações sobre a evidência.

Interação da interface do LinEn:

Choose a drive             Escolha o dispositivo ou partição.
Path and file name         Escreva o caminho para o arquivo evidência.
Alternate Path             Escreva o caminho alternativo para o arquivo evidência.
Case Number                Escreva o número do caso.
Examiner Name              Escreva o nome do examinador.
Evidence Number            Escreva o número da evidência.
Name                       Escreva o nome da evidência.
Current Date (GMT)         Escreva a data.
Notes                      Escreva notas do caso.
Compress this file?        Escolha se deseja compressão do arquivo de evidência.
Acquisition Hash           Escolha o algoritmo hash para cálculo.
Password                   Escreva uma senha, opcional.
Total Sectors              Escreva o número total de setores.
Max File Size in MB        Escreva o tamanho máximo para o arquivo de evidência.
Block size                 Escreva o tamanho do bloco, em setores.
Error granularity          Escreva a granulação para erro, em setores.
Number of Worker Threads   Escreva o número de tarefas simultâneas de trabalho.
Number of Reader Threads   Escreva o número de tarefas simultâneas para leitura.
Do you want hashing to be
done in its own thread?    Escolha se o hash deve ser calculado em tarefa própria.
Do you want to verify
the evidence file?         Escolha se deseja verificar o arquivo de evidência.
Write this value to
a text file?               Escolha se deseja escrever o relatório em um arquivo texto.

O LinEn é um software proprietário desenvolvido pela Guidance Software Inc. e é fornecido junto com o EnCase (http://www.guidancesoftware.com/forensic.htm).


O ftkimager é uma versão para Linux da ferramenta FTK Imager. Sua interface é apenas em linha de comando. Esta ferramenta é capaz de criar uma imagem de disco no formato EnCase, SMART ou dd. As informações necessárias para aquisição da imagem devem ser especificadas em opções.

Sinopse:

ftkimager origem [destino] [opções]

Principais opções:

--list-drives     exibe os drives físicos detectados
--verify          verifica o hash da imagem de destino ou da imagem de origem,
                  se não for informado o destino
--print-info      exibe informações sobre o drive ou imagem
--no-sha1         não calcula o hash SHA1 durante a aquisição ou verificação
--s01             cria uma imagem no formato SMART ew-compressed
--e01             cria uma imagem no formato E01
--frag x{K|M|G|T} separa a imagem em fragmentos de x{K|M|G|T} de tamanho
--compress C      ativa o nível de compressão para C
                  (0=nenhum, 1=rápido, ..., 9=melhor)
--case-number X          metadados para imagem e01 e smart,
--evidence-number X      use aspas se conter espaço
--description X
--examiner X
--notes X

Exemplos:

# ftkimager --list-drives

# ftkimager --print-info /dev/sdb

# ftkimager /dev/sdb imagem --no-sha1 --s01 --frag 5M --compress 1

# ftkimager /dev/sdb imagem --e01 --compress 4 --case-number 123 --evidence-number 1 --description "disco notebook" --examiner "Sr Perito" --notes "copia backup"

# ftkimager /dev/sdb imagem

O FTK Imager é um software proprietário desenvolvido pela AccessData Corp. e é possível baixá-lo pela página de downloads da AccessData (http://accessdata.com/support/adownloads).


O LinEn e o FTK Imager são duas ótimas ferramentas para aquisição forense. As duas suportam o formato EWF para arquivo imagem, em todas as vantagens que este formato oferece. São ferramentas obrigatórias no laboratório forense computacional.

Ao usar estas ferramentas para criação de uma imagem forense, use também um dispositivo de bloqueio de escrita, para garantir que nenhuma alteração será feita pelo sistema operacional em algum dado no disco rígido conectado ao computador.

sexta-feira, 6 de janeiro de 2012

Desativar o Controle de Conta de Usuário

Desde o Windows Vista, Windows 2008, e presente no Windows 7, existe um componente de segurança no sistema operacional denominado "Controle de Conta de Usuário" (UAC). Este componente permite que usuários de contas comuns possam executar tarefas do administrador do sistema. Além disso, o UAC notifica o usuário quando algum programa tenta acessar áreas centrais e protegidas do sistema operacional. Evitando uma instalação "silenciosa" proveniente de programas mal-intencionados. Assim, o Controle de Conta do Usuário ajuda a impedir que programas potencialmente perigosos façam alterações no computador.

Contudo, programas antigos ou que não sejam certificados para Windows 7, por não oferecerem suporte ao UAC, podem não funcionar sob este controle. Por exemplo um arquivo MSP (Windows Installer patch) antigo, onde não aparece a opção de executar como administrador. Nestes casos pode ser necessário desativar ou reduzir o nível de notificação do UAC, para então executar o programa, e por fim reativar o controle.

Pelo Painel de Controle é possível definir quando o usuário deverá ser notificado a respeito de alterações no sistema. Para realizar este procedimento siga estes passos:

Abra o Painel de Controle e vá, se estiver na exibição por categoria, em:

Contas de Usuário e Segurança Familiar / Contas de Usuário / Alterar configurações de Controle de Conta de Usuário

(se o Painel de Controle estiver na exibição por ícones, vá em: Contas de Usuário / Alterar configurações de Controle de Conta de Usuário)

Será aberta a janela "Configurações de Controle de Conta de Usuário". Nesta janela, altere o nível para "Nunca notificar", é o mais baixo, e clique em OK.

Após a instalação do programa, retorne a configuração padrão do Controle de Conta do Usuário.

Esta alteração na configuração do Controle de Conta do Usuário só será possível se a conta do usuário tiver privilégios de administrador. Neste nível "Nunca notificar" o usuário não será notificado antes que qualquer alteração no computador. Se o usuário tiver privilégios de administrador, os programas poderão fazer alterações no computador sem o conhecimento do usuário, tornando o computador exposto. Como um usuário comum, todas as alterações que necessitam de permissões de um administrador são automaticamente negadas.