Não deixe de conferir as postagens antigas
nas sessões ao lado!!! --->


terça-feira, 3 de junho de 2014

Gbplugin apronta novamente?

Antes de começar vocês lembram do post Problema após atualização do Windows no dia 10/04/13? Foi um incidente com patch da Microsoft para Windows 7 32bits, um dos causadores deste foi devido a alguma incompatibilidade com o famoso plugin Gbplugin utilizado para acesso a maiorias dos websites de bancos brasileiros (por isso que praticamente só maquinas no Brasil foram afetadas)...

Bom, essa semana fiquei sabendo de um incidente envolvendo estações e notebooks Windows XP de diversos fabricantes, onde as mesmas travavam "aparentemente" logo após finalização da execução do POST da BIOS, ou seja, não aparecia nem o splash-screen.

Pessoal tentou scandisk (chkdsk), me senti um pouco velho agora kkkkk, bom..., tentaram chkdsk, fixmbr, fixboot, antivirus e nada, a máquina não inicializava nem em modo de segurança...

Após este cenário pareceu claro que era a concretização do boato que vi na Internet (começo deste ano) sobre lançamento em massa de malwares específicos para Windows XP após termino de seu suporte pela Microsoft neste ano. Tendo em vista que ainda há varias empresas com este SO em seus ambientes, como profissional da área de segurança da informação é evidente que a primeira recomendação seria a de troca de sistema operacional para um versão com suporte pelo fabricante. Até podemos pensar que poderia ser um bom momento para fazer este upgrade, mas sabemos que não é tão simples assim, no mundo corporativos precisamos vencer varias barreiras e quem trabalha na area de TI sabe como que é...

Nas maquinas afetadas que analisei, as mesmas paravam após carregamento do arquivo:

%SystemRoot%\System32\drivers\ntfs.sys

Primeira solução foi substituir arquivo ntfs.sys... Fiz e não deu certo, logo pensei, será que não pode ser um dos "prometidos" malwares que está corrompendo o "ntfs.sys", ou seja, será que ele não está ofuscado em outro arquivo anterior ao carregamento do "ntfs.sys"? Ou seja, por mais que eu troque o arquivo para uma versão correta o mesmo pode estar sendo substituído a cada boot por uma versão corrompida...  

Próximo passo foi ativar o log de boot do Windows em uma máquina que não foi afetada e percebi que após carregamento do "ntfs.sys" ele carregava um tal de "gbpkm.sys". Aí pensei será que o Windows não pode estar travando ao carregar este arquivo? Usei um liveCD para bootar uma das maquinas afetadas e procurar por este arquivo, quando vejo a pasta me deparo com o tal do "gbpkm.sys" lá, de cara percebo que ele tem ≅ 2,5GB... oloko!!! Logo abaixo dele havia um chamado "gbpkm.sys.off" na hora pensei que só podia em ser um malware, pois comparei o tamanho do "gbpkm.sys.off" da máquina afetada com o "gbpkm.sys" da máquina boa e vi que os dois tinham exatamente o mesmo tamanho em bytes, mas só me recordo do valor em KB que era 45.

Para solução do incidente foi renomeado o "gbpkm.sys" para "old_gbpkm.sys" e renomeado o "gbpkm.sys.off" para "gbpkm.sys" e reiniciado a máquina. Pronto, incidente resolvido! A máquina inicializou normalmente, como se nada tivesse acontecido...

Mas ainda me veio em mente sobre qual era a finalidade do "gbpkm.sys" para o sistema operacional (pois devido ao comportamento parecia claro se tratar de um possível malware), pesquisei na internet e percebi que este arquivo pertence ao plugin Gbplugin. Não teve como não pensar... Mas você de novo?

Bom, deve ser por isso que encontramos várias pessoas na Internet reclamando deste plugin...

NOTA: Uma boa ideia é apagar o arquivo "old_gbpkm.sys" (arquivo com 2,5GB).

sábado, 31 de maio de 2014

XSS War Game

