Your SlideShare is downloading. ×
QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

6,363
views

Published on

Uma visão geral sobre segurança e qualidade de software …

Uma visão geral sobre segurança e qualidade de software
Foco na importância da integração de práticas de segurança ao ciclo de desenvolvimento de software.

Published in: Technology

0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
6,363
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
60
Comments
0
Likes
3
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide
  • Transcript

    • 1. QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Fabiano G. Souza – Arquiteto de Sistemas – Unisys [email_address] Jun 7, 2009 MISSÃO CRÍTICA Page
    • 2. Objetivos
      • Apresentar uma visão geral sobre segurança e qualidade de software
      • Demonstrar a importância da integração de práticas de segurança ao ciclo de desenvolvimento de software
      • Duração: aproximadamente 40 minutos
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 3. Agenda
      • Cenário atual da segurança
      • Visão geral de segurança de software
      • Demandas da segurança de TI
      • Integrando qualidade de código ao processo de desenvolvimento
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 4. Cenário atual
      • Pesquisa Computer Associates (Julho 2006)
        • 642 grandes empresas americanas
      • Empresas afetadas nos últimos 12 meses: 84%
        • 54% das empresas enfrentaram queda de produtividade dos funcionários
        • 25% algum tipo de constrangimento público, perda de confiança e danos à reputação
        • 20% perda de receita, clientes ou outros ativos.
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 5. Cenário atual
      • “ Mais de 70% das vulnerabilidades de segurança existe na camada de aplicativos, não na camada de rede” - Gartner
      • “ A conclusão é inevitável: qualquer noção de que a segurança é apenas uma questão de proteger o perímetro de rede é totalmente ultrapassada” - IDC and Symantec
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 6. Cenário atual
      • Organizações que atingiram um alto nível de maturidade na segurança de seus sistemas podem reduzir os gastos anuais com TI entre 3% e 4% até 2008, aponta pesquisa do Gartner.
      • Por outro lado, organizações que não atingiram um nível desejável de eficiência ou têm investido pouco na proteção da infra-estrutura deverão ver seus investimentos em segurança crescerem até 8% no período.
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 7. Objetivos de segurança
      • 100% de segurança é impossível
      • É necessário decidir:
        • O que precisa ser seguro
        • O quanto precisa ser seguro
      • Segurança deve ser equilibrada com usabilidade (e acessibilidade)
        • Super seguro = pouco usável
        • Muito usável = inseguro
      • Aprender a equilibrar segurança/usabilidade baseado nos riscos
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 8. Segurança e custo Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 9. Segurança
      • Segurança é como uma corrente que é tão forte quanto o elo mais fraco
      • Três componentes essenciais:
        • Serviços de rede
        • Sistema operacional
        • Aplicativo
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 10. Rede e algo mais
      • Muito já foi feito para aumentar a segurança na camada de rede como:
        • Ferramentas de detecção de intrusão, anti-virus, firewalls, VPNs, detecção de ataques Denial of Service, etc.
      • Mas... somente segurança no nível de rede não é mais suficiente
        • Os aplicativos são disponíveis na internet ou extranets
        • A mesma porta de acesso ao aplicativo é a porta de ataque
        • O ataque tem características de um acesso “inofensivo”
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 11. Software é mais complexo a cada dia Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 12. Produtos seguros são produtos de qualidade Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 13. O estado da segurança de TI
      • Segurança geralmente é considerada de forma adicional e não integrada ao desenvolvimento. Em geral:
        • Casos de uso não capturam requisitos de segurança
        • Segurança é vista como uma requisito não funcional e não um alavancador de negócios
        • Considerações de segurança somente são feitas na fase de deployment
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 14. O estado da segurança de TI
      • Necessidade crescente de interações sem fronteiras preservando a segurança
        • Organizações centradas nas redes
        • Necessidade cada vez maior de agilidade e acesso rápido as informações
        • Cada vez maior dependência inter-sistemas
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 15. Preocupações básicas
      • Confidencialidade
        • Apenas indivíduos com privilégios tem acesso a informação.
      • Integridade
        • A garantia que a informação permanece correta todo o tempo e não foi alterada ou destruída.
      • Disponibilidade
        • Assegurar que os usuários autorizados tenham acesso à informação e seus recursos associados sempre que se torne necessário.
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 16. Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 17. Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 18. Falhas críticas nas aplicações Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page • Input validation • Output sanitation • Buffer overflow • Data injection • Improper error handling • Weak session identifiers • Weak Password exploits • Session theft • Cross-site scripting • Insecure configuration data • Broken authentication/ access control • Audit and logging failures • Improper error handling • Denial of Service • Man-in-the-middle • Multiple sign-on issues • Weak Encryption • Coding / Deployment problems
    • 19. Visão do SEI - Software Engineering Institute Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 20. Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 21. Atividades integradas ao desenvolvimento
      • Análise e eliminação de riscos
        • Identificar as ameaças e considerar o possível dano para justificar as ações preventivas.
        • Análise de custo-benefício.
        • Identificar riscos residuais.
      • Análise comparativa
        • Medir os prós e contras de uma ação preventiva.
        • Identificar e comparar alternativas.
      • Definição de políticas
        • Definir regras e práticas que regulam a proteção de uma aplicação.
      • Análise de fatores
        • Identificar os fatores de segurança de cada componente da infra-estrutura (dispositivos clientes, suporte a single sign-on, etc).
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 22. Atividades integradas ao desenvolvimento
      • Análise por camada de software
        • Rever os fatores que impactam os mecanismos de segurança em cada camada do sistema
      • Testes caixa branca e caixa preta
        • Teste caixa preta ou de conhecimento zero (teste de penetração)
        • Teste caixa branca ou interno para ataques conhecidos e níveis de tolerância (ataques DoS, etc.)
      • Continuidade de serviço e Disaster Recovery
        • Determinar o nível de tolerância para ameaças potenciais
        • Definir mecanismos de proteção de falhas e gerenciamento de exceções
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 23. Como melhorar a qualidade do software?
      • Reuso
        • Código melhor testado
        • Menor superfície de ataque
      • Geração automática de código
      • Verificação automatizada de código fonte
      • Inspeções por terceiros
      • Programação em par
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 24. Padrões de Projeto
      • Um design pattern é uma solução reutilizável para um problema recorrente de projeto de software
      • Melhora o reuso de componentes e frameworks de segurança
      • No projeto permite melhor comunicação do conhecimento de segurança e identificação de riscos tradicionalmente identificados apenas através de protótipos ou experiência.
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 25. Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 26. Plataformas de desenvolvimento mais seguras
      • Plataformas mais modernas são inerentemente mais seguras
        • J2EE e Microsoft .NET
          • Código intermediário
          • Máquinas virtuais
          • Modelos de execução segura de código
          • APIs extensas de segurança e criptografia
          • Modelos de autenticação e autorização integrados
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 27. Ferramentas de verificação de código
      • Microsoft .NET
        • FxCop com integração ao Visual Studio .NET
          • Procura por 200 defeitos no código fonte:
            • Projeto de bibliotecas
            • Internacionalização
            • Convenções de nomenclatura
            • Performance
            • Segurança
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 28. Ferramentas de verificação de código
      • J2EE (ferramentas Open-Source)
        • Checkstyle
          • Aderência a padrões de codificação e melhores práticas
        • PMD
          • Alerta sobre possíveis bugs
          • Código morto
          • Código duplicado
        • FindBugs
          • Procura por padrões no código típicos de bugs
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 29. Conclusão
      • Segurança deve ser parte integral do negócio.
      • Devemos garantir a segurança em todos aspectos de uma solução.
      • O ciclo de desenvolvimento deve possuir atividades voltadas a segurança de forma integrada desde o início do projeto.
      • O uso de padrões e melhores práticas é fundamental para mantermos os custos baixos e obter a qualidade e robustez desejadas.
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 30. Obrigado pela atenção! Perguntas? [email_address] Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 31. Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 32. Método de Threat Modeling
      • É uma abordagem estruturada para identificar e planejar a eliminação de todas ameaças a qualquer aplicação.
      • Deve começar na fase de análise e projeto.
      • Devemos enumerar todos possíveis ameaças para a aplicação e os recursos associados, construindo um modelo que irá ajudar no projeto e desenvolvimento.
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 33. Threat Modeling Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page
    • 34. Técnicas - Threat Modeling
      • Entry point identification
      • Privilege boundaries
      • Threat trees
      Jun 7, 2009 QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page