a part atualizada da parte atualizada3 da apostila de segurança
Autor: ORGANIZAÇÃO E PROGRAMAÇÃO "N" | Publicado: 2012-08-17T15:30:00-07:00



Ferramentas de Segurança:

Controle de acesso

Esta seção engloba quaisquer
dispositivos de controle de acesso à rede, sistemas e até mesmo físicos.
Podemos citar:

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Controle de acesso físico: Uso de smart cards,
senhas e chaves eletrônicas;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Controles de acesso biométricos a sistemas: fingerprint,
íris, etc.

CONTROLES
DE ACESSO A REDES

O sistema de Network Access Control (NAC) ou CONTROLE DE ACESSO A REDE
protege as informações, permitindo o acesso somente dos usuários que dela
necessitam. Permite às empresas criar políticas de segurança abrangentes para
verificar qualquer computador antes de acessar a rede – mesmo aqueles que não
são propriedade da empresa – para ver se estão em total conformidade. O NAC
assegura que os computadores, laptops, incluindo os remotos, estão executando
uma solução antivírus específicos e têm seus firewalls ativados.

Conformidade com as políticas de segurança

Os
     benefícios possuem um leque abrangente de aplicações de segurança
     pré-definidas e avaliações patches de conformidade.
Impede
     que computadores não autorizados acessem a rede.
Isola
     qualquer computador que não corresponde à sua política até que seja
     corrigido.
Simplifica
     o controle do cumprimento e auditoria com relatórios poderosos, e dados
     históricos em tempo real. 
Detecte
     e corrija vulnerabilidades de endpoint gerenciados


Proteção de dados sensíveis

Garante
     o acesso à informação, servidores e aplicações para aqueles que precisam,
     reforçando as políticas para os usuários ou grupos específicos.
Ajude
     a evitar perda de dados, bloqueando aplicativos indesejados e controlando
     os dispositivos removíveis.


FUNÇÕES DE
CONTROLES DE ACESSO A REDES:

Restrições
a usuários: 

Espaço
em disco: restringir o limite máximo de disco utilizado pelo usuário pode
evitar descontrole no uso de espaço de armazenamento.

Estações
restritas: controlar em quais estações um usuário pode conectar e em quais
não. Facilita a setorização e organização no acesso.

Também se aplica a definir um acesso
restrito a um servidor da rede.

Restrição
de tempo: limitar o tempo máximo de conexão e os horários/dias permitidos
para acesso a uma rede. 

Racionaliza a utilização dos recursos
compartilhados. Desconexão por limite de tempo. Ajuda a contornar o problema de
usuários que se esquecem de desconectar.



Permissões
de usuários e grupos de usuários

Mecanismo geral para controle de
acesso a recursos e serviços, como arquivos e diretórios, impressoras etc.

Deve ser planejado cuidadosamente, de
forma a dar sempre o mínimo de permissões necessárias às tarefas. 



Remoção
de contas inativas

&nbsp;Revisar contas de usuários regularmente, nos
auxilia a remover ou alterar senha das contas padrão do sistema e também, a
remover contas que não são mais necessárias ou até mesmo bloquear contas de
usuários temporariamente afastados ou que esteja há muito tempo sem acessar.



Softwares
usados para monitorar redes. 

Nagios é uma popular aplicação de monitoração de rede de código aberto distribuída sob a licença GPL (General Public
License). Ele pode monitorar tanto hosts quanto serviços, alertando-o quando
ocorrerem problemas e também quando os problemas forem resolvidos.
O
Nagios foi originalmente criado sob o nome de Netsaint, foi escrito e é
atualmente mantido por Ethan Galstad, junto com uma equipe de desenvolvedores
que ativamente mantém plugins oficiais e não oficiais.
Serviços
monitorados pelos NAGIOS.

Monitora
serviços de rede (SMTP, POP3, HTTP, NNTP, ICMP, SNMP)

Monitora
recursos de computadores ou equipamentos de rede (carga do processador, uso de
disco, logs do sistema) na maioria dos sistemas operacionais com suporte a
rede, mesmo o Microsoft
Windows. 

Monitoração
remota suportada através de túneis criptografados VPN. 

