9789727228577
9789727228577
9789727228577
DISTRIBUIÇÃO
Lidel – Edições Técnicas, Lda.
Rua D. Estefânia, 183, R/C Dto. – 1049-057 Lisboa
Tel: +351 213 511 448
[email protected]
www.lidel.pt
LIVRARIA
Av. Praia da Vitória, 14 A – 1000-247 Lisboa
Tel: +351 213 511 448
[email protected]
Todos os nossos livros passam por um rigoroso controlo de qualidade, no entanto aconselhamos a consulta periódica
do nosso site (www.fca.pt) para fazer o download de eventuais correções.
Não nos responsabilizamos por desatualizações das hiperligações presentes nesta obra, que foram verificadas à data de
publicação da mesma.
Reservados todos os direitos. Esta publicação não pode ser reproduzida, nem transmitida, no todo ou em parte, por qualquer
processo eletrónico, mecânico, fotocópia, digitalização, gravação, sistema de armazenamento e disponibilização de informação,
sítio Web, blogue ou outros, sem prévia autorização escrita da Editora, exceto o permitido pelo CDADC, em termos de cópia privada
pela AGECOP – Associação para a Gestão da Cópia Privada, através do pagamento das respetivas taxas.
IPRP main.tex 15/6/2018 15: 32 Page vii
Índice
Nota do Autor xxi
1 Introdução 1
1.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1.1 Defesa contra catástrofes físicas . . . . . . . . . . . . . . . . . . . . . . 1
1.1.2 Defesa contra faltas ou falhas previsíveis . . . . . . . . . . . . . . . . . 2
1.1.3 Defesa contra atividades não autorizadas . . . . . . . . . . . . . . . . 4
1.2 Vulnerabilidades, ataques, riscos e defesas . . . . . . . . . . . . . . . . . . . . 6
1.2.1 Complexidade do problema . . . . . . . . . . . . . . . . . . . . . . . . 6
1.2.2 Atitudes realistas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.2.3 Defesa de perímetro vs. defesa em profundidade . . . . . . . . . . . . . 9
1.3 Políticas vs. mecanismos de segurança . . . . . . . . . . . . . . . . . . . . . . 9
1.3.1 Definição de políticas . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.2 Padrão ISO 17799 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.3 Escolha de mecanismos . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.3.4 Segurança pela ocultação (security by obscurity) . . . . . . . . . . . . 16
1.4 Segurança em sistemas distribuídos . . . . . . . . . . . . . . . . . . . . . . . . 17
1.4.1 Riscos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
1.5 Estrutura do livro . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20
2 Criptografia 23
2.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
2.2 Criptografia e criptanálise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
2.3 Evolução da tecnologia de cifra . . . . . . . . . . . . . . . . . . . . . . . . . . 25
2.4 Tipos de cifra . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.4.1 Cifras monoalfabéticas . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.4.2 Cifras polialfabéticas . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
Índice
Índice
Índice
6 Firewalls 177
6.1 Introdução . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177
6.2 Arquitetura de uma firewall . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.2.1 Estrutura básica . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179
6.2.2 Firewalls pessoais . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180
6.2.3 Componentes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181
6.2.4 DMZ (zona desmilitarizada) . . . . . . . . . . . . . . . . . . . . . . . . 181
6.2.5 Barreiras múltiplas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182
6.2.6 Localização de serviços públicos . . . . . . . . . . . . . . . . . . . . . . 183
6.2.7 Tradução de endereços (NAT) . . . . . . . . . . . . . . . . . . . . . . . 184
6.2.7.1 IP masquerading . . . . . . . . . . . . . . . . . . . . . . . . . 184
6.2.7.2 Port forwarding . . . . . . . . . . . . . . . . . . . . . . . . . 185
6.2.8 Encapsulamento (tunneling) . . . . . . . . . . . . . . . . . . . . . . . . 185
6.3 Modelo de intervenção . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 186
6.3.1 Filtro de datagramas (packet filter) . . . . . . . . . . . . . . . . . . . . 186
6.3.1.1 Exemplos de filtragem . . . . . . . . . . . . . . . . . . . . . . 186
6.3.1.2 Limitações . . . . . . . . . . . . . . . . . . . . . . . . . . . . 188
6.3.1.3 Aspetos operacionais . . . . . . . . . . . . . . . . . . . . . . 189
6.3.2 Filtro de circuitos (circuit gateway) . . . . . . . . . . . . . . . . . . . . 190
6.3.3 Filtro aplicacional (application gateway) . . . . . . . . . . . . . . . . . 193
6.3.3.1 Controlo de acesso de utentes . . . . . . . . . . . . . . . . . . 194
6.3.3.2 Análise e alteração de conteúdos . . . . . . . . . . . . . . . . 194
6.3.3.3 Registo pormenorizado . . . . . . . . . . . . . . . . . . . . . 195
6.3.3.4 Representação . . . . . . . . . . . . . . . . . . . . . . . . . . 195
6.4 Serviços oferecidos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
6.4.1 Autorização . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
6.4.2 Redirecionamento . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 196
6.4.3 Controlo de operações e conteúdos . . . . . . . . . . . . . . . . . . . . 197
Índice
Índice
Índice
Nota do Autor
Atualmente, muitas pessoas possuem computadores pessoais ou redes domésticas ligados
de forma intermitente ou permanente à Internet. Pequenas e médias empresas investem
igualmente na ligação das suas redes à Internet, tanto para fornecerem uma interação mais
rica e atual com os seus clientes como para dinamizarem o seu processo criativo ou de
negócio. Em ambos os casos, os utentes e administradores das máquinas ou redes ligadas à
Internet pouco sabem objetivamente acerca dos riscos de segurança a que estão expostos.
Este livro alerta para os problemas de segurança que podem advir na ligação de uma máquina
ou rede local à Internet e explica de que forma os problemas podem ser minimizados ou
evitados. Ajuda também os gestores das máquinas ou redes locais a saberem identificar os
seus problemas de segurança e a perceberem bem o âmbito e o alcance das políticas de
proteção que podem implantar e dos mecanismos de segurança que existem para esse efeito.
O conteúdo deste livro não é um catálogo de problemas e soluções – fundamentalmente, alerta
para o tipo de vulnerabilidades que tipicamente existem e são exploradas em ataques; como
podem ser detetadas as vulnerabilidades ou a sua exploração; como pode ser minimizada a
exploração de vulnerabilidades existentes e como se pode tomar medidas ativas e eficazes
de proteção quando se interage com ou através da Internet, que é um meio inseguro por
natureza.
Finalmente, muitos dos mecanismos de segurança usados hoje em dia recorrem a técnicas
criptográficas, que não são normalmente conhecidas pela grande maioria dos utilizadores da
Internet. Nesta obra faz-se uma introdução alargada, mas acessível, às técnicas criptográficas
mais usadas e, muito em particular, às políticas atuais de gestão de chaves assimétricas e
certificados de chaves públicas, que cada vez mais são usadas, mas que muitas vezes são
desconhecidas ou mal compreendidas.
Esta publicação enquadra-se numa área científica que se pode designar genericamente como
Segurança em Redes. Assim, e tendo em conta os conhecimentos subjacentes a esta área espe-
cífica do saber, ela destina-se fundamentalmente a duas audiências-alvo: em primeiro lugar,
aos utentes ou administradores de redes locais domésticas ou de redes de PME (Pequenas e
Médias Empresas). Em segundo lugar, aos alunos de cadeiras de graduação – licenciatura,
mestrado ou doutoramento – ou de cursos de pós-graduação na área da Segurança em Redes.
Pressupõe-se que o leitor esteja familiarizado com a pilha de protocolos OSI (Open Systems
Interconnection) [120] e com a sua instanciação parcial na pilha de protocolos TCP/IP.
Assume-se ainda que o leitor esteja familiarizado com as funcionalidades básicas dos equipa-
mentos de interligação de redes (hubs, switches, gateways, routers, etc.). Consequentemente,
não é feita qualquer introdução aos mecanismos-base da comunicação de dados em redes IP,
o mais usado hoje em dia e o padrão da Internet. No entanto, certos aspetos relacionados
com o funcionamento da Internet e das redes locais, como é o caso da resolução de nomes
DNS e da resolução local de mapeamentos entre endereços IP e endereços MAC, serão des-
critos de forma sumária para melhor preparar o leitor para a apresentação das questões de
segurança que lhes são inerentes.
Sobre o Autor
Contactos:
E-mail: [email protected]
URL: www.ieeta.pt/~avz
wiki.ieeta.pt/wiki/index.php/Andre_Zuquete
Introdução
1
1.1 Introdução
No âmbito da segurança de sistemas computacionais, podem-se considerar três grandes áreas
de atividade, todas relevantes e com as suas especificidades: defesa contra catástrofes, defesa
contra faltas ou falhas previsíveis e defesa contra atividades não autorizadas. Essas três
grandes áreas serão seguidamente introduzidas de forma sumária.
A defesa contra catástrofes físicas visa principalmente conseguir que um sistema computa-
cional, ou o serviço que esse sistema presta, consiga sobreviver a catástrofes onde existam
consequências a nível físico. A definição exata do que é uma catástrofe desse tipo não é fácil,
mas podem-se considerar as seguintes como exemplos comuns:
Todas estas catástrofes são potenciais causas de dano físico irreparável de equipamentos
informáticos e, mais relevante ainda, potenciais causas de perda irreparável de informação
armazenada. Imaginemos, por exemplo, a quantidade de informação que se perdeu com a
destruição do World Trade Center em Nova Iorque a 11 de setembro de 2001.
A defesa contra catástrofes físicas segue normalmente uma estratégia de sobrevivência usan-
do redundância de equipamentos ou informação. Para que a sobrevivência seja assegurada
pode-se usar hardware com redundância (por exemplo, blocos de discos magnéticos mon-
tados em RAID – Redundant Array of Independent Disks) ou equipamentos redundantes
com informação replicada (por exemplo, dois sistemas iguais e com a mesma informação
em locais diferentes e suficientemente distantes). Esta última forma de redundância poderá
permitir que o sistema afetado continue a prestar o serviço esperado com uma perturbação
que será determinada apenas pelo tempo que levarem a entrar em funcionamento efetivo os
sistemas alternativos não afetados.
A forma mais elementar de sobrevivência de informação consiste na realização periódica de
cópias de salvaguarda (cópias de backup). Se estas cópias forem guardadas suficientemente
longe do local da catástrofe, então poderão ser usadas para repor parte ou a totalidade
da informação afetada pela catástrofe. Esta é a forma habitual como as pessoas protegem
a informação que consideram relevante nos computadores pessoais ou organizacionais que
usam. No entanto, os sistemas de salvaguarda temporizados, ou seja, que só atuam em de-
terminados instantes temporais bem definidos, não conseguem manter cópias rigorosamente
iguais dos dados do sistema sujeito a catástrofes, mas cópias consideradas suficientemente
próximas para minimizar de forma substancial o impacto da catástrofe.
Para além disso, a estratégia de sobrevivência deverá minimizar de forma realista, isto é,
tendo em conta relações custo/benefício, a possibilidade de ocorrência de catástrofes ou
de dano causado pelas mesmas. Assim, infraestruturas computacionais críticas podem ser
concentradas em zonas antissísmicas ou abrigadas em abrigos antissísmicos, colocadas em
locais elevados para minimizar a possibilidade de ocorrência de inundações, protegidas con-
venientemente da queda de raios, etc. No entanto, tal nem sempre é fácil ou possível dentro
das limitações operacionais e de custos da organização que gere o sistema de informação a
proteger.
A defesa contra faltas ou falhas previsíveis visa sobretudo minimizar o impacto de problemas
que ocorrem com uma frequência maior, mas cujo impacto global é normalmente menor. A
definição exata do que são faltas ou falhas previsíveis também não é fácil, mas podem-se
considerar as seguintes como exemplos comuns:
Nesta lista está um conjunto de eventos que são expectáveis no funcionamento diário de um
sistema computacional, e para os quais existem inúmeras soluções mais ou menos complexas
que permitem tolerá-los até um certo grau.
As falhas no fornecimento de energia elétrica podem ser toleradas com sistemas alterna-
tivos funcionando com baterias ou com geradores a combustível e as falhas nas fontes de
alimentação podem ser resolvidas com fontes redundantes.
O bloqueio de aplicações ou sistemas operativos não é normalmente passível de ser tolerado
com redundância sem recorrer a conjuntos de máquinas (clusters), obrigando habitualmente
Introdução 1
um protocolo de encaminhamento de datagramas que usa uma política denominada “de me-
lhor esforço” (best effort): não garante a entrega de datagramas, pode entregar datagramas
duplicados e pode mesmo truncar datagramas entregues. Assim, a maior parte das aplica-
ções que precisam de trocar dados de forma fidedigna têm de usar formas mais robustas de
comunicação que garantam a entrega correta dos dados transmitidos. Esse é o papel do pro-
tocolo de transporte TCP (Transport Control Protocol) [207], que fornece circuitos virtuais
entre emissores e recetores e que tolera perdas, duplicações e truncaturas de datagramas IP
através do descarte de datagramas inúteis e da retransmissão dos perdidos.
Nos casos anteriores, vimos um conjunto de técnicas defensivas contra problemas causados
por acontecimentos fortuitos que são, geralmente, fruto do acaso. Esses acontecimentos for-
tuitos são previsíveis, muito embora não seja previsível o instante em que ocorrem nem,
muitas vezes, a gravidade com que ocorrem. No caso da defesa contra atividades não au-
torizadas, estamos a falar de um problema completamente diferente, ou seja, da defesa de
sistemas computacionais face a iniciativas tomadas por indivíduos contra o funcionamento
normal dos primeiros. Neste caso, o desastre não é simplesmente fruto de circunstâncias
que podem ocorrer com uma dada probabilidade, mas sim fruto de atividades deliberadas
que visam a corrupção ou subversão de sistemas computacionais. É sobre esta vertente da
segurança, mais complexa e exigente, que este livro versará.
As atividades não autorizadas podem ter origem em dois universos populacionais disjuntos:
nos sujeitos que pertencem à organização detentora do sistema computacional que se quer
proteger e nos sujeitos que a ela não pertencem. Os primeiros são sempre os mais difíceis
de contrariar, uma vez que possuem habitualmente privilégios acrescidos, em relação aos
segundos, que podem usar para iniciar atividades não autorizadas. Mas esse cenário, muito
embora realista e bastante importante, não é atualmente a principal fonte de preocupação no
combate a atividades não autorizadas. Com efeito, a rapidez com que se aderiu aos sistemas
informáticos e à rede mundial Internet, tanto a nível empresarial como a nível doméstico,
levou a que um grande número de computadores e redes pouco protegidas tenham ficado
acessíveis e à mercê de atacantes espalhados por todo o mundo e muitas vezes gozando de
um elevado grau de anonimato. O que tentaremos neste livro é mostrar de que modo os
sistemas computacionais podem ser comprometidos por atacantes exteriores e como se pode
efetuar a sua proteção e a proteção da informação que circula nas redes que os une.
As atividades ilícitas podem-se encaixar em cinco tipos-base:
Introdução 1
Assim, regra geral, não se deve facilitar na aplicação da segurança mesmo que se use uma
política de segurança pela ocultação. Por exemplo, o protocolo de interação entre termi-
nais Multibanco e a SIBS (Sociedade Interbancária de Serviços) não precisa de ser tornado
público, em primeiro lugar, porque tal não é necessário e, em segundo, para evitar que pos-
sam ser estudados de forma alargada ataques ao mesmo; contudo, deverá ser desenhado de
forma a poder suportar ataques caso seja divulgado publicamente. Ou seja, a segurança do
protocolo não deverá depender em nada do seu secretismo mas fundamentalmente da apli-
cação cuidada de políticas e mecanismos de segurança robustos – o facto de o protocolo ser
reservado a quem dele precisa apenas reforça a sua segurança.
1.4.1 Riscos
Os riscos inerentes aos sistemas distribuídos são, fundamentalmente, os riscos relativos aos
computadores e às redes que constituem o sistema. Assim, em relação aos computadores,
temos os seguintes riscos:
Introdução 1
difícil ao sujeito personificado alegar mais tarde a sua inocência em ações efetuadas
pelo impostor em seu nome;
Introdução 1
Não é propósito do Autor fornecer uma visão completa de todos os problemas de segurança
que se podem colocar a uma rede local quando a mesma é ligada à Internet – tal seria
uma tarefa incomensurável e infinita. Pelo contrário, procura-se dar uma visão abrangente
dos tipos de problemas mais comuns ou graves, das razões para o seu aparecimento e das
soluções que existem para os minimizar ou evitar. Assim, não são focados problemas especí-
ficos de protocolos aplicacionais ou mesmo de aplicações concretas, mas antes problemas e
soluções generalistas para um sistema distribuído. Os temas focados enquadram-se no que é
normalmente designado por segurança em redes (network security). Mas, mesmo nesta área,
restringe-se a análise a problemas e soluções para redes locais ligadas à Internet, excluindo,
por exemplo, aspetos de gestão de segurança de protocolos tão relevantes para a gestão de
redes como SNMP [37], RIP [110], OSPF[181], etc., que normalmente não são usados em
tais ambientes.
A estrutura do livro é concebida para facilitar a apreensão dos conceitos expostos. No Capí-
tulo 2 são explicados conceitos de criptografia e indicadas as principais técnicas criptográficas
usadas atualmente. A criptografia, por si só, não resolve todos os problemas de segurança,
mas é indispensável numa grande maioria de cenários operacionais. Logo, a sua compreensão
é importante para entender muitas das soluções (ou problemas) de segurança explicadas ao
longo do livro.
No seguimento do Capítulo 2, os conceitos subjacentes à gestão de chaves de cifra assimé-
tricas e certificação de chaves públicas são abordados no Capítulo 3. Atualmente, as chaves
assimétricas são muito usadas para efeito de autenticação de entidades em interações remo-
tas via Internet, mas a sua gestão correta não é normalmente fácil de entender, pelo que se
justifica uma explicação mais pormenorizada do que está em causa nessa gestão e na forma
como a mesma é atualmente efetuada. Neste capítulo descreve-se, entre outras matérias, a
utilização de chaves assimétricas através do Cartão de Cidadão para a autenticação do seu
titular e para a produção de assinaturas digitais pelo seu titular.
No Capítulo 4 são descritas algumas vulnerabilidades de sistemas operativos ou de serviços
instalados em máquinas ligadas a uma rede local ou de maior escala. Os aspetos abordados
são, fundamentalmente, fragilidades relativas a problemas de desenho, de realização ou de
administração de sistemas operativos e de serviços.
No Capítulo 5 são descritas vulnerabilidades de redes de máquinas, tanto locais como de
grande escala. Os aspetos abordados são sobretudo a nível das fragilidades dos protocolos
de comunicação e das infraestruturas globais de suporte, como é o caso do serviço de nomes
DNS [177].
No Capítulo 6 são explicados os objetivos das firewalls e a forma como estas podem ser usadas
para melhorar significativamente a segurança das redes locais ou máquinas pessoais ligadas
à Internet. As firewalls são, atualmente, elementos indispensáveis na ligação de máquinas
pessoais e redes privadas a redes alheias potencialmente perigosas, nomeadamente à Internet.
Contudo, conceber, implantar e manter uma firewall é uma tarefa complexa, que exige bons
conhecimentos a nível dos protocolos de comunicação e das vulnerabilidades existentes nos
diversos sistemas relativamente à implantação desses mesmos protocolos.