Upload
coby
View
15
Download
0
Embed Size (px)
DESCRIPTION
Segurança em Redes - Código Seguro. Introdução. A necessidade de sistemas seguros Segurança Preventiva Princípios de segurança a seguir Modelagem das ameaças Técnicas seguras de codificação. A necessidade de sistemas seguros. - PowerPoint PPT Presentation
Citation preview
Segurança em Redes - Código
Seguro
Introdução
● A necessidade de sistemas seguros● Segurança Preventiva● Princípios de segurança a seguir● Modelagem das ameaças● Técnicas seguras de codificação
A necessidade de sistemas
seguros● Sistema seguro: um sistema que protege a
confidencialidade, integridade e
disponibilidade das informações dos clientes,
e a integridade e disponibilidade dos
recursos de processamento sob controle do
proprietário ou administrador do sistema.
A necessidade de sistemas
seguros● Vulnerabilidade: um defeito em um sistema
que torna impossível – mesmo com a sua
utilização adequada – evitar que um invasor
usurpe privilégios no sistema do usuário,
regule sua operação, comprometa os dados
ou receba confiança não concedida.
A necessidade de sistemas
seguros● Segurança na Web
– Conexão total: do desktop à cafeteira– Computação confiável
● Presunção de funcionamento (ex. Telefone, e-mail)– Problema: custo da segurança
● Jogo multiplayer X controle de marca-passo● Segurança X confiabilidade (ex. recall, cartão+senha)
A necessidade de sistemas
seguros● A vantagem do invasor e o dilema do defensor
– O defensor deve defender todos os pontos, o
invasor pode escolher o mais fraco– O defensor pode se defender somente de ataques
conhecidos, o invasor pode investigar
vulnerabilidades desconhecidas– O defensor deve estar constantemente vigilante, o
invasor pode atacar a qualquer momento– O defensor deve jogar de acordo com as regras, o
invasor pode jogar sujo
Segurança preventiva
● Segurança é entediante● A segurança é um desativador de
funcionalidades● A segurança é difícil de medir● Não é a principal habilidade ou interesse dos
projetistas e desenvolvedores● Não significa criar algo novo e animador
Segurança preventiva
● Como fazer– Aprimoramento do processo (projeto,
desenvolvimento, testes, distribuição/manutenção)● Questões de segurança nas entrevistas● Modelagem de ameaças● Revisões pela equipe de segurança● Testes específicos (ex. mutação dos dados)● Diretrizes seguras de codificação● Campanha de segurança● Realimentação● ...
Segurança na plataforma Java
● Java cryptography extension (JCE)● Java authentication and authorization service
(JAAS)● Java secure socket extension (JSSE)
Java
● Java cryptography extension (JCE)– Framework para:
● Criptografia– Simétrica– Assimétrica– Bloco– Fluxo
● Geração e acordo de chaves● Código de autenticação de mensagens (MAC)
– Objetivos● Assinatura digital● Funções de resumo (message digest)
Java
● Java authentication and authorization service
(JAAS)– Serviços de autenticação e controle de acesso
sobre usuários– Tecnologia PAM (Pluggable Authentication
Module)– Suporte à autorização por usuário
Java
● Java secure socket extension (JSSE)– Comunicações seguras pela Internet– Versão Java de SSL (secure sockets layer) e
TLS (transport layer security)– Criptografia, autenticação de servidor,
integridade de mensagem e autenticação de
cliente (opcional)
Java
● Buffer overflow: linguagem faz verificação de
limites; tipo string● Acesso à arquivos: somente verificações
básicas de segurança (ex. Pode testar se a
aplicação, no contexto corrente, pode ler ou
escrever em um arquivo; não se pode
acessar ou mudar permissões ou ACL de
arquivos)
Java
● Validação de entradas: falta uma classe para
expressões regulares● Overflow/underflow e conversões numéricas:
o/u não geram exceção; cuidar conversões
entre tipos primitivos com casting● Ataques a recursos: não há suporte a
limitação de recursos (ex. Alocação de
memória)
Java
● Validação de origem: validar fortemente a
origem de requisições a serviços
privilegiados
Cartilha de segurança do
CERT.br● cartilha.cert.br