Bloqueando o Skype usando snort e iptables

5

Estou tentando bloquear o Skype usando snort e iptables. Eu li muitos documentos e bloqueei a porta, palavras-chave e padrões que o Skype usa. Mas ainda não está bloqueado.

Minha pergunta é: se o Skype usa a porta HTTP 80 ou a porta https 443, como o computador reconhece esse pacote como um pacote do Skype e não como um pacote da Web? Isso pode me ajudar a bloquear o Skype.

Vin
fonte
Uma técnica de inspeção de pacotes "inteligente" deve ser usada - ela deve inspecionar os dados reais para decidir o que fazer. Como apontado, não há como separar o Skype do tráfego HTTP / HTTPS normal sem aprofundá-lo - limitando a capacidade de filtrar com base em outras características do terminal. (Inspeção HTTPS geralmente é problemática sem quebrar a segurança implícita através de um proxy ;-) Em qualquer caso, provavelmente melhor em superusuários.
pst
Você está escrevendo um programa para bloquear o Skype ou o quê?
Shawn Mclean
Não, não estou escrevendo um programa. Eu estou apenas usando o Snort e o iptables e tentando bloquear o skype com algumas regras do p2p.
Vin
@pst: certo. Então, o que o computador vê quando vê os cabeçalhos das portas 80/443 para encaminhar o pacote para o aplicativo Skype?
Vin

Respostas:

1

Aqui está um link para o artigo que apresenta uma regra do Snort para bloquear o Skype: http://www.md3v.com/block-skype-with-snort

A assinatura que estamos procurando aqui é "17 03 01 00", que é a resposta dada a um cliente que faz o login.
Se você está curioso, dê uma olhada nesta página: http://www1.cs.columbia.edu/~salman/skype/

Shadok
fonte
Oi Shadok, eu já tentei fazer tudo isso. Mas ainda não está sendo bloqueado. Mais um ponto é, eu não consigo ver a assinatura 17 03 01 em minhas lixeiras por algum motivo. Na verdade, usei as mesmas regras que você mencionou acima.
Vin
Infelizmente eu não tenho uma instância do Snort nas mãos para testá-las agora, mas posso garantir que nas regras atuais elas estão presentes, veja sid: 5998 e sid: 5999 aqui: snort.org/search
Shadok
1

Em relação a "como o computador reconhece esse pacote como um pacote do Skype e não como um pacote da Web?": O pacote vai para qualquer programa que esteja escutando na porta. Se o Skype decidir usar o TCP / 80 e acidentalmente começar a falar com um servidor da Web, o servidor da Web ficará confuso, gerará um erro (ou se recusará a responder) eo Skype desistirá. Se um cliente da Web decidir se conectar ao Skype, o Skype verá a solicitação e reconhecerá que não é o Skype.

Isso significa que você não pode bloquear o Skype usando apenas as informações de IP / Porta. O bloqueio baseado no conteúdo com regras estáticas pressupõe que sempre haja uma assinatura fixa. Como o Skype é proprietário, o protocolo pode mudar a qualquer momento, tornando as regras antigas inúteis. O Skype é notoriamente bom em evitar filtros. Eu não ficaria surpreso se eles fizessem algo como adicionar uma chave aleatória no início e criptografar o resto do tráfego com a versão proprietária do RC4 do Skype, agora ou no futuro. Isso tornaria impossível distinguir o tráfego do ruído aleatório.

Com o tráfego da porta 443, eles também podem simplesmente executar uma conexão SSL real. Isso tornaria muito difícil distinguir (se feito corretamente) se você não quiser fazer análise de tráfego (como em "quantidade e tempo de tráfego"). Eu não sei se eles estão fazendo isso, mas novamente, o protocolo proprietário pode mudar.

A maneira mais confiável de impedir os usuários de usar o Skype pode ser a verificação dos executáveis ​​nas máquinas e / ou usuários da LART que violam a política ao usá-los.

Além disso, verifique o tráfego em outras portas. 80 e (mais provável "ou") 443 são provavelmente o mínimo que o Skype precisa. Pode ser feliz com algumas portas que você perdeu, mesmo que o 80/443 esteja completamente bloqueado. Verifique se há tráfego UDP!

Jan Schejbal
fonte