Segurança em redes locais II: Protegendo-se contra ARP Cache Poisoning, MITM attacks usando DAI

Na primeira parte deste artigo falamos sobre MAC Spoofing. Entretanto um hacker dentro duma rede local pode ser mais engenhoso, sabendo que ataques de Spoofing dependem muito da não alteração da tabela CAM do comutador. Numa rede que já esteja em funcionamento por algum instante o atacante pode envenenar (Poisoning) a tabela ARP dum host de determinado usuario com o objectivo de alterar a frame de saida quando o mesmo necessitar de enviar uma mensagem:

Na figura acima o atacante C pretende que as mensagens de B a A passem primeiro por ele (Man In The Middle). Para garantir que tal aconteça ele envia um pacote GARP forjado ao usuário B alterando a sua tabela ARP de modo a ter o endereço IP de A (10.1.1.1) associado ao endereço MAC de C, CCCC:CCCC:CCCC.

Em redes Cisco estes ataques podem ser evitados utilizando-se Dynamic ARP Inspection (DAI). O DAI trabalha com o conceito de portas confiáveis (trusted) e não confiáveis (untrusted) nos comutadores. As respostas ARP são apenas admitidas em portas confiáveis. Por default o comutador trata  todas as portas como não confiáveis, sendo necessária a sua configuração. Quando uma determinado frame entra numa porta não confiável o seu conteúdo ira ser comparado com a bind table (tabela de ligações) do serviço DHCP na rede. Se existir uma correspondência com os dados ARP entrantes e o conteúdo da bind table então a frame será aceite, caso contrario será descartada.

Habilita-se o DAI numa ou mais VLAN(s) de interesse e depois por interface:

COMUTADOR(config)>ip arp inspection vlan 10
COMUTADOR(config)>int range fa0/1-2
COMUTADOR(fa0/1-2)>ip arp inspection trust

Segurança em redes locais I: Protegendo-se contra ataques de MAC Address Spoofing usando Sticky Secure MAC Addresses

Esta é a primeira duma serie de artigos envolvendo segurança em redes locais, tao importantes hoje em dia. É importante nao se confundir redes locais com ‘redes pequenas’.

Os ataques de MAC Address Spoofing sao um perigo demasiado obvio para serem deixados assim, sem serem mitigados. Por falar nisso, as instituições serias como bancos sabem bem que o maior perigo vem de dentro, nao de fora. Dificilmente se ouve falar em hacking de bancos tao banalmente como se ouve falar de ataques a hosts normais.

O MAC Address Spoofing baseia-se no conceito de rede local usando comutadores. Se dois determinados hosts A e B pretendam se comunicar, imaginemos com endereços IP 10.1.1.1 e 10.1.1.2 o host comunicante A (com endereço IP 10.1.1.1 e MAC AAAA:AAAA:AAAA) como nao possui na sua tabela interna ARP uma correspondencia do host receptor B (com endereço IP 10.1.1.2) e um determinado endereço MAC envia uma frame ao comutador.

O comutador como tambem nao possui (supondo) envia um broadcast a todas as portas excepto a porta do host A. A porta cujo computador possua o endereço endereço IP 10.1.1.2 responde com uma frame e ao achegar ao comutador o seu endereço MAC de origem é adicionado ao comutador fazendo uma correspondencia de 10.1.1.2 com BBBB:BBBB:BBBB que supomos ser o endereço MAC de B. Esta correspondencia é entao adicionada a tabela CAM do comutador. Fica uma tabela mais ou menos assim:

Interface Endereço MAC

fa0/1         AAAA:AAAA:AAAA
fa0/2        BBBB:BBBB:BBBB
fa0/3        CCCC:CCCC:CCCC

Desta vez o host A envia a comunicação a B diretamente. Quando a frame de A chega ao comutador, o endereço MAC de destino está na frame. O comutador recebe a frame interpreta o endereço MAC de destino, consulta a sua tabela CAM e encontra uma correspondencia para onde deva ser enviada a mensagem que conforme a tabela acima é a porta fa0/2, e a mensagem chega ao seu destino.

O problema é que o atacante C também sabe disto e disto tira proveito fazendo com que o comutador associe o endereço MAC de B a CCCC:CCCC:CCCC e o de A tambem a  CCCC:CCCC:CCCC. A isto chama-se Spoofing:

Na figura acima nota-se as mas intenções do nosso amigo C.Confundir a tabela MAC do comutador de modo a criar a seguinte correspondencia:

Interface Endereço MAC

fa0/3 CCCC:CCCC:CCCC
fa0/3 CCCC:CCCC:CCCC
fa0/3       CCCC:CCCC:CCCC

Esperto, não? Todas as mensagens destinadas por exemplo ao host A (MAC AAAA:AAAA:AAAA, porta fa0/1) sao encaminhadas diretamente a ele C (porta fa0/3).

Como ele faz isso? Faz isso enviando frames forjadas (usando ferramentas do Dug Song por ex) de forma a associar determinada porta a um determinado endereço MAC. Enviando estes frames ele pode forjar de tal forma que um determinado endereço MAC corresponda a uma especifico porta no nosso caso do atacante fa0/3.

Embora seja uma condição temporaria, ja que o host A pode voltar a enviar uma frame a B ou vice-versa e desta forma actualizar a tabela CAM, mesmo assim é uma condição perigosa para a rede.

Protecção

Para proteger-se de ataques deste genero, a melhor forma é usar a segurança de portas e associar a caracterista de aprendizado dinamico limitado conhecido como Sticky Secure MAC Address. Quando habilitado o Sticky um novo endereço MAC aprendido é adicionado a running-configuration impedindo que um atacante possa ‘spoofar’ o endereço MAC previamente aprendido:

COMUTADOR(fa0/1-3)>switchport port-security
COMUTADOR(fa0/1-3)>switchport port-security maximum 1
COMUTADOR(fa0/1-3)>switchport port-security violation protect
COMUTADOR(fa0/1-3)>switchport port-security mac-address sticky

No proximo artigo falaremos sobre ARP cache Poisoning e protecção usando DAI.

Voice over IP (VoIP) e a Segurança

VoIP tornou-se praticamente padrão de telefonia nas corporações e não podia ser para menos. Afinal já não existe qualquer sentido em ter aquelas centrais e pabxs de telefonia que existiam antigamente. O processo de digitalização dos dados integrou voz e dados na mesma linha de transmissão.

So que isto acarreta problemas sérios de segurança nas transmissões. Muitos administradores configuram as centrais telefónicas com valores default. Outros não realizam hardening dos dispositivos finais e da própria rede. Muitos desses IP phones e centrais digitais são configurados via web, alguns deles acessíveis pela Internet por exemplo.

Este documento do David Endler e do Mark Collier faz uma abordagem desta temática. Eles que escreveram um livro sobre VoIP (In)Security.

Usando o SDM com GNS3

O SDM (Security Device Manager) permite realizar varias configuracoes em roteadores Cisco de modo grafico e com apenas alguns cliques. Quanto ao GNS3  trata-se de um emulador de roteadores que usa imagens reais para rodar o IOS a partir do computador.

Esta vídeo aula bem preparada mostra como ligar seu GNS3 ao SDM . Muito bom para quem não possui recursos financeiros para comprar um roteador.

Como prolongar a vida da bateria do seu laptop, celular

Tenho acompanhado com muita curiosidade este cenario: Alguem compra um laptop novo em folha e começa a usa-lo constantemente como é de se esperar. Passados 1 ano la vem ele e diz: ‘A bateria está viciada’.

Mas viciada em quê afinal? E isso nao acontece apenas com laptops com telefones celulares também.

Bom tudo começa com as baterias mais usadas do momento: Baterias de iao de litio. Ok, o seu laptop usa uma dessas e se você nao sabe, saiba agora: Baterias de litio iao nao ‘gostam’ de descargas totais (0 na carga mesmo com perdão da bateria e tudo). Evite fazer isso, em vez disso faça descarregamentos parciais (nada de deixar a bateria a 0).

Isso significa outra coisa. Os carregamentos também nao podem ser totais, ou seja ‘enche-la’ de carga (100%). Ela nao gosta disso também. A razão disso acontecer é que pequenas descargas com subsequentes recargas nao possibilitam uma calibração precisa e necessaria para que exista sincronização entre o medidor de carga (fuel gauge) da bateria com o seu estado actual de carga. Uma forma de resolver esse problema é realizar um descarregamento deliberado e total na bateria depois de 30 recargas e calibrar a bateria.

O que se aconselha é fazer descargas e recargas moderadas. Descargas (gastar toda carga) e recargas (carregar a 100%) criam um alto estresse na bateria e devem de todo modo ser evitadas. O gráfico a seguir mostra que quanto menor a taxa de carga e descarga,maior o ciclo de vida da bateria:


Baterias de iao de litio baseadas em cobalto possuem um tempo de vida util de 2-3 anos quando bem cuidadas. Com o tempo a oxidação provocada causa resistencia interna. As baseadas em manganês mantem a resistencia interna com o aumento da idade mas perdem a capacidade em resultado de decomposições quimicas.

A perda de capacidade da bateria pode ser determinada por 2 variaveis: Temperatura e nivel de carga. Nao adianta usar um laptop dentro duma siderurgia numa sala sem AC e depois reclamar, nao tem qualquer sentido:

Naturalmente ja se pode perceber que uma bateria demora menos em Cartum que em Menongue (RISOS).

Se você ainda nao percebeu o que se quer dizer entao vamos dizer assim: Nao use o seu laptop com a bateria e a corrente de distribição da EDEL (Ou SONEF se você vive no Cazenga) pois ela vai durar apenas entre 1 a 1 ano e meio (são labs stats). É engraçado que tenho dito isto a muita gente e nem acreditam.

Outro coisa que baterias nao entendem bem é o nivel de voltagem (nao vamos andar com UPS na mochila, nê?) Algumas baterias podem apenas receber 4.2V por celulas. Quando esse valor passa desse threshold olha o que acontece: Uma relação de inversa proporcionalidade logo com quem? Logo com o ciclo de vida. Ou seja aumenta o nivel de voltagem acima do valor limite permitido, diminui o ciclo de vida da bateria:

Mas é engraçado que quem se depara com essa situação até ri e gosta. Porque a performance do computador aumenta e de que maneira, por causa do aquecimento da bateria.O aquecimento da bateria provoca uma diminuição da Resistencia Interna da mesma. Quando a bateria volta a ficar fria a RI aumenta e volta tudo ao normal (euee!!!). Quem vive de puxada que se meta a pau.

Fica atento:

Evite descarregar totalmente a bateria.

Calibre a bateria depois de 30 recargas.

Mantenha a bateria num bom ambiente. Um ambiente fresco. Uma mudança para o Polo Norte não seria má ideia. Quem trabalha em siderurgia esqueça laptops.

Nunca use bateria com corrente ligada a tomada. Só não se esqueça de guardar seu trabalho.

Nada de comprar baterias usadas. Ainda que seja baratucha nao mao daquele cidadao que gosta muito meter a mao nas coisas dos outros.

É recomendavel na maioria dos casos manter a bateria a 40% de carga. Nunca a 100%

Fonte: How to prolong lithium-based batteries.

Protegendo o IOS contra ataques de brute-force usando periodo de penalização

Ataques de Brute Force ou força bruta tem como objectivo aceder a um determinado sistema por meio da tentativa de determinar uma combinação de acesso (por exemplo username/password) que seja valida pelo sistema de autenticação. Os atacantes mais experientes geralmente sabe que tecnicas como esta fazem muito ‘barulho’ no sistema alvo, de modo que muitas das vezes o objectivo pode ser portanto nao aceder ao sistema, mas quem sabe ocupar linhas de terminal virtual (vty) dum determinado router.
Depois disso alia-se o facto de que o sistema pode nao aguentar a carga de tanto pedidos de processamento. Então urge necessario evitar ou dirimir isto. Como? Existem varias formas. Uma delas pode ser por meio de ACLs. Mas ainda assim havia o risco do atacante utilizar e ser bem sucedido com tecnicas como IP Spoofing ou o uso de ataques em rede local/hosts confiaveis.

Um administrador pode entao definir periodos de penalização a tentativas mal-sucedidas de acesso ao sistema. Por exemplo, ele pode decidir que dentro de 45 segundos ninguem pode falhar mais de 3 logins consecutivos. Se alguem falhar entao é penalizado e impedido de tentar novamente durante cerca de 1 min e 30s (90 s) .

O administrador pode ainda assim entrar no sistema durante o periodo de penalização (quiet period) criando uma lista de acesso padrao. O exemplo abaixo pretende mostrar isso:

TESOURARIA#conf t
TESOURARIA(config)#username SNNANgola secret SNNANGOLA12345
TESOURARIA(config)#line vty 0 7
TESOURARIA(config-line)#login local
TESOURARIA(config-line)#exit
TESOURARIA(config)#login block-for 90 attempts 3 within 45
TESOURARIA(config)#ip access-list standard PERMITIRACESSOADMIN
TESOURARIA(config-std-nacl)#permit 10.1.1.2
TESOURARIA(config-std-nacl)#exit
TESOURARIA(config)#login quiet-mode access-class PERMITIRACESSOADMIN

Tambem é possivel introduzir uma atraso de x segundos entre sucessivas tentativas falhadas ou nao de logins. Por exemplo introduzamos um atraso de 2 segundos:

TESOURARIA(config)#login delay 2

A qualidade das traduçoes em exames Cisco

Algumas traduções de exames da Cisco deixam muito a desejar. Costumo realizar as provas em Inglês. Entretanto como as vezes não existe possibilidade de realizar em Inglês, a prova aparece apenas em Português. E quando aparece em Português a tradução é muitas vezes de pouca qualidade. Veja por exemplo esta pergunta:

Um técnico está editando e reaplicando a ACL 115 a um roteador. Qual é o resultado de acrescentar o comando 115 tcp de licença da lista de acesso qualquer 172.16.0.0 0.0.255.255 estabelecido à ACL quando ele é reaplicado ao roteador?
Todo o tráfego que vem de 172.16.0.0/16 será permitido.
Todo o tráfego de TCP destinado à 172.16.0.0/16 é permitido.
Todos os pacotes SYN enviados à 172.16.0.0/16 serão permitidos.
As respostas ao tráfego originado da rede 172.16.0.0/16 são permitidas.

Na verdade ele quis dizer assim:

Um técnico está editando e reaplicando a ACL 115 a um roteador. Qual é o resultado de acrescentar o comando access-list 115 permit tcp any 172.16.0.0 0.0.255.255 established

Acho que a Cisco deve usar um tradutor automático para traduzir as perguntas de exame. Tinha tambem essa outra:

Quais são as duas opções de LCP que podem ser configuradas para PPP? (Selecione duas.)
EAP
CHAP
IPCP
CDPCP
empilhador

Um aluno desatento pode não traduzir correctamente a palavra empilhador (Stacker). Em certos livro técnicos, palavras como Stack, pop e push são mantidas assim porque a sua tradução pode criar confusão na altura de ler documentações em Inglês. É que essa opção empilhador eh uma das respostas certas.