Fiquei sabendo de um site bem bacana para prática de XSS, pelo que eu pude homologar me pareceu bem bacana. Segue abaixo:

https://xss-game.appspot.com

Enjoy!

quinta-feira, 10 de abril de 2014

Vulnerabilidade no OpenSSL (CVE-2014-0160)

Uma vulnerabilidade no OpenSSL foi publicada essa semana e vem abalando o mundo da segurança da informação pela sua criticidade e facilidade de exploração. Muita informação confidencial foi vazada por meio dessa falha, onde podemos citar credenciais de acesso a websites, webmails, certificados privados de webservers, emails, etc...

Quer saber se teu website HTTPS está vulnerável? Use o site abaixo:


Bom, o jeito é por a mão na massa, fazer update do OpenSSL para versão corrigida, trocar alguns certificados (revogar e instalar um novo) e credenciais envolvidas... :)

Mais informações:

quarta-feira, 26 de março de 2014

Analise de Malware – Parte2

Prólogo

Estarei apresentando uma série de artigos voltados para o estudo básico de malware, o meu objetivo não é esgotar o assunto e sim colocar em discussão o que fazer para combater e até mesmo evitar estas pragas virtuais e acredito que a melhor forma de se combater qualquer mal é estudando e debatendo sobre o mesmo, por isso deixo em aberto os comentários. E quero deixar claro que também não sou nenhum especialista, estou em processo de aprendizagem e podemos estar sujeitos a erros.

Na parte2 estaremos estudando:
+ Técnicas de análise de malware;
+ Programas Packeado;
+ Portable Executable File Format.

Técnicas de Análise de Malware

Vamos agora verificar os modos de análise de malware, isso não quer dizer que usarei todas as técnicas na série de artigos propostos, não é esse o objetivo, estarei focando em algumas técnicas, aquelas que me ajudam no meu cotidiano, as outras técnicas fica por conta de cada um que pode achar necessário usar em seu estudo de caso em particular.

Analise estática básica: Este é um método que gosto de usar, acho de primordial importância, nesta técnica podemos encontrar muitas informações do malware e a partir dessas informações escolher as ferramentas que usaremos na etapa seguinte, o objetivo é checar o arquivo/programa suspeito e verificar o seu conteúdo, nesta primeira etapa quase sempre, já é possível definir se o arquivo/programa apresenta alguma ameaça.

Analise estática avançada: Consiste na engenharia reversa do arquivo/programa suspeito, checar o seu conteúdo, em assembly, verificar a ordem de execução e descobrir o que ele faz, nesta análise é possível já saber qual é o comportamento que terá quando for executado.

Analise Dinâmica Básica: Esta técnica é a mais divertida, e o meu foco, é onde rodamos o malware e observamos o seu comportamento no sistema operacional, essa observação é realizada por programas auxiliares que checarão parte individuais do sistema colhendo e gerando logs de tudo que acontece, quando terminado a analise, será possível saber todas as alterações realizadas pelo arquivo/programa suspeito.

Analise Dinâmica Avançada: Essa técnica é preciso debugar o código malicioso, para que se possa examinar detalhes de seu interior, com o objetivo de extrair informações detalhadas de seu comportamento e alterações no sistema operacional e na rede local. Essa técnica é usada quando não se consegue obter informações suficientes nas técnicas anteriores.

Programas “Packeado”

O motivo do autor do malware, ofuscar o código malicioso e/ou packear é na verdade para dificultar sua detecção e análise.

Programas Packeado: quando o programa packeado roda, um pequeno subconjunto de programas é descompactado e é executado. Esse método é dificilmente detectado na análise estática.

Figura 1 - O arquivo da esquerda é o arquivo executável original, já do lado direito já podemos verificar "Wrapper Programs", onde está o malware “pakeado” neste programa.
Imagem Ref. “Pratical Malware Analysis – Michael Sikorski e Andrew Honig” pag. 13.

Portable Executable File Format

