sexta-feira, 13 de janeiro de 2012

Perigos e trapalhadas no mundo digital - II

Quem lida há um bom tempo com informática com certeza já deve ter visto um vírus em ação, um HD ou gravador de DVD "falecerem", uma partição do disco ser apagada por engano, burrice ou distração, entre outras coisas "cabeludas" que podem acontecer pelos mais diversos motivos. Vou lhes contar agora mais alguns incidentes nos quais não me orgulho nem um pouco de ter sido o protagonista:

"No meio do caminho tinha um gerenciador de boot"
Um gerenciador de boot nada mais é que um programa gravado geralmente no início do HD (na MBR ou referenciado nela) e que permite escolher o sistema operacional que irá inicializar o computador. Pois bem, existem vários gerenciadores de boot - alguns de código fonte aberto como o GRUB e o LILO do Linux, e outros de código proprietário ou fechado, instalados geralmente a partir do Windows. Programas que gerenciam partições como o Acronis ou o Paragon também costumam fornecer gerenciadores de boot nas versões profissionais.
A grande lição que tenho a lhes passar é a seguinte: se você não conseguiu identificar o gerenciador de boot instalado numa máquina, nunca testou ou mexeu com um, não redimensione ou apague uma partição da máquina sem antes fazer o backup dos dados em DVD ou num HD externo.
A história é a seguinte: Um amigo meu tinha um computador com dual-boot entre o Windows 98 e o Windows XP. Havia um gerenciador de boot (que até hoje não descobri qual era) que permitia escolher entre um ou outro sistema durante a inicialização da máquina. Se não me falha a memória, meu amigo comentou em certo momento que já havia se acostumado ao Windows XP e que só não tirava o Windows 98 da máquina por causa dos e-mails do Outlook. Queria mais espaço em sua máquina e o 98 agora ocupava um espaço que poderia ser aproveitado para o download de músicas, vídeos, animações em flash etc. Então, se ainda não me falha a memória, me ofereci para "tirar" o Windows 98 e liberar mais espaço. Uma pequena obra de reforma estava sendo feita na casa desse meu amigo, com pintores pintando o lado externo da casa. O cheiro de tinta era forte e o calor era grande também. Minha cabeça começou a "rodar" com o cheiro da tinta e o raciocínio a ficar meio confuso quanto aos procedimentos a serem adotados para realizar aquela tarefa. Na época, eu estava começando a mexer com procedimentos mais assim "arriscados" como formatação e instalação do Windows e não recusava a oportunidade de poder mexer na máquina de outra pessoa. Esse foi o meu erro. Mesmo que haja oportunidade, é preciso agir com critério e segurança, para que possamos aprender sem danificar o que é dos outros. Não se pode juntar os dois fios de uma tomada elétrica, por exemplo (é curto-circuito na certa). E se as condições à nossa volta são desfavoráveis (calor ou frio demais, odores tonteantes, falta extrema de espaço para movimentação etc.) e a nossa resistência física também começa a falhar, é melhor não agir ou não tomar nenhuma decisão delicada que possa por em risco o funcionamento e a usabilidade normal da máquina, num procedimento de manutenção ou modificação do sistema. Vamos aos fatos: primeiro, se não me engano, copiei os arquivos .dbx do Outlook para a partição onde estava o XP, depois apaguei a partição do 98 - até aí tudo bem, o espaço do 98 poderia ser usado normalmente, mas - e aqui o raciocínio falhou - caí na besteira de redimensionar e mover a partição do XP para melhor aproveitamento e unificação do espaço útil. Ora, como o gerenciador de boot iria "bootar" a partir de um endereço no disco onde agora não estavam mais os arquivos de inicialização que ele esperava encontrar? Eles haviam sido movidos para o início de uma partição, agora unificada, e não estavam mais no "meio" do disco, onde estavam anteriormente. Como eu não sabia - e até hoje não sei - lidar com gerenciadores de boot, de modo a atualizar os endereços e setores de inicialização para que o sistema voltasse a "bootar", o serviço não deu certo, meu amigo teve que pagar para alguém recuperar os seus dados e reinstalar o XP e eu não tive mais coragem de voltar na casa desse meu amigo. Quer dizer, ainda voltei na casa dele umas duas ou três vezes, eu acho, mas a amizade que existia passou a ser uma vaga lembrança, não só por esse motivo mas também pela falta de tempo...
A lição então é esta: se você nunca testou um determinado procedimento, não acredite na sorte, em mágica ou na providência divina, porque em situações extremas e se você não sabe com certeza se aquilo vai dar certo, é melhor não tentar e fugir da tentação de mexer, quando não há a possibilidade de errar e tentar de novo (a menos que você saiba ou tenha condições de consertar o erro - o que não era o caso de um iniciante como eu na época; hoje, pelo menos, já conheço alguns programas para recuperação de dados, mas naquele tempo não tinha muita noção a respeito). Se é pra valer, é melhor ter precaução. Em condições extremas, é melhor postergar uma decisão ou atitude, quando o risco é muito grande.