Desenvolvimento
simples de plugins que permite aos usuários facilmente criar seus próprios
modos de monitoração dependendo de suas necessidades, usando a ferramenta de
desenvolvimento da sua escolha (Bash, C, Perl, Python, PHP, C#, etc.)

Checagem
dos serviços paralelizados, ou seja, se você tiver muitos itens monitorados não
há risco de alguns deles não serem checados por falta de tempo. 

Capacidade
de definir a rede hierarquicamente definindo equipamentos "pai",
permitindo distinção dos equipamentos que estão indisponíveis daqueles que
estão inalcançáveis. 

Capacidade
de notificar quando um serviço ou equipamento apresenta problemas e quando o
problema é resolvido (via email, pager, SMS, ou qualquer outro meio definido
pelo usuário por plugin). 

Capacidade
de definir tratadores de eventos que executam tarefas em situações
pré-determinadas ou para a resolução pró-ativas de problemas. 

Suporte
para implementação de monitoração redundante. 

Excelente
interface web para visualização do atual status da rede, notificações,
histórico de problemas, arquivos de log, etc…



Criptografia

A criptografia, nada mais é que um método de armazenar e transmitir
dados de uma forma que somente às pessoas autorizadas como, por exemplo, os
destinatários, possam ler e processar. É considerada a ciência de proteção da
informação através da codificação em um formato ilegível. Contudo, a maioria
dos algoritmos (na realidade todos) podem ser quebrados e a informação revelada
se o atacante tiver tempo e recursos suficientes. Chegamos então às primeiras
duas conclusões muito importantes e com elas vamos romper um velho mito usando
por entusiastas de acesso indevido a informações: 

Não
     existe um método de criptografia que não possa ser quebrado.
O real
     objetivo da criptografia é fazer com que, conseguir acesso à informação,
     seja tão trabalhoso e leve tanto tempo, que o atacante sinta-se
     desestimulado e desista.


Na computação, as técnicas usadas são: a de chaves, as chamadas
“CHAVES CRIPTOGRAFICAS”, Trata-se de um conjunto de bit’s baseado em um
algoritmo capaz de codificar e de decodificar informações. Se o
receptor da mensagem&nbsp;
usar uma chave diferente e incompatível com a do emissor ela não conseguira ter
a informação.

A primeira técnica de criptografia usava apenas um algoritmo de decodificação,
assim bastava o receptor ter o algoritmo para decifrá-lo, porem se um intruso
conhecesse esse algoritmo poderia decifrar a informações caso capturasse os dados
criptografados.

Com o uso de chaves, um emissor pode usar o mesmo algoritmo (o
mesmo método) para vários receptores. Basta que cada um receba uma chave
diferente. Além disso, caso um receptor perca ou exponha determinada chave, é
possível trocá-la, mantendo-se o mesmo algoritmo.

Você já teve ter ouvido falar na chave de 64 bit’s, chave de 128 bit’s e assim
por diante, esses valores expressam o tamanho das chaves. Quanto mais bits’s
foram usados mais seguro será o código, por
exemplo, se for usado um algoritmo de oito bit’s apenas 256 chaves poderão ser
utilizadas por que 2 elevado a 8&nbsp; da 256
combinações possíveis. Agora sabemos que esse código é inseguro, uma pessoa
pode gerar 256 combinações diferentes (apesar de que demore), mas pode ser
feito, agora faça a conta de um algoritmo de 128 bits. Seria 2 elevado a 128
que seria igual a:&nbsp; Dá um numero de
chaves extremamente grandes.

Existem dois tipos de chaves:
simétricas e assimétricas:

Chave
simétrica
Esse
é um tipo de chave mais simples, onde o emissor e o receptor fazem uso da mesma
chave, isto é, uma única chave é usada na codificação e na decodificação da
informação. Existem vários algoritmos que usam chaves simétricas, como o DES, o
IDEA, e o RC:
- DES (Data Encryption Standard):
criado pela IBM em 1977, faz uso de chaves de 56 bits. Isso corresponde a 72
quatrilhões de combinações. É um valor absurdamente alto, mas não para um
computador potente. Em 1997, esse algoritmo foi quebrado por técnicas de
"força bruta" (tentativa e erro) em um desafio promovido na internet;
- IDEA (International Data Encryption Algorithm):
criado em 1991 por James Massey e Xuejia Lai, o IDEA é um algoritmo que faz uso
de chaves de 128 bits e que tem uma estrutura semelhante ao DES. Sua
implementação em software é mais fácil do que a implementação deste último;
- RC (Ron's Code ou Rivest Cipher):
criado por Ron Rivest na empresa RSA Data Security, esse algoritmo é muito
utilizado em e-mails e faz uso de chaves que vão de 8 a 1024 bits. Possui
várias versões: RC2, RC4, RC5 e RC6. Essencialmente, cada versão difere da
outra por trabalhar com chaves maiores.
Há
ainda outros algoritmos conhecidos, como o AES (Advanced Encryption
Standard)
- que é baseado no DES - , o 3DES, o Twofish e sua variante Blowfish, entre
outros.
O
uso de chaves simétricas tem algumas desvantagens, fazendo com que sua utilização
não seja adequada em situações onde a informação é muito valiosa. Para começar,
é necessário usar uma grande quantidade de chaves caso muitas pessoas ou
entidades estejam envolvidas. Ainda, há o fato de que tanto o emissor quanto o
receptor precisam conhecer a mesma chave. A transmissão dessa chave de um para
o outro pode não ser tão segura e cair em "mãos erradas".

Chave
assimétrica
Também
conhecida como "chave pública", a chave assimétrica trabalha com duas
chaves: uma denominada privada
e outra denominada pública. Neste
método, um emissor deve criar uma chave de codificação e enviá-la ao receptor.
Essa é a chave pública. Outra chave deve ser criada para a decodificação. Esta,
a chave privada, é secreta.
Para
melhor compreensão, imagine o seguinte: Uma empresa criou uma chave pública e a
enviou a vários sites de parceiros e distribuidores. Quando qualquer desses
sites quiser enviar uma informação criptografada a essa empresa deverá utilizar
a chave pública deste. Quando a empresa receber essa informação, apenas será
possível extraí-la com o uso da chave privada, que só a empresa tem. Caso a
empresa queira enviar uma informação criptografada a outro site, deverá obter
uma chave pública fornecida por este.

Entre
os algoritmos que usam chaves assimétricas, têm-se o RSA (o mais conhecido) e o
Diffie-Hellman:
RSA (Rivest, Shamir and Adleman):
criado em 1977 por Ron Rivest, Adi Shamir e Len Adleman nos laboratórios do MIT
(Massachusetts
Institute
of Technology),
é um dos algoritmos de chave assimétricos mais usados. Nele, números primos
(número primo é aquele que só pode ser dividido por 1 e por ele mesmo,
exemplos: 2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61,
67, 71, 73, 79, 83) são utilizados da seguinte forma: dois números primos são
multiplicados para se obter um terceiro valor. Porém, descobrir os dois
primeiros números a partir do terceiro (ou seja, fazer uma fatoração) é muito
trabalhoso. Se dois números primos grandes (realmente grandes) forem usados na
multiplicação, será necessário usar muito processamento para descobrí-los,
tornando essa tarefa praticamente inviável. Basicamente, a chave privada no RSA
são os números multiplicados e a chave pública é o valor obtido;
ElGamal: criado por Taher ElGamal, esse
algoritmo faz uso de um problema matemático conhecido por "logaritmo
discreto" para se tornar seguro. Sua utilização é frequente em assinaturas
digitais.
Existem
ainda outros algoritmos, como o DSA (Digital Signature Algorithm), o Schnorr (praticamente usado apenas
em assinaturas digitais) e Diffie-Hellman.



Certificação digital
Um
recurso conhecido por certificação digital
é muito utilizado com chaves públicas. Trata-se de um meio que permite, por
exemplo, provar que certo documento eletrônico foi mesmo emitido por uma
determinada entidade ou pessoa. O receptor da informação usará a chave pública
fornecida pelo emissor para se certificar da origem. Além disso, a chave fica
integrada ao documento de forma que qualquer alteração por terceiros
imediatamente a invalide.

PGP
PGP
é a sigla para Pretty Good Privacy. Trata-se de um software de criptografia
criado por Philip Zimmermman em 1991. A intenção de Zimmermman foi a de ajudar
na defesa da liberdade individual nos Estados Unidos e no mundo inteiro, uma
vez que ele percebeu que o uso do computador seria algo cada vez maior e que o
direito à privacidade deveria ser mantido nesse meio. Por ser disponibilizado
de forma gratuita, o PGP acabou se tornando uns dos meios de criptografia mais
conhecidos, principalmente na troca de e-mails.
No
PGP, chaves assimétricas são usadas. Além disso, para reforçar a segurança, o
software pode realizar um segundo tipo de criptografia através de um método
conhecido como "chave de sessão" que, na verdade, é um tipo de chave
simétrica. 
Um
fato curioso a ser citado é que Zimmermman foi alvo de uma investigação
policial que durou quase 3 anos. Isso porque a legislação americana proíbe a
exportação de software criptográfico sem expressa autorização do governo.
Porém, na investigação, ficou provado que alguém sem identificação e não o
próprio Zimmermman é que distribuiu o programa pela internet. O PGP então
passou a ser enviado para outros países através de uma brecha na legislação
americana: novas versões tiveram seu código-fonte publicado em livros. Estes
são exportados de forma legal, pois a lei americana proíbe a exportação do
software, mas o código impresso não é considerado programa. 

As últimas versões gratuitas do PGP são 2.6.3 (nos EUA) e 2.6.3i
(versão internacional), a qual pode-se fazer download. Existem, entretanto,
muitas outras versões do PGP, em várias línguas diferentes, incluindo uma
variante comercial sob a responsabilidade da empresa ViaCrypt

Alguns
algoritmos e sistemas criptográficos

Funções de Hash criptográfico, ou message digest'

MD5

SHA-1

RIPEMD-160

Tiger

Sistemas Free/Open Source

PGP

GPG

SSL

IPSec / Free S/WAN

Algoritmos
assimétricos ou de chave pública

Curvas elípticas

Diffie-Hellman

DSA de curvas elípticas

El Gamal

RSA

Algoritmos
simétricos

Máquina Enigma (Máquina alemã de rotores utilizada na 2a Guerra
Mundial)

DES - Data Encryption
Standard (FIPS 46-3, 1976)

RC4 (um dos algoritmos criados pelo Prof. Ron Rivest)

RC5 (também por Prof. Ron Rivest)

Blowfish (por Bruce
Schneier)

IDEA - International
Data Encryption Algorithm (J Massey e X Lai)

AES (também conhecido como RIJNDAEL) - Advanced Encryption
Standard (FIPS 197, 2001)

RC6 (Ron Rivest)

Firewall e Sistemas IDS


Introdução ao Firewall
Firewall
é um quesito de segurança com cada vez mais importância no mundo da computação.
À medida que o uso de informações e sistemas é cada vez maior, a proteção
destes requer a aplicação de ferramentas e conceitos de segurança eficientes. O
firewall é uma opção praticamente imprescindível. Este artigo mostrará o que é
firewall, seus tipos, modos de funcionamento e o porquê de usá-lo em seu
computador.
O que é firewall
Firewall
pode ser definido como uma barreira de proteção, que controla o tráfego de
dados entre seu computador e a Internet (ou entre a rede onde seu computador
está instalado e a Internet). Seu objetivo é permitir somente a transmissão e a
recepção de dados autorizados. Existem firewalls baseados na combinação de
hardware e software e firewalls baseados somente em software. Este último é o
tipo recomendado ao uso doméstico e também é o mais comum.
Explicando
de maneira mais precisa, o firewall é um mecanismo que atua como
"defesa" de um computador ou de uma rede, controlando o acesso ao
sistema por meio de regras e a filtragem de dados. A vantagem do uso de
firewalls em redes, é que somente um computador pode atuar como firewall, não
sendo necessário instalá-lo em cada máquina conectada. 
Como o firewall funciona
Há
mais de uma forma de funcionamento de um firewall, que varia de acordo com o
sistema, aplicação ou do desenvolvedor do programa. No entanto, existem dois
tipos básicos de conceitos de firewalls: o que é baseado em filtragem de
pacotes e o que é baseado em controle de aplicações. Ambos não devem ser
comparados para se saber qual o melhor, uma vez que cada um trabalha para um
determinado fim, fazendo que a comparação não seja aplicável. Conheça cada tipo
a seguir. 
Filtragem de pacotes
O
firewall que trabalha na filtragem de pacotes é muito utilizado em redes
pequenas ou de porte médio. Por meio de um conjunto de regras estabelecidas,
esse tipo de firewall determina que endereços IPs eos dados que possam estabelecer
comunicação e/ou transmitir/receber dados. Alguns sistemas ou serviços podem
ser liberados completamente (por exemplo, o serviço de e-mail da rede),
enquanto outros são bloqueados por padrão, por terem riscos elevados (como
softwares de mensagens instantâneas, tal como o MSN). O grande problema desse
tipo de firewall, é que as regras aplicadas podem ser muito complexas e causar
perda de desempenho da rede ou não ser eficaz o suficiente.
Quando
devidamente configurado, esse tipo de firewall permite que somente
"computadores conhecidos troquem determinadas informações entre si e
tenham acesso a determinados recursos". Um firewall assim, também é capaz
de analisar informações sobre a conexão e notar alterações suspeitas, além de
ter a capacidade de analisar o conteúdo dos pacotes, o que permite um controle
ainda maior do que pode ou não ser acessível.

Firewalls no nível de rede são
tipicamente roteadores com poderosas funções de filtragem de pacotes que podem
permitir ou bloquear os pacotes em ambas as direções, baseados no:

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;Endereço de origem

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;Protocolo

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Números de porta

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Conteúdo de pacote

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Flags TCP

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
E outras características dos protocolos
envolvidos
Firewall de aplicação
Firewalls
de controle de aplicação (exemplos de aplicação: SMTP, FTP, HTTP, etc) são
instalados geralmente em computadores servidores e são conhecidos como proxy.
Este tipo não permite comunicação direta entre a rede e a Internet. Tudo deve
passar pelo firewall, que atua como um intermediador. O proxy efetua a
comunicação entre ambos os lados por meio da avaliação do número da sessão TCP
dos pacotes.
Este
tipo de firewall é mais complexo, porém muito seguro, pois todas as aplicações
precisam de um proxy. Caso não haja, a aplicação simplesmente não funciona. Em
casos assim, uma solução é criar um "proxy genérico", através de uma
configuração que informa que determinadas aplicações usarão certas portas. Essa
tarefa só é bem realizada por administradores de rede ou profissionais de
comunicação qualificados.
O
firewall de aplicação permite um acompanhamento mais preciso do tráfego entre a
rede e a Internet (ou entre a rede e outra rede). É possível, inclusive, contar
com recursos de log e ferramentas de auditoria. Tais características deixam
claro que este tipo de firewall é voltado a redes de porte médio ou grande e
que sua configuração exige certa experiência no assunto.

Firewalls modernos podem realizar
várias funções descritas anteriormente e ainda prover outras (através de
módulos), tais como:

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;Criptografia

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;NAT
(Network Address Translation)

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Autenticação
Razões para utilizar um firewall
A
seguir são citadas as 3 principais razões para se usar um firewall:
1
- o firewall pode ser usado para ajudar a impedir que sua rede ou seu
computador seja acessado sem autorização. Assim, é possível evitar que
informações sejam capturadas ou que sistemas tenham seu funcionamento
prejudicado pela ação de hackers;
2
- o firewall é um grande aliado no combate a vírus e cavalos-de-tróia, uma vez
que é capaz de bloquear portas que eventualmente sejam usadas pelas
"pragas digitais" ou então bloquear acesso a programas não
autorizados;
3
- em redes corporativas, é possível evitar que os usuários acessem serviços ou
sistemas indevidos, além de ter o controle sobre as ações realizadas na rede,
sendo possível até mesmo descobrir quais usuários as efetuaram. 


Firewalls existentes

Existe uma quantidade grande de soluções de firewall disponível. Para
usuários domésticos que usam o sistema operacional Windows, um dos mais
conhecidos é o ZoneAlarm (www.zonealarm.com), que dispõe de uma versão gratuita e outra paga,
com mais recursos. Em ambos os casos, é possível utilizar configurações
pré-definidas, que oferecem bons níveis de segurança, sem que para tanto, o
usuário necessite ter muito conhecimento no assunto. Vale citar que o Windows a
partir da versão XP já vem com um firewall, que apesar de não ser tão
eficiente, é um bom aliado na segurança. Usuários de Linux podem contar com a
ferramenta IPTables (www.iptables.org), inclusive para
trabalhar na rede. No entanto, este firewall é mais complexo e exige algum
conhecimento do assunto. Mas assim como existem várias opções para o Windows,
para Linux ocorre o mesmo.

Alguns Firewalls e seus
fabricantes/desenvolvedores:

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Checkpoint
FW-1 (http://www.checkpoint.com

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
o Cisco PIX (http://www.cisco.com)

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
o Aker (http://www.aker.com.br)

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
o Ipfilter
(Darren Reed) 

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;PF (OpenBSD team) http://www.openbsd.org



Testando
firewalls 



O Firewall é um sistema, e qualquer
sistema pode ser ultrapassado. Na verdade várias instituições instalam Firewall
com o objetivo de se protegerem da Internet, depois eles mesmos criam regras
(brechas) para permitirem conexões com vendedores e parceiros. Além disso,
muitos Firewalls são instalados com a configuração básica e nunca são testados
para verificar sua eficiência. Um bom teste de invasão consegue identificar os
buracos de forma que você saberá que eles existem.



Identificando
as vulnerabilidades de alto risco



Um teste de invasão pode dar uma boa
idéia sobre as vulnerabilidades de alto risco presente em seu sistema.
Financeiramente não é interessante utilizar o teste de invasão para identificar
todas as possíveis vulnerabilidades do seu sistema. Se seu objetivo é
simplesmente identificar as vulnerabilidades, considere a utilização de uma
ferramenta de SCAN como: NMAP, SATAN, ISS SCANNER. Lembre-se, você está pagando
por um teste de invasão pelo conhecimento e expertise do Tiger Team além
da habilidade em explorar as vulnerabilidades. As ameaças e vulnerabilidades
que não conseguirem explorar podem ser identificadas pela ferramenta de scan,
pense nisso antes de contratar um teste de invasão.



Riscos
envolvidos em um teste de invasão



Um importante aspecto referente ao
teste de invasão é que ele pode gerar uma falsa sensação de segurança. A idéia
de que "Eles fizeram o melhor que podiam e não obtiveram êxito" não é
valida.

Sua rede pode ter vulnerabilidades que
o Tiger Team não tenha encontrado ou talvez elas não existam no momento
do teste, mas podem vir a existir após alguma mudança na configuração da rede.

Um importante ponto a se lembrar é,
"Você terá o que você pagou". Existem algumas pessoas que executam
teste de invasão e acham que seu trabalho é entrar na rede sem identificar as
vulnerabilidades. É recomendável que a pessoa que vai realizar o teste de
invasão apresente um documento detalhando exatamente quais são os resultados
finais a serem alcançados. Além disso, você deve considerar a realização do
teste de invasão em vários momentos do seu sistema.



Danos
ao sistema durante o teste

Fatores que devem ser levados em
consideração são os possíveis danos causados ao sistema uma vez que este pode
ser afetado ou arquivos Importantes podem ser perdidos. É importante a
definição de parâmetros que identificam os pontos onde o teste tem validade.
Você pode ignorar qualquer tipo de DoS (Denial Of Service) conhecido. As
pessoas que realizam o teste de invasão, por definição, não são usuários
legítimos. O bom teste de invasão não pode ficar preso a um único aspecto do
seu sistema. Muitas pessoas que realizam teste de invasão requerem que seja
indicado um departamento que assuma as responsabilidades no caso de ocorrer
algum dano ao sistema.

Enquanto você não tiver testado sua
ferramenta de IDS ou montado seu plano de resposta a incidentes, a pessoa
responsável pelo teste não deve receber nenhum tipo de informação sobre o seu
sistema, parceiros comerciais. Isso pode protegê-lo quanto a validade do teste
de forma que intrusos verdadeiros não tenha acesso a estas informações.

Os testes devem ser conduzidos
utilizando-se ferramentas previamente definidas.

Enquanto os pontos acima não forem
atendidos, o responsável pelo teste não deve ter acesso a sua rede.

Informações públicas, tais como:
estrutura da empresa, lista de telefones internos, entre outras podem ser
passadas para pessoa que vai realizar o teste, justamente para ganhar tempo.

A pessoa que vai realizar o teste não
deve violar a privacidade e os direitos individuais.

Lembre-se que se trata de um teste
para avaliar o sistema e não as informações privadas. Todos os dados coletados,
incluindo os, arquivos,senhas e qualquer outro tipo de informação obtida deve
devem ser devolvidas a instituição sem que copias sejam retidas pela
organização que realizou os testes.

Todos os testes devem ser realizados
de forma instrutiva. Qualquer tipo de teste que possa causar danos ao sistema
deve ser realizado em períodos de baixa ou sem atividades. Um relatório
detalhado deve ser entregue contendo todos os passos executados mostrando onde
ganhou acesso e onde não. O relatório deve conter recomendações detalhadas para
a correção de qualquer vulnerabilidade encontrada. 



Coleta
de dados e planejamento



Nesta fazer o Tiger Team vai
aprender tudo que puder sobre o alvo e não estará necessariamente preocupado
com vulnerabilidades do sistema. Ele tentará obter informações sobre a
estrutura da diretoria, número dos telefones/ramais, relação dos parceiros, dos
vendedores, ou seja, todo tipo de informação. Raramente a pessoa que realiza o
teste tem que recorrer a mecanismos como buffer overflow. A relação de
telefones possui muitas informações úteis para o invasor.

Outro tipo de informação importante é
a topologia da rede. Conforme a topologia o invasor pode determinar quais os
pontos mais vulneráveis.

Durante esta fase um detalhado plano
de ataque é construindo, eu pessoalmente chamo esta faze de aproximação
indireta, um termo utilizado em estratégias militares e planejamento de atos de
terrorismo.



Pesquisa
do sistema



Nesta fase ainda dentro do que chamo
aproximação indireta podemos colher mais informações sobre a instituição que
está sendo testada. Isso inclui a consulta ao whois via web: FAPESP
(www.fapesp.br), ao InterNIC ( www.inetrnic.net ) e ao ARIN (www.arin.net ),
além destes existem outros servidores de whois. Com estas informações temos uma
idéia de que a instituição está na rede e de seus IPs.



Testes
do sistema



Agora iniciamos a fase que chamo de
aproximação direta, onde temos os seguintes passos:



A) Identificar o caminho para acessar
a instituição, podemos fazer isso com o traceroute, mas em vez de usar o
traceroute tradicional, podemos usar uma ferramenta especial para fazer um
traceroute a uma porta TCP ou UDP específica, desta forma conseguimos burlar os
filtros de ICMP. Este fase permite compreender o caminho de acesso a
instituição, ou seja, nos dá uma visão lógica do caminho.

Nosso objetivo é determinar o caminho
e as ACLs implementadas nos roteadores e Firewalls. Para tanto podemos usar a
ferramenta firewalk. Esta é uma ferramenta muito interessante que permite
determinar as ACLs implementadas, ou seja, identificar quais serviços são
permitidos através da ACL.



B) Agora seria uma boa idéia é
verificar que tipo de informação podemos recuperar do servidor de DNS. Se o
servidor estiver mal configurado é possível fazer uma transferência de zona,
isso nos da muitas informações úteis, um exemplo é a recuperação do registro
HINFO, se esta informação estiver disponível, saberemos exatamente o tipo de
sistema operacional da instituição. Podemos usar vários comandos diferentes
para este fim como nslookup, dig e host. Um dos objetivos é determinar o
endereço do firewall para que possamos testá-lo. Podemos fazer uma análise
destas informações e rapidamente com o auxilio do grep podemos descobrir todas
as máquinas que possuem a palavra teste em seu nome, se estas máquinas
estiverem mal configuradas é um bom local para tentar um acesso não autorizado,
da mesma forma podemos usar o grep para identificar outros padrões de nome como
linux, sun, bsd, etc.



C) Após identificar a topologia da
rede, precisamos determinar quais os hosts que estão ativos e conectados a
Internet. Podemos usar para tal fim ferramentas como; nmap e o fping. O nmap
permite analisarmos uma determinada faixa de endereços. Enquanto as maiorias
das ferramentas de ping trabalham em cima de ICMP com o nmap podemos fazer um
ping atrvés do TCP, ou seja, se os pacotes ICMP estiverem sendo filtrados no
roteador de borda, com o nmap podemos achar os hosts ativos usando por exemplo
a porta 80.



D) Se uma máquina esta ativa e
conectada a Internet, chegou o momento de fazer um port scan. O port scan tem
por objetivo determinar quais as portas ( TCP/UDP ) estão ativas. A
identificação de portas é fundamental para identificar o sistema operacional e
as aplicações em uso. Através dos serviços ativos podemos ganhar acesso a
máquinas que estão mal configuradas ou rodam versões de programas com
vulnerabilidades conhecidas. Existem várias ferramentas que permitem a
realização de port scan: nmap, strobe, tcp_scan, udp_scan, netcat e queso são
algumas delas.



E) Após descobertas as portas ativas
de cada host conectado a Internet, chegou a hora de obtermos mais informações
dos hosts. Isso inclui banner ou qualquer outro tipo de informação.

