seguran a em aplica es 5 melhores pr ticas de programa o n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Segurança em Aplicações 5. Melhores Práticas de Programação PowerPoint Presentation
Download Presentation
Segurança em Aplicações 5. Melhores Práticas de Programação

Loading in 2 Seconds...

play fullscreen
1 / 11

Segurança em Aplicações 5. Melhores Práticas de Programação - PowerPoint PPT Presentation


  • 81 Views
  • Uploaded on

Segurança em Aplicações 5. Melhores Práticas de Programação. Márcio Aurélio Ribeiro Moreira marcio.moreira@pitagoras.com.br http:// si.lopesgazzani.br/docentes/marcio /. Princípios das funções seguras. Princípios: Documente as funções Use parâmetros e o retorno fortemente tipados

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Segurança em Aplicações 5. Melhores Práticas de Programação' - mariko


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
seguran a em aplica es 5 melhores pr ticas de programa o

Segurança em Aplicações5. Melhores Práticas de Programação

Márcio Aurélio Ribeiro Moreira

marcio.moreira@pitagoras.com.br

http://si.lopesgazzani.br/docentes/marcio/

princ pios das fun es seguras
Princípios das funções seguras
  • Princípios:
    • Documente as funções
    • Use parâmetros e o retorno fortemente tipados
    • Teste os parâmetros recebidos (evita SQL/code injection)
    • Use funções seguras (strncpy ao invés de strcpy)
    • Crie funções seguras (evita buffer overflow)
    • Teste o retorno das funções
  • Função:
    • // comentários
    • Função nome (parâmetros) retorno
      • Teste de parâmetros
      • Codificação segura
      • Retorno
  • Chamador:
    • Ret. = função(valores)
    • Teste do retorno

entradas

Função

saídas

princ pios gerais
Princípios gerais
  • Tenha política de versões consistentes
    • O recurso afetado existe desde a versão?
  • Use componentes e bibliotecas confiáveis
  • Evite arquivos temporários
    • Se necessário use nomes fixos (arq_userid.tmp) com privilégios fixos
  • Não armazene senhas e chaves no código
    • if (senha = “@b0b4*”) then ...
    • privkey = “88419787349802”
  • Use ambientes (dev, tst, hml e prd) seguros
princ pios de programa o segura
Princípios de programação segura
  • Controle as condições de corrida
    • Teste antes, bloqueie, use e libere
    • Use semáforos ou outros mecanismos do SO
  • Minimização de privilégios
    • Use somente os privilégios necessários
  • Use várias camadas de segurança
    • Autenticação para acesso (credencial do usuário)
    • Autenticação estendida em pontos críticos da aplicação (credenciais do supervisor ou usuário)
princ pios de programa o segura1
Princípios de programação segura
  • Validação das entradas (evita injection)
    • Assuma que todas as entradas são vulneráveis
    • Procure valores válidos e rejeite o restante
    • Teste as entradas no client
    • Teste as entradas novamente na apresentação
    • Teste:
      • Tipo dos dados
      • Tamanho dos dados
      • Faixa de valores válidos
      • Formato dos valores válidos
princ pios de programa o segura2

Application.dll

Princípios de programação segura
  • Limite a área de exposição
    • Crie interfaces somente quando necessário
    • Ofereça somente os serviços necessários
  • Use verificadores de código
    • Ferramentas de análise estática de código
    • Buscam vulnerabilidades conhecidas no código
  • Trate as exceções
    • É altamente recomendável tratar exceções
    • As exceções de chamadas ao SO são imperativas
recomenda es para java e net
Recomendações para Java (e .net)
  • Defina atributos da classe como private
  • Defina métodos de acesso como protected
  • Declare métodos internos como private
  • Defina políticas de acesso a applets

Typical Use

Source code

Compiler

Developer

Class files

User

Libraries

Virtual Machine

recomenda es para java e net1
Recomendações para Java (e .net)
  • Use herança com cuidado
    • Você pode herdar vulnerabilidades
  • Declare as classes como:
    • final (evita reuso),
    • uncloneable (evita instância sem o construtor) e
    • unserializable (evita acesso serial indireto)
  • Se precisar assinar o código use um arquivo
    • Evita o uso indevido de arquivos assinados
evite ou n o use em java e net
Evite ou não use em Java (e .net)
  • Evite blocos privilegiados (privileged blocks)
    • Padrão:
      • if (obj.getClass().getName().equals("Admin")) {
      • // executa aqui a operação privilegiada
      • }
    • Se for necessário, use:
      • if (obj.getClass() == this.getClassLoader().loadClass("Admin")) {
      • // executa aqui a operação privilegiada
      • }
  • Evite atributos estáticos (static)
evite ou n o use em java e net1
Evite ou não use em Java (e .net)
  • Não use o mecanismo package para controle de acesso (eles normalmente são abertos)
  • Não use string para armazenar senhas
    • Use vetor de char e limpe o conteúdo após o uso
    • Isto reduz a eficácia do memory dump
  • Não use classes aninhadas (elas tornam-se acessíveis a todo o pacote)
  • Não compare o nome de classes (isto revela informações que um espião não deve saber)
materiais adicionais
Materiais adicionais
  • Writing Secure Code – Best Practices
  • Secure Programming – Java - SAP
  • Programación Segura
  • Strategies for Securing Java Technology Code
  • Java & Secure Programming (Bad Examples found in JDK)
  • Catálogo de Práticas de Programação Segura em Java
  • Mechanisms for Secure Modular Programming in Java
  • Security Code Guidelines - Sun