16
Segurança em Redes - Código Seguro

Segurança em Redes - Código Seguro

  • 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

Page 1: Segurança em Redes - Código Seguro

Segurança em Redes - Código

Seguro

Page 2: 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

Page 3: Segurança em Redes - Código Seguro

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.

Page 4: Segurança em Redes - Código Seguro

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.

Page 5: Segurança em Redes - Código Seguro

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)

Page 6: Segurança em Redes - Código Seguro

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

Page 7: Segurança em Redes - Código Seguro

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

Page 8: Segurança em Redes - Código Seguro

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● ...

Page 9: Segurança em Redes - Código Seguro

Segurança na plataforma Java

● Java cryptography extension (JCE)● Java authentication and authorization service

(JAAS)● Java secure socket extension (JSSE)

Page 10: Segurança em Redes - Código Seguro

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)

Page 11: Segurança em Redes - Código Seguro

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

Page 12: Segurança em Redes - Código Seguro

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)

Page 13: Segurança em Redes - Código Seguro

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)

Page 14: Segurança em Redes - Código Seguro

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)

Page 15: Segurança em Redes - Código Seguro

Java

● Validação de origem: validar fortemente a

origem de requisições a serviços

privilegiados

Page 16: Segurança em Redes - Código Seguro

Cartilha de segurança do

CERT.br● cartilha.cert.br