Você está na página 1de 28

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Ameaças e Contramedidas de Segurança na Web

12 de 14 pessoas classificaram isso como útil

Ameaças e Contramedidas de Segurança na Web

como útil Ameaças e Contramedidas de Segurança na Web Microsoft Corporation Janeiro 2004 Neste Módulo Este

Microsoft Corporation

Janeiro 2004

Neste Módulo

Este módulo analisa a segurança de aplicações web a partir da perspectiva das ameaças, contramedidas, vulnerabilidades, e ataques. A incorporação de recursos de segurança no design, na implementação, e na implantação de sua aplicação ajuda a compreender o raciocínio dos invasores. Ao pensar como eles e estar consciente de suas possíveis táticas, você poderá aplicar as contramedidas de forma mais eficaz. Este módulo descreve a metodologia do invasor clássico e traça um perfil da anatomia de um ataque típico.

Este módulo começa com a apresentação das metodologias mais comuns usadas pelos invasores para comprometer aplicações web, e sugere o método STRIDE para categorizar estas ameaças. Ele então apresenta a você as principais ameaças que têm o potencial de comprometimento da rede, da infra-estrutura host e das aplicações. O conhecimento destas ameaças, em conjunto com as devidas contramedidas, fornece as informações essenciais para o processo de elaboração de um modelo de ameaça.

Este módulo permite a você identificar as ameaças que são especificas para o seu cenário em particular, e a priorizá-las com base no grau de risco oferecido ao seu sistema.

Objetivos

Use este módulo para:

Começar a pensar como um invasor.oferecido ao seu sistema. Objetivos Use este módulo para: Conhecer o método STRIDE comumente usado para

Conhecer o método STRIDE comumente usado para categorizar as ameaças.Use este módulo para: Começar a pensar como um invasor. Identificar e conter ameaças no nível

Identificar e conter ameaças no nível da aplicação, do host e da rede.método STRIDE comumente usado para categorizar as ameaças. Aplica-se a: Aplicações Web Como Usar Este Módulo

Aplica-se a:

Aplicações Web

Como Usar Este Módulo

Este módulo identifica um conjunto de ameaças comuns no nível da aplicação, do host e da rede, e as contramedidas recomendadas para lidar com cada uma delas.

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

O modulo não traz uma lista exaustiva de ameaças, mas destaca as principais. Com estas informações e conhecimento de como um invasor trabalha, você poderá identificar outras ameaças.

É preciso conhecer as ameaças com maior probabilidade de causar impacto em seu sistema para que você possa construir modelos de ameaças eficazes. Estes modelos de ameaças serão abordados no modulo, "Elaborando um Modelo de Ameaça." (em inglês).

Para tirar maior proveito deste módulo:

Familiarize-se com ameaças específicas que afetam a sua rede, host e aplicação. As ameaças são diferentes para diversas partes do seu sistema, apesar dos objetivos dos invasores serem os mesmos.(em inglês). Para tirar maior proveito deste módulo: Use as ameaças para identificar riscos e criar

Use as ameaças para identificar riscos e criar um plano para conter estas ameaças.sistema, apesar dos objetivos dos invasores serem os mesmos. Aplique contramedidas para lidar com as vulnerabilidades.

Aplique contramedidas para lidar com as vulnerabilidades. As contramedidas serão resumidas neste modulo. Use a Parte III, "Construindo Aplicações Web Seguras," e a Parte IV, "Protegendo Sua Rede, Host e Aplicação," deste guia para detalhes sobre a implementação de contramedidas.riscos e criar um plano para conter estas ameaças. Ao criar, construir e proteger seus sistemas,

Ao criar, construir e proteger seus sistemas, leve em consideração as ameaças descritas neste modulo. Estas ameaças existem independente da plataforma ou das tecnologias usadas.

Nesta página

Antes de Começar

Antes de começar o processo de elaboração de um modelo de ameaça, é importante conhecer a seguinte terminologia básica:

Recurso. Um recurso de valor como os dados num banco de dados ou num sistema . Um recurso de valor como os dados num banco de dados ou num sistema de arquivos, ou um recurso do sistema.

Ameaça. Uma ocorrência em potencial - mal-intencionada ou não - que pode danificar um recurso. . Uma ocorrência em potencial - mal-intencionada ou não - que pode danificar um recurso.

Vulnerabilidade. Uma fraqueza que possibilita uma ameaça. . Uma fraqueza que possibilita uma ameaça.

Ataque (ou exploração). Uma ação tomada para danificar um recurso. . Uma ação tomada para danificar um recurso.

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças

e Contramedidas de Segurança na Web

Contramedida. Uma medida que lida com uma ameaça e que mitiga os riscos. . Uma medida que lida com uma ameaça e que mitiga os riscos.

Anatomia de um Ataque

Conhecendo as abordagens comuns usadas pelos invasores para atingir sua aplicação Web, você estará mais bem preparado para tomar medidas defensivas porque saberá com o que está lidando. As etapas básicas da metodologia de um invasor estão resumidas abaixo e ilustradas na Figura 1:

Pesquisar e avaliarum invasor estão resumidas abaixo e ilustradas na Figura 1: Explorar e penetrar Escalar privilégios Manter

Explorar e penetrarabaixo e ilustradas na Figura 1: Pesquisar e avaliar Escalar privilégios Manter acesso Negar serviço Figura

Escalar privilégiosna Figura 1: Pesquisar e avaliar Explorar e penetrar Manter acesso Negar serviço Figura 1. Etapas

Manter acessoPesquisar e avaliar Explorar e penetrar Escalar privilégios Negar serviço Figura 1. Etapas básicas para a

Negar serviçoExplorar e penetrar Escalar privilégios Manter acesso Figura 1. Etapas básicas para a metodologia de ataque

e penetrar Escalar privilégios Manter acesso Negar serviço Figura 1. Etapas básicas para a metodologia de

Figura 1. Etapas básicas para a metodologia de ataque

Pesquisar e Avaliar

A pesquisa e a avaliação do alvo em potencial são feitas seqüencialmente. O primeiro passo dado por um invasor é geralmente a pesquisa do alvo em potencial para identificar e avalizar suas características. Estas características podem incluir seus serviços e protocolos suportados com vulnerabilidades em potencial e pontos de entrada. O invasor usa estas informações recolhidas na pesquisa e avaliação para planejar um ataque inicial.

Por exemplo, um invasor pode detectar uma vulnerabilidade de scripting entre sites (cross-site scripting - XSS) testando para ver se qualquer controle numa página da web ecoa de volta um output.

Explorar e Penetrar

Após ter pesquisado um alvo em potencial, o próximo passo é explorar e penetrar. Se a rede e o host estiverem totalmente seguros, sua aplicação (a porta de entrada) irá se tornar o próximo canal para ataque.

Para um invasor, a maneira mais fácil para penetrar uma aplicação é através da mesma entrada que legitima o usuário - por exemplo, através de uma das páginas de logon da aplicação ou uma página que não requeira autenticação.

Escalar Privilégios

Após conseguirem comprometer uma aplicação ou rede, talvez injetando códigos numa aplicação ou criando uma sessão autenticada com o sistema operacional Microsoft® Windows® 2000, os invasores imediatamente tentarão

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

escalar os privilégios. Especificamente, eles procuram por privilégios administrativos fornecidos por contas pertencentes a um grupo de Administradores. Eles também buscam o alto nível de privilégios oferecidos pela conta do sistema local.

O uso de contas de serviços com menos privilégios em toda a sua aplicação é uma forma de defesa básica contra ataques de escalação. Além disso, muitos ataques de escalação de privilégios de nível de rede demandam uma sessão de logon interativo.

Manter Acesso

Após ganhar acesso a um sistema, os próximos passos dados por um invasor são buscar do acesso fácil no futuro e apagar os seus rastros. As abordagens mais comuns para facilitar o acesso futuro incluem programas de instalação de um back-door ou o uso de uma conta existente que está menos protegida. Apagar os rastros geralmente envolve limpar logs e esconder ferramentas. Desta forma, logs de auditoria são alvos primordiais para o invasor.

Arquivos registrados devem ser protegidos, e devem ser analisados regularmente. A análise dos arquivos registrados pode muitas vezes revelar sinais de uma tentativa de entrada forçada antes que ocorra algum prejuízo.

Negar Serviço

Os invasores que não conseguem ganhar acesso muitas vezes armam um ataque para negar serviço e assim evitar que outras pessoas utilizem a aplicação. Para outros invasores, a opção de negar serviço é o principal objetivo desde o princípio. Um exemplo é o ataque de inundação (flooding) SYN, onde o invasor usa um programa para enviar uma inundação de solicitações TCP SYN para encher a fila de conexão pendente no servidor. Isto faz com que outros usuários não possam estabelecer conexões de rede.

Compreendendo as Categorias de Ameaças

Apesar de existirem muitas variações de ataques específicos e de técnicas de ataque, é útil pensar nestas ameaças buscando saber o que o invasor está tentando alcançar. Isto tira o foco da identificação de todo e qualquer ataque específico - o que é realmente apenas um meio para um fim - e coloca o foco nos resultados finais de possíveis ataques.

STRIDE

As ameaças enfrentadas pela aplicação podem ser categorizadas com base nos objetivos e propósitos dos ataques. O conhecimento funcional destas categorias de ameaças pode ajudá-lo a organizar uma estratégia de segurança para que você tenha reações planejadas para as ameaças. STRIDE são as iniciais usadas na Microsoft para categorizar diferentes tipos de ameaças. STRIDE significa:

Spoofing. Spoofing (falsificação) é a tentativa de ganhar acesso a um sistema usando uma identidade . Spoofing (falsificação) é a tentativa de ganhar acesso a um sistema usando uma identidade falsa. Isto pode ser feito usando credenciais roubadas ou um endereço falso de IP. Após o invasor ter conseguido ganhar acesso como um usuário legítimo ou host, a elevação ou o abuso de privilégios usando a autorização pode começar.

Tampering. Tampering (manipulação) é a modificação não autorizada dos dados, por exemplo, conforme fluem através . Tampering (manipulação) é a modificação não autorizada dos dados, por exemplo, conforme fluem através da rede entre dois computadores.

Repudiation. Repudiation (repúdio) é a habilidade de usuários (legítimos ou não) de negar que tenham . Repudiation (repúdio) é a habilidade de usuários (legítimos ou não) de negar que tenham executado ações ou transações específicas. Sem a auditoria adequada, ataques de repudiation são difíceis de serem provados.

Information disclosure. Information disclosure (revelação de informações) é a exposição não autorizada de dados privados. Por . Information disclosure (revelação de informações) é a exposição não autorizada de dados privados. Por exemplo, um usuário visualiza o conteúdo de uma tabela ou arquivo não autorizado, ou monitora dados transmitidos em texto puro através de uma rede. Alguns exemplos de vulnerabilidades de l