Informações fornecidas pelos serviços
de SNMP, finger, rusers SMTP ou NetBIOS permitem que montemos uma configuração
detalhada além de conseguirmos informações sobre os usuários de cada sistema.
Agora podemos conectar a cada uma das portas TCP/UDP e analizar as respostas,
afim de identificar informações sobre versão e descobrir servidores
vulneráveis, mas não é somente a versão que nos interessa, mas informações do
sistema, se serviços como finger e ruser estiverem ativos, nós podemos obter
informações dos usuários do sistema. Através do SNMP utilizando uma conexão UDP
a porta 161 podemos usarquery com snmpget, snmpwalk e snmptest para
obter algumas informações.



Agora que já temos um conjunto de
informações sobre os hots, como máquinas ativas, os serviços que rodam,
informações de usuários entreoutras, podemos montar um mapa de
vulnerabilidades. O objetivo deste mapa e associar as informações do sistema
com as vulnerabilidades conhecidas. Deve-se fazer log detalhado de todos os
testes e scans bem como de seus resultados. O objetivo do log é permitir
que após os testes possa-se fazer uma relação para determinar se os testes
causaram algum dano ao sistema e garantir que outro intruso não tenha ganhado
acesso ao sistema durante o teste.



Conclusão

O teste de invasão deve fazer parte do
programa de segurança da sua empresa. Mas devem-se observar os pontos acima
tratados, para que se possa tirar um real aproveitamento do dinheiro empregado
em tal atividade. Você deve restringir as informações sobre os testes somente
aos departamentos competentes, pois alguns funcionários desavisados ou
inocentes podem deixar esta informação vazar e alguém pode aproveitar para
realizar seus próprios testes.



