Um Framework para Integrar Segurança de Aplicações na Engenharia de Software (FIASSE) usando o Modelo de Engenharia de Software Segurável (SSEM)
Nota: Este repositório é um trabalho em andamento. Contribuições são bem-vindas!
TL;DR: por favor, leia o DOC. Explore o site do FIASSE. Visite GitHub Discussions para contribuir.
Este repositório contém recursos e materiais para o Framework OWASP para Integrar Segurança de Aplicações na Engenharia de Software (FIASSE). O FIASSE (pronunciado /feiz/ como 'fase') promove uma abordagem centrada no desenvolvedor e baseada em princípios para construir software segurável — reconhecendo que a segurança é um processo dinâmico e contínuo, assim como o desenvolvimento. Ele introduz o Modelo de Engenharia de Software Segurável (SSEM) como uma linguagem de design comum que utiliza termos estabelecidos de engenharia de software para integrar segurança na arquitetura, no design e na engenharia de software. Integrar segurança nos princípios que moldam o próprio código. O framework visa construir aplicações resilientes que resistam a ameaças ao longo do tempo.
Fornecer diretrizes práticas que capacitem desenvolvedores a criar software segurável sem exigir profundo conhecimento em segurança, e orientar profissionais de segurança a integrar efetivamente sua experiência em engenharia de software. O FIASSE alcança isso por meio de uma perspectiva de Engenharia de Software, reduzindo a carga cognitiva e promovendo a colaboração entre equipes de desenvolvimento e segurança.
Enquanto projetos focados em garantia, como o OWASP Top 10, destacam o que evitar (uma lista de bloqueio), o OWASP FIASSE fornece um conjunto de atributos e práticas positivas a seguir (uma lista de permissão). Essa abordagem aproveita habilidades existentes de engenharia de software para construir software segurável, em vez de exigir que desenvolvedores aprendam técnicas de exploração ou adotem uma mentalidade focada em vulnerabilidades. A ênfase está em permitir codificação segura e prática por meio de princípios de engenharia familiares.
Ao definir claramente o papel prático da segurança dentro do processo de desenvolvimento, este framework garante que o valor de negócio seja capturado de forma eficaz. Ao estabelecer expectativas dessa maneira, reduz-se significativamente a probabilidade de que falhas de segurança sejam descobertas e precisem de correção posteriormente.
/docsEste repositório define software segurável como sistemas confiáveis, resilientes e adaptáveis. Ele enfatiza que a verdadeira segurança é um processo contínuo, não uma conquista estática. Introduz o Modelo de Engenharia de Software Segurável (SSEM), que enquadra a segurança como um conjunto inerente de qualidades de software bem projetado. Para isso, apresenta as categorias de atributos de Mantenabilidade, Confiabilidade e Confiança (que inclui Resiliência). O FIASSE defende a integração de práticas de segurança no fluxo de trabalho de desenvolvimento onde elas têm maior impacto. Isso passa de uma abordagem de "segurança como reflexão tardia" ou "shift left" para um modelo proativo e colaborativo. A ideia é que proprietários de produto, desenvolvedores e profissionais de segurança trabalhem juntos desde os estágios iniciais do design, particularmente por meio de atividades como definição de requisitos de segurança, modelagem colaborativa de ameaças e critérios de aceitação. Isso estabelece expectativas claras para atividades de código e testes. Engenheiros de software recebem orientação sobre como equilibrar flexibilidade e controle. Eles também recebem um modelo definitivo para tomar decisões de segurança. Em última análise, isso capacita todas as partes interessadas a contribuir para a construção de sistemas mais robustos, confiáveis e inerentemente seguráveis.
O FIASSE difere das abordagens existentes por não exigir que desenvolvedores se tornem especialistas em segurança ou adotem uma mentalidade adversária. Essa abordagem visa reduzir a carga cognitiva sobre os desenvolvedores, garantindo ao mesmo tempo que a segurança possa ter confiança de que suas preocupações são abordadas por meio de atributos específicos do código e dos processos de engenharia de software.
O FIASSE pretende ser aberto, acessível e colaborativo.
Marcos iniciais para o projeto FIASSE:
Outros marcos serão desenvolvidos com a equipe do projeto. A contribuição da comunidade é bem-vinda via GitHub Discussions.
Este repositório complementa o site do FIASSE.
O projeto OWASP FIASSE faz parte da OWASP Foundation, uma organização sem fins lucrativos focada na missão de eliminar software inseguro. A OWASP Foundation fornece uma riqueza de recursos e frameworks que se alinham aos princípios do FIASSE.
Este framework é focado em Engenharia de Software Segurável e é complementado por outros projetos OWASP:
A OWASP também hospeda inúmeros projetos que documentam requisitos e recursos de segurança, como o OWASP Mobile Application Security. O OWASP Developer Guide, que é um recurso abrangente para vários outros recursos OWASP.
Outro ótimo recurso para requisitos de referência e práticas de garantia é o OpenCRE, que reúne e mapeia vários frameworks de segurança.
O NIST Secure Software Development Framework (SSDF) define quatro fases que representam diferentes facetas para implementar práticas de desenvolvimento de software seguro. Ele se alinha aos princípios do FIASSE ao enfatizar a integração da segurança no ciclo de vida de desenvolvimento de software.
O NCSC Software Security Code of Practice define resultados desejados e algumas estratégias-chave. Enquanto o framework FIASSE foca em princípios e estratégias de primeiro nível para alcançar resultados seguráveis, destinados às equipes de Desenvolvimento e Garantia para alinhamento com estratégias de negócio. O SSEM especifica os atributos usados para produzir os resultados desejados, e a metodologia FIASSE fornece orientação prática para implementar esses atributos nas práticas de engenharia de software.
O CERT da Carnegie Mellon University é um conjunto de regras em nível de linguagem que fornece tanto exemplos de "o que não fazer" mostrando padrões de código vulneráveis quanto exemplos de "o que fazer". O FIASSE complementa essas regras fornecendo uma abordagem baseada em princípios que ajuda programadores a entender o "porquê?" por trás do código segurável.
O Software Factory Security Framework (SF2) "fornece aos líderes de segurança uma abordagem estratégica para escalar capacidades de segurança enquanto melhora os resultados de negócio." É um framework em nível organizacional que complementa o foco do FIASSE nas práticas de engenharia de software.
Contribuições para melhorar a documentação e os exemplos são bem-vindas. Consulte nossas diretrizes de contribuição para detalhes.
Atribuição-CompartilhaIgual 4.0 Internacional (CC BY-SA 4.0) — consulte o arquivo LICENSE para detalhes.
Este projeto é um esforço colaborativo da comunidade OWASP. Agradecemos a todos os contribuidores por sua valiosa contribuição e dedicação para melhorar a segurança de software.
Há uma lista de contribuidores que participaram deste projeto. Alguns contribuidores iniciais ajudaram a moldar os conceitos iniciais e a testar as ideias.