i

f

ti

di

l

i

d

did

tá i

i

d

á

i

d

b

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

g nas que contém strings (seqüências) de conexão com um banco de dados e detalhes da conexão, e uma manipulação fraca de exceções que pode fazer com que detalhes do sistema interno sejam revelados ao cliente. Qualquer uma destas informações pode ser muito útil para o invasor.

n orma on

sc osure nc uem o uso

e campos escon

os, comen

r os ncorpora os em p

a we

Denial of service. Denial of service (negação de serviço) é o processo que torna um sistema ou . Denial of service (negação de serviço) é o processo que torna um sistema ou aplicação indisponível. Por exemplo, um ataque de negação de serviço pode ser feito com o bombardeamento de solicitações que consomem todos os recursos disponíveis do sistema ou com a transmissão de dados de entrada defeituosos que podem acabar com o processo de uma aplicação.

Elevation of privilege. Elevation of privilege (elevação de privilégio) ocorre quando um usuário com privilégios limitados assume . Elevation of privilege (elevação de privilégio) ocorre quando um usuário com privilégios limitados assume a identidade de um usuário privilegiado para ganhar acesso a uma aplicação. Por exemplo, um invasor com privilégios limitados pode elevar seu nível de privilégio para comprometer e tomar o controle de uma conta ou processo altamente privilegiado.

Ameaças e Contramedidas do STRIDE

Cada categoria de ameaça descrita no STRIDE possui um conjunto de técnicas de contramedidas que devem ser usadas para reduzir riscos. Estas técnicas foram resumidas na Tabela 1. A contramedida apropriada depende do ataque específico. Outras ameaças, ataques e contramedidas que se aplicam à rede, ao host e às aplicações serão apresentadas posteriormente neste módulo.

Tabela 1 Ameaças e Contramedidas do STRIDE

Ameaça

Contramedidas

Spoofing (falsificação) da identidade do usuário

Utilize autenticação forte. Não armazene segredos (por exemplo, senhas) em texto puro. Não transmita credenciais em texto puro por linha. Proteja os cookies de autenticação com Secure Sockets Layer (SSL).

Tampering (manipulação) de dados

Use assinatura e quebra de dados. Use assinaturas digitais. Use autorizações fortes. Use protocolos resistentes a tampering em todas as conexões de comunicação. Proteja as conexões de comunicação com protocolos que oferecem integridade de mensagens.

Repudiation (repúdio)

Crie trilhas de auditoria seguras. Use assinaturas digitais.

Information disclosure (revelação de informações)

Use autorização forte. Use encriptação forte. Proteja links de comunicação com protocolos que oferecem confidencialidade para mensagens. Não armazene segredos (por exemplo, senhas) em texto puro.

Denial of service (negação de serviço)

Use técnicas de controle de largura de banda e de recursos. Valide e filtre a entrada.

Elevation of privilege (elevação de privilégio)

Siga o princípio de privilégio mínimo e use contas de serviço menos privilegiadas para executar processos e acessar recursos.

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Contramedidas e Ameaças na Rede

Os principais componentes que compõe sua infra-estrutura de rede são os roteadores, os firewalls, e os switches. Eles agem como guardiões protegendo seus servidores e suas aplicações contra ataques e invasões. Um invasor pode explorar dispositivos de rede mal configurados. Vulnerabilidades comuns incluem configurações fracas de instalação padrão, controles de acesso totalmente abertos, e dispositivos sem os últimos patches (atualizações) de segurança. Estas são as principais ameaças de rede:

Acúmulo de Informaçõesde segurança. Estas são as principais ameaças de rede: Sniffing Spoofing Seqüestro de Sessões Negação de

Sniffingas principais ameaças de rede: Acúmulo de Informações Spoofing Seqüestro de Sessões Negação de serviço

Spoofingameaças de rede: Acúmulo de Informações Sniffing Seqüestro de Sessões Negação de serviço Acúmulo de

Seqüestro de Sessõesde rede: Acúmulo de Informações Sniffing Spoofing Negação de serviço Acúmulo de Informações Dispositivos

Negação de serviçode Informações Sniffing Spoofing Seqüestro de Sessões Acúmulo de Informações Dispositivos de rede podem ser

Acúmulo de Informações

Dispositivos de rede podem ser descobertos e seus perfis podem ser traçados praticamente da mesma forma com que isto é feito em outros tipos de sistemas. Os invasores geralmente começam com a varredura de portas. Após identificarem portas abertas, eles utilizam enumeração e obtenção de banners para detectar tipos de dispositivos e determinar sistemas operacionais e versões de aplicações. Armado com estas informações, o invasor pode atacar as vulnerabilidades conhecidas que não foram ainda atualizadas com os patches de segurança.

Contramedidas para evitar o acúmulo de informações incluem:

Configure roteadores para restringir suas reações às solicitações de footprinting.para evitar o acúmulo de informações incluem: Configure sistemas operacionais que hospedam softwares de

Configure sistemas operacionais que hospedam softwares de rede (por exemplo, firewalls de software) para evitar footprinting inabilitando protocolos não utilizados e portas desnecessárias.suas reações às solicitações de footprinting. Sniffing Sniffing ou eavesdropping (escuta) é o ato de

Sniffing

Sniffing ou eavesdropping (escuta) é o ato de monitorar o tráfego na rede para dados como senhas em texto puro ou informações de configurações. Com um pacote simples de sniffing, um invasor pode facilmente ler todo o tráfego em texto puro. Além disso, os invasores também podem abrir pacotes encriptados quebrando algoritmos leves e podem decifrar a carga que você considera estar segura. O sniffing de pacotes requer um pacote sniffer no caminho da comunicação entre o cliente e o servidor.

Contramedidas para ajudar a evitar sniffing incluem:

Use forte segurança física e segmentação adequada da rede. Este é o primeiro passo para evitar que o tráfego seja coletado localmente.Contramedidas para ajudar a evitar sniffing incluem: Faça a encriptação total das comunicações, incluindo a

Faça a encriptação total das comunicações, incluindo a autenticação de credenciais. Isto evita que os pacotes de sniffing possam ser usados por um invasor. SSL e IPSec (Internet Protocol Security) são exemplos de soluções de encriptação.passo para evitar que o tráfego seja coletado localmente. Spoofing Spoofing (falsificação) é um meio de

Spoofing

Spoofing (falsificação) é um meio de esconder a verdadeira identidade na rede. Para criar uma identidade enganosa

07/03/13

Ameaças e Contramedidas

de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

,

um invasor usa um falso endereço de fonte que não representa o verdadeiro endereço do pacote. O spoofing pode ser usado para esconder a fonte original de um ataque ou para contornar listas de controle de acesso de rede (network access control lists - ACLs) que estão posicionadas para limitar o acesso host baseado nas regras de endereço da fonte.

Apesar de pacotes de spoofing cuidadosamente preparados jamais permitirem o rastreamento até o responsável pelo envio original, uma combinação de regras de filtragem previne o surgimento de pacotes de spoofing a partir de sua rede, permitindo a você bloquear pacotes de spoofing óbvios.

Contramedidas para ajudar a evitar spoofing incluem:

Filtrar pacotes no sentido interno que parecem vir de um endereço de IP interno, em seu perímetro.Contramedidas para ajudar a evitar spoofing incluem: Filtrar pacotes no sentido externo que parecem ter sido

Filtrar pacotes no sentido externo que parecem ter sido originados de um endereço de IP local inválido.vir de um endereço de IP interno, em seu perímetro. Seqüestro de Sessões Também conhecido como

Seqüestro de Sessões

Também conhecido como ataque de homem no meio (man in the middle), o seqüestro de sessões (session hijacking)

engana um servidor ou cliente fazendo-os aceitar o host upstream como o host legítimo. Na verdade, o host upstream

é um host do invasor que está manipulando a rede para que pareça ser o destino desejado.

Contramedidas para ajudara a evitar o seqüestro de sessões:

Use negociação de sessão encriptada.para ajudara a evitar o seqüestro de sessões: Use canais de comunicação encriptados. Mantenha-se

Use canais de comunicação encriptados.de sessões: Use negociação de sessão encriptada. Mantenha-se informado sobre patches para plataformas para

Mantenha-se informado sobre patches para plataformas para ajustar vulnerabilidades TCP/IP, como seqüências de pacotes previsíveis.sessão encriptada. Use canais de comunicação encriptados. Negação de Serviço A negação de serviço nega aos

Negação de Serviço

A negação de serviço nega aos usuários legítimos o acesso ao servidor ou aos serviços. O ataque de inundação de SYN

é um exemplo comum de ataque de negação de serviço no nível da rede. É fácil de ser lançado e difícil de ser

acompanhado. O objetivo do ataque é enviar mais solicitações para um servidor do que ele consegue lidar. O ataque explora a vulnerabilidade em potencial no mecanismo de estabelecimento de conexão TCP/IP e enche a fila de conexões pendentes do servidor.

Contramedidas para evitar a negação de serviço incluem:

Aplique os últimos Service Packs.Contramedidas para evitar a negação de serviço incluem: Dificulte o stack TCP/IP aplicando as configurações de

Dificulte o stack TCP/IP aplicando as configurações de registro apropriadas para aumentar o tamanho da fila de conexão TCP, para diminuir o período de estabelecimento da conexão, e para empregar mecanismos de backlog dinâmicos para garantir que a fila de conexão nunca seja esgotada.de serviço incluem: Aplique os últimos Service Packs. Use um sistema de detecção de intrusão (Intrusion

Use um sistema de detecção de intrusão (Intrusion Detection System, IDS) de rede porque estes sistemas podem detectar e reagir automaticamente aos ataques SYN.para garantir que a fila de conexão nunca seja esgotada. Ameaças e Contramedidas no Host As

Ameaças e Contramedidas no Host

As ameaças no host são direcionadas ao sistema de software sobre o qual suas aplicações são construídas. Isto inclui o Windows 2000, o Internet Information Services (IIS), o .NET Framework, e o SQL Server 2000, dependendo da função específica do servidor. As principais ameaças no nível do host são:

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas

de Segurança na Web

Vírus, Cavalos de Tróia e Wormsna Web: Ameaças e Contramedidas de Segurança na Web Footprinting (rastro) Profiling (elaboração de perfil)

Footprinting (rastro) (rastro)

Profiling (elaboração de perfil) (elaboração de perfil)

Quebra de senhaFootprinting (rastro) Profiling (elaboração de perfil) Negação de serviço Execução de códigos arbitrários

Negação de serviço(rastro) Profiling (elaboração de perfil) Quebra de senha Execução de códigos arbitrários Acesso não autorizado

Execução de códigos arbitráriosde perfil) Quebra de senha Negação de serviço Acesso não autorizado Vírus, Cavalos de Tróia e