Apêndice:
Breve noção visual a respeito de HDs:
Repare, na foto abaixo, que um HD é composto de pratos (discos), que são divididos em trilhas (tracks) e setores (sectors). Cada trilha abriga vários setores. Veja, pelos desenhos abaixo, que na tecnologia atual chamada de "zoned bit recording" há menos setores na parte mais próxima ao centro e conforme se avança para as bordas, o número de setores vai aumentando, recurso este possível graças à natureza circular deste tipo de mídia: (Antigamente, nos primeiros HDs, havia um desperdício de espaço pois todas as trilhas tinham, fisicamente, apenas 63 setores - os setores do centro eram menores em comparação com os da borda do disco)
 

 A MBR (master boot record - registro mestre de inicialização) corresponde ao primeiro setor do disco e guarda informações sobre como carregar o(s) sistema(s) operacional(is) - boot loader -, e sobre as partições existentes . Abaixo, podemos ver que há duas partições, com dois sistemas operacionais capazes de 'bootar" a máquina:
De acordo com os sites Wikipedia e Infowester, apurei que a MBR situa-se na primeira trilha mais externa ao disco.
Os discos que usam MBR possuem setores de 512 bytes (o primeiro setor do disco é reservado à MBR). Discos do tipo IDE e SATA I / SATA II, de até 2 Terabytes mais ou menos, normalmente usam setores de 512 bytes. Já os discos atuais SATA III, de 2 Terabytes ou mais de capacidade, geralmente usam setores de 4kb (4 kilobytes) e não usam MBR, mas sim a GPT (Guid Partition Table), mas isso já é uma outra história...Abaixo, uma representação da MBR e sua estrutura, num HD de 4 partições:
Abaixo, comparação entre a MBR e a GPT:
HD vistos por dentro (não tente fazer isso com o seu ou ele provavelmente nunca mais irá funcionar, pois a superfície dos pratos não pode conter impurezas como poeira ou qualquer tipo de sujeira; é por isso que ela não tem contato com o ar ambiente - pelo menos não diretamente).


O conjunto de trilhas concêntricas de vários pratos é chamado de cilindro:
 Representação visual de um arquivo fragmentado e outro escrito de forma contígua no HD:
 Representação visual mostrando as cabeças de leitura (heads), os braços que as sustentam (arms), os pratos (platters) e o eixo principal de rotação (main spindle):


"No meio do executável tinha um vírus, tinha um vírus no executável..."