O formato PE é usado no MS Windows, como arquivo executável, objetct code e DLL. A estrutura do PE contém informações necessárias para o MS Windows carregar e gerenciar o núcleo executável, quase todos os executáveis para MS Windows tem o formato do PE, salvo alguns formatos antigos que raramente conterá um malware, ou talvez sim!
O PE inicia no cabeçalho que inclui informações sobre o código, tipo de aplicação, DLL requeridas e espaço em disco necessário. As informações d cabeçalho do PE é de grande importância para o analista de malware.

Os programadores para não precisar reimplementar uma determinada função já existe em outro programa, cria-se então o import Link, a biblioteca pode ser linkada estaticamente, pela runtime ou de forma dinâmica. Conhecer como o código da biblioteca esta linkada é crucial para entender como as bibliotecas do HEAD PE estão linkadas e assim é possível saber as dependências do malware, em um efeito em escada, é possível saber quais partes do Sistema Operacional é ativado, como por exemplo, interface de rede, alteração de registro e etc.


Por: Edilson Feitoza

Quem sou eu:
Graduado em Redes de Computadores e especialista em Gestão de Projetos em TI.
Atualmente trabalha como Administrador de Redes em uma empresa no ramo de papéis e cadernos e professor universitário nos cursos de Sistema de informação e Analise e Desenvolvimento de Software.

segunda-feira, 17 de março de 2014

Analise de Malware – Parte1

Introdução
Estarei apresentando uma série de artigos voltados para o estudo básico de malware, o meu objetivo não é esgotar o assunto e sim colocar em discussão o que fazer para combater e até mesmo evitar estas pragas virtuais e acredito que a melhor forma de se combater qualquer mal é estudando e debatendo sobre o mesmo, por isso deixo em aberto os comentários. E quero deixar claro que também não sou nenhum especialista, estou em processo de aprendizagem e podemos esta sujeitos a erros.

Motivação
A minha motivação de estudar esse assunto e posteriormente escrever, é devido a grande ocorrência dessas pragas que por muitas vezes consegue burlar até mesmo o antivírus e outras vacinas e ferramentas que deveriam barrar esses vermes, causando desesperos em usuários despreparados e por muitas vezes vieram até mim pedindo ajuda.

Referência:
Todo o estudo desenvolvido, tem como base o livro “Pratical Malware Analysis – Michael Sikorski e Andrew Honig” pode ser encontrado neste link: http://www.amazon.com/Practical-Malware-Analysis-Dissecting-Malicious/dp/1593272901
Essa primeira parte do artigo está voltada fundamentação de alguns conceitos importantes para compreender todo o desenvolvimento dos artigos sequenciais.

Na parte1 estaremos estudando:
+ O que é malware;
+ Tipos de malware;
+ Detectando o malware na rede;

O que é malware?
Todo software que tem como objetivo causar algum dano, roubo, perda ou lentidão do sistema ou da rede de dados de uma empresa, órgão público, usuário comum ou qualquer um outro, pode ser considerado um “malware”, como podemos observar, não importa muito a sua forma de agir, porque pode ser um vírus, trojan horse, worms, root kits, scareware spyware. A forma ou técnica de analise depende apenas de seu objetivo.

