Criptografia e Segurança
nas Comunicações
Curiosidade, não faz parte da avaliação
nas Comunicações
Ferramentas de protecção
AV e AS
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 1/27
F-Secure (1)
• O IST subscreveu licença de campus, sendo carregado a
partir de https://delta.ist.utl.pt/software/software.php
• Versões:
i. Gestão centralizada, para computadores fixos: actualização feita por servidor do CIIST (mais rápida).
por servidor do CIIST (mais rápida). ii. Gestão individual, para portáteis.
• Passos na instalação:
1. “Dowload” em Administrator 2. Lançar o programa
F-Secure (2)
1. Passos de instalação listados numa nova janela.
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 3/27
2. Executar “restart” do computador
F-Secure (3)
• Configuração e comandos do
AV efectuados com a tecla
direita do rato por cima do ícon
mostrado na barra de tarefas.
F-Secure (4)
3. Depois de instalado o
F-Secure, verificar
(“scan”) ficheiros
pelo comando
Verificar discos rígidos
Verificar discos rígidos
Nota: operação demora,
tipicamente, meia hora.
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 5/27
PHREL
• PHREL-Per Host RatE Limiter, disponível para Linux em
http://www.digitalgenesis.com/software/phrel/
• Ferramenta de monitarização de tráfego para controlo de
– ataques por inundação de interrogações DNS – Tentativas de login SSH
– Tentativas de login SSH
• Quando o tráfego de um nó ultrapassar um determinado
nível, o PHREL insere no iptables uma regra de interdição
• A regra de interdição removida pela ferramenta quando o
tráfego descer.
SpamAssassin – introdução
• Filtro de SPAM, implementado em 2001 em Perl por
Justin Mason.
• Disponível em http://spamassassin.apache.org/, foi
incorporado no servidor WWW Apache.
• Daemon lançado por
/sbin/service spamassassin start,
ou automaticamente no “boot por
• Daemon lançado por ,
ou automaticamente no “boot por
/sbin/chkconfig –-level 5 spamassassin on
• Objectivos
– Muitas regras dinâmicas, combinadas para gerar um nível para cada mensagem de Email (tipicamente, valor superior a 5 indica elevada probabilidade de se tratar Spam).
– Facilmente integrável com os principais agentes de transferência de correio MTA-Mail Transfer Agent (sendmail, postfix).
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 7/27
SpamAssassin – arquitectura (1)
• Arquitectura cliente-servidor de processamento do Email
Caixas de correio (INBOX, probable-spam) MUA
Nível utilizador
POP/IMAP
MTA (sendmail)
Internet
MDA
(procmail) SpamAssassin (INBOX, probable-spam) MUA
(pine)
Nível transmissão
SMTP
SpamAssassin – arquitectura (2)
A. Nível utilizador
– MUA-”Mail User Agent”
• Objectivos: prepara o Email para o utilizador e executa comandos de gestão da caixa de correio (listagem, eliminação,…)
• Exemplos de ferramentas : pine ou baseado em WWW (Thunderbird)
– MDA-”Mail Delivery Agent”: agente acessório – MDA-”Mail Delivery Agent”: agente acessório
• Objectivos: Processar Email vindo do MTA e inseri-lo em caixas de correio (tipicamente em ~/mail ou /var/spool/mail/username).
• Exemplos de ferramentas : procmail
B. Nível transmissão
– MTA-”Mail Transfer Agent”
• Objectivos: responsável por movimentar Email de um servidor para outro.
• Exemplos de ferramentas: sendmail, postfix, Qmail
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 9/27
SpamAssassin – testes (1)
• Testes executados sobre as mensagens de correio
– Campos do cabeçalho (“header”) – palavras no assunto (“subject”), validade de datas.
– Conteúdo da mensagem.
– Endereços indicados automaticamente/manualmente em listas brancas (”whitelist”) e negras (”blacklist”).
– Acesso a bases de dados identificadoras de Spam (DCC, Pyzor, Razor2)
– Listas bloqueadas de endereços IP
• Novas regras adquiridas por indicação do utilizador dos
falsos negativos e falsos positivos.
SpamAssassin – testes (2)
• Grande bateria de testes, sendo a cada resultado atribuída
uma pontuação:
– Número de série inserido no cabeçalho X_MESSAGE_INFO para o Spammer identificar destinatário em caso de problemas na entrega
4.2 X_MESSAGE_INFO Bulk email fingerprint (X-Message-Info) found 4.2 X_MESSAGE_INFO Bulk email fingerprint (X-Message-Info) found
– Mistificação (“hoax”)
3.4 NIGERIAN_BODY1 Message body looks like a Nigerian spam message
– MUA forjado
3.0 FORGED_MUA_OUTLOOK Forged mail pretending to be from MS Outlook
– Caracteres inválidos no assunto
2.9 SUBJ_ILLEGAL_CHARS Subject contains too many raw illegal characters
– Palavras chave suspeitas
2.7 DRUGS_MANYKINDS Refers to at least four kinds of drugs 2.1 WHY_WAIT BODY: What are you waiting for
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 11/27
SpamAssassin – testes (3)
– Retransmissão (“relay”) em nó suspeito
2.5 RCVD_IN_XBL RBL: Received via a relay in Spamhaus XBL
* [59.152.146.138 listed in sbl-xbl.spamhaus.org]
– Identificadores inválidos
1.4 INVALID_MSGID Message-Id is not valid, according to RFC 3022
– Datas incoerentes
1.1 DATE_IN_PAST_96_XX Date: is 96 hours or more before Received: date 0.6 INVALID_TZ_GMT Invalid date in header (wrong GMT/UTC timezone)
– Mensagem chegada de nó com IP improvável – Mensagem chegada de nó com IP improvável
0.8 HELO_DYNAMIC_IPADDR2 Relay HELO'd using suspicious hostname (IP addr 2)
– Obscurecimento (“obfuscation”) por inserção de HTML
0.7 HTML_OBFUSCATE_10_20 BODY: Message is 10% to 20% HTML obfuscation
– Caracteres suspeitos
0.4 PLING_PLING Subject has lots of exclamation marks
– Identificação suspeita de utilizadores
0.5 FROM_ENDS_IN_NUMS From: ends in numbers
– Prioridade suspeita
0.3 X_MSMAIL_PRIORITY_HIGH Sent with 'X-Msmail-Priority' set to high
SpamAssassin – testes (4)
• Pontuação dos testes indica probabilidade de Spam
X-Spam-Level: ************
X-Spam-Status: Yes, score=12.5 required=5.0 tests=DNS_FROM_RFC_ABUSE, DNS_FROM_RFC_POST, DNS_FROM_RFC_WHOIS,
FORGED_RCVD_HELO,
MIME_SUSPECT_NAME, PLING_QUERY, REMOVE_PAGE,
URIBL_JP_SURBL, URIBL_OB_SURBL, URIBL_SBL, URIBL_SC_SURBL, URIBL_WS_SURBL autolearn=spam version=3.0.4
• Eficiência do SpamAssassin pode melhorar por
alimentação de casos de Spam. Para tal, indicar a
mensagem pelo comando sa-learn com opções
– --spam sobre falsos negativos – --ham sobre falsos positivos
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 13/27
SpamAssassin – testes (5)
• Experiência pessoal
– Em finais de Agosto 2007 recolhi os resultados do filtro SpamAssassin no meu endereço Email durante 4 dias, numa média diária de 116 mensagens SPAM.
• Spam de nível superior a 15 : média diária 37 (desvio padrão 13.0)
• Spam de nível entre 5 e 15 : média diária 60 (desvio padrão 6.8)
• Spam de nível entre 5 e 15 : média diária 60 (desvio padrão 6.8)
• Falsos negativos : média diária 20 (desvio padrão 5.3)
• Falsos positivos : 0
– Eficiência na filtragem: 83%
SpamAssassin – contramedidas
• À medida que vão sendo instalados filtros, os spammers
tentam contornar as protecções.
A detecção de palavras chave (VIAGRA,…) pode ser
combatida
– Inserindo um caracter numa posição aleatória das palavras chave. – Inserindo um caracter numa posição aleatória das palavras chave. – Inserindo no meio dessas palavras comentários HTML, que são
absorvidos pelos navegadores (“browsers”) de email. Ex:
We w<!--church-->ant to help you get lo<!--jesus-->wer HOUSE pa<!--dads trailer-->yments
lido pelo navegador de email como
We want to help you get lower HOUSE payments
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 15/27
sendmail (1)
A. Historia
– Derivado do delivermail, implementado em 1979 por Eric Allman na University of California at Berkeley e distribuído no BSD 4.0. – Acessível em http://www.sendmail.org (versão 8.14.1 de
2007/04/03) incorporado nas distribuições do Linux.
B. Configuração
B. Configuração
Ficheiro de configuração /etc/mail/sendmail.cf, gerado pelo macroprocessador m4 a partir do script /etc/mail/sendmail.mc
– Formato indigesto (Nota: ninguém é um verdadeiro administrador de Linux enquanto não editar com sucesso um ficheiro! )
– Recomenda-se guardar cópia antes de ser alterado o script – Várias macros definidas em /usr/share/sendmail-cf – Geração pelo comando
m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf
sendmail (2)
C. Comandos do script sendmail.mc
– Comentários entre # e fim de linha, por omissão copiados para sendmail.cf
– Macros
• include : importa definições de ficheiro
ex: include(`/usr/share/sendmail-cf/m4/cf.m4')
• define : define macro
define(‘SMART_HOST','smtp.ist.utl.pt') # servidor de Email
• undefine : torna macro indeterminada
• dnl : para comentários até fim de linha
• divert : gere fluxos de saída
divert(-1)
# deixa de enviar comentários para sendmail.cf divert(0)
– MASQUERADE_AS : mascara máquinas locais MASQUERADE_AS(charlie)
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 17/27
sendmail (3)
– OSTYPE : identifica sistema operativo
OSTYPE('linux')carrega /usr/share/sendmail-cf/ostype/linux.m4 – VERSIONID : versão a ser construída
VERSIONID(`linux setup for Red Hat Linux')
– DOMAIN : ficheiros de domínios, usado na configuração de grande número de nós
grande número de nós
DOMAIN(generic)carrega macro definida em /usr/share/sendmail-cf/domain/generic.m4 – MAILER : especifica agentes de distribuição
• local: implementa transportes locais para caixas de correio e para programas locais
• smtp: implementa protocolos smtp, esmtp, smtp8 e relay
• procmail
sendmail (4)
– FEATURE : serviços de sendmail, indicados na forma FEATURE(nome) ou FEATURE(nome,parm)
FEATURE(redirect)permite redirecção para endereço determinado em
~/.forward
FEATURE(use_cw_file)aceita operar mensagens de outros nós.
FEATURE(‘access_db','hash –T<TMPF> /etc/mail/access.db') FEATURE(‘access_db','hash –T<TMPF> /etc/mail/access.db')
identifica ficheiro que contém os nome dos nós, para os quais o presente nó aceita operar mensagens. O ficheiro deve ter entradas na forma endereçoIP oper (oper pode ser REJECT-rejeitar, RELAY- reenviar, OK-aceita, DISCARD-elimina).
FEATURE('ALIAS_FILE','/etc/aliases')identifica ficheiro
Nome.Apelido: user@comp.ist.utl.pt # nome alternativo Caixa: :include:ficheiro # listas de endereços
Nota: depois de alterado o ficheiro /etc/aliases, a base de dados tem de ser reconstruída através do comando /usr/bin/newaliases Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 19/27
sendmail (5)
Exemplo:sendmail recusa receber mail vindo de endereços
de má reputação
1. Inserir no ficheiro /etc/sendmail.mc
#
FEATURE(`dnsbl', `list.dsbl.org')dnl FEATURE(`dnsbl', `bl.spamcop.net')dnl FEATURE(`dnsbl', `bl.spamcop.net')dnl FEATURE(`dnsbl', `sbl.spamhaus.org')dnl
FEATURE(`dnsbl', `blackholes.mail-abuse.org')dnl FEATURE(`dnsbl', `relays.mail-abuse.org')dnl
#
2. Executar comandos
cd /etc/mail make all
/sbin/service sendmail restart
sendmail (6)
Exemplo retirado de http://www.faqs.org/docs/linux_network/ (entrada sendmail) divert(-1)
#
# Sample configuration file for vstout - smtp only
# divert(0)
VERSIONID(`@(#)sendmail.mc 8.7 (Linux) 3/5/96') OSTYPE(`linux')
OSTYPE(`linux')
#
# Include support for the local and smtp mail transport protocols. MAILER('local')
MAILER('smtp')
#
FEATURE(rbl) FEATURE(access_db)
# end
Nota: se considera o script ser difícil de entender, veja primeiro o conteúdo do ficheiro de configuração gerado /etc/mail/sendmail.cf ;-)
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 21/27
sendmail (7)
D. Caixas de correio
– Várias caixas de correio são criadas para depositar mensagens
• /var/spool/USERNAME: mensagens recebidas. Frequentemente é criada uma ligação simbólica ~/mail/INBOX
• ~/mail/sent-mail: cópia de mensagens enviadas
– Criação de caixas de correio
• Pine : menu ListFolders, comando A
• Pine : menu ListFolders, comando A
• Unix: pelo comando cp /dev/null ~/mail/FolderName
– Possuem um cabeçalho na forma
From MAILER-DAEMON Thu Aug 24 17:40:59 2006 Date: 24 Aug 2006 17:40:59 +0100
From: Mail System Internal Data <MAILER-DAEMON@mega.ist.utl.pt> Subject: DON'T DELETE THIS MESSAGE -- FOLDER INTERNAL DATA Message-ID: <1156437659@mega.ist.utl.pt>
X-IMAP: 1005231421 0000000078 Status: RO
This text is part of the internal format of your mail folder, and is not a real message. It is created automatically by the mail system software. If deleted, important folder data will be lost, and it will be re-created
sendmail (8)
E. Lançamento do sendmail no Linux FC
– O daemon é lançado, pelo administrador, através do comando /sbin/service sendmail start
Nota: opção status lista os PIDs dos cliente e servidor
asterix.ist.utl.pt> /sbin/service sendmail status sendmail (pid 2157 2148) is running...
sendmail (pid 2157 2148) is running... asterix.ist.utl.pt>
– Para que o lançamento de um “deamon” seja efectuado automaticamente pelo Linux no arranque, o administrador deve executar o comando
/sbin/chkconfig --level 5 sendmail on
• O daemon corre como root para
– obter ligação ao porto 25
– conseguir privilégio de escrita nas caixas de correio dos utilizadores
• Alternativas Postfix, Qmail são melhores!
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 23/27
procmail (1)
A. Objectivos
– Ferramenta de processamento de Emails em Unix, nomeadamente ordenação e filtragem,
– Acessível em http://www.procmail.org (versão 3.22 de 2001/09/10) incorporado nas distribuições do Linux.
B. Configuração
B. Configuração
Ficheiro de configuração instalado em ~/.procmailrc
# Ferrolho para assegurar haver apenas 1 execução de spamassassin :0fw: spamassassin.lock
* < 256000
| spamc Dimensão máxima da mensagem a fiscalizar Cliente spamassassin
procmail (2)
#
# despacho de Email registados como Spam para pastas apropriadas
#
# mail de nível 15, ou superior, inserido numa pasta especial :0:
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\*
* ^X-Spam-Level: \*\*\*\*\*\*\*\*\*\*\*\*\*\*\* mail/almost-certainly-spam
# mail designado por Spam inserido numa pasta especial :0:
* ^X-Spam-Status: Yes mail/probably-spam
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 25/27
procmail (3)
#
# em alternativa, devolver à origem mensagem de erro
#
:0 H
* ^X-Spam-Status:.*Yes {
Comando aplicado ao cabeçalho (“header”) Expressão regular pesquisada
{
EXITCODE=67 :0:
/dev/null }
• Nas versões antigas do Linux o utilizador tinha de reenviar o
Email para o procmail, através do .forward
Indica ao sendmail inexistência do destinatário Mbox para onde Email é realmente enviado
procmail (4)
• Nas versões antigas do Linux o utilizador tinha de reenviar o
Email do MTA sendmail para o MDA procmail, através
da seguinte linha no ~/.forward
“|/usr/bin/procmail“ – Os “são necessários
– Obrigatório indicar caminho absoluto até ao programa procmail – Obrigatório indicar caminho absoluto até ao programa procmail
(lembrar que o sendmail corre como root, não como utilizador)
• Nas versões mais actuais do Linux, tal não é necessário porque
o procmail é declarado no servidor sendmail como MDA
através da directiva
MAILER(procmail)
Prof RG Crespo Criptografia e Segurança nas Comunicações Protecção AV e AS : 27/27