Beruflich Dokumente
Kultur Dokumente
Ameaças e Contramedidas
de Segurança na Aplicação
1
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Ameaças e Contramedidas de Segurança
na Aplicação
Uma boa maneira de analisar ameaças no nível da
aplicação é organizá-las em categorias de
vulnerabilidade.
3
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
4
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
Estouros do buffer
Scripting entre-sites
Injeção SQL
Canonicalização
5
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
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.
6
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
void SomeFunction( char *pszInput ) { char
szBuffer[10]; // Input is copied straight into the
buffer when no type checking is performed
strcpy(szBuffer, pszInput); . . . }
7
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
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.
8
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
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.
9
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
11
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
Para mais informações, veja a documentação do
produto .NET Framework na página:
http://msdn.microsoft.com/library/default.asp?url=
/library/en-
us/vccore/html/vclrfGSBufferSecurity.asp1 (em
inglês) e o artigo do Microsoft Knowledge Base
325483 "Support WebCast: Compiler Security
Checks: The /GS compiler switch" na página:
http://support.microsoft.com/default.aspx?scid=32
54832.
12
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
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 pelo invasor.
13
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
16
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
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 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.
17
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
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.
18
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
Por exemplo, considere os dois links seguintes.
Este é um link legítimo:
www.yourwebapplication.com/logon.aspx?usernam
e=bob
Este é um link malicioso:
www.yourwebapplication.com/logon.aspx?usernam
e=<script>alert ('hacker code')</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.
19
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
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.
20
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
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.
21
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Validação da Entrada
Contramedidas para evitar XSS incluem:
Use expressões regulares para validar dados de
entrada recebidos através de seqüências de
consultas, cookies e campos de formulários HTML.
Use funções HTMLEncode e URLEncode para
codificar qualquer output que inclua a entrada de
usuário.
Isto converte scripts executáveis em HTML
inofensivo
22
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
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.
23
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Injeção SQL
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.
24
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Injeção SQL
25
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Injeção SQL
Considere o seguinte código:
SqlDataAdapter myCommand = new
SqlDataAdapter(
"SELECT * FROM Users
WHERE UserName ='" + txtuid.Text + "'",
conn);
26
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Injeção SQL
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.
'; DROP TABLE Customers-
Isto resulta na seguinte declaração sendo
submetida ao banco de dados para execução.
SELECT * FROM Users WHERE UserName=''; DROP
TABLE Customers --'
27
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Injeção SQL
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.
28
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Injeção SQL
Outros truques mais sutis podem ser
desempenhados. O fornecimento desta entrada no
campo txtuid:
' OR 1=1-
cria este comando:
SELECT * FROM Users WHERE UserName='' OR
1=1-
Como 1=1 é sempre verdadeiro, o invasor busca
qualquer fileira de dados da tabela do usuário.
29
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Injeção SQL
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.
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.
Use contas com menos privilégios para se conectar
ao banco de dados.
30
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
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. 31
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Canonicalização
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.
32
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Canonicalização
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.
33
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Canonicalização
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.
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>. 34
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
35
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
As principais ameaças que exploram as
vulnerabilidades da autenticação são:
Escuta na rede
Ataques de força bruta
Ataques de dicionário
Ataques de replay de cookies
Roubo de credenciais
36
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
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.
37
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
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.
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.
38
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
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.
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.
39
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
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.
Contramedidas:
Utilize senhas fortes.
40
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
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.
41
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
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.
42
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
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.
43
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
Contramedidas para evitar ataques de dicionário
incluem:
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.
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.
44
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
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.
45
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
46
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
Contramedidas para evitar o replay de cookies:
Use um canal de comunicação encriptado fornecido
pelo SSL sempre que um cookie de autenticação for
transmitido.
Use um intervalo (timeout) de cookies para um valor
que força a autenticação após um intervalo de
tempo relativamente curto.
Apesar de 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.
47
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticaçã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).
48
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
49
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autenticação
Contramedidas para evitar o roubo de credenciais
incluem:
Use e reforce o uso de senhas fortes.
Armazene verificadores de senhas na forma de
hashes com sal adicionado.
Reforce o trancamento de contas para contas de
usuários finais após certo número de tentativas.
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. 50
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
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égio
Revelação de dados confidenciais
Manipulação de dados
Ataques enganosos
51
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autorização
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.
52
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autorização
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.
53
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Autorização
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.
54
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
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.
55
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Revelação de Dados Confidenciais
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.
56
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Revelação de Dados Confidenciais
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.
Use ACLs fortes para proteger recursos do
Windows.
Use encriptação padrão para armazenar dados
confidenciais em arquivos de configuração e em
bancos de dados.
57
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
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.
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.
58
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
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.
Use segurança baseada em funções para
diferenciar os usuários que podem visualizar os
dados daqueles que podem modificá-los.
59
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
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ção
Acesso não autorizado aos armazéns de configurações
Retorno de segredos de configuração em texto puro
Falta de responsabilidade individual
Contas ultraprivilegiadas de serviços e processos
60
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Configuraçã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.
61
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da 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.
Use autenticação forte, por exemplo, com certificados.
Use autorização forte com guardiões múltiplos.
Considere o suporte apenas da administração local. Se
a administração remota for absolutamente essencial,
use canais encriptados, por ex, com tecnologia VPN ou
SSL. Para reduzir ainda mais o risco, considere o uso de
políticas IPSec para limitar a administração remota aos
computadores da rede interna.
62
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Configuração
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.
63
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Configuração
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.
Retorno de Segredos de Configuração em Texto
puro
64
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Configuração
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. 65
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Configuração
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.
66
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Configuraçã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.
67
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Configuração
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.
68
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Configuração
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.
69
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
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ão
Replay de sessão
Ataques "man in the middle"
70
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Sessão
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 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.
71
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Sessão
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.
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.
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.
72
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento 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.
73
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Sessão
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.
Finalize as sessões adequadamente, incluindo todos os
tokens da sessão e os cookies.
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.
74
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Sessão
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.
75
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Sessão
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".
76
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Gerenciamento da Sessão
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.
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.
77
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início
Bibliografia
http://technet.microsoft.com/pt-br/library/dd569900.aspx
78
Apostila 5 - Ameaças e Contramedidas de Segurança na Aplicação
Ir ao início