Tipos de malware
Quando e estudo sobre analise de malware, é preciso e necessário, em um determinado momento, separa-los por características comuns para facilitar no momento de escolher o laboratório assim como as ferramentas usadas para cada tipo de malware, segue abaixo uma pequena categoria para nos ajudar a entender os tipos/características existentes, alguns já ossos velhos conhecidos:
Backdoor: Se instala e permite que o atacante tenha acesso para rodar programas no sistema local;
Botnet: Muito semelhante ao Backdoor, permite o atacante ter acesso a máquina local, podendo redirecionar comando em um alvo comum a outro Botnets;
Downloader: Esse é o mais comum entre usuário desavisados, esse código malicioso quando baixado e executado, ele baixa outros programas maliciosos que não precisa necessariamente da autorização do usuário para se instalarem e infectarem o sistema;
Information-Stealing Malware: O objetivo é roubar senhas de e-mail, banco, autenticação de rede, rede social, usando técnicas de sniffers, keyloggers e outros.
Launcher: Objetivo é carregar outros programas maliciosos para a memória, faz de forma não comum mesclando o uso de técnicas stealth para garantir o maior acesso ao sistema;
RootKit: O grande objetivo dele é esconder outros códigos maliciosos, com gatilhos que permitem apenas que o antivírus, por exemplo, apenas cheque os arquivos limpos e ocultando os maliciosos;
Scareware: O objetivo desse é forjar uma infecção ou um outro dano qualquer e dessa forma coagir a pessoa a comprar o software para se livrar da praga;
Spam-Sending: Usa o PC do usuário como um distribuidor de spam;
Worm ou vírus: programa malicioso que pode se reproduzir e infectar várias partes do sistema podendo até mesmo causar danos sérios;
De uma forma geral, os malwares podem pertencer a mais de uma categoria (ou ter mais de uma característica), podem ser classificados de acordo com seu comportamento/ação.

Detectando ação de malware na rede
Para se detectar a ação de malware em uma rede de dados, será preciso desenvolver uma base de assinaturas, que pode ser de 2 formas:

Assinaturas baseado em Host: Também conhecido como “indicador”, é usado pra detectar ações maliciosas em computadores. Os indicadores frequentemente identifica arquivos criados ou modificados por malware ou por mudanças realizadas pelo próprio sistema. Enquanto o antivírus olha o interior dos programas e arquivos em busca de uma assinatura maliciosa, o indicador observa apenas o comportamento do sistema o incomodo dessa técnica é que se tem mito falso positivo, já que o indicador não vai conseguir diferenciar a ação do sistema com a do malware;
Assinaturas baseado em Rede: Essa técnica tem como objetivo de monitorar o trafego de rede, e dessa forma checar detectar comportamento estranhos. Esse técnica ela é muito mais eficiente e oferece uma maior taxa de detecção e pouco falso positivo.

Por: Edilson Feitoza

Quem sou eu:
Graduado em Redes de Computadores e especialista em Gestão de Projetos em TI.
Atualmente trabalha como Administrador de Redes em uma empresa no ramo de papéis e cadernos e professor universitário nos cursos de Sistema de informação e Analise e Desenvolvimento de Software.

terça-feira, 11 de março de 2014

Você sabe como seu PC navega na Internet?

Muitas pessoas já me perguntaram sobre como funciona ou "qual é a magica?" do processo de acesso a um website, abaixo explicarei detalhadamente como seu computador faz para requisitar e receber uma pagina da Internet (através do uso de um sniffer de rede), mas antes segue um overview sobre alguns conceitos técnicos (caso queira pular os conceitos técnicos clique aqui!!!):

Endereço MAC (Media Access Control Address)-> Também conhecido como endereço físico, ele pertence a camada 2 (modelo OSI) e é composto por 6 conjuntos de 2 dígitos hexadecimais, ex: 52:54:00:12:35:02. Esse endereço é gravado na memoria ROM da interface de rede e o sistema operacional lê esse valor e o utiliza. Os primeiros 3 conjuntos identificam o fabricante e os 3 demais identificam a interface. O MAC é um endereço único, ou seja, não deveria existir dois endereços MAC iguais, mas sabemos que existem alguns casos onde o MAC é alterado, como por exemplo, num ataque do tipo MAC spoofing ou porque você simplesmente preferiu altera-lo (já peguei um caso que haviam duas interfaces do mesmo fabricante com MAC iguais e tive de alterar).

Endereço IP (Internet Protocol Address)-> Também conhecido como endereço lógico, ele está associado a camada 3 (modelo OSI) e no IPv4 é composto por 4 octetos, ou seja, tem 32bits. Em uma rede TCP/IP tem a função de identificar um ativo na rede e encaminhamento dos dados.

