quinta-feira, 9 de outubro de 2008

Como Bloquear o ULTRA-SURF


O processo foi realizado com sucesso, estou utilizando um servidor linux Debian instaldo.

1º Passo – Instalar o tcpdump (Sniffer)


apt-get install tcpdump


2º Passo – Instar o Snort (IDS)


apt-get install snort


3º Passo - vamos configurar a regra de identificação do
Ultra-Surf: Edite o arquivo dns.rules


vi /etc/snort/rules/dns.rules


Agora, adiciona a seguinte regra (lembrando que é tudo numa
única linha):


alert udp $HOME_NET any -> !$HOME_NET 53 (msg: "[OSSEC] Consulta de DNS Externo Possivel Ultrasurf"; content:"|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00|"; classtype: policy-violation;threshold:type limit, track by_src, count 1, seconds 5; sid:1000059; rev:2;)


Salve o arquivo, reinicie o serviço:


/etc/init.d/snort stop


/etc/init.d/snort start


4º Passo – Instalar o OSSEC (HIDS)


Acesse o site: http://www.ossec.net/main/downloads, e baixe o arquivo: ossec-hids-1.6.1.tar.gz

ou


wget http://www.ossec.net/files/ossec-hids-1.6.1.tar.gz


Descompacte o arquivo baixado e acesse a pasta onde foi descompactado:


tar xvzf ossec-hids-1.6.1.tar.gz


cd ossec-hids-1.6.1


Agora, execute o instalador do hids:


./install.sh


No caso atual, pretende-se bloquear o Ultra-Surf, então, não vamos configurar os análises dos diversos logs, vamos nos ater apenas aos logs do snort.


Parâmetros da Instalação do OSSEC


Idioma: BR

Tipo de instalação: LOCAL

Envia Email: NÃO

Verificação de Integridade: NÃO

Detecção de rootkits: NÃO

Respostas Automáticas: SIM


Após a conclusão do OSSEC, você receberá a seguinte mensagem:


- Para iniciar o OSSEC HIDS:

/var/ossec/bin/ossec-control start


- Para parar o OSSEC HIDS:

/var/ossec/bin/ossec-control stop


5º Passo – Configurando o OSSEC (HIDS)


Edit o arquivo de configuração do ossec.


vi /var/ossec/etc/ossec.conf


O meu arquivo ficou assim, note que houve algumas modifficações no arquivo original, para adequar as minhas necessidades.


<ossec_config>

<global>
<email_notification>no</email_notification>
</global>

<rules>
<include>rules_config.xml</include>
<include>pam_rules.xml</include>
<include>sshd_rules.xml</include>
<include>telnetd_rules.xml</include>

<include>syslog_rules.xml</include>
<include>arpwatch_rules.xml</include>
<include>symantec-av_rules.xml</include>
<include>symantec-ws_rules.xml</include>
<include>pix_rules.xml</include>
<include>named_rules.xml</include>
<include>smbd_rules.xml</include>
<include>vsftpd_rules.xml</include>
<include>pureftpd_rules.xml</include>
<include>proftpd_rules.xml</include>

<include>ms_ftpd_rules.xml</include>

<include>ftpd_rules.xml</include>

<include>hordeimp_rules.xml</include>
<include>vpopmail_rules.xml</include>
<include>vmpop3d_rules.xml</include>
<include>courier_rules.xml</include>

<include>web_rules.xml</include>

<include>apache_rules.xml</include>
<include>mysql_rules.xml</include>
<include>postgresql_rules.xml</include>
<include>ids_rules.xml</include>
<include>squid_rules.xml</include>
<include>firewall_rules.xml</include>
<include>cisco-ios_rules.xml</include>
<include>netscreenfw_rules.xml</include>
<include>sonicwall_rules.xml</include>
<include>postfix_rules.xml</include>
<include>sendmail_rules.xml</include>
<include>imapd_rules.xml</include>
<include>mailscanner_rules.xml</include>
<include>ms-exchange_rules.xml</include>
<include>racoon_rules.xml</include>
<include>vpn_concentrator_rules.xml</include>
<include>spamd_rules.xml</include>
<include>msauth_rules.xml</include>
<include>mcafee_av_rules.xml</include>
<!--<include>policy_rules.xml</include> -->
<include>zeus_rules.xml</include>
<include>solaris_bsm_rules.xml</include>
<include>vmware_rules.xml</include>
<include>ossec_rules.xml</include>
<include>attack_rules.xml</include>
<include>local_rules.xml</include>
</rules>
<global>


<white_list>127.0.0.1</white_list>

<white_list>^localhost.localdomain$</white_list>
<white_list>200.165.132.155</white_list>
<white_list>200.149.55.140</white_list>
</global>

<alerts>
<log_alert_level>1</log_alert_level>
</alerts>

<command>
<name>host-deny</name>
<executable>host-deny.sh</executable>
<expect>srcip</expect>
<timeout_allowed>yes</timeout_allowed>
</command>

<command>
<name>firewall-drop</name>
<executable>firewall-drop.sh</executable>
<expect>srcip</expect>
<timeout_allowed>yes</timeout_allowed>
</command>

<!-- Active Response Config -->
<active-response>
<!-- This response is going to execute the host-deny
- command for every event that fires a rule with- level (severity) >= 6.
- The IP is going to be blocked for 600 seconds.-->
<command>host-deny</command>
<location>local</location>
<level>6</level>
<timeout>60</timeout>
</active-response>

<active-response>
<!-- Firewall Drop response. Block the IP for
- 600 seconds on the firewall (iptables, - ipfilter, etc).-->
<command>firewall-drop</command>

<location>local</location>
<level>6</level>
<timeout>60</timeout>
</active-response>
<!-- Files to monitor (localfiles) -->
<localfile>
<log_format>syslog</log_format><location>/var/log/squid/access.log</location>
</localfile>
<localfile>
<log_format>snort-full</log_format>
<location>/var/log/snort/alert</location>
</localfile>
</ossec_config>


OBS: Eu modifiquei basicamente nas tags COMMAND e ACTIVE-RESPONSE


Agora vamos configurar as regras para o ids: Edite o arquivo:


vi /var/ossec/rules/ids_rules.xml


adicione a seguinte regra:


<rule id="1000059" level="10">

<category>ids</category>
<description>Utilizacao do UltraSurf.</description>
</rule>

Salve o arquivo e vamos editar as regras de punição para os infratores:

vi /var/ossec/active-response/bin/firewall-drop.sh


Localize as duas linhas abaixo:


ARG1="-I INPUT -s ${IP} -j DROP"

ARG2="-I FORWARD -s ${IP} -j DROP"


E substitua por:


ARG1="-I INPUT -s ${IP} -p tcp --dport 443 -j DROP"

ARG2="-I FORWARD -s ${IP} -p tcp --dport 443 -j DROP"


Localize as duas linhas abaixo:


ARG1="-D INPUT -s ${IP} -j DROP"

ARG2="-D FORWARD -s ${IP} -j DROP"


E substitua por:


ARG1="-D INPUT -s ${IP} -p tcp --dport 443 -j DROP"

ARG2="-D FORWARD -s ${IP} -p tcp --dport 443 -j DROP"


Salve o arquivo, e edite o próximo arquivo de punição:


vi /var/ossec/active-response/bin/host-deny.sh


Localize a linha:


echo "ALL:${IP}" >> /etc/hosts.deny


e Substitua por:


echo "http:${IP}" >> /etc/hosts.deny


Localize a linha:


cat /etc/hosts.deny | grep -v "ALL:${IP}$"> /tmp/hosts.deny.$$


e Substitua por:


cat /etc/hosts.deny | grep -v "http:${IP}$"> /tmp/hosts.deny.$$


Salve o arquivo e inicie o OSSEC


/var/ossec/bin/ossec-control start


OBSERVAÇÔES: Se você fez tudo correto, seu snort e seu ossec estarão trabalhando em conjunto agora, o snort detectará o uso do ultra-surf, e o ossec bloqueará da seguinte forma: criará regras no IPTABLES fechando o acesso ao HTTPS da máquina requisitante, o bloqueio durará 60 segundos, mas lembre-se, o bloqueio será somente HTTPS, o http (web) funcionará normalmente se o usuário desligar o ultra-surf, com isso, você assegurará que o tráfego da máquina cliente não parará sua produção na empresa e ainda deixará o usuário
infrator com uma raiva danada do ultra-surf.


Agradecimentos especiais ao site:

http://listas.cipsga.org.br/pipermail/snort-ids/2008-August/001202.html

pela regra do snort para detectar o uso do ultra surf.




Artur Luís
Tecnólogo em Redes de Computadores

14 comentários:

Anônimo disse...

Cara, em que lugar do arquivo eu insiro a regra rule do OsSEC?

Artur Luís disse...

Eu precisaria saber em que parte do tutorial você está, o tutorial tem um sentindo top-down, eu postei um tutorial seguindo a risca o que eu fiz, passo-a-passo, até na hora de editar os arquivos (vi). me diga em que parte do tutorial vc ficou, onde está sua dúvida, REGRA DO OSSEC?? o ossec tem várias regras (em vários arquivos)... existe uma regra (basica) do ossec que se coloca no SNORT e as demais configurações são exclusivament nos arquivos de configurações do OSSEC. estou a disposição para exclarecimento.

Anônimo disse...

amigo criei um abiente de teste, segui cada instrução e o ultra surf continua funcionando.

Bruno Avanso disse...

Na instalação do hids esta dando um erro, estou utilizando o debian 5.0. O que pode esta acontecendo?

5- Instalando o sistema
- Executando o Makefile
./install.sh: line 84: make: command not found

Erro 0x5.
Erro na Compilação. Não foi possível finalizar a instalação.

Artur Luís disse...

Bom, o erro do make é porque o compilador não está instalado em sua distribuição, instale-o para depois poder compilar o pacote.

apt-get install gcc
apt-get install g++
apt-get install make

boa sorte!!

Anônimo disse...

Segui a risca o tutorial, não deu nenhum erro na instalação, porém não bloqueou o UltraSurf. Será o que possa estar errado?

Artur Luís disse...

Relamente,testei para as versões U91 e U94, e não bloqueou, quando fiz o tutorial estava na versão U89, vou analisar as novas versões e postar as correções. Aguardem

Rafael disse...

Ai pessoal segue a lista de IPs usado no U94.
116.228.10.116
118.170.16.37
118.170.64.248
118.170.72.29
118.170.73.189
118.170.74.130
12.153.224.80
12.164.227.33
122.118.155.54
122.121.226.95
122.121.25.26
122.121.31.70
122.126.35.85
123.204.151.22
123.204.152.107
123.204.152.80
123.204.153.144
129.25.26.175
91.192.128.34
91.189.90.244
91.189.90.19
91.143.93.213
91.143.87.107
88.198.124.202
85.25.141.60
85.17.138.4
81.177.31.150
80.83.114.72
74.125.91.113
74.125.91.101
74.125.91.100
74.125.19.48
74.125.19.44
74.125.19.112
72.172.235.12
72.14.207.99
66.218.82.68
66.135.52.17
66.0.115.164
65.49.2.126
65.49.2.114
65.161.114.27
65.161.114.23
65.160.234.93
64.34.52.146
64.34.180.105
64.236.108.247
64.233.161.99
64.233.161.147
64.233.161.104
64.209.141.163
63.245.209.72
63.245.209.31
62.172.239.143
61.64.125.66
61.64.124.211
61.62.183.224
61.233.14.206
61.224.100.89
61.219.223.187
61.217.186.104
61.144.235.3
59.121.209.155
59.115.188.78
59.106.108.86
58.251.63.182
38.144.194.3
222.66.196.213
222.66.18.131
221.231.141.46
220.138.129.90
220.138.129.188
220.138.128.214
220.138.103.126
219.85.5.59
219.85.34.166
219.143.245.186
219.143.224.189
219.142.89.142
219.142.79.192
218.80.229.139
218.75.4.130
218.211.96.126
218.174.1.30
218.169.184.75
218.169.179.252
218.163.175.122
218.163.168.121
216.231.208.62
216.226.191.109
216.134.197.184
216.13.113.51
216.113.191.91
213.215.157.222
213.123.26.22
212.140.245.12
212.103.159.13
211.20.191.97
211.157.28.135
210.71.212.9
210.59.160.110
210.59.144.3
210.21.31.115
210.21.217.69
210.21.10.239
210.171.0.140
209.85.171.115
209.85.171.102
209.51.169.94
209.34.241.68
209.235.103.6
208.43.120.235
208.236.105.4
207.97.249.212
207.41.19.113
207.35.11.17
207.188.24.140
207.105.75.196
206.195.5.99
205.254.143.136
205.188.99.125
205.188.97.96
205.130.212.1
204.65.38.32
204.16.104.198
203.66.181.191
203.27.235.60
203.202.41.117
203.174.79.74
203.127.2.21
203.115.239.38
202.99.22.24
202.239.151.96
202.161.41.239
202.152.180.228
202.106.80.66
199.68.66.200
199.67.185.130
198.93.34.158
195.171.94.97
194.35.219.182
193.88.6.14
193.41.233.200
192.88.209.56
192.86.252.227
192.228.29.9
192.189.112.158
192.175.191.35
192.104.54.50
170.135.216.62
170.135.216.32
168.215.152.65
168.166.73.14
167.21.84.13
167.181.31.85
167.102.245.62
167.102.245.61
165.206.254.144
165.189.61.247
165.12.241.35
165.112.6.76
164.154.226.26
164.106.10.145
162.99.248.247
161.226.4.114
160.129.50.189
160.109.122.224
159.53.64.54
158.96.54.7
158.64.90.9
157.150.195.69
156.80.1.107
156.77.100.128
155.247.80.132
151.151.129.162
149.168.111.6
149.101.24.73
143.236.32.241
140.247.35.75
140.211.11.140
137.187.67.134
137.187.66.224
134.88.3.199
134.141.3.154
131.107.115.156
130.191.143.18
129.8.5.173
129.59.210.101
128.231.86.79
128.173.127.10
128.123.18.17
128.101.65.204
125.231.0.40
125.230.129.190
125.230.128.241
125.230.128.134
123.204.97.125
123.204.222.247
123.204.20.169
123.204.153.174
202.152.186.68
63.245.209.10
64.209.235.176
65.182.181.181
66.210.186.147
209.221.141.69
206.200.251.109
202.162.28.23
170.97.67.125
202.122.33.11
167.21.84.22
64.233.163.103
218.163.3.194
218.172.217.74
65.49.2.118
218.163.171.33
198.239.146.19
218.171.140.226
118.167.104.35
61.64.181.177
218.172.233.123
125.225.97.31
159.226.244.14
122.126.34.126
128.6.76.208
114.47.113.100
193.109.119.30
64.233.163.104
216.33.244.13
125.229.128.81
66.45.71.91
219.85.5.26
219.84.231.121
114.47.65.142
203.73.6.101
216.236.237.6
59.121.4.94
218.163.4.122
220.136.46.179
114.45.60.22
220.136.179.145
220.136.3.152
118.171.4.115
195.134.100.120
62.153.158.211
138.235.42.3
128.120.32.97
65.54.132.253

Unknown disse...

essa lista que o rafael colocou de ip, coloquei mas passou ainda pelo u94
:(
alguem ajuda ae pra blokia essa *&&%¨@#% de programa!
^^

Artur Luís disse...

Amigos, eu ainda não consegui, o que temos que fazer é entender a assinatura que o UltraSurf deixa no SNORT, assim como foi feito para as versões anteriores:
alert udp $HOME_NET any -> !$HOME_NET 53 (msg: "[OSSEC] Consulta de DNS Externo Possivel Ultrasurf"; content:"|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00|"; classtype: policy-violation;threshold:type limit, track by_src, count 1, seconds 5; sid:1000059; rev:2;)

Essa assinatura (eu não sei como pegá-la) se alguém souber algum programa (snifer) que possa capturar a assinatura, eu poderia ir atrás, eu já tentei com o tcpdump mas não consegui sucesso. Vamos analisar juntos, quem sabe conseguiremos atingir nossos objetivos.

Anônimo disse...

Pessoal, eu pensei em fazer isto com o iptables com o L7 ativado, porem caí no mesmo problema dos amigos do SNORT preciso criar um pattern pra aplicar porem não encontrei ainda o modo como podemos escreve-lo. Segue o link para vcs verem como se faz o pattern porem nao diz como conseguir capturar isso do programa. Se alguem tiver alguma luz sobre isso ajuda aí.

Anônimo disse...

http://l7-filter.sourceforge.net/Pattern-HOWTO

Unknown disse...

TamY, aki na empresa ele possuem o BRMA e consegui bloquear o u94, fiz o seguinte.
Acessei o monitor de firewall e filtrei apenas por um micro da rede especifico, rodei o u94 neste micro e comecei a montar a lista de acessos.
Com esta lista de IPs (postado anterirmente) criei uma regra bloqueando os IPs, mas por minha surpresa não funcionou, então acessei o monitor de firewall e constatei que primeiro estava passado pela regra de bloqueio e depois estava passando pela regra de premitido (https), para resolver isso alterei a prioridade das regras isso resolveu..
Não sei se isso ajuda, mas aki este infeliz não rodou mais...

Espero ter ajudado.

Samuel Borges Medeiros disse...

buenas, postei em meu blog uma outra forma de bloquear o ultrasurf(não permitindo o acesso a porta 443) e como segunda opção indiquei seu blog. Pergunto: ainda funciona, sendo o ultrasurf estando na versao 9.98??

Como obter sua chave do produto do Windows (10 ou 11) com o prompt de comando

  Se quiser obter sua chave do produto do Windows, a maneira mais fácil é fazer isso com o prompt de comando do Windows. Primeiro, pressione...