Segurança em Redes - Código Seguro

Preview:

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

Recommended