Serviços
IDS



Sistema
de detecção de intrusos 

Sistema de detecção de
intrusos ou simplesmente IDS( em inglês: Intrusion detection system)
refere-se a meios técnicos de descobrir em uma rede quando esta está tendo acessos não autorizados que podem indicar a
acção de um cracker ou até mesmo funcionários mal
intencionados.

Com o acentuado crescimento das tecnologias de
infra-estrutura tanto nos serviços quanto nos protocolos de rede torna-se cada
vez mais difícil a implantação de sistema
de detecção de intrusos. Esse fato está intimamente ligado não somente a
velocidade com que as tecnologias avançam, mas principalmente com a
complexidade dos meios que são utilizados para aumentar a segurança nas transmissões de dados.

Uma solução bastante discutida é a utilização de
host-based IDS que analisam o tráfego de forma individual em uma rede.
No host-based o IDS é instalado em um servidor para alertar e
identificar ataques e tentativas de acessos indevidos à própria máquina.

Segue abaixo uma breve demonstração de como
algumas tecnologias podem dificultar a utilização de sistemas de detecção de
intrusos.

IDS baseadas em rede, ou network-based,
monitoram os cabeçalhos e o campo de dados dos pacotes a fim de detectar
possíveis invasores no sistema, além de acessos que podem prejudicar a
performance da rede. A implantação de criptografia
(implementada via SSL, IPSec e outras)
nas transmissões de dados como elemento de segurança prejudica esse processo.
Tal ciframento pode ser aplicado no cabeçalho do pacote, na área de dados do
pacote ou até mesmo no pacote inteiro, impedindo e ou dificultando o
entendimento dos dados por entidades que não sejam o seu real destinatário.