Programas piratas costumam ser uma mão na roda e quebrar um galhão se você usa o Windows. Mas nem tudo que é de graça costuma sair barato...
Certa vez, eu entrei no site isohunt  para procurar o torrent de um conhecido programa para lidar com imagens de cd/dvd (imagem, neste caso, não é nada além de um arquivo contendo todo o conteúdo de um cd/dvd ou HD/partição - como é uma cópia de todo o conteúdo, se o cd/dvd ou HD/partição for bootável, ele copia também o setor de boot). Há vários programas deste tipo para Windows - e, geralmente, eles tem a palavra "iso" no nome do programa (o iso é um formato de imagem padronizado, sendo que praticamente todos os programas que lidam com imagens de mídia óptica - cd ou dvd - dão suporte a ele). Enfim, achei um torrent com o executável do programa e um arquivo de texto contendo a serial (senha para registrá-lo). Baixei os arquivos e rodei o instalador do programa. Entretanto, logo percebi que havia algo de estranho: quando dei um duplo clique no executável, vi aquela rápida e típica animação no Windows Explorer mostrando que um arquivo executável estava sendo extraído de dentro do executável do instalador. Ora, este é um truque bastante antigo e manjado que qualquer um pode fazer, usando qualquer compactador de arquivos de sua preferência (winrar, winzip, brazip...); basta que se escolha a opção "criar arquivo self-extractor" (auto-extraível) ou coisa parecida. 
Há ainda a possibilidade de se incluir alguns comandos para serem executados quando os arquivos forem extraídos, de modo que um arquivo self-extractor pode muito bem funcionar como o instalador de um programa.
Obs.: Há também os "joiners" (programas que "empacotam/juntam" dois arquivos executáveis dentro de um só) e os programas que criam instaladores (alguns pagos como o InstallShield e o WiseInstall - e outros gratuitos como o Nsis, o InnoSetup, o Robin Installer etc., além de outros mais obscuros, mas ainda assim gratuitos) e permitem a execução de scripts ou comandos.
O fato é que tanto o vírus quanto o instalador do programa foram extraídos e começaram a ser executados - o instalador prosseguiu normalmente e o vírus começou a fazer seus estragos na surdina. Após instalado o programa legítimo e registrado com a respectiva serial, o vírus começou a dar sinais de vida com o Norton Antivírus avisando que um arquivo tal do Windows tinha sido corrompido. E isso se repetindo várias vezes com vários arquivos da pasta System32, todos eles relacionados a serviços de rede ou similares, até que por fim o Windows emitiu um aviso dizendo que o serviço "Chamada de procedimento remoto" havia sido desligado e que o computador seria reiniciado em 60 segundos (se não me engano). Sem este bendito serviço, o Windows simplesmente entra em parafuso e reinicia. Conclusão da história: após reinicializar várias vezes o sistema, vi que não tinha mais jeito a não ser reinstalar o Windows e todos os programas que eu tinha instalado anteriormente (muitos, diga-se de passagem). Ainda bem que este vírus não era do tipo que apaga tudo do HD, pois só os arquivos do sistema em si foram corrompidos. Meus mp3 e videos do youtube, que estavam em outra partição do disco, ficaram a salvo (daí a importância de se instalar o Windows e os programas numa partição e criar outra só para os arquivos pessoais). Um detalhe importante que esqueci de dizer é que se o programa é protegido apenas por uma serial, é melhor baixar o instalador a partir do site oficial do programa e procurar por uma serial que sirva para aquela versão do programa. Há muitos sites como o keygenguru, serials.ws e tantos outros (a maioria em inglês) onde se pode procurar por seriais. Geralmente esses sites veiculam propagandas relacionadas a sexo e pornografia - isso quando não têm scripts maliciosos ou mesmo vírus escondidos em suas páginas (os que eu indiquei anteriormente são relativamente confiáveis; há também o astalavista.box.sk, que é um site que procura dentro de outros sites a serial ou o crack que você precisa - não entre em sites de cracks e seriais sem estar com o antivírus habilitado). Na época eu usava o Norton Antivírus 2005, sendo que já estávamos no começo de 2007. Fica aí o aviso: instale sempre uma versão do antivírus que seja atual, do ano. De raiva, nunca mais usei o Norton Antivírus, mas eu também tinha vacilado e, ao que parece, o Norton já não é mais tão bom como era no começo daqueles tempos, quando o Windows 98 ainda era o sistema operacional mais usado. Hoje o Avast, além de ter uma versão gratuita, ainda tem se mostrado bom de serviço, inclusive bloqueando downloads nocivos. O Mcafee e o Kaspersky são bons também, (aliás, o Kaspersky é um antivírus incrível e poderoso, capaz de bloquear muitos comportamentos suspeitos de programas) mas o último Kaspersky antivírus que eu testei se mostrou "pesado" demais gerando muita atividade de disco e fazendo muito uso do processador, por isso recomendo o Avast em conjunto com o uso de um bom firewall. O chato do Avast grátis é que ele precisa ser registrado gratuitamente pela internet ou ele pára de funcionar depois de 30 dias. Mas, tirando isso... Enfim, como vocês podem ver, mesmo conhecendo algumas manhas, tem horas em que a gente vacila, ou por preguiça, descuido, cansaço, distração, pressa, enfim, ninguém é perfeito.
Veja, agora, como era fácil usar o Winrar em conjunto com um antivírus fraco e algumas características padrão do Windows XP para induzir uma pessoa distraída a executar um programa potencialmente nocivo.
Selecionamos dois executáveis (inofensivos, no caso) ->botão direito ->Winrar ->Adicionar ao arquivo:
Criar arquivo self-extractor -> Ok:
Depois abrimos nossa criação no Winrar:
Clicamos em Informações:
Opções avançadas SFX ->Ok:
O texto e o título só aparecem usando a opção "mostrar tudo" em "Métodos"
Podemos escolher um ícone para nosso falso instalador, clicando no Procurar referente ao campo "carregar ícone...". Escolhido o ícone, clique em Abrir:
Criar um ícone é muito fácil. Basta usar um editor de imagens, como o IrfanView.
Abrimos a imagem dentro do IrfanView (botãozinho da pasta sendo aberta):
Clicamos no botão de "salvar como" (botão do disquete), escolhemos o formato "ico" e salvar:
Obs.: o IrfanView não converte gifs animados em outros formatos; só imagens estáticas.
Podemos também escolher um logotipo (também só aparece na opção "mostrar tudo" da aba "métodos"). Obs.: Deve ser uma imagem no formato bitmap (.bmp). Se não tiver uma, basta usar o IrfanView de novo para criar uma:
Escolho "ocultar tudo":
Posso escolher uma pasta comumente existente para extrair os arquivos:
Ou mandar ele criar uma com qualquer nome (as permissões do Windows XP eram realmente muito permissivas...):
Após dar Ok, podemos ver como ficaram os comandos (repare que "silent=1" esconde tudo e "setup=..." executa o arquivo especificado). Ok de novo:
Feche o Winrar:
Veja que coisa mais "meiga" ficou o nosso pequeno programa:
Obs.: Considerando que o Windows Explorer, por padrão, esconde as extensões dos arquivos, quem suspeitaria que o ícone de um anjinho poderia representar um programa perigoso? Para descobrir como exibir as extensões dos arquivos no Windows Explorer, clique no link trabalhando-com-arquivos-no-windows para ver o meu tutorial a respeito.
Após dar um duplo clique no nosso pequeno programa, ele executa as operações especificadas anteriormente no arquivo self-extractor (criar uma pasta e executar um arquivo extraído).
Veja a pasta criada:
E o arquivo sendo executado (no caso, um arquivo inofensivo, mas poderia não ser...):
Tudo isso somado a um antivírus negligente produziria um bom estrago...
Para mandar ele executar dois arquivos, poderíamos lançar mão de alguns artifícios, como preencher o nome dos programas a serem executados antes e depois da extração:
Veja como fica o script:
Ou acrescentar ao self-extractor um arquivo .bat, .wsh, .vbs ...
 Veja o script:
Olhem agora o conteúdo do arquivo .bat, que nada mais é do que um documento de texto puro (.txt), renomeado para "teste.bat":

No Windows XP SP3 ou no Windows 7, caso o instalador tivesse interface gráfica, com certeza ele seria barrado pelo controle de contas do usuário (como é o caso dos dois programas no script acima). Já se ele fosse um programa de console (linha de comando)...
Tenho quase certeza que o vírus que me infectou não tinha sido feito com o winrar ou qualquer outro compactador de arquivos. É mais provável que ele tivesse sido feito com algum obscuro programa para se criar instaladores, cujas rotinas de compressão/descompressão ou criptografia de dados fossem desconhecidas ou não reconhecidas pelo antivírus. Ou talvez a versão do antivírus que eu estava usando não escaneasse a descompressão de instaladores, sei lá. Esse exemplo do winrar foi só para mostrar como era fácil criar um arquivo mal-intencionado naqueles primórdios do Windows XP. Considerando que executáveis que rodam através do prompt de comando e arquivos .bat são facilmente executados até pelo Windows 7, então é fácil imaginar o quanto o Windows é assim, digamos, relapso quanto à segurança do usuário.
Mas caso o programa tivesse sido compactado com o winrar, bastaria entrar no Windows Explorer -> clicar com o botão direito do mouse -> abrir com o winrar, para ver quais arquivos estavam dentro dele:

