Top Banner
QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Fabiano G. Souza – Arquiteto de Sistemas – Unisys [email protected] Jun 12, 2022 MISSÃO CRÍTICA Page 1
34

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Jun 06, 2015

Download

Technology

Fabiano Souza

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.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Fabiano G. Souza – Arquiteto de Sistemas – [email protected]

Apr 13, 2023

MISSÃO CRÍTICA Page 1

Page 2: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

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

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 2

Page 3: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 4: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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.

Page 5: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 6: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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.

Page 7: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 8: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 8

Segurança e custo

Page 9: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 10: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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”

Page 11: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 11

Software é mais complexo a cada dia

Page 12: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 12

Produtos seguros são produtos de qualidade

Page 13: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 14: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 15: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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.

Page 16: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 16

Page 17: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 17

Page 18: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 18

Falhas críticas nas aplicações

• 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/ accesscontrol• Audit and logging failures• Improper error handling• Denial of Service• Man-in-the-middle• Multiple sign-on issues• Weak Encryption• Coding / Deployment problems

Page 19: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 19

Visão do SEI - Software Engineering Institute

Page 20: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 20

Page 21: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 22: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 23: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 24: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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.

Page 25: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 25

Page 26: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 27: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 28: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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

Page 29: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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.

Page 30: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 30

Obrigado pela atenção!

Perguntas?

[email protected]

Page 31: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 31

Page 32: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

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.

Page 33: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 33

Threat Modeling

Page 34: QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE

Apr 13, 2023

QUALIDADE, SEGURANÇA E CONFIABILIDADE DE SOFTWARE Page 34

Técnicas - Threat Modeling

• Entry point identification

• Privilege boundaries

• Threat trees