A DETECÇÃO DE UMA
INTRUSÃO 

Muitas ferramentas, de IDS realizam suas operações a partir da análise
de padrões do sistema operacional e da rede tais como: utilização de CPU,
Input/Output de disco, uso de memória, atividades dos usuários, número de
tentativas de login, número de conexões, volume de dados trafegando no
segmento de rede, entre outros. Estes dados formam uma base de informação sobre
a utilização do sistema em vários momentos do tempo, outras já possuem bases
com padrões de ataque previamente montadas permitindo também a configuração dos
valores das bases bem como inclusão de novos parâmetros.

Com estas informações a ferramenta de IDS pode identificar as tentativas
de intrusão e até mesmo registrar a técnica utilizada.

Uma ferramenta de IDS deve possuir algumas características, entre elas:

Deve
     rodar continuamente sem interação humana e deve ser segura o suficiente de
     forma a permitir sua operação em background; mas não deve ser uma
     caixa preta;
Ser
     tolerante a falhas, de forma a não ser afetada por uma queda do sistema,
     ou seja, sua base de conhecimento não deve ser perdida quando o sistema
     for reinicializado;
Resistir
     a tentativas de mudança (subversão) de sua base, ou seja, deve monitorar a
     si próprio de forma a garantir sua segurança;
Ter o
     mínimo de impacto no funcionamento do sistema;
Poder
     detectar mudanças no funcionamento normal;
Ser de
     fácil configuração, cada sistema possui padrões diferentes e a ferramenta
     de IDS deve ser adaptada de forma fácil aos diversões padrões;
Cobrir
     as mudanças do sistema durante o tempo, como no caso de uma nova aplicação
     que comece a fazer parte do sistema;
Ser
     difícil de ser enganada.


O último ponto faz referências aos prováveis erros que podem acontecer
ao sistema. Estes podem ser classificados como falso positivo, falso negativo e
erros de subversão. A saber:

Falso
     positivo ocorre quando a ferramenta classifica uma ação como uma possível
     intrusão, quando na verdade trata-se de uma ação legítima;
Falso
     negativo ocorre quando uma intrusão real acontece, mas a ferramenta
     permite que ela passe como se fosse uma ação legítima;
Subversão
     ocorre quando o intruso modifica a operação da ferramenta de IDS para
     forçar a ocorrência de falso negativo.






Scanners de Segurança

Scanner é um programa que automaticamente detecta falhas de
segurança em um host remoto ou local. São importantes para a segurança da rede,
pois revelam as falhas da mesma. Administradores de sistemas podem reforçar a
segurança de suas redes através da utilização dos scanners. Os atributos de um
bom Scanner devem ser: 

A capacidade de encontrar um servidor ou rede.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
A capacidade de encontrar que serviços estão sendo executados pelo host (uma
vez encontrado o servidor). &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;Capacidade de testar esses serviços para
falhas conhecidas. 

Existem várias ferramentas disponíveis para scanning e detecção de
intrusos. Na internet há várias desses ferramentas disponíveis para downloads
gratuitos. Veremos algumas das diversas opções de scanners disponíveis.&nbsp; 

&nbsp;Scanners de Host
&nbsp;Scanners de Rede
&nbsp;Scanners de Invasão.

Scanners de Host
Scanners de Host são softwares que você executa localmente no sistema para
investigar problemas em hosts locais. Exemplo de software gratuito. Advanced IP Scanner.

Scanners de Rede

Scanners de Rede são executados de um host e verificam outros
servidores, procurando por serviços abertos. Se você puder encontrar tais
serviços, são grandes as chances de um agressor também encontrá-los. Esses
scanners são geralmente muito úteis para assegurar que seu firewall realmente
funciona. Exemplo de Software gratuito: Advanced LAN Scanner

Scanners de Invasão

Scanners de Invasão são pacotes de softwares que irão identificar
vulnerabilidades e, em alguns casos, permitir que você tente explorá-las.