É isso aí, "crianças", fiquem espertas... Todo cuidado é pouco com arquivos de origem duvidosa.

terça-feira, 10 de janeiro de 2012

Perigos e trapalhadas no mundo digital

Há alguns anos atrás, quando a banda larga era ainda um item caro demais na minha cidade, eu comecei a frequentar algumas lan houses para baixar arquivos no meu pendrive. Vocês sabem, né: download vem, download vai, e, conforme a coisa vai ficando habitual, o "gato" acaba ficando mal-acostumado e cada vez mais "corajoso". Foi então que eu comecei a baixar alguns arquivos mais - digamos assim - "perigosos". Certa vez, eu aindei baixando pelo 4shared, algumas versões de alguns conhecidos trojans, para testar algum dia e ver como funcionavam - até hoje nunca consegui fazer nenhum deles funcionar, acho que nunca vou chegar a ser um hacker :-(. Sites de hospedagem de arquivos como o rapishare, o megaupload e o 4shared estão longe de ser uma fonte segura de onde se possa baixar programas, ainda mais se forem programas piratas - aliás, hoje em dia está cada vez mais difícil achar programas piratas que sejam "limpos", sem vírus ou trojans; bons tempos aqueles em que a maioria dos programas piratas era disponibilizada por pessoas apenas revoltadas com o alto preço dos softwares... Mas enfim, um belo dia, eu fiz a temeridade de executar o instalador do turkojan que eu havia baixado do 4shared e instalá-lo no pc da lan house. Dias depois, quando eu estava na lan house de novo, escutei o dono conversando com um conhecido dele e dizendo que havia formatado todos os computadores, pois havia um vírus nas máquinas que exibia caixas de mensagem em uma língua estranha. Na hora, não pensei que ele talvez pudesse estar dando uma indireta pra mim (não sei se ele tinha ou conhecia alguma ferramenta para identificar um possível usuário "travesso" como eu). Talvez ele apenas estivesse comentando sem saber quem tinha feito aquele estrago. Também não tenho certeza se ele conseguiu descobrir. Enfim, esse foi apenas um incidente grave de alguns outros que eu cometi durante esses meus mais de 15 anos de vida digital. Outra "gafe", ou pisão na bola, que eu cometi foi num dia em que eu estava baixando a iso bootável de um conhecido programa para clonagem de partições e HDs. Não sei se as placas de rede da lan house só suportavam 100 kbps (fast ethernet) ou se o link da internet dele tinha como limite apenas esta velocidade (o que não é muita coisa para as necessidades de hoje em dia). O fato é que eu estava fazendo o download a 90kbps e drenando quase toda a banda de conexão disponível. Vários usuários estavam reclamando da lentidão da internet, quando o cara me mandou uma mensagem pelo programa de gerenciamento da lan house, pedindo para que eu pausasse ou cancelasse alguns downloads. Levei um susto com aquilo, pensando se ele podia estar vendo quais downloads eu estava fazendo (downloads "não-permitidos", diga-se de passagem: programas, softwares...). Mas, cara de pau e folgado, ainda voltei algumas vezes nesta mesma lan house (a necessidade de fazer downloads obriga, né, e já que ele não tinha tomado nenhuma atitude mais "drástica" além de uma simples advertência...). A festa só acabou quando o cara vendeu a lan house que, a propósito, mudou de endereço e mudou seu horário de funcionamento também.
Um deslize ainda mais grave eu cometi quando perguntei ao dono de uma lan house se ele podia baixar alguns torrents para mim. Na época, não haviam muitos programas com suporte a bittorrent e, dependendo da velocidade da conexão e do número de usuários compartilhando o mesmo arquivo, o download poderia demorar muito, ou seja, o tempo gasto para ficar sentado esperando o download e o preço das horas gastas seria exorbitante. Para minha surpresa, ele aceitou prontamente, "de boa"; combinamos um precinho camarada, mas certo dia eu meio que no descuido e na pressa, esqueci de perguntar a ele se não tinha problema baixar videos pornôs na máquina dele. Ele também, muito boa gente e prestativo, disse que baixaria todos os torrents que estavam no meu pendrive (no caso, os arquivos .torrent que especificavam os arquivos reais a serem baixados) e que eu não precisava escolher ou dar prioridade a nenhum deles; ele baixaria todos pra mim. Infelizmente, ele também não olhou o "contúdo" dos arquivos que estavam referenciados naqueles torrents e baixou, inocentemente, vários videos pornôs. Depois de baixados, ele passou os arquivos pra mim, mas ainda sem desconfiar o que tinha em sua máquina de uso, digamos assim, "público". Foi só quando eu fui pedir para ele baixar mais alguns torrents pra mim que ele me falou que "alguém" havia baixado material pornográfico, vídeos "indecentes" em sua máquina, que era utilizada e frequentada por crianças, pessoas que não poderiam ver aquele tipo de "coisa" e que ele não baixaria mais nada pra ninguém. Ele ainda disse que não sabia quem tinha feito ou sido o responsável por aqueles downloads, mas nesse dia "a ficha caiu" e depois de outro susto e de sentir o coração acelerar e o ar faltar, por conta do medo de que ele talvez pudesse tomar alguma atitude assim mais "exagerada", eu encerrei finalmente a minha odisséia de downloads em lan houses. E sempre quando eu tinha que passar na rua daquela lan house, eu passava apressado, do outro lado da rua, ou mudava de caminho. Passado algum tempo, nunca mais vi o cara naquela lan house, acho que ele também vendeu, passou o ponto, sei lá.
O último incidente que tenho a lhes contar, "crianças", foi quando eu baixei um filme famoso, baseado no livro "Breve romance de sonho" , de Arthur Schinitzler, em outro computador, digamos "público". Quem já viu esse filme, sabe que ele contém cenas de nudez e sexo explícito, ainda que ele não seja um filme pornô. Ora, esse tipo de conteúdo é impróprio para ficar em um computador usado por pessoas das mais diferentes idades, crenças, ou orientação moral. O fato é que eu devia ter baixado, sim, esse filme, mas devia tê-lo apagado - depois de devidamente copiá-lo no meu pendrive. Um esquecimento e um apavoramento imperdoável que poderia também ter tido consequencias mais graves, dependendo da atitude e da intolerância do dono do estabelecimento (caso ele descobrisse, é claro). Felizmente - ou infelizmente, nesse caso, eu nada soube depois sobre o que havia acontecido com o computador no qual baixei esse filme. Sei que os computadores de lá, pela natureza do estabelecimento, são de tempos em tempos formatados. Não sei também se alguém "esbarrou" com o arquivo do filme, de modo que fica aí o aviso e a lição para os mais incautos como eu: você pode sim sujar a panela para fazer o seu omelete com ovo estragado (afinal, cada um se alimenta com o que quer), só não se esqueça de lavar a panela depois - pra ninguém saber o que você comeu. Ou também: você pode usar o banheiro alheio e cagar na privada dos outros, mas não se esqueça de dar descarga - pra ninguém ver a merda que você fez.
Juízo, hein, "criançada"!