ARP (Address Resolution Protocol)-> Protocolo com a função de descobrir um endereço físico baseado num endereço logico, ou seja, descobrir o endereço MAC da interface de rede do IP que será destinado o pacote. Note que o nome do comando que interage com o ARP no sistema operacional é o justamente o nome do protocolo ("arp") em Windows ou unix-like.

TCP (Transmission Control Protocol)-> Protocolo pertencente a camada 4 (modelo OSI), é orientado a conexão, garante a entrega dos pacotes de forma ordenada, faz verificação de erros, etc.

UDP (User Datagram Protocol)-> Protocolo sem orientação a conexão (não usa o three-way handshake), não garante a entrega, ordem ou proteção contra duplicação, sendo responsabilidade da aplicação que usa o UDP fazer estes tratamentos. Para o leitor não achar este protocolo ruim, um bom exemplo de sua utilidade seria em uma transmissão de áudio (dados em tempo real), pois caso o pacote se perca no meio do caminho é melhor continuar reproduzindo o áudio do que tentar recuperar o pacote (por isso que geralmente bom ou ruim é relativo). E como o TCP, ele pertence a camada 4 do modelo OSI.

Three-way handshake-> O protocolo TCP usa o three-way handshake para realizar um processo de conexão entre um cliente (IP e porta de origem) e um servidor (IP e porta de destino).

DNS (Domain Name System)-> Quando o tipo do registro DNS for do tipo "A", sua função é descobrir o endereço IP a partir de um nome (ou seja, um domínio ou subdomínio, ex: www.debian.org). Sem o DNS lembrar-se dos endereços dos websites seria muito mais difícil, pois por exemplo, você precisaria digitar no navegador http://140.211.15.34 ao invés de http://www.debian.org, precisaria decorar um novo IP caso fosse alterado o IP deste website, não conseguiria utilizar o recurso de virtual hosts baseado em URLs de um servidor WEB (ex: apache) etc, ou seja, DNS facilita em muito a nossa vida.

Bom, chega de teoria e vamos analisar algumas informações coletadas em nível de rede...

No ambiente montado para este artigo foi utilizado wireshark para captura dos pacotes enviados/recebidos e uma maquina virtual com as seguintes informações:
IP Fixo: 10.0.2.15/24 com MAC 08:00:27:02:E9:C0
Default GW: 10.0.2.2 com MAC 52:54:00:12:35:02
DNS Server: 208.67.222.222 (OpenDNS)

Abaixo segue os pacotes enviados e recebidos pela maquina virtual (VM) quando solicitou via browser (mais conhecido como navegador) o acesso ao website www.debian.org:

Fig. 1 - Clique na imagem para maximiza-la.

Abaixo segue descrição por pacote, baseado na Fig. 1 acima:

Pacote 1-> Como o website encontra-se hospedado na Internet é necessário que a VM envie as requisições direcionadas a Internet para seu default gateway. Como essa é a primeira vez que a VM irá se comunicar com o gateway ela enviou um pacote do tipo "ARP Request" com origem na camada 2 08:00:27:02:E9:C0 e origem na camada 3 10.0.2.15 e destino na camada 2 FF:FF:FF:FF:FF:FF (Broadcast) e destino na camada 3 10.0.2.2 (veja as 2 origens e os 2 destinos na Fig.2 abaixo), perguntando para a rede interna quem tem o endereço IP 10.0.2.2 (Default GW), ou seja, todos os ativos presentes nessa rede (10.0.2.0/24) receberam esse pacote pelo fato do mesmo ser do tipo broadcast.
Fig. 2 - Mais detalhes do pacote 1.

Pacote 2-> Somente o ativo de rede que detem o IP 10.0.2.2 respondeu para o endereço MAC da VM (através de um "ARP Reply") qual é o endereço MAC da interface configurada com o IP 10.0.2.2. Nesse momento a VM coloca o IP e MAC do Default GW em seu cache de tabela ARP e a mesma já pode enviar as requisições de acesso para a Internet, pois já conhece o MAC do gateway. Nesse caso o pacote tem como origem na camada 2 52:54:00:12:35:02 e na camada 3 10.0.2.2 e destino na camada 2 08:00:27:02:E9:C0 e na camada 3 10.0.2.15 (veja Fig.3 abaixo), o que faz do mesmo um pacote do tipo unicast.
Fig. 3 - Mais detalhes do pacote 2.