Acesso não autorizadoNegação de serviço Execução de códigos arbitrários Vírus, Cavalos de Tróia e Worms Um vírus é

Vírus, Cavalos de Tróia e Worms

Um vírus é um programa criado para executar atos maliciosos e causar interrupções em seu sistema operacional ou aplicações. Um cavalo de tróia lembra um vírus, exceto que o código malicioso fica contido dentro do que parece ser um arquivo de dados inofensivo ou um programa executável. Um worm é similar a um cavalo de tróia exceto que ele se auto-replica de um servidor par ao outro. Os worms são difíceis de serem detectados porque eles não criam arquivos regulares que podem ser vistos. Eles muitas vezes são notados apenas quando começam a consumir recursos do sistema porque o sistema torna-se mais lento ou a execução de outros programas simplesmente pára. O worm Code Red é um dos mais notórios e que afligem o IIS; ele contava com uma vulnerabilidade no estouro do buffer em um determinado filtro ISAPI.

Apesar de estas ameaças tratarem na verdade de ataques, juntas elas representam uma ameaça considerável para as aplicações web, para os hosts destas aplicações, e para a rede usada para distribuir estas aplicações. O sucesso destes ataques em qualquer sistema é possível através de muitas vulnerabilidades como padrões fracos, bugs de software, erros de usuários, e vulnerabilidades inerentes em protocolos da Internet.

Contramedidas que podem ser usadas contra vírus, cavalos de tróia e worms incluem:

Fique atualizado com os últimos pacotes de serviços e patches (atualizações) de softwares do sistema operacional.ser usadas contra vírus, cavalos de tróia e worms incluem: Bloqueie todas as portas desnecessárias no

Bloqueie todas as portas desnecessárias no firewall e no host.(atualizações) de softwares do sistema operacional. Inabilite funcionalidades não utilizadas, incluindo

Inabilite funcionalidades não utilizadas, incluindo protocolos e serviços.todas as portas desnecessárias no firewall e no host. Endureça configurações padrões fracas. Footprinting

Endureça configurações padrões fracas.não utilizadas, incluindo protocolos e serviços. Footprinting Exemplos de footprinting são varreduras de

Footprinting

Exemplos de footprinting são varreduras de portas, ping sweeps, e enumeração NetBIOS que podem ser usados por invasores para colher informações valiosas no nível do sistema, para ajudar a prepará-los para outros ataques significativos. O tipo de informação potencialmente revelada por footprinting inclui detalhes sobre contas, sistemas operacionais e outras versões de software, nomes de servidores, e detalhes de esquemas de bancos de dados.

Contramedidas para ajudar a evitar footprinting incluem:

Desativar protocolos desnecessários.Contramedidas para ajudar a evitar footprinting incluem: Fechar portas com a configuração de firewall apropriada.

Fechar portas com a configuração de firewall apropriada.footprinting incluem: Desativar protocolos desnecessários. technet.microsoft.com/pt-br/library/dd569900(d=printer).aspx

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Usar filtros TCP/IP e IPSec para defesa em profundidade.na Web: Ameaças e Contramedidas de Segurança na Web Configurar IIS para evitar a revelação de

Configurar IIS para evitar a revelação de informações através da obtenção de banners.Web Usar filtros TCP/IP e IPSec para defesa em profundidade. Usar um IDS que possa ser

Usar um IDS que possa ser configurado para detectar padrões de footprinting e rejeitar todo o tráfego suspeito.de informações através da obtenção de banners. Quebra de Senha Se um invasor não consegue estabelecer

Quebra de Senha

Se um invasor não consegue estabelecer uma conexão anônima com o servidor, ele terá que tentar estabelecer uma conexão autêntica. Para tanto, o invasor deve conhecer um nome de usuário e senha válidos. Se você utilizar nomes de conta padrão, estará facilitando o trabalho do invasor. Então, ele terá apenas que descobrir a senha para a conta. O uso de senhas fracas facilitará ainda mais o trabalho dele.

Contramedidas para ajudar a evitar a quebra de senha incluem:

Use senhas fortes para todos os tipos de contas.para ajudar a evitar a quebra de senha incluem: Aplique políticas de bloqueio para contas de

Aplique políticas de bloqueio para contas de usuários finais para limitar o número de tentativas que podem ser feitas para adivinhar a senha.incluem: Use senhas fortes para todos os tipos de contas. Não use nomes de contas padrão,

Não use nomes de contas padrão, e dê outro nome às contas padrão, como é feito com a conta do administrador e com as contas de usuários anônimos na Internet utilizadas em muitas aplicações web.de tentativas que podem ser feitas para adivinhar a senha. Faça auditoria dos logins que falharam

Faça auditoria dos logins que falharam para buscar padrões de tentativas de quebra de senhas.anônimos na Internet utilizadas em muitas aplicações web. Negação de Serviço A negação de serviço pode

Negação de Serviço

A negação de serviço pode ser obtida através de muitos métodos direcionados para diversos alvos em sua infra-

estrutura. No host, um invasor pode interromper o serviço com força bruta contra uma aplicação, ou um invasor pode conhecer uma vulnerabilidade que existe no serviço onde sua aplicação está hospedada ou no sistema operacional que

é executado em seu servidor.

Contramedidas para ajudar a evitar a negação de serviço incluem:

Configure suas aplicações, serviços, e sistema operacional tendo em mente a negação de serviço.para ajudar a evitar a negação de serviço incluem: Mantenha-se atualizado com patches e atualizações de

Mantenha-se atualizado com patches e atualizações de segurança.sistema operacional tendo em mente a negação de serviço. Fortaleça o stack TCP/IP contra a negação

Fortaleça o stack TCP/IP contra a negação de serviço.atualizado com patches e atualizações de segurança. Certifique-se de que suas políticas de bloqueio de contas

Certifique-se de que suas políticas de bloqueio de contas não podem ser exploradas para fazer o bloqueio de contas de serviços bem conhecidas.Fortaleça o stack TCP/IP contra a negação de serviço. Certifique-se de que sua aplicação é capaz

Certifique-se de que sua aplicação é capaz de lidar com grandes volumes de tráfego e que passagens estão posicionadas para lidar com cargas absurdamente altas.para fazer o bloqueio de contas de serviços bem conhecidas. Reveja a funcionalidade do failover de

Reveja a funcionalidade do failover de sua aplicação.posicionadas para lidar com cargas absurdamente altas. Use um IDS que possa detectar potenciais ataques de

Use um IDS que possa detectar potenciais ataques de negação de serviço.Reveja a funcionalidade do failover de sua aplicação. Execução de Código Arbitrário Se um invasor pode

Execução de Código Arbitrário

Se um invasor pode executar códigos maliciosos em seu servidor, o invasor poderá comprometer os recursos do servidor ou preparar ataques futuros contra sistemas downstream. Os riscos apresentados pela execução de códigos

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

arbitrários aumentarão caso o processo do servidor sob o qual o código do invasor está em execução for privilegiado. Vulnerabilidades comuns incluem configuração fraca e servidores sem patches que permitem ataques de estouro do buffer e de passagem do caminho, que podem levar à execução de código arbitrário.

Contramedidas para ajudar a evitar a execução de código arbitrário incluem:

Configure o IIS para rejeitar URLs com "ajudar a evitar a execução de código arbitrário incluem: /" para evitar passagens no caminho. Tranque

/"

para evitar passagens no caminho.

Tranque utilidades e comandos do sistema com ACLs restritas.URLs com " /" para evitar passagens no caminho. Mantenha-se atualizado com patches e atualizações para

Mantenha-se atualizado com patches e atualizações para garantir que estouros de buffer recém-descobertos sejam rapidamente cobertos.Tranque utilidades e comandos do sistema com ACLs restritas. Acesso Não Autorizado Controles de acesso inadequados

Acesso Não Autorizado

Controles de acesso inadequados podem permitir que um usuário não autorizado tenha acesso a informações restritas ou execute operações restritas. Vulnerabilidades comuns incluem controles fracos de acesso IIS Web, incluindo permissões da web e permissões fracas NTFS.

Contramedidas para ajudar a evitar o acesso não autorizado incluem:

Configure permissões da web seguras.para ajudar a evitar o acesso não autorizado incluem: Tranque arquivos e pastas com permissões NTFS

Tranque arquivos e pastas com permissões NTFS restritas.autorizado incluem: Configure permissões da web seguras. Use os mecanismos de controle de acesso .NET Framework

Use os mecanismos de controle de acesso .NET Framework em suas aplicações ASP.NET, incluindo demandas para permissão principal e autorização da URL.Tranque arquivos e pastas com permissões NTFS restritas. Início da página Contramedidas e Ameaças na Aplicação

Contramedidas e Ameaças na Aplicação

Uma boa maneira de analisar ameaças no nível da aplicação é organizá-las em categorias de vulnerabilidade. As várias categorias usadas nas seções subseqüentes deste módulo e em todo este guia, juntas com as principais ameaças para a sua aplicação, estão resumidas na Tabela 2.

Tabela de Ameaças por Categoria de Vulnerabilidade da aplicação.

Categoria

Ameaças

Validação da

Estouro do buffer; scripting entre-sites; injeção SQL; canonicalização.

Entrada

Autenticação

Escuta na rede, ataques de força bruta, ataques de dicionários, replay de cookies, roubo de credenciais.

Autorização

Elevação de privilégio; revelação de dados confidenciais; manipulação de dados; ataques enganadores.

Gerenciamento

Interfaces de acesso não autorizado à administração, acesso não autorizado aos depósitos de configuração; busca de dados de configuração em texto claro; falta de responsabilidade individual; contas ultraprivilegiadas de serviço e processo.

da

configuração

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Dados

Acesso a dados confidenciais armazenados; escuta na rede; manipulação de dados.

confidenciais

Gerenciamento

Seqüestro de sessão, replay de sessão, ataque "man in the middle"

de sessão

Criptografia

Geração ou gerenciamento falho de chaves; encriptação fraca ou customizada.

Manipulação

Manipulação de string de consulta; manipulação de campo de formulário; manipulação de cabeçalho http.

de parâmetros

Gerenciamento

Revelação de informações, negação de serviço.

de exceções

Auditoria e

Usuário nega ter executado uma operação; invasor explora uma aplicação sem deixar rastros; invasor esconde seus rastros.

registro

Validação da Entrada

A validação da entrada é um problema de segurança se um invasor descobrir que sua aplicação faz suposições sem

fundamento sobre o tipo, extensão, formato, ou alcance dos dados de entrada. O invasor pode então fornecer cuidadosamente uma entrada fabricada que comprometerá sua aplicação.

Quando os pontos de entrada no nível do host e da rede estão totalmente seguros; as interfaces públicas expostas pela sua aplicação se tornam a única fonte de ataque. A entrada para a sua aplicação é um meio de testar o seu sistema e uma forma de executar códigos em benefício de um invasor. A sua aplicação confia cegamente na entrada? Se sim, sua aplicação pode estar suscetível a:

Estouros do bufferentrada? Se sim, sua aplicação pode estar suscetível a: Scripting entre-sites Injeção SQL Canonicalização A

Scripting entre-sitessua aplicação pode estar suscetível a: Estouros do buffer Injeção SQL Canonicalização A seguinte seção examina

Injeção SQLsuscetível a: Estouros do buffer Scripting entre-sites Canonicalização A seguinte seção examina estas

Canonicalizaçãoa: Estouros do buffer Scripting entre-sites Injeção SQL A seguinte seção examina estas vulnerabilidades em

A seguinte seção examina estas vulnerabilidades em detalhes, incluindo o que as torna possível.

Estouros do buffer

As vulnerabilidades relacionadas ao estouro do buffer podem levar aos ataques de negação de serviço ou injeção de códigos. Um ataque de negação de serviço causa um travamento do processo; a injeção de códigos altera o endereço de execução do programa para executar o código injetado pelo invasor. O seguinte fragmento de código ilustra um exemplo comum de vulnerabilidade de estouro de buffer.

voidSomeFunction(char*pszInput)

{

charszBuffer[10];

//Inputiscopiedstraightintothebufferwhennotypecheckingisperformed

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

strcpy(szBuffer,pszInput);

}

Códigos gerenciados .NET não são suscetíveis a este problema porque os limites das matrizes são checados automaticamente sempre que uma matriz é acessada. Isto torna a ameaça do ataque de estouro do buffer em códigos gerenciados uma questão menos preocupante. Ainda é uma preocupação, no entanto, especialmente onde códigos gerenciados chamam objetos de APIs ou COM não gerenciados. Contramedidas para ajudar a evitar estouros do buffer incluem:

Execute uma validação de entrada detalhada. Esta é a principal linha de defesa contra estouros do buffer. Apesar de poder haver um bug em sua aplicação que permita que a entrada esperada vá além dos limites de um contêiner, a entrada inesperada será a principal causa desta vulnerabilidade. Limite a entrada fazendo a sua validação por tipo, extensão, formato e alcance.para ajudar a evitar estouros do buffer incluem: Sempre que possível, limite o uso de códigos

Sempre que possível, limite o uso de códigos não gerenciados por sua aplicação, e inspecione cuidadosamente as APIs não gerenciadas para garantir que a entrada seja devidamente validada.a sua validação por tipo, extensão, formato e alcance. Inspecione os códigos gerenciados que chamam as

Inspecione os códigos gerenciados que chamam as APIs não gerenciadas para garantir que apenas os valores apropriados possam ser transmitidos como parâmetros para a API não gerenciada.para garantir que a entrada seja devidamente validada. Use a bandeira /GS para compilar códigos desenvolvidos

Use a bandeira /GS para compilar códigos desenvolvidos com o sistema de desenvolvimento do Microsoft Visual C++®. A bandeira /GS faz com que o compilador injete checagens de segurança no código compilado. Esta não é uma solução à prova de falhas ou uma substituição para o seu código de validação específico; ela, no entanto, protege os seus códigos contra ataques comuns de estouro do buffer. Para mais informações, veja a documentação do produto .NET Framework na página: http://msdn.microsoft.com/library/default.asp? a documentação do produto .NET Framework na página: http://msdn.microsoft.com/library/default.asp? url=/library/en-us/vccore/html/vclrfGSBufferSecurity.asp (em inglês) e o artigo do Microsoft Knowledge Base 325483 "Support WebCast: Compiler Security Checks: The /GS compiler switch" na página:

Exemplo de uma Injeção de Código através dos Estouros do Buffer

Um invasor pode explorar uma vulnerabilidade de estouro do buffer para injetar códigos. Com este ataque, um usuário mal intencionado explora um buffer não checado num processo fornecendo um valor de entrada cuidadosamente construído que reescreve o stack do programa e altera as funções do endereço de retorno. Isto causa uma execução que pula para o código injetado do invasor.

O código do invasor geralmente acaba sendo executado sob o contexto de segurança do processo. Isto enfatiza a importância do uso de contas de processo menos privilegiadas. Se o segmento atual está personificando, o código do invasor acaba sendo executado sob o contexto de segurança definido pelo token de personificação do segmento. A primeira coisa que um invasor geralmente faz é chamar a API RevertToSelf para reverter o contexto de segurança no nível do processo, que o invasor espera que tenha privilégios mais altos.

Certifique-se de validar a entrada para tipo e extensão, especialmente antes de chamar códigos não gerenciados porque eles são particularmente suscetíveis a estouros do buffer.

Scripting Entre Sites (XSS)

Um ataque XSS pode fazer com que códigos arbitrários sejam executados no navegador de um usuário enquanto o navegador está conectado a um site confiável da web. O ataque tem como alvo os usuários de sua aplicação e não a aplicação em si, mas ele se utiliza dela como um veículo para o ataque.

Como o código do script pode ser obtido através de download pelo navegador a partir de um site confiável, o navegador não tem como saber que o código não é legítimo. As zonas de segurança do Internet Explorer não oferecem

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

defesas. Como o código do invasor tem acesso aos cookies associados com o site confiável e estão armazenados no computador do usuário local, os cookies de autenticação de um usuário geralmente são o alvo do ataque.

Exemplos de Scripting Entre Sites

Para iniciar o ataque, o invasor deve convencer o usuário a clicar num hyperlink cuidadosamente criado, por exemplo, incorporando um link num e-mail enviado para o usuário ou adicionando um link malicioso a um posting de um fórum de discussões. O link direciona para uma página vulnerável em sua aplicação que ecoa a entrada invalidada de volta para o navegador na corrente de output HTML. Por exemplo, considere os dois links seguintes.

Este é um link legítimo:

www.yourwebapplication.com/logon.aspx?username=bob

Este é um link malicioso:

www.yourwebapplication.com/logon.aspx?username=<script>alert

('hackercode')</script>

Se a aplicação web pegar a série de consulta, falhar ao validado adequadamente, e retorná-lo ao navegador, o código do script é executado no navegador. O exemplo anterior mostra uma mensagem pop-up inofensiva. Com o script apropriado, o invasor pode facilmente extrair o cookie de autenticação do usuário, publicá-lo em seu site, e subseqüentemente fazer uma solicitação para o site alvo como se fosse o usuário autenticado.

Contramedidas para evitar XSS incluem:

Execute uma validação cuidadosa da entrada. Suas aplicações devem garantir que a entrada de seqüências de consultas, campos de formulários, e os cookies sejam válidos para a aplicação. Considere toda a entrada de usuário potencialmente malicioso, e filtre ou esterilize para o contexto do código downstream. Valide toda a entrada para valores válidos conhecidos e então rejeite qualquer outra entrada. Use expressões regulares para validar dados de entrada recebidos através de seqüências de consultas, cookies e campos de formulários HTML.usuário autenticado. Contramedidas para evitar XSS incluem: Use funções HTMLEncode e URLEncode para codificar

Use funções HTMLEncode e URLEncode para codificar qualquer output que inclua a entrada de usuário. Isto converte HTMLEncode e URLEncode para codificar qualquer output que inclua a entrada de usuário. Isto converte scripts executáveis em HTML inofensivo.

Injeção SQL

Um ataque de injeção SQL explora as vulnerabilidades na validação de entrada para executar comandos arbitrários no banco de dados. Isto pode ocorrer quando a sua aplicação usa a entrada para construir declarações dinâmicas do SQL para acessar o banco de dados. Pode ocorrer também caso o seu código utilize procedimentos armazenados que são seqüências transmitidas que contêm entrada não filtrada de usuários. Com um ataque de injeção SQL, o invasor pode executar comandos arbitrários no banco de dados. O problema é ampliado se a aplicação usa uma conta ultra privilegiada para se conectar ao banco de dados. Nesta instância, é possível usar o servidor do banco de dados para executar comandos do sistema operacional e potencialmente comprometer outros servidores, além de ser capaz de buscar, manipular e destruir dados.

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Exemplo de Injeção SQL

Sua aplicação pode estar suscetível a ataques de injeção SQL quando você incorpora entradas não válidas de usuários em consultas do banco de dados. Mais suscetível ainda são os códigos que constroem declarações dinâmicas do SQL com entrada não filtrada de usuários. Considere o seguinte código:

SqlDataAdaptermyCommand=newSqlDataAdapter(

"SELECT*FROMUsers

WHEREUserName='"+txtuid.Text+"'",conn);

Os invasores podem injetar SQL ao finalizarem a declaração intencionada do SQL com o caractere aspa única, seguido do caractere ponto e virgula para começar um novo comando, e então executar o comando de sua escolha. Considere a seguinte série de caracteres inseridas no campo txtuid.

';DROPTABLECustomers-

Isto resulta na seguinte declaração sendo submetida ao banco de dados para execução.

SELECT*FROMUsersWHEREUserName='';DROPTABLECustomers--'

Isto deleta a tabela Customers, assumindo que o login da aplicação possui permissões suficientes no banco de dados (outra razão para usar um login com menos privilégio no banco de dados). As linhas duplas (--) denotam um comentário do SQL e é usado para comentar qualquer outro caractere adicionado pelo programador, como a aspa deixada.

Nota O ponto e vírgula não é na verdade necessário. O SQL Server executará dois comandos separados por espaços.

Outros truques mais sutis podem ser desempenhados. O fornecimento desta entrada no campo txtuid:

'OR1=1-

cria este comando:

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Como 1=1 é sempre verdadeiro, o invasor busca qualquer fileira de dados da tabela do usuário.

Contramedidas para evitar a injeção SQL incluem:

Execute validação cuidadosa da entrada. Sua aplicação deve validar sua entrada antes de enviar uma solicitação para o banco de dados.usuário. Contramedidas para evitar a injeção SQL incluem: Use os procedimentos armazenados parametrizados para acesso

Use os procedimentos armazenados parametrizados para acesso ao banco de dados para garantir que as seqüências de entrada não sejam tratadas como declarações executáveis. Se você não puder usar os procedimentos armazenados, use os parâmetros do SQL quando for construir comandos do SQL.antes de enviar uma solicitação para o banco de dados. Use contas com menos privilégios para

Use contas com menos privilégios para se conectar ao banco de dados.os parâmetros do SQL quando for construir comandos do SQL. Canonicalização As formas diferentes de entrada

Canonicalização

As formas diferentes de entrada determinadas pelo mesmo nome padrão (nome canônico), são chamadas de canonicalização. Os códigos são particularmente suscetíveis às questões de canonicalização se são tomadas decisões de segurança com base no nome de um recurso que é transmitido para o programa como uma entrada. Arquivos, caminhos, e URLs são tipos de recursos vulneráveis à canonicalização porque em cada caso existem muitas maneiras diferentes de se representar o mesmo nome. Os nomes de arquivos também são problemáticos. Por exemplo, um

único arquivo poderia ser representado como:

c:\temp\somefile.dat somefile.dat c:\temp\subdir\ \somefile.dat c:\ temp\ somefile.dat \somefile.dat

Em condições ideais, o seu código não aceita nomes de arquivos de entrada. Se ele aceitar, o nome deve ser convertido para a sua forma canônica anterior da tomada de decisões de segurança, como se o acesso tivesse sido concedido ou negado àquele arquivo específico.

Contramedidas para lidar com questões de canonicalização incluem:

Evite nomes de arquivos de entrada sempre que possível e ao invés disso use caminhos de arquivos absolutos que não podem ser alterados pelo usuário final.para lidar com questões de canonicalização incluem: Certifique-se de que os nomes de arquivos sejam bem

Certifique-se de que os nomes de arquivos sejam bem formados (se for absolutamente necessário aceitar nomes como entrada) e os valide dentro do contexto de sua aplicação. Por exemplo, verifique se eles estão dentro da hierarquia do diretório de sua aplicação.absolutos que não podem ser alterados pelo usuário final. Certifique-se de que a codificação de caracteres

Certifique-se de que a codificação de caracteres está determinada corretamente para limitar como a entrada pode ser representada. Verifique se o Web.config de sua aplicação está configurada nos atributos requestEncoding e responseEncoding no elemento <globalization> . requestEncoding e responseEncoding no elemento <globalization>.

Autenticação

D

d

d

d

i it

i

t

di

õ

d

i

d

t

ti

ã

di

í

i

S

l

ã

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

o forem escolhidos e implementados corretamente, o mecanismo de autenticação pode expor vulnerabilidades que os invasores podem explorar para ganharem acesso ao seu sistema. As principais ameaças que exploram as vulnerabilidades da autenticação são:

epen

en

o

os seus requ s

os, ex s em

versas opç es

e mecan smos

e au en

caç

o

spon ve s.

e e es n

Escuta na redeopç es e mecan smos e au en caç o spon ve s. e e es

Ataques de força brutamecan smos e au en caç o spon ve s. e e es n Escuta na

Ataques de dicionárioo spon ve s. e e es n Escuta na rede Ataques de força bruta Ataques

Ataques de replay de cookiesna rede Ataques de força bruta Ataques de dicionário Roubo de credenciais Escuta na rede Se

Roubo de credenciaisbruta Ataques de dicionário Ataques de replay de cookies Escuta na rede Se credenciais de autenticação

Escuta na rede

Se credenciais de autenticação forem transmitidas em texto puro do cliente para o servidor, um invasor armado com software rudimentar de monitoramento de rede num host da mesma rede pode capturar o tráfego e obter nomes e senhas de usuários.

Contramedidas para evitar a escuta na rede incluem:

Use mecanismos de autenticação que não transmitem a senha através da rede, como o protocolo Kerberos ou a autenticação do Windows.Contramedidas para evitar a escuta na rede incluem: Certifique-se de que as senhas serão encriptadas (se

Certifique-se de que as senhas serão encriptadas (se for absolutamente necessário transmiti-las através da rede) ou use um canal de comunicação encriptado, por exemplo, com SSL.como o protocolo Kerberos ou a autenticação do Windows. Ataques de Força Bruta Os ataques de

Ataques de Força Bruta

Os ataques de força bruta dependem do poder computacional para descobrir senhas quebradas ou outros segredos com quebra ou encriptação. Para mitigar o risco, utilize senhas fortes.

Ataques de Dicionário

Este ataque é usado para a obtenção de senhas. A maioria dos sistemas de senhas não armazena senhas encriptadas ou em texto puro. Eles evitam senhas encriptadas porque uma chave comprometida leva ao comprometimento de todas as senhas no armazém de dados. Chaves perdidas significam que todas as senhas estão invalidadas.

A maioria das implementações armazenadas de usuários tem hashes de senhas (ou passoword digests). Os usuários são autenticados reprocessando o pedaço baseado no valor da senha fornecido pelo o usuário e comparando-o com o pedaço do valor armazenado no banco de dados. Se um invasor conseguir obter a lista de hashes de senhas, um ataque de força bruta pode ser usado para descobrir os hashes das senhas.

Com o ataque de dicionário, um invasor usa um programa para passar todas as palavras de um dicionário (ou de diversos dicionários em línguas diferentes) e computa a quebra para cada palavra. O pedaço resultante é comparado com o valor no armazém de dados. Senhas fracas como "Corinthians" (um time favorito) ou "Mustang" (um carro favorito) serão descobertas rapidamente. Senhas fortes como "?oCeNUnkVay6bMnhçEnHA!", são menos passíveis de serem descobertas.

Nota Assim que o invasor tiver obtido a lista de hashes de senhas, o ataque de dicionário pode ser executado offline e não requer interação com a aplicação.

Contramedidas para evitar ataques de dicionário incluem:

07/03/13

Ameaças

e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Use senhas fortes que sejam complexas, que não sejam palavras normais e que contenham uma mistura de maiúsculas, minúsculas, números, e caracteres especiais.na Web: Ameaças e Contramedidas de Segurança na Web Armazene hashes não reversíveis de senhas no

Armazene hashes não reversíveis de senhas no depósito do usuário.Além disso, combine um valor de salt (um número aleatório forte criptografado) com a quebra da senha.maiúsculas, minúsculas, números, e caracteres especiais. Para mais informações sobre o armazenamento de hashes de

Para mais informações sobre o armazenamento de hashes de senhas com sal adicional, veja o módulo, "Construindo um Acesso Seguro aos Dados." (em inglês)

Ataques de Replay de Cookies

Com este tipo de ataque, o invasor captura o cookie de autenticação do usuário monitorando o software e faz o seu replay para a aplicação para ganhar acesso sob uma falsa identidade.aos Dados." (em inglês) Ataques de Replay de Cookies Contramedidas para evitar o replay de cookies

Contramedidas para evitar o replay de cookies incluem:a aplicação para ganhar acesso sob uma falsa identidade. Use um canal de comunicação encriptado fornecido

Use um canal de comunicação encriptado fornecido pelo SSL sempre que um cookie de autenticação for transmitido.Contramedidas para evitar o replay de cookies incluem: Use um intervalo (timeout) de cookies para um

Use um intervalo (timeout) de cookies para um valor que força a autenticação após um intervalo de tempo relativamente curto. Apesar não evitar ataques de replay, esta medida reduz o intervalo de tempo no qual o invasor pode fazer o replay de uma solicitação sem ser forçado a re-autenticar porque o tempo da sessão foi esgotado.SSL sempre que um cookie de autenticação for transmitido. Roubo de Credenciais Se a sua aplicação

Roubo de Credenciais

Se a sua aplicação implementa o seu próprio armazém de usuários contendo nomes e senhas de contas de usuários, compare sua segurança com os armazéns de credenciais fornecidos pela plataforma, por exemplo, um serviço de diretório do Microsoft Active Directory® ou o armazém de usuários do Security Accounts Manager (SAM). O histórico do navegador e do cache também podem armazenar informações de login de usuários para uso futuro. Se o terminal for acessado por outra pessoa que não o usuário que havia feito o logon, e a mesma página for aberta, o login salvo estará disponível.

Contramedidas para evitar o roubo de credenciais incluem:

Use e reforce o uso de senhas fortes.Contramedidas para evitar o roubo de credenciais incluem: Armazene verificadores de senhas na forma de hashes

Armazene verificadores de senhas na forma de hashes com sal adicionado.credenciais incluem: Use e reforce o uso de senhas fortes. Reforce o trancamento de contas para

Reforce o trancamento de contas para contas de usuários finais após certo número de tentativas.de senhas na forma de hashes com sal adicionado. Para barrar a possibilidade do cache do

Para barrar a possibilidade do cache do navegador permitir o acesso do login, crie funcionalidade que permite ao usuário escolher não salvar as credenciais, ou force esta funcionalidade como uma política padrão.de usuários finais após certo número de tentativas. Início da página Autorização Com base na identidade

Autorização

Com base na identidade do usuário ou na função de membro, a autorização para um determinado recurso é concedida ou negada. As principais ameaças que exploram as vulnerabilidades da autorização incluem:

Elevação de privilégioque exploram as vulnerabilidades da autorização incluem: technet.microsoft.com/pt-br/library/dd569900(d=printer).aspx

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças

e Contramedidas de Segurança na Web

Revelação de dados confidenciaisna Web: Ameaças e Contramedidas de Segurança na Web Manipulação de dados Ataques enganosos Elevação de

Manipulação de dadosde Segurança na Web Revelação de dados confidenciais Ataques enganosos Elevação de Privilégio Ao criar um

Ataques enganososRevelação de dados confidenciais Manipulação de dados Elevação de Privilégio Ao criar um modelo de

Elevação de Privilégio

Ao criar um modelo de autorização, é preciso considerar a ameaça de um invasor tentando elevar os privilégios para uma conta poderosa como um membro do grupo de administradores locais ou conta do sistema local. Ao fazer isto, o

invasor é capaz de ter controle total sobre a aplicação e máquina local. Por exemplo, com a programação clássica ASP,

a chamada da API RevertToSelf a partir de um componente pode fazer com que o segmento em execução seja executado como a conta do sistema local com maior poder privilégios na máquina local.

A principal contramedida que pode ser usada para evitar a elevação de privilégio é o uso de processos, serviços e

contas de usuários com privilégio mínimo.

Revelação de Dados Confidenciais

A revelação de dados confidenciais pode ocorrer se dados desta natureza forem visualizados por usuários não

autorizados. Dados confidenciais incluem dados de aplicações específicas como números de cartões de crédito, detalhes sobre empregados, registros financeiros, e outros juntos com dados de configuração da aplicação como credenciais de contas de serviço e seqüências de conexão de bancos de dados. Para evitar a revelação de dados confidenciais, é preciso protegê-los em armazéns persistentes como bancos de dados e arquivos de configuração, e durante o trânsito através da rede. Apenas usuários autenticados e autorizados poderão acessar os seus dados específicos. O acesso aos dados de configuração no nível do sistema deve estar restrito aos administradores.

Contramedidas para evitar a revelação de dados confidenciais incluem:

Execute checagens de funções antes de permitir o acesso às operações com potencial para a revelação de dados confidenciais.para evitar a revelação de dados confidenciais incluem: Use ACLs fortes para proteger recursos do Windows.

Use ACLs fortes para proteger recursos do Windows.com potencial para a revelação de dados confidenciais. Use encriptação padrão para armazenar dados confidenciais

Use encriptação padrão para armazenar dados confidenciais em arquivos de configuração e em bancos de dados.Use ACLs fortes para proteger recursos do Windows. Manipulação de Dados A manipulação (tampering) de dados

Manipulação de Dados

A manipulação (tampering) de dados trata-se da modificação não autorizada de dados.

Contramedidas para evitar a manipulação de dados incluem:

Use controles fortes de acesso para proteger dados em armazéns persistentes para garantir que apenas usuários autorizados possam acessar e modificar os dados.Contramedidas para evitar a manipulação de dados incluem: Use segurança baseada em funções para diferenciar os

Use segurança baseada em funções para diferenciar os usuários que podem visualizar os dados daqueles que podem modificá-los.usuários autorizados possam acessar e modificar os dados. Ataques enganosos Um ataque enganoso (luring) ocorre quando

Ataques enganosos

Um ataque enganoso (luring) ocorre quando uma entidade (usuário, grupo ou recurso), com poucos privilégios, faz com que outra, com mais privilégios, execute uma ação em seu nome.

07/03/13

Ameaças e Contramedidas

de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Para barrar esta ameaça, é preciso restringir o acesso a códigos de confiança com a autorização adequada. O uso da segurança de acesso a códigos do .NET Framework ajuda neste sentido, ao autorizar um código de chamada sempre que um recurso seguro é acessado ou uma operação privilegiada é executada.

Gerenciamento da Configuração

Muitas aplicações suportam interfaces de gerenciamento de configuração e funcionalidade que permite aos operadores e administradores alterarem parâmetros de configuração, atualizarem o conteúdo de sites, e executarem procedimentos de manutenção rotineiros. As principais ameaças ao gerenciamento da configuração incluem:

Acesso não autorizado às interfaces de administraçãoameaças ao gerenciamento da configuração incluem: Acesso não autorizado aos armazéns de configurações

Acesso não autorizado aos armazéns de configuraçõesAcesso não autorizado às interfaces de administração Retorno de segredos de configuração em texto puro Falta

Retorno de segredos de configuração em texto puroAcesso não autorizado aos armazéns de configurações Falta de responsabilidade individual Contas

Falta de responsabilidade individualRetorno de segredos de configuração em texto puro Contas ultraprivilegiadas de serviços e processos Acesso

Contas ultraprivilegiadas de serviços e processosem texto puro Falta de responsabilidade individual Acesso Não Autorizado às Interfaces de Administração

Acesso Não Autorizado às Interfaces de Administração

Interfaces de administração geralmente são fornecidas através de páginas adicionais da web ou aplicações da web separadas que permitem aos administradores, operadores, e desenvolvedores de conteúdo gerenciarem o conteúdo e a configuração do site. Tais interfaces de administração devem estar disponíveis apenas para usuários restritos e autorizados. Usuários mal-intencionados capazes de acessar uma função de gerenciamento da configuração podem desfigurar um site, acessar sistemas e bancos de dados downstream, ou tirar a ação da aplicação através da corrupção dos dados de configuração.

Contramedidas para evitar o acesso não autorizado às interfaces de administração incluem:

Minimize o número de interfaces de administração.não autorizado às interfaces de administração incluem: Use autenticação forte, por exemplo, com certificados. Use

Use autenticação forte, por exemplo, com certificados.Minimize o número de interfaces de administração. Use autorização forte com guardiões múltiplos. Considere

Use autorização forte com guardiões múltiplos.Use autenticação forte, por exemplo, com certificados. Considere o suporte apenas da administração local. Se a

Considere o suporte apenas da administração local. Se a administração remota for absolutamente essencial, use canais encriptados, por exemplo, com tecnologia VPN ou SSL, dada a natureza confidencial dos dados transmitidos através de interfaces administrativas. Para reduzir ainda mais o risco, considere o uso de políticas IPSec para limitar a administração remota aos computadores da rede interna.Use autorização forte com guardiões múltiplos. Acesso Não Autorizado aos Repositórios de Configurações

Acesso Não Autorizado aos Repositórios de Configurações

Dada a natureza confidencial dos dados mantidos nos repositórios de configurações, é preciso garantir que estes locais estejam adequadamente protegidos.

Contramedidas para proteger os repositórios de configurações incluem:

Configure ACLs restritas nos arquivos de configuração baseados em texto como Machine.config e Web.config.para proteger os repositórios de configurações incluem: Mantenha repositórios de configurações customizados fora

Mantenha repositórios de configurações customizados fora do espaço da web. Isto remove o potencial para download de configurações de servidores web para explorar suas vulnerabilidades.baseados em texto como Machine.config e Web.config. technet.microsoft.com/pt-br/library/dd569900(d=printer).aspx

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Retorno de Segredos de Configuração em Texto puro

Restringir o acesso para o armazém de configurações é absolutamente necessário. Por ser um importante mecanismo de defesa completo, deve-se tentar encriptar dados confidenciais como seqüências de conexão e senhas. Isto ajuda a evitar que invasores externos obtenham dados de configuração confidenciais. Isto também evita que administradores e funcionários internos mal-intencionados obtenham dados confidenciais como seqüências de conexão de bancos de dados e credenciais de contas que podem permitir que eles tenham acesso a outros sistemas.

Falta de Responsabilidade Individual

A falta de auditoria e de registros de mudanças feitas nas informações sobre as configurações ameaça a habilidade para

identificação sobre quando as mudanças foram feitas e quem fez estas mudanças. Quando uma mudança de transgressão é feita por um erro de um operador honesto ou por uma mudança mal-intencionada para garantir acesso privilegiado, uma ação deve ser tomada, em primeiro lugar, para corrigir a alteração. Então, devem ser aplicadas medidas preventivas para evitar que alterações de transgressão possam ser introduzidas da mesma maneira. Lembre-se que a auditoria e os registros podem ser driblados por uma conta compartilhada; isto se aplica às contas administrativas e às contas de serviço/aplicação/usuário. As contas administrativas não podem ser compartilhadas. As contas de serviço/aplicação/usuário devem ser destinadas a um nível que permita a identificação de uma única fonte de acesso utilizando a conta, e que contenha qualquer dano aos privilégios concedidos àquela conta.

Contas Ultra Privilegiadas de Serviços e Aplicações

Se as contas de serviços e aplicações têm acesso garantido para efetuar alterações nas informações de configuração no sistema, elas podem ser manipuladas por um invasor para fazer isso. O risco desta ameaça pode ser mitigado através da adoção de uma política de uso de contas de aplicações e serviços menos privilegiadas. Seja cauteloso ao conceder às contas a habilidade de modificar suas próprias informações de configuração a não ser que seja explicitamente necessário por design.

Dados Confidenciais

Dados sensíveis estão sujeitos a uma variedade de ameaças. Ataques que tentam visualizar ou modificar dados confidenciais podem ter como alvo redes e armazéns de dados persistentes. As principais ameaças aos dados confidenciais incluem:

Acesso a dados confidenciais armazenadosAs principais ameaças aos dados confidenciais incluem: Escuta na rede Manipulação de dados Acesso a Dados

Escuta na redeincluem: Acesso a dados confidenciais armazenados Manipulação de dados Acesso a Dados Confidenciais

Manipulação de dadosAcesso a dados confidenciais armazenados Escuta na rede Acesso a Dados Confidenciais Armazenados É preciso proteger

Acesso a Dados Confidenciais Armazenados

É preciso proteger dados confidenciais armazenados para evitar que um usuário - mal intencionado ou não - tenha acesso a eles.

Contramedidas para proteger dados confidenciais armazenados incluem:

Use ACLs restritas nos repositórios de dados persistentes que contém dados confidenciais.para proteger dados confidenciais armazenados incluem: Armazene dados encriptados. Use autorização baseada em

Armazene dados encriptados.de dados persistentes que contém dados confidenciais. Use autorização baseada em função e identidade para

Use autorização baseada em função e identidade para garantir que apenas o usuário ou usuários com o nível apropriado de autoridade terá permissão de acesso aos dados confidenciais. Use segurança baseada em funçãoque contém dados confidenciais. Armazene dados encriptados. technet.microsoft.com/pt-br/library/dd569900(d=printer).aspx

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

para diferenciar os usuários que podem visualizar os dados daqueles que podem modificá-los.

Escuta na rede

Os dados em HTTP para aplicações web viajam através das redes em texto puro e estão sujeitos à ataques de escuta na rede, onde um invasor utiliza um software de monitoramento de rede para capturar e potencialmente modificar dados confidenciais.

Contramedidas para evitar a escuta na rede e proporcionar privacidade incluem:

Encriptação dos dados.evitar a escuta na rede e proporcionar privacidade incluem: Uso de um canal de comunicação encriptado,

Uso de um canal de comunicação encriptado, como o SSL, por exemplo.e proporcionar privacidade incluem: Encriptação dos dados. Manipulação de Dados A manipulação (tampering) de dados

Manipulação de Dados

A manipulação (tampering) de dados se refere à modificação não autorizada de dados, muitas vezes quando eles são

transmitidos através da rede.

Uma contramedida para evitar a manipulação de dados é proteger os dados confidenciais transmitidos através da rede com protocolos resistentes à manipulação como os códigos de autenticação de mensagens quebradas (hashed message authentication codes - HMACs).

Um HMAC promove a integridade da mensagem da seguinte forma:

1. Quem envia a mensagem utiliza uma chave secreta compartilhada para criar uma quebra (hash) baseada na carga da mensagem.

2. Quem envia, transmite a quebra (hash) junto com a carga da mensagem.

3. Quem recebe usa a chave compartilhada para recalcular a quebra com base na carga da mensagem enviada. O recebedor então compara o novo valor de quebra com o valor de quebra transmitido. Se forem iguais, a mensagem então não pode ter sido manipulada.

Gerenciamento da Sessão

O gerenciamento de sessão para aplicações web é uma responsabilidade da camada de aplicação. A segurança da

sessão é crítica para a segurança total da aplicação.

As principais ameaças no gerenciamento de sessão incluem:

Seqüestro de sessãoAs principais ameaças no gerenciamento de sessão incluem: Replay de sessão Ataques "man in the middle"

Replay de sessãono gerenciamento de sessão incluem: Seqüestro de sessão Ataques "man in the middle" Seqüestro de Sessão

Ataques "man in the middle"de sessão incluem: Seqüestro de sessão Replay de sessão Seqüestro de Sessão Um ataque de seqüestro

Seqüestro de Sessão

Um ataque de seqüestro de sessão ocorre quando um invasor utiliza um software de monitoramento de rede para capturar o token (muitas vezes um cookie) de autenticação usado para representar a sessão de um usuário com uma

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

aplicação. Com o cookie capturado, o invasor pode enganar a sessão do usuário e ganhar acesso à aplicação. O invasor possui nível de privilégios igual ao do usuário legítimo.

Contramedidas para evitar o seqüestro de sessões incluem:

Use o SSL para criar um canal de comunicação e transmita o cookie de autenticação apenas através de uma conexão HTTPS.Contramedidas para evitar o seqüestro de sessões incluem: Implemente a funcionalidade do logout para permitir que

Implemente a funcionalidade do logout para permitir que um usuário finalize uma sessão que força a autenticação se outra sessão for iniciada.de autenticação apenas através de uma conexão HTTPS. Certifique-se de limitar o período de expiração no

Certifique-se de limitar o período de expiração no cookie da sessão caso você não utilize o SSL. Apesar desta medida não evitar o seqüestro de sessão, ela reduz o tempo que uma janela fica disponível para o invasor.que força a autenticação se outra sessão for iniciada. Replay de Sessão O replay da sessão

Replay de Sessão

O replay da sessão ocorre quando um token da sessão do usuário é interceptado e submetido por um invasor para desviar do mecanismo de autenticação. Por exemplo, se o token da sessão estiver em texto puro em um cookie ou URL, um invasor poderá detectá-lo. O invasor então submete uma solicitação usando o token da sessão seqüestrada.

Contramedidas para ajudar a lidar com a ameaça de replay de sessão incluem:

Re-autentique quando estiver executando funções críticas. Por exemplo, antes de executar uma transferência de dinheiro numa aplicação bancária, obrigue o usuário fornecer a senha da conta novamente.ajudar a lidar com a ameaça de replay de sessão incluem: Finalize as sessões adequadamente, incluindo

Finalize as sessões adequadamente, incluindo todos os tokens da sessão e os cookies.obrigue o usuário fornecer a senha da conta novamente. Crie uma opção "não se lembre de

Crie uma opção "não se lembre de mim" que não permita que nenhum dos dados da sessão ser armazenados no cliente.incluindo todos os tokens da sessão e os cookies. Ataques "Man in the Middle" Um ataque

Ataques "Man in the Middle"

Um ataque "man in the middle" (homem no meio) ocorre quando o invasor intercepta mensagens enviadas entre você e a pessoa a quem a mensagem se destina. O invasor então altera a sua mensagem e a envia àquela pessoa. Quem recebe a mensagem, vê que ela veio de você, e age de acordo. Quando esta pessoa envia uma mensagem de volta, o invasor a intercepta, altera o seu conteúdo, e a devolve a você. Vocês dois jamais saberão que foram atacados.

Qualquer solicitação da rede envolvendo a comunicação entre cliente e servidor, incluindo solicitações na web, solicitações de Distributed Component Object Model (DCOM), e chamadas para componentes remotos e serviços web, estão sujeitas a ataques tipo "man in the middle".

Contramedidas para evitar ataques tipo "man in the middle" incluem:

Use criptografia. Se você encriptar os dados antes de transmiti-los, o invasor ainda poderá interceptá-los, mas não poderá lê-los ou alterá-los. Se o invasor não puder lê-los, ele não saberá qual parte alterar. Se o invasor modificar cegamente sua mensagem encriptada, então a pessoa cuja mensagem é destinada não poderá decriptá-la corretamente e, como resultado disso, saberá que a mensagem foi adulterada.evitar ataques tipo "man in the middle" incluem: Use os Códigos de Autenticação de Mensagens Quebradas

Use os Códigos de Autenticação de Mensagens Quebradas (Hashed Message Authentication Codes - HMACs). Se um invasor altera a mensagem, o recálculo do HMAC no recipiente falhará e os dados poderão ser rejeitados como inválidos.como resultado disso, saberá que a mensagem foi adulterada. technet.m i croso f t.com / pt-

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Criptografia

A maioria das aplicações usa a criptografia para protegerem dados e garantir que eles permaneçam privados e

inalterados. As principais ameaças envolvendo o uso da criptografia em suas aplicações são:

Geração ou gerenciamento pobre de chavesenvolvendo o uso da criptografia em suas aplicações são: Encriptação customizada ou fraca Enganação com o

Encriptação customizada ou fracasão: Geração ou gerenciamento pobre de chaves Enganação com o Checksum Geração ou gerenciamento pobre

Enganação com o Checksumpobre de chaves Encriptação customizada ou fraca Geração ou gerenciamento pobre de chave Os invasores podem

Geração ou gerenciamento pobre de chave

Os invasores podem decriptar dados encriptados se tiverem acesso à chave de encriptação ou se puderem deduzi-la. Os invasores podem descobrir uma chave se as chaves forem gerenciadas de forma pobre ou se forem geradas de forma não-aleatória.

Contramedidas para lidar com a ameaça da geração e do gerenciamento pobre de chaves incluem:

Use rotinas de encriptação embutidas que incluem o gerenciamento seguro de chaves. A interface de programação de aplicações de Proteção de Dados (Data Protection application programming interface - DPAPI) é um exemplo de um serviço de encriptação oferecido pelo Windows 2000 e em sistemas operacionais posteriores onde o sistema operacional gerencia a chave.da geração e do gerenciamento pobre de chaves incluem: Use funções fortes e aleatórias para geração

Use funções fortes e aleatórias para geração de chaves e armazene a chave em um local restrito - por exemplo, numa chave de registro protegida com uma ACL restrita - se você utilizar um mecanismo de encriptação que requer a geração ou gerenciamento da chave.posteriores onde o sistema operacional gerencia a chave. Faça a encriptação da chave usando o DPAPI

Faça a encriptação da chave usando o DPAPI para segurança extra.que requer a geração ou gerenciamento da chave. Altere a validade das chaves regularmente. Encriptação

Altere a validade das chaves regularmente.encriptação da chave usando o DPAPI para segurança extra. Encriptação Fraca ou Customizada Um algoritmo de

Encriptação Fraca ou Customizada

Um algoritmo de encriptação não oferecerá nenhuma segurança se a encriptação for violada ou estiver vulnerável a violação por força bruta. Algoritmos customizados são particularmente vulneráveis se não tiverem sido testados. Ao

invés deles, use algoritmos de encriptação publicados e bem conhecidos que já resistiram a anos de ataques rigorosos

e exames rigorosos.

Contramedidas que lidam com as vulnerabilidades de encriptação fraca ou customizada incluem:

Não desenvolva os seus próprios algoritmos customizados.de encriptação fraca ou customizada incluem: Use os serviços comprovados de criptografia fornecidos pela

Use os serviços comprovados de criptografia fornecidos pela plataforma.Não desenvolva os seus próprios algoritmos customizados. Mantenha-se informado sobre algoritmos violados e as

Mantenha-se informado sobre algoritmos violados e as técnicas utilizadas para violá-los.comprovados de criptografia fornecidos pela plataforma. Enganação com o Checksum Não confie nos hashes (quebras)

Enganação com o Checksum

Não confie nos hashes (quebras) que oferecem integridade de dados para mensagens transmitidas através das redes. Hashes como o Safe Hash Algorithm (SHA1) e o algoritmo de compressão do Message Digest (MD5) podem ser interceptados e alterados. Considere a seguinte mensagem de código UTF-8 base 64 com um Message Authentication Code (MAC) anexado.

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Textopuro:Place10orders.

Hash:T0mUNdEQh13IO9oTcaP4FYDX6pU=

Se um invasor interceptar a mensagem ao monitorar a rede, ele poderá atualizar a mensagem e re-computar o hash (adivinhando o algoritmo que foi usado). Por exemplo, a mensagem poderia ser alterada para:

Textopuro:Place100orders.

Hash:oEDuJpv/ZtIU7BXDDNv17EAHeAU=

Quando os recebedores processam a mensagem, e executam o texto puro ("Place 100 orders") através do algoritmo em "hash", e então re-computam o hash, o hash que calcularam será igual àquele que o invasor computou.

Para barrar este ataque, use um MAC ou HMAC. O algoritmo padrão de encriptação de dados triplo de código de autenticação de mensagem (Message Authentication Code Triple Data Encryption Standard - MACTripleDES) computa um MAC, e o HMACSHA1 computa um HMAC. Ambos usam uma chave para produzir um checksum. Com estes algoritmos, um invasor precisa saber a chave para gerar um checksum que computaria corretamente no recebedor.

Manipulação de Parâmetros

Os ataques de manipulação de parâmetros compõem uma classe de ataque que depende da modificação dos dados do parâmetro enviados entre o cliente e a aplicação web. Isto inclui seqüências de consultas, campos de formulários, cookies, e cabeçalhos HTTP. As principais ameaças de manipulação de parâmetros são:

Manipulação de seqüências de consultasAs principais ameaças de manipulação de parâmetros são: Manipulação de campos de formulários Manipulação de

Manipulação de campos de formuláriosparâmetros são: Manipulação de seqüências de consultas Manipulação de Cookies Manipulação de cabeçalhos do

Manipulação de Cookiesde consultas Manipulação de campos de formulários Manipulação de cabeçalhos do HTTP Manipulação de

Manipulação de cabeçalhos do HTTPde campos de formulários Manipulação de Cookies Manipulação de seqüências de consultas Os usuários

Manipulação de seqüências de consultas

Os usuários podem facilmente manipular os valores da seqüência de consultas transmitidos pelo HTTP GET do cliente para o servidor porque eles são exibidos na barra de endereços de URL do navegador. Se a sua aplicação depende dos valores da seqüência de consultas para tomar decisões de segurança, ou se os valores representam dados confidenciais como quantias monetárias, a aplicação torna-se vulnerável a ataques.

Contramedidas para lidar com as ameaças de manipulação de seqüências de consultas incluem:

Evite usar parâmetros de seqüências de consultas que contenham dados confidenciais ou dados que podem influenciar a lógica da segurança no servidor. Ao invés disso, use um identificador de sessão para identificar o cliente e armazenar itens confidenciais na sessão no servidor.de manipulação de seqüências de consultas incluem: technet.microsoft.com/pt-br/library/dd569900(d=printer).aspx

07/03/13

Ameaças

e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Escolha o POST HTTP ao invés do GET ao submeter formulários.na Web: Ameaças e Contramedidas de Segurança na Web Faça a encriptação de parâmetros de seqüências

Faça a encriptação de parâmetros de seqüências de consultas.o POST HTTP ao invés do GET ao submeter formulários. Manipulação de Campos de Formulários Os

Manipulação de Campos de Formulários

Os valores dos campos de formulários em HTML são enviados em texto puro para o servidor usando o protocolo POST HTTP. Isto pode incluir campos de formulários visíveis ou não. Campos de formulários de qualquer tipo podem ser facilmente modificados e as rotinas de validação do lado do cliente podem ser contornadas. Como resultado, as aplicações que dependem de valores de entrada em campos de formulários para a tomada de decisões estão vulneráveis a ataques.

Para barrar a ameaça de manipulação de campos de formulários, ao invés de usar campos de formulários ocultos, use identificadores de sessão para fazer referência ao estado mantido no armazém de estado no servidor.

Manipulação de Cookies

Os cookies são suscetíveis à modificação pelo cliente. Isto é verdade tanto para cookies residentes na memória quanto para os persistentes. Diversas ferramentas estão disponíveis para ajudar um invasor a modificar os conteúdos de um cookie residente na memória. A manipulação de cookies é o ataque referente à modificação de um cookie, geralmente para ganhar acesso não autorizado a um site.

Apesar de o SSL proteger cookies em toda a rede, ele não evita que eles sejam modificados no computador do cliente. Para barrar a ameaça da manipulação de cookies, faça a encriptação ou use um HMAC com o cookie.

Manipulação de Cabeçalhos do HTTP

Os cabeçalhos do HTTP transmitem informações entre o cliente e o servidor. O cliente constrói cabeçalhos de solicitação enquanto o servidor constrói cabeçalhos de respostas. Se a sua aplicação depende dos cabeçalhos de solicitação para tomar uma decisão, então ela está vulnerável a ataques.

Não baseie suas decisões de segurança nos cabeçalhos do HTTP. Por exemplo, não confie no HTTP Referer para determinar de onde vem um cliente porque isto pode ser facilmente falsificado.

Gerenciamento de Exceções

Exceções que têm permissão para se propagar para o cliente podem revelar detalhes internos de implementação que não fazem o menor sentido para o usuário final, mas que são úteis para os invasores. As aplicações que não utilizam a manipulação de exceções ou que a implementam de forma pobre também estão sujeitas aos ataques de negação de serviços. As principais ameaças relacionadas à manipulação de exceções são:

O invasor revela detalhes da implementaçãoameaças relacionadas à manipulação de exceções são: Negação de serviço O invasor revela detalhes da

Negação de serviçosão: O invasor revela detalhes da implementação O invasor revela detalhes da implementação Um dos recursos

O invasor revela detalhes da implementação

Um dos recursos mais importantes do .NET Framework é que ele oferece detalhes ricos de exceções cujo valor é inestimável para os desenvolvedores. Se a mesma informação cair nas mãos de um invasor, ela pode ajudá-lo consideravelmente nas tarefas de explorar as vulnerabilidades em potencial, e de planejar ataques futuros. O tipo de informação que pode ser retornada inclui versões de plataformas, nomes de servidores, seqüências de comandos do SQL, e seqüências de conexão do banco de dados.

Contramedidas para ajudar a evitar que detalhes da implementação sejam revelados para o cliente incluem:

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças

e Contramedidas de Segurança na Web

Use a manipulação de exceções em toda a base de códigos de sua aplicação.na Web: Ameaças e Contramedidas de Segurança na Web Manipule e registre as exceções que têm

Manipule e registre as exceções que têm permissão para serem propagadas nos limites da aplicação.de exceções em toda a base de códigos de sua aplicação. Retorne ao cliente mensagens de

Retorne ao cliente mensagens de erro inofensivas e genéricas.permissão para serem propagadas nos limites da aplicação. Negação de serviço Os invasores irão sondar uma

Negação de serviço

Os invasores irão sondar uma aplicação da web, geralmente através da transmissão de uma entrada deliberadamente mal-formada. Eles geralmente têm dois objetivos em mente. O primeiro é causar exceções que revelem informações úteis, e o segundo é violar o processo de aplicação da web. Isto poderá ocorrer caso as exceções não sejam devidamente capturadas e manipuladas.

Contramedidas para ajudar a evitar a negação de serviço no nível da aplicação incluem:

Valide cuidadosamente todos dos dados de entrada no servidor.a negação de serviço no nível da aplicação incluem: Use a manipulação de exceções em toda

Use a manipulação de exceções em toda a base de códigos de sua exceção.cuidadosamente todos dos dados de entrada no servidor. Início da página Auditoria e Registro A auditoria

Auditoria e Registro

A auditoria e o registro devem ser usados para ajudar a detectar atividades suspeitas como footprinting ou

possivelmente tentativas de violação de senha antes de uma exploração ocorrer de fato. A auditoria e o registro também podem ajudar a lidar a ameaça de repúdio. É muito mais difícil para um usuário negar ter executado uma operação se uma série de entradas de registro sincronizada em diversos servidores indica que o usuário desempenhou aquela transação.

As principais ameaças relacionadas à auditoria e ao registro incluem:

O usuário nega ter executado uma operaçãoameaças relacionadas à auditoria e ao registro incluem: Os invasores exploram uma aplicação sem deixar rastros

Os invasores exploram uma aplicação sem deixar rastrosincluem: O usuário nega ter executado uma operação Os invasores apagam seus rastros O usuário nega

Os invasores apagam seus rastrosOs invasores exploram uma aplicação sem deixar rastros O usuário nega ter executado uma operação A

O usuário nega ter executado uma operação

A questão do repúdio está relacionada à um usuário que nega ter executado uma ação ou iniciado uma transação. É

preciso que haja mecanismos de defesa prontos para garantir que todas as atividades dos usuários possam ser rastreadas e registradas.

Contramedidas para ajudar a evitar ameaças de repúdio são:

Faça auditoria e registre as atividades no servidor web, no servidor do banco de dados, e também no servidor da aplicação, se estiver usando um.para ajudar a evitar ameaças de repúdio são: Registre eventos chave como transações e eventos de

Registre eventos chave como transações e eventos de login e logout.e também no servidor da aplicação, se estiver usando um. Não utilize contas compartilhadas já que

Não utilize contas compartilhadas já que a fonte original não pode ser determinada.eventos chave como transações e eventos de login e logout. technet.microsoft.com/pt-br/library/dd569900(d=printer).aspx

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Os invasores exploram uma aplicação sem deixar rastros

A auditoria no nível da aplicação e do sistema é necessária para garantir que atividades suspeitas não deixem de ser detectadas.

Contramedidas para detectar atividades suspeitas incluem:

Registro de operações críticas no nível da aplicação.Contramedidas para detectar atividades suspeitas incluem: Use auditoria no nível da plataforma para eventos de login

Use auditoria no nível da plataforma para eventos de login e logout, acesso ao sistema de arquivos, e tentativas mal-sucedidas de acesso a objetos.Registro de operações críticas no nível da aplicação. Faça o backup de arquivos registrados e analise-os

Faça o backup de arquivos registrados e analise-os regularmente para tentar encontrar sinais de atividades suspeitas.de arquivos, e tentativas mal-sucedidas de acesso a objetos. Os invasores apagam seus rastros Os seus

Os invasores apagam seus rastros

Os seus arquivos registrados devem estar bem-protegidos para garantir que invasores não possam apagar seus rastros.

Contramedidas para ajudar a evitar que invasores apaguem seus rastros incluem:

Proteja arquivos registrados usando ACLs restritas.ajudar a evitar que invasores apaguem seus rastros incluem: Transfira arquivos registrados do sistema para longe

Transfira arquivos registrados do sistema para longe de seus locais padrões.incluem: Proteja arquivos registrados usando ACLs restritas. Início da página Sumário Estando ciente da abordagem

Sumário

Estando ciente da abordagem tipicamente utilizada pelos invasores, bem como seus objetivos, você poderá aplicar as contramedidas de forma mais eficiente. Também é uma boa idéia usar uma abordagem tendo como base o objetivo ao considerar e identificar as ameaças, e usar o modelo STRIDE para categorizar as ameaças com base nos objetivos do invasor, por exemplo, falsificar identidade, manipular dados, negar serviço, elevar privilégios, etc. Isto permitirá um enfoque maior nas abordagens generalizadas que devem ser usadas para mitigar riscos, ao invés de focar na identificação de cada ataque possível, o que pode ser uma tarefa potencialmente demorada e inútil.

Este módulo apresentou as principais ameaças que têm o potencial de comprometimento de sua rede, da infra- estrutura do host, e das aplicações. O conhecimento destas ameaças, em conjunto com as contramedidas adequadas, fornece as informações essenciais para o processo de elaboração de modelos de ameaças. Este conhecimento permite ainda que você identifique as ameaças que são específicas ao seu cenário em particular e as priorize com base no grau do risco representado para o seu sistema. Este processo estruturado para a identificação e priorização das ameaças é chamado de elaboração de modelo de ameaça (threat modeling). Para mais informações, veja o módulo, "Elaboração de Modelos de Ameaça." (em inglês).

Recursos Adicionais

Para ler mais sobre este assunto, veja os seguintes recursos:

Para mais informações sobre ameaças na rede e contramedidas, veja o módulo, "Protegendo Sua Rede."ler mais sobre este assunto, veja os seguintes recursos: Para mais informações sobre ameaças no host

Para mais informações sobre ameaças no host e contramedidas, veja os módulos, "Protegendo Seu Servidor Web ,", "Protegendo Seu Servidor de Aplicações,", "Protegendo Seu Servidor de Banco de Dados," e, "Protegendo sua Aplicação do ASP.NET."veja o módulo, "Protegendo Sua Rede." technet.microsoft.com/pt-br/library/dd569900(d=printer).aspx

07/03/13

Ameaças e Contramedidas de Segurança na Web: Ameaças e Contramedidas de Segurança na Web

Para mais informações sobre como lidar com as ameaças no nível da aplicação apresentadas neste módulo, veja os módulos de Construção na Parte III deste guia, "Construindo Aplicações da Web Seguras".na Web: Ameaças e Contramedidas de Segurança na Web Michael Howard e David LeBlanc, Writing Secure

Michael Howard e David LeBlanc, Writing Secure Code 2nd Edition. Microsoft Press, Redmond, WA, 2002guia, "Construindo Aplicações da Web Seguras". Para mais informações sobre rastreamento e conserto de

Para mais informações sobre rastreamento e conserto de estouros do buffer, veja o artigo do MSDN, "Fix Those Buffer Overruns!" na página http://msdn.microsoft.com/library/default.asp?url=/library/en-Secure Code 2nd Edition. Microsoft Press, Redmond, WA, 2002 us/dncode/html/secure05202002.asp Início da página © 2013

us/dncode/html/secure05202002.asp

© 2013 Microsoft. Todos os direitos reservados.