Scanners de Firewall:

Existe também agora uma gama de programas que realizam varreduras
em firewalls e executam outros testes de penetração com objetivo de descobrir
como um firewall está configurado.

Exemplos de Scanners

Exemplos:

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Nessus

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;Nmap

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;NSS

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;Strobe

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;Satan

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;Internet Security Scanner - SafeSuite (ISS)

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;Cybercop (NAI)

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;Network ToolBox

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;Stealth

Teste de penetração 
O teste
de penetração é um método que avalia a segurança de um sistema de computador ou de uma rede, simulando
um ataque de uma fonte maliciosa. O processo envolve uma análise nas atividades
do sistema, que envolvem a busca de alguma vulnerabilidade em potencial que
possa ser resultado de uma má configuração do sistema, falhas em hardwares/softwares
desconhecidas, deficiência no sistema
operacional ou técnicas contramedidas. Todas as análises
submetidas pelos testes escolhidos são apresentadas no sistema, junto com uma
avaliação do seu impacto e muitas vezes com uma proposta de resolução ou de uma
solução técnica.
O
objetivo do teste de penetração é determinar a viabilidade de uma ataque e
mensurar o seu impacto, caso seja bem sucedido se descoberto. Ele age como um
componente na auditoria de segurança.

Testes caixa
branca vs. caixa preta
Os
testes de penetração podem ser realizados de várias maneiras. A diferença mais
comum é a quantidade de detalhes da implementação do sistema a ser testado, que
estão disponíveis para os testadores.
O
teste da caixa preta assume que não existe qualquer
conhecimento prévio da infra-estrutura a ser testada. Sendo que o primeiro
teste deve determinar a localização e extensão dos sistemas antes de iniciar a
análise.
O
teste da caixa branca assume que o testador possui
total conhecimento da infra-estrutura a ser testada, incluindo o diagrama da
rede, endereçamento IP e qualquer informação complementar.
Testes
de caixa preta simulam um ataque de alguém que esteja familiarizado com o
sistema, enquanto um teste de caixa branca simula o que pode acontecer durante
o expediente de um trabalho ou depois de um "vazamento" de
informações, em que o invasor tenha acesso ao código fonte, esquemas de rede e,
possivelmente, até mesmo de algumas senhas.


Sistemas
de Detecção de Intrusão (IDS):



Baseados nas informações de várias
entidades de pesquisa, tais como: CERT e ICSA podem afirmar que um sistema foi
atacado ou invadido mais de uma vez por segundo no ano de 1999. Só nos EUA a
ICSA identificou que, em média, um site ou computador foi invadido a cada 11
minutos.

Estas estatísticas nos levam a enorme
necessidade de poder rastrear e identificar estes ataques. O sistema que tem a
capacidade de fazer isso é um Sistema de Detecção de Intrusão ou IDS.



Um Sistema de Detecção de Intrusão (
IDS - Intrusion Detection Systems ) permite a notificação quando da ocorrência
de tentativas de intrusão segundo a verificação de certos padrões de ataque que
podem ser configurados dependendo da ferramenta que se está utilizando.

Se sua casa possui um sistema de
alarmes contra ladrões, você possui um sistema de IDS relativamente
sofisticado. Ele pode detectar tentativas de invasão e tomar alguma ação
baseado na detecção.



Tipos de
IDS

Os Sistemas de Deteção de Intrusão são
normalmente divididos em três grandes grupos. Sendo que, atualmente, existem
IDS que possuem características mistas.

Vamos listar estes três grupos, ressaltando algumas
características importantes

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Baseados
em rede (NIDS)

- Sensores

- Estação de gerência

- Análise de assinaturas

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Baseados
em host

- Visão localizada

- Gera informação de melhor qualidade

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Verificadores
de integridade de arquivos

- Funções de hash

Vamos ressaltar em especial aqui o IDS
de rede, que é um dos mais utilizados. Estetipo de IDS coloca a interface de
rede no chamado modo promíscua, o que permite “escutar” todos os pacotes que
trafegam na sub-rede no qual está inserido, semelhante a um sniffer. A
diferença é que, para cada pacote, o IDS compara seu conteúdo e cabeçalho a um
banco de assinaturas de ataques, bem parecido com umanti-vírus. Deve-se lembrar
também a necessidade de espelhamento (ou span) de porta se a rede for comutada
(switches).




 

  
Intruder Alert

  
Axent

  
www.axent.com

  
Host

 

  
Real Secure

  
ISS

  
www.iss.net

  
Host/Rede

 

  
NetProwler

  
Axent

  
www.axent.com

  
Rede

 

  
NetRanger

  
Cisco

  
www.cisco.com

  
Rede

 

  
NFR

  
NFR

  
www.nfr.net

  
Rede

 

  
Session Wall

  
C.Associates

  
www.ca.com

  
Rede

 

  
Snort

  
Marty Roesh

  
www.snort.org

  
Rede

 

  
Abacus

  
Psionic

  
www.psionic.com

  
Host

 





Testando o
sistema de detecção de intrusão ( IDS )

Infelizmente, devido a grande
variedade de vulnerabilidades, detectar uma intrusãoem sua rede não é algo
simples. É praticamente impossível que uma pessoa detecteuma invasão de rede em
tempo real ( on-the-fly ) e tome alguma ação de imediato.

As ações da sua ferramenta de IDS
devem estar diretamente relacionadas com oplano de resposta a incidentes. Na
verdade a definição de um plano de resposta a incidentes é um fator tão crítico
que caso você não tenha um, provavelmente um teste de invasão não irá ajudá-lo
muito. Seu plano de resposta a incidentes deve abranger basicamente os
seguintes pontos:

Qual o objetivo do plano de resposta
para cada tipo de incidente?

Quais as ações legais existentes?
Serão tomadas ações legais no caso de um incidente?

Que tipo de publicidade (a respeito do
ataque) é permitido?

Quem é responsável por conduzir a
resposta ao incidente?

Quem fará parte do grupo de resposta a
incidente?

Que nível de autoridade é requerido para o grupo de resposta a
incidente?

Como você conduz uma resposta a um
incidente está diretamente relacionado ao tipo de negócio da sua instituição.
Os bancos, por exemplo, devem tomar algumas ações junto a federação nacional de
bancos.

Após você ter seu plano de resposta ao
incidente montado, você pode testá-lo efetivamente e refiná-lo utilizando o
teste de invasão. É uma boa idéia anunciar a realização do primeiro teste, uma
vez que seu propósito é ajustar seu plano de resposta e verificar se ele
funciona.

A alta taxa de falso-positivos ocorre
quando a ferramenta classifica uma ação como uma possível intrusão, quando na
verdade trata-se de uma ação legítima.

Um falso-negativo ocorre quando uma
intrusão real acontece mas a ferramenta permite que ela passe como se fosse uma
ação legítima.

Erro de subversion ocorre
quando o intruso modifica a operação da ferramenta de IDS para forçar a
ocorrência de falso-negativo.

Um bom exemplo de falso-positivo é o
ataque de SYN FLOOD. O simples fato de acessar um determinado tipo de página
pode gerar uma detecção da ocorrência de um ataque SYN FLOOD.

Você certamente não quer que suas
páginas fiquem fora do ar a todo momento que um usuário acessar seu site. É
muito difícil definir regras que diferenciem entre atividades hostis e autorizadas.
O teste de invasão pode ser utilizado com a finalidade de demonstrar
efetivamente se sua ferramenta de IDS está operando conforme o esperado e
ajudá-lo no refinamento das regras de forma a reduzir a taxa de falso-positivo.