Pacote 3-> Como a VM não acessou esse website ainda ela não conhece o endereço IP do mesmo (ou seja, não está em seu cache DNS local), sendo assim ela envia um pacote do tipo "DNS query" para o endereço do DNS Sever 208.67.222.222 perguntando qual é o endereço IP (registro do tipo A) do website www.debian.org. Na Fig. 4 abaixo fica claro como que um pacote é encaminhado (roteado) para a Internet pelo gateway, como podemos observar, a origem na camada 2 e 3 representa a VM, e o pacote é analisado pelo Default GW porque o destino informado na camada 2 é o endereço MAC da interface de rede do Default GW e o mesmo é roteado para a Internet porque o destino na camada 3 é o IP do DNS Server da OpenDNS (esse é um dos motivos de IP ter Internet no nome e o gateway identificar que o pacote deve ser roteado e não tratado localmente, pois para ser tratado localmente o IP de destino deveria ser 10.0.2.2).
Fig. 4 - Mais detalhes do pacote 3.

Pacote 4-> O DNS Server 208.67.222.222 responde a solicitação feita pela VM com um "DNS response" informando que os endereços IP para o nome www.debian.org são: 140.211.15.34 e 128.31.0.51 (a resposta teve 2 IPs devido a utilização de round-robin DNS para o registro www.debian.org, suas vantagens básicas seriam o balanceamento de carga e a alta disponibilidade). 

Pacote 5-> A VM então envia um pacote SYN com destino ao IP 140.211.15.34 e porta 80 TCP para iniciar o three-way handshake.

Pacote 6-> O webserver em execução no IP 140.211.15.34 e porta 80 TCP responde com um SYN+ACK para continuar o processo do three-way handshake.

Pacote 7-> Completando o three-way handshake (processo de conexão) a VM envia um pacote ACK com destino ao IP 140.211.15.34 e porta 80 TCP. A partir deste momento a VM e o webserver em execução no IP 140.211.15.34 podem trocar informações.

Pacote 8-> Em seguida a VM envia um pacote contendo a solicitação (GET / HTTP/1.1) feita pelo browser para o IP 140.211.15.34 na porta 80 TCP, ou seja, finalmente faz o pedido de visualização do conteúdo do diretório raiz (informado por exemplo, pelo parâmetro DocumentRoot do webserver Apache) do website.

Pacote 9 em diante-> É apresentado no browser a pagina central (geralmente o arquivo padrão index.html, mas nesse caso foi index.en.html, pois na solicitação enviada não continha nome de arquivo, quando isso acontece o webserver mostra o conteúdo do arquivo padrão presente no diretório, informado por exemplo, pelo parâmetro DirectoryIndex do Apache) do website www.debian.org com suas respectivas informações, imagens, links para outros setores do website, etc.

Enjoy!...

NOTA: Um leitor atento provavelmente percebeu que este artigo apenas descreveu um exemplo prático do uso e da relação entre IP e MAC numa rede TCP/IP, do protocolo ARP, serviço DNS, roteamento e o three-way handshake.

Para maiores detalhes veja os links abaixo:

quinta-feira, 6 de março de 2014

Descobrindo o fabricante da sua interface de rede pelo MAC

Você pode consultar qual o fabricante (ou empresa subsidiária) da sua interface de rede informando os 3 primeiros conjuntos (sem os ":" ou com os "-") do endereço MAC da mesma no seguinte website:

http://standards.ieee.org/develop/regauth/oui/public.html

Segue abaixo um exemplo de uma consulta onde podemos ver que o fabricante é a Dell:



Enjoy!...
 
BlogBlogs.Com.Br