terça-feira, 25 de janeiro de 2011

Barrando o Ultrasurf - política de conscientização

Ok. Todo mundo sabe para que serve o UltraSurf, se não sabe dê uma olhada nesse vídeos:



Muitas pessoas me perguntam como detectar e impedir o uso do ultrasurf na rede, basicamente existem 3 maneiras para realizar esta tarefa, segue abaixo:

- Bloqueie todo acesso a porta 443 e libere só o acesso para os sites permitidos pela empresa
- Use algum IPS como o Suricata
- Política de Conscientização

Neste post vou considerar que você tem uma rede de pequeno porte, não mais do que 50 máquinas e para isso vou utilizar a terceira opção da nossa lista acima. Vamos detectar os servidores do Ultrasurf e depois com a ajuda do comando tcpdump vamos detectar quais máquinas da nossa rede estão usando o ultrasurf.
A rede de servidores do UltraSurf é muito vasta, o número de servidores praticamente cresce a cada dia, por isso não vamos nos preocupar em detectar “todos” os servidos, só o suficiente para que possamos rastrear os usuários da nossa rede que estejam utilizando o ultrasurf.

Detectando os Servidores do Ultrasurf

Realizei este teste em uma máquina virtual, mas você pode realizar no seu desktop ou laptop. No meu cenário de teste usei a máquina virtual para usar o ultrasurf e na máquina hospedeira (que é a máquina onde foi instalado o sistema virtual) utilizei o comando tcpdump para capturar o tráfego da máquina virtual com destino a porta 443, que é a porta que o ultrasurf usa para se conectar a sua rede. Segue abaixo uma pequena lista do que fiz:

1- Baixe aqui o Ultrasurf para a máquina virtual

2- Rode o comando tcpdump na máquina real como mostra abaixo:
                #tcpdump dst port 443 and src host 10.1.4.136 -w ultrasurf-1006
                Port 443: porta que o ultrasurf usa
                Src host 10.1.4.136: ip da máquina virtual
                -w ultrasurf-1006: salva todo o tráfego no arquivo ultrasurf-1006

O comando acima vai salvar no arquivo ultrasurf-1006 todo tráfego vindo do host 10.1.4.136 com destino a porta 443.

3- Execute o UltraSurf e comece a navegar pela Internet


Fazendo alguns filtros no arquivo ultrasurf-1006

Este arquivo não pode ser lido com um simples cat, você precisa usar a opção -r do tcpdump, veja abaixo:


#tcpdump -r ultrasurf-1006
reading from file ultrasurf-1006, link-type EN10MB (Ethernet)
15:29:19.741572 IP 10.1.4.136.45508 > 65.49.2.15.https: S 3413938700:3413938700(0) win 8192
15:29:19.932453 IP 10.1.4.136.45508 > 65.49.2.15.https: . ack 2316726788 win 16660
15:29:19.934076 IP 10.1.4.136.45508 > 65.49.2.15.https: F 0:0(0) ack 1 win 16660
15:29:20.126435 IP 10.1.4.136.45508 > 65.49.2.15.https: . ack 2 win 16660
15:29:22.711555 IP 10.1.4.136.45509 > 65.49.2.15.https: S 1368444892:1368444892(0) win 8192
15:29:22.900488 IP 10.1.4.136.45509 > 65.49.2.15.https: . ack 2326060616 win 16660

Vamos salvar este arquivo em texto puro:

#tcpdump -r ultrasurf-1006 > ultrasurf-1006.txt   

Vamos aplicar nosso filtro para pegarmos apenas os servidores do ultrasurf que são aqueles com o IP.https, nosso filtro deverá também eliminar os IP´s repetidos.
O comando abaixo irar filtrar o nosso arquivo ultrasurf-1006.txt e mostrar apenas os IP´s da rede do ultrasurf:

#cat ultrasurf-1006.txt | awk -F " " '{print $5" "}'
65.49.14.47.https:
65.49.2.15.https:
65.49.2.15.https:
65.49.14.47.https:
65.49.14.47.https:
65.49.2.15.https:
65.49.2.15.https:
65.49.2.15.https:
65.49.2.15.https:
65.49.14.47.https:
65.49.2.15.https:

Essa lista é bem maior, apenas estou colocando alguns servidores para ilustrar. Bom, ainda temos alguns filtros para criar. Agora devemos tirar da nossa lista a string “.https:” e eliminar os IP´s repetidos.  Veja como ficou nosso comando final abaixo:

# cat ultrasurf-1006.txt | awk -F " " '{print $5" "}' | cut -f1,2,3,4 -d. | sort | uniq
65.49.14.47
65.49.2.15

Uma breve explicação do comando acima:

O comando awk vai filtrar o arquivo ultrasurf-1006.txt e mostrar apenas o IP dos servidores, como foi mostrado acima. O cut vai filtrar a saída do awk e tirar a string “.https:” para mostrar apenas os IP´s. O comando sort irá ordenar o resultado e o uniq ira eliminar os IP´s repetidos, com isso teremos o resultado esperado que são os IP´s dos servidores.

Como não executei o Ultrasurf nossa lista de servidores se resume em apenas dois IP´s.

Detectando os usuários que usam o UltraSurf

Agora temos nossa lista de servidores do UltraSurf, vamos executar nosso tcpdump para detectar os usuários da rede que utilizam o programa. Veja o comando abaixo:

#tcpdump -nn dst port 443 and dst host 65.49.14.47 or dst host 65.49.2.15

Quando o ultrasurf tentar se conectar nesses servidores nosso tcpdump ira capturar o IP do usuário. Podemos salvar todo o conteúdo em um arquivo com a opção -w. Agora podemos tentar aplicar nossa Política de Conscientização, que seria identificar os usuários e chamar os mesmos para uma reunião notificando que a utilização deste tipo de programa é inaceitável e fere a política de segurança da empresa e que a continuação do uso desta ferramenta pode acarretar consequências para ele. Segundo nossa legislação isso pode ser demissão por justa causa.

by Osvaldo H Peixoto


Nenhum comentário:

Postar um comentário