Secure
Sockets Layer (SSL)

O SSL foi criado pela Netscape e foi
adotado pela comunidade e é hoje o padrão para comunicação segura pela Web. O
SSL está montado sobre a camada de transporte (TCP) e possui dois conceitos
básicos:



·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Conexão SSL;

A conexão para o SSL é uma relação
ponto a ponto. As conexões são transientes e estão sempre relacionadas a uma
sessão.



·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Sessão SSL;

É uma associação entre o cliente e o
servidor, elas são criadas através de um protocolo de handshake específico
do SSL (Handshake Protocol). As sessões definem um conjunto de
parâmetros para os algoritmos de criptografia.



·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Fases da conexão:

- Estabelecimento de capacidades de
segurança;

- Autenticação do servidor e troca de
chaves;

- Autenticação do cliente e troca de
chaves;

- Término; 



Algoritmos utilizados:



- RSA;

- DSS;

- MD5;

- SHA;



IP seguro
(IPsec) e Redes Virtuais Privadas (VPNs)



Como sabemos o TCP/IP não possui
nenhum nível de confidencialidade ou autenticação, a não ser que seja
implementado na camada de aplicação.

A proposta do IPsec é prover tais serviços
de forma transparente ao usuário, de forma que qualquer aplicação possa
utilizar, sem a necessidade de alterar programas clientes ou servidores.



O suporte ao IPsec é opcional ao Ipv4
e obrigatório ao Ipv6.

A documentação do IPsec é dividida de
forma a abranger os vários componentes do modelo, são estes:

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Arquitetura

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
ESP –
Encapsulating Security Payload

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
AH –
Autentication Header

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Algoritmos de criptografia

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Algoritmos de autenticação

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Gerenciamento de chaves

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
DOI - Domínio de interpretação

O conceito básico de uma conexão IPSec
é a Security Association (SA). Deve existir uma SA para cada conexão, e
em cada sentido, então, para uma VPN ponto a ponto são necessárias duas SAs.

Os serviços mais importantes do IPsec
estão contidos no AH e no ESP, sendo que, no estabelecimento de uma SA deve ser
escolhido qual dos dois utilizar. A tabela a seguir nos dá uma descrição dos
serviços providos pelo AH e pelo ESP.

O AH oferece basicamente serviços de
autenticação, enquanto o ESP oferece serviços de autenticação e criptografia
(podem ser usados simultaneamente).



 

  
Serviço

  
AH

  
ESP(encryption
  only)

  
IPSEC(enc +
  utent.)

 

  
Controle de Acesso

  
X

  
X

  
X

 

  
Integridade

  
X

  


  
X

 

  
Autenticação

  
X

  


  
X

 

  
Rejeição de replay

  
X

  
X

  
X

 

  
Confidencialidade

  


  
X

  
X

 

  
Fluxo
  limitado de

Tráfego

  


  
X

  
X

 




É importante ressaltar a complexidade
do IPSec, isto implica em dificuldades de configuração e de compatibilidade
entre sistemas de fabricantes diferentes. Portanto, nunca confie totalmente num
fabricante, prefira homologar os produtos antes de comprá-los.



Certificados
Digitais



O desenvolvimento mais importante no
trabalho com os algoritmos de chave pública é a assinatura digital. A
assinatura digital provê um conjunto de serviços de segurança que seriam
impossíveis de se implementar de outra forma.

Os algoritmos criptográficos de chave
pública diferem dos convencionais (ou

simétricos) pelo fato de possuírem um
par de chaves, a chave pública e a privada. Cada participante deve ter uma
chave pública (que todos devem conhecer) e uma chave privada (que só ele deve
conhecer). Maiores detalhes podem ser encontrados em qualquer curso ou livro
básico de criptografia, visto que estes algoritmos são amplamente difundidos.

Com a assinatura digital deve ser
possível:



·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Verificar o autor, a data e a hora da
assinatura

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Autenticar o conteúdo do texto assinado;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Verificar a assinatura com terceiros;

Com base nestas propriedades nós
podemos formular os seguintes requerimentos para uma assinatura digital:



·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
A assinatura deve ser função da mensagem sendo
assinada;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Ela deve usar uma informação única do
remetente (chave privada);

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Deve ser relativamente fácil produzi-la;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Deve ser relativamente fácil reconhecer e
verificar a assinatura;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Deve ser computacionalmente impraticável
forjar a assinatura;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Deve ser prático guardar uma cópia da
assinatura;



Uma função de hash segura incluída
neste esquema satisfaz estes requerimentos. 



Estudo de caso: DSS – Digital
Signature Standard:

O DSS usa um algoritmo designado para
prover apenas a função de assinatura digital, o DAS – Digital Signature Algorithm,
ele é baseado no fato de não se conseguir computar facilmente logaritmos
discretos. O DSS não utiliza o RSA.





Gerência
de Segurança



Plano de
Segurança



Criar um plano de segurança é uma
tarefa dinâmica que envolve diversas etapas. Uma vez que você tenha definido
suas metas, elaborando um plano de negócios para uso na Internet, você poderá
criar o programa de segurança a ser usado para cuidar de eventuais riscos. Você
deverá se preocupar com os serviços de curto prazo, destinados a usuários finais,
de que a sua empresa precisa, além de levar em consideração o uso estratégico,
em longo prazo, da Internet.

Estamos falando até agora da Internet,
que pode ser à primeira vista o ponto mais crítico, mas temos que nos preocupar
com os fatores internos que podem ser bem mais graves. Resumindo:



·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Distribuição de autoridades e privilégios;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Política de senhas;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Política de backup;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Uso do Antivírus;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Educação em segurança (palestras periódicas);

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Análise de Risco

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Destruição de Dados

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perda de integridade de dados

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perda de integridade do sistema ou da Rede

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perda da capacidade de acesso ao Sistema ou a
Rede

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Perda de reputação



Você deverá conduzir uma avaliação de
risco dirigida, a fim de:

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Identificar áreas de risco elevado;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Tratar de riscos de segurança não considerados
no conjunto de controles que você utiliza;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Obter um consenso quando os diferentes
conjuntos de comandos básicos forem contraditórios;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Oferecer uma justificativa para utilizar um ou
mais controles de segurança quando o interesse em fazê-lo não for muito grande;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Análise de ameaças

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Implementar os controles de segurança

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Gerenciar e administrar

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Monitoração e Auditoria;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Resposta a Incidentes;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Resposta a problemas de segurança;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Administração da Segurança;

·&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
Alocação de recursos,



Análise da
ameaça



A análise da ameaça é um processo de
extrema importância no planejamento da segurança. Ela envolve entender
perfeitamente o seu sistema e como ele pode ser explorado, mas do que todas as
outras etapas, você deve pensar como um hacker pensaria e ainda avaliar os riscos
que podem acontecer. Quanto você gastará em contramedidas para cada área?



Entenda as
ameaças reais ao sistema e avalie o risco dessas ameaças. É mais
fácil entender isso se você puder se basear na experiência do mundo real, com
ataques reais contra sistemas semelhantes.

Descreva a
diretriz de segurança exigida para defender-se contra as ameaças. Isto
será uma série de instruções como: “somente bancos autorizados têm permissão
para modificar o saldo nos cartões Plastcash”, ou “todas as transações com
Plasticash precisam ter logs de auditoria”.

Projete as
contramedidas que imponham a diretriz descrita anteriormente. Estas
contramedidas serão uma mistura de mecanismos de proteção, detecção e reação.



Normas de
Segurança



O CERT (http://www.cert.org) possui arquivos
com várias normas e checklists de segurança. Podemos citar os excelentes
checklists para UNIX e Windows. A BS7799 é um conjunto de normas de
segurança adotado mundialmente. Ela não é gratuita e pode ser adquirida pela
internet em: www.c-cure.org.



Glossário
de Segurança:



Access
Control:

Controle de acesso. Mecanismo para
prover autenticação e privilégio para usuários em ambientes ou sistemas.



Appz:

Termo do mundo do software pirata que
se refere a qualquer aplicativo.



Ataque:

Evento que pode comprometer a
segurança de um sistema ou uma rede. Um ataque pode ter ou não sucesso. Um
ataque com sucesso caracteriza uma invasão. Um ataque também pode ser
caracterizado por uma ação que tenha um efeito negativo, Ex: DoS.



Auditoria:

Processo de análise de causas e
efeitos de incidentes, análise de logs, etc.



Autenticação:

É o processo de se confirmar a
identidade de um usuário ou um host, esta pode ser feita na camada de
aplicação (através de uma senha), ou mais complexa, no esquema desafio-resposta
(utilizando algoritmos específicos).



Back
door:

É um programa escondido, deixado por
um intruso, o qual permite futuro acesso à máquina alvo. Este termo é um
sinônimo para um termo mais antigo: trap door.



Bug:

Uma falha, ou fraqueza num programa de
computador. Veja Vulnerabilidade.



Cavalo
de Tróia:

Uma aplicação ou código que, sem o
conhecimento do usuário realiza alguma tarefa que compromete a segurança de um
sistema, em geral, esta aplicação se apresenta ao usuário de forma rotineira e
legítima, Ex.: um simples jogo que contém código malicioso que envia os dados
do usuário para um e-mail específico.



CERT:

The Computer Emergency Response Team –
Uma organização dedicada a segurança, seu propósito é dar assistência à redes
que foram invadidas ou estão sob ataque. Eles podem ser encontrados em http://www.cert.org



Certificação:

Existem duas definições para este
termo. Primeira, certificação pode se referir para o resultado de uma avaliação
com sucesso



Cavalo
de Tróia:

Veja
Trojan Horse.



Checksum:

Hash criptográfico. Cadeia de
caracteres, geralmente de tamanho fixo que pode ser utilizada para representar
de forma única, um arquivo. Ex. Suponha um arquivo com 1000 linhas, ele pode
ser representado por um checksum de, digamos, 15 caracteres. Se o arquivo for
alterado o checksum (hash) irá alterar.



Crack:

Programa utilizado para quebrar
licenças de outros programas. Também pode se referir a programas utilizados
para quebrar senhas.



Cracker:

Indivíduo com conhecimentos elevados
de computação e segurança, que os utiliza para fins criminosos, destruição de
dados ou interrupção de sistemas. Também pode se referir a programas utilizados
para quebrar senhas (Ex. Password Cracker).



DES:

Algoritmo de criptografia – Data
Encryption Standard, hoje obsoleto pelo AES Advanced Encryption Standard.



Engenharia
Social:

Técnica utilizada por hackers e
crackers para obter informações interagindo diretamente com as pessoas.



Exploit:

Programas utilizados por hackers e
crackers para explorar vulnerabilidades em determinados sistemas, conseguindo
assim, acessos com maior privilégio.



Firewall:

Equipamento e/ou software utilizado
para controlar as conexões (que entram ou saem) de uma rede. Eles podem simplesmente
filtrar os pacotes baseados em regras simples, como também fornecer outras
funções tais como: NAT, proxy, etc.



Flood:

Sobrecarga (em geral, de pacotes)
causada por eventos não esperados que causam lentidão da rede.



Hacker:

Indivíduo com conhecimentos elevados
de computação e segurança, que os utiliza para fins de diversão, interesse,
emoção. Em geral, hackers não destroem dados, possuem um código de ética e não
buscam ganhos financeiros. O termo hacker é atualmente adotado pela mídia de
forma indiscriminada, se referindo a crackers por exemplo.



Hacking:

É o ato de hackear sistemas, não no
sentido único de invadir, mas principalmente de descobrir como funcionam, e se
possuem falhas.



Hijacking:

É o assalto de uma sessão, geralmente
TCP/IP. O assalto de sessão é uma forma de obter o controle de uma conexão
iniciada por um usuário legítimo. Ao interceptar estaconexão o “hacker” pode
impedir o usuário legítimo de usar o sistema e tomar o seu lugar.



Hole:

Um bug ou uma vulnerabilidade.



Intrusion
Detection System –IDS:

É um Sistema de Detecção de Intrusão,
um software responsável por monitorar uma rede ou sistema e alertar sobre
possíveis invasões.



Invasão:

Caracteriza um ataque bem sucedido.



Lammer:

É uma palavra que os hackers utilizam
para identificar os índividuos que se acham hackers, mas estão ainda no estágio
inicial de aprendizado.



Phreaking:

São os hackers de telefonia,
convencional ou celular.



Scanner:


Ferramenta utilizada por hackers ou
especialistas em segurança que serve para “varrer” uma máquina ou uma rede, em
busca de portas abertas, informações ou serviços vulneráveis.



Script
Kiddie:

É o indivíduo que saiu do estágio de lammermas
que só sabe usar as “receitas de bolo”, programas prontos e ainda não entende
muito bem o que está fazendo.



Sniffer:

Ferramenta utilizada por hackers e
especialistas em segurança e de rede que serve para monitorar e gravar pacotes
que trafegam pela rede, dependendo do sniffer, é possível analisar vários dados
dos pacotes, analisar protocolos, ver dados específicos da camada de aplicação,
senhas, etc.



Spoofing:

É uma forma de manter uma conexão com
uma máquina se fazendo passar por outra na qual ela confie. Um termo muito
utilizado é o IP Spoofing, que significa o uso de vulnerabilidades do Protocolo
TCP/IP que permitem a ação descrita acima.



Trojan,
Trojan Horse: 

São os cavalos de tróia, programas que
são entregues para o usuário de forma legítima (muitas vezes podem ser coisas
interessantes como joguinhos, cartões virtuais, etc.), mas que internamente
realizam ações maliciosas, tais como: gravar senhas, gravar toques de tecla, e
posteriormente armazenar estas informações ou enviar para outra pessoa.



Vírus:

São códigos ou programas que infectam
outros programas e se multiplicam, na maioria das vezes podem causar danos aos
sistemas infectados.



VPN:

Rede Privada Virtual – Virtual Private
Network – Rede virtual criptografada criada através de um túnel numa rede IP
convencional, utilizando o padrão IPSec.



Vulnerabilidade:

Estado de um componente de um sistema
que compromete a segurança de todo o sistema, uma vulnerabilidade existe
sempre, até que seja corrigida, existem vulnerabilidades que são intrínsecas ao
sistema. Um ataque explora uma vulnerabilidade.



Warez:

Nome utilizado por hackers para se
referir à pirataria de software.



Worm:


Um worm é semelhante a um vírus, mas
difere pelo fato de não necessitar de um programa específico para se infectar e
reproduzir. Muitos vírus hoje, possuem a característica de worms e vice e
versa.
Referências Bibliográficas:
Aperfeiçoamento
em Segurança Básica de Redes: UFRJ - Laboratório de Redes de Alta Velocidade –
RAVEL
Wikipédia
Google
Info
Wester.