SEGURANÇA DE APLICAÇÕES DE SOFTWARE
Desenvolver software seguro é um desafio que demanda a aplicação de uma mentalidade de segurança ao longo de todo o ciclo de desenvolvimento - além de uma interação próxima entre o time de desenvolvimento e o time de operações.
É fundamental que o desenvolvedor das atuais aplicações de software conheça as principais técnicas aplicáveis às diversas fases do desenvolvimento - requisitos, design, implementação, testes e release.
Para conhecer os cursos e treinamentos ministrados pelo Prof. Raphael Machado na área de Segurança de Aplicações de Software, envie um email para raphaelmachado@ic.uff.br.
Apresentamos, a seguir, livros, artigos e websites que constituem material de apoio para interessados no tema de segurança de aplicações de software - especialmente, aqueles que estejam realizando algum curso ou treinamento com o Prof. Raphael Machado.

CLÁSSICOS
O crème de la crème da segurança de software.

ESTATÍSTICAS GERAIS DE SEGURANÇA
Conhecer o impacto dos ataques cibernéticos é fundamental para justificar investimentos em segurança.
McAfee, The Hidden Costs of Cybercrime (2020)
Custos globais do crime cibernético são da ordem de trilhão de dólares.
Accenture, The Cost of Cybercrime (2019)
Organizações de médio e grande porte perdem dezenas de milhões de dólares anuais com crime cibernético
PwC, Global Economic Crime and Fraud Survey (2018 e 2020)
Crimes cibernéticos são a segunda maior causa de perdas corporativas
RiskSense: Web and Application Frameworks Vulnerabilities
Estatísticas de vulnerabilidades e exploits em frameworks de desenvolvimento.
Relatório de Riscos Globais do Fórum Econômico Mundial (2020, 2021 e 2022)
Ataques e falhas cibernéticas como risco à humanidade.

ESTATÍSTICAS SOBRE SEGURANÇA DE SOFTWARE
Estatísticas que evidenciam a importância de se ter software seguro.
Positive Technologies: Vulnerabilities on the Network Perimeter.
31% das organizações detectaram tentativas de exploração de vulnerabilidades de software
Vulnerabilidades de alto risco estão presentes no perímetro de rede de 84% das organizações
Palo Alto: The State of Exploit Development
80% dos exploits públicos são divulgados antes dos respectivos CVEs
Em média, exploits são divulgados 23 dias antes dos CVEs
Ponemon: Costs and Consequences of Gaps in Vulnerability Response
Vulnerabilidades não-corrigidas (unpatched) envolvidas em 60% dos vazamentos de dados
Checkpoint: Cyber Security Report 2021
75% dos ataques (ano 2020) usaram vulnerabilidades com pelo menos dois anos de divulgação
21% tinham sido divulgadas até 2013
Ponemon: Application Security in the DevOps Environment
20% não possuem nenhum método de teste de segurança
RiskSense: Web and Application Frameworks Vulnerabilities
Estatísticas de vulnerabilidades e exploits em frameworks de desenvolvimento.

VULNERABILIDADES/FRAGILIDADES DE SEGURANÇA
Principais bases de dados e fontes de conhecimento sobre vulnerabilidades e fragilidades de software.

SDL - CICLO DE DESENVOLVIMENTO SEGURO
Conceito de SDL é o de que segurança deve ser pensada ao longo de todo o SDLC.
Modelo "pioneiro" de segurança ao longo do SDLC
Artigo de McGraw sobre Segurança de Software
Outro dos pioneiros em segurança de software
Livros Clássicos:
Howard&LeBlanc, Writing Secure Code (2002 - link para 2a edição)
McGraw, Building Security In (2006)
Outros modelos de SDL

PRINCÍPIOS/FUNDAMENTOS DE SEGURANÇA DE APLICAÇÕES
Premissas fundamentais e universalmente aceitas que podem ser aplicadas ao longo de todo o SDLC.
Primeira organização "sistemática" de princípios de segurança em 1975 (!)
Livro pioneiro em Segurança de Software, em seu cap. 5, traz dez "Guiding Principles for Software Security"
Outro livro clássico de Segurança de Software, em seu cap.3, traz quatorze "Guiding Principles for Software Security"

CONTROLE DE ACESSO
Modelos para a identificação de usuários e autorização de acesso a recursos - um dos aspectos mais fundamentais da segurança.
Artigos clássicos sobre modelos de controle de acesso

CRIPTOGRAFIA
Ferramenta matemática que está na base de praticamente toda solução de segurança.

MODELAGEM DE AMEAÇAS / ARQUITETURA DE SEGURANÇA
A principal atividade de segurança na fase de design é a análise de riscos associados à arquitetura de segurança - também conhecida como Modelagem de Ameaças.

IMPLEMENTAÇÃO SEGURA
Técnicas para reduzir a ocorrência de falhas de programação que possam ser exploradas por atacantes.

TESTE DE SEGURANÇA DE APLICAÇÕES
Ferramentas e métodos para avaliar a segurança de aplicações.
Projeto SAMATE: NIST Software Assurance Metrics And Tool Evaluation

TESTE DE PENETRAÇÃO
Reprodução de cenários de ataque com mentalidade do atacante.

VALIDAÇÃO/CERTIFICAÇÃO DE SEGURANÇA DE SOFTWARE
Validação do atendimento a requisitos de segurança.
Common Criteria - Certificação de Segurança de Software

SEGURANÇA PÓS-RELEASE
Preocupação com segurança deve prosseguir mesmo após a release do software.

PROTEÇÃO DE SOFTWARE
Técnicas para proteger seu software contra tentativas de subversão baseadas em engenharia reversa.
