O que o Modelo de Maturidade de Segurança (BSIMM) diz sobre o papel do SAST e da SCA
O BSIMM é um estudo anual das iniciativas reais de segurança de software – “SSIs” no relatório – em toda a indústria de software, a partir de dados e experiência de 130 organizações. Em vez de repetir o objetivo do estudo, esta citação resume melhor:
“O BSIMM é um bastão de medição para segurança de software. A melhor maneira de usá-lo é comparar e contrastar sua própria iniciativa com os dados sobre o que outras organizações estão fazendo. Você pode identificar seus próprios objetivos e objetivos e, em seguida, consultar o BSIMM para determinar quais atividades adicionais fazem sentido para você.
… No campo de segurança de software em rápida mudança, entender o que a maioria, algumas e poucas outras organizações estão fazendo em suas SSIs pode informar diretamente sua própria estratégia.”
– Resumo Executivo, BSIMM11.
“Pau de medição” é o termo chave aqui. BSIMM é uma maneira de medir onde você está e fazer um plano para onde você quer ir. É uma forma de as organizações de software compararem como estão em comparação com as empresas pares e “discutirem, implementarem, medirem, relatarem e melhorarem”.
O Quadro BSIMM11
O BSIMM é organizado em domínios e práticas de segurança que englobam inúmeras atividades que compõem a estrutura de segurança. Isso é ilustrado abaixo:
Fonte: BSIMM11 – Parte Dois – O Quadro BSIMM11
O aspecto do modelo de maturidade do BSIMM implica melhoria e otimização e, neste caso, descreve áreas-chave da prática em que um SSI cairia e à medida que as empresas passam de uma abordagem ad-hoc para uma mais estratégica, elas se movem ao longo da escala de maturidade. No BSIMM estes são definidos como emergentes, amadurecendo e otimizando o que, aponta o estudo, não é necessariamente linear e pode não acabar no estado de otimização.
Para este post, não vou aprofundar em detalhes sobre tudo isso, mas há claramente práticas em que o SAST (teste de segurança de aplicativos estáticos) e o SCA (análise de composição de software) têm uma função e, em seguida, apenas brevemente – padrões e requisitos (SR), revisão de código (CR) e teste de segurança (ST).
O Papel do SAST e SCA no BSIMM11
Recomendações no BSIMM, deixam claro que as ferramentas e a automação desempenham um importante papel de suporte na segurança e na maturidade da prática, incluindo um uso mais sofisticado delas. Olhando para a lista de verificação de início liderada por governança, ela inclui o número 2, “software de inventário”, um papel importante para o SCA, 5, “fazer descoberta de defeitos” que implica detectar e descobrir vulnerabilidades existentes, das quais, SAST, SCA e outras ferramentas de descoberta desempenham um papel importante. O número 6 é “Selecionar controles de segurança” que inclui a definição de padrões de codificação seguros e priorização na detecção e prevenção de vulnerabilidades de segurança de alto risco. O número 7 é “Repetir” que implica automação (incluindo ferramentas), processos cíclicos e adoção de DevSecOps, por exemplo, algo com o qual todas as ferramentas modernas precisam se integrar. Embora sejam diretrizes além do uso de ferramentas, é claro que há um papel importante na maturidade das práticas de segurança.
Na prática de normas e requisitos (SR), as práticas emergentes incluem padrões de segurança que podem implicar certas restrições no software desenvolvido para reduzir vulnerabilidades. As práticas de maturação identificam o uso de código aberto para determinar seu risco e exposição. As empresas otimizadoras estão usando e aplicando padrões seguros de codificação, controlando o risco de código aberto e protegendo sua cadeia de fornecimento de software.
Considere também o ponto de contato de revisão de código (CR): A BSIMM observa que a prática emergente é a adoção do SAST para trabalhar em conjunto com revisões manuais. A prática de amadurecimento é o uso de regras personalizadas e a organização de vulnerabilidades de destino em uma lista Top N (como sua própria lista OWASP ou CWE.) Na fase de otimização, as organizações buscam a erradicação de tipos críticos de vulnerabilidade, automatizam a detecção de códigos maliciosos e aplicam padrões de codificação (todos os quais o SAST desempenha um papel importante.) Como você pode ver, a maturidade na prática coincide com a maturidade do uso da ferramenta.
O inventário de ativos de software é destacado em vários locais (como acima, nas diretrizes de início) assim como o monitoramento e a aplicação de políticas na cadeia de fornecimento de software. Por exemplo, softwares de terceiros, incluindo código aberto, devem ser contabilizados como uma possível superfície de ataque (AM 1.3). A SCA desempenha um papel importante na criação de uma conta de software de materiais e exposição a vulnerabilidades conhecidas na cadeia de suprimentos.
Empresas em maturação estão otimizando SAST, SCA
É claro que as ferramentas desempenham um papel na maturidade da prática de segurança e, embora seja realmente sobre melhoria organizacional, o uso ideal de ferramentas onde elas fazem sentido é uma parte importante disso. Essas empresas são eficazes no aumento do valor de suas ferramentas e do ROI que recebem à medida que suas práticas amadurecem. O BSIMM aponta alguns temas de empresas que estão caminhando para otimizar suas práticas e alcançar maturidade em suas práticas de software. Não surpreende que haja um papel para SAST e SCA em cada uma dessas categorias (entre outras ferramentas, é claro.)
- Gerenciamento da cadeia de suprimentos de software: organizações maduras percebem que seu software não é desenvolvido isoladamente e tem dependências em muitas pilhas de software de terceiros. Entender a verdadeira conta de software de materiais é essencial, assim como as dependências ocultas dentro do código de fora da organização. À medida que os processos amadurecem, eles começam a usar as mesmas práticas de segurança em sua cadeia de fornecimento de software.
- Redução de risco top N: Priorizar os esforços de melhoria da segurança é fundamental e as empresas em maturação estão criando suas próprias listas de alvos de vulnerabilidades. Essas vulnerabilidades direcionadas podem ser usadas para agilizar e priorizar como sintonizar SAST e SCA e quais avisos agir.
- Personalização de ferramentas: Isso fala por si só, as empresas amadurecidas estão adaptando ferramentas às suas necessidades. Em termos de ferramentas SAST, o uso mais sofisticado incluiu damas personalizadas e conjuntos de regras que fornecem o melhor ROI no uso de suas ferramentas.
- Loops de feedback: as ferramentas SAST fornecem métricas importantes, além de um medidor geral de qualidade e segurança do produto. O SAST na área de trabalho do desenvolvedor fornece feedback instantâneo sobre vulnerabilidades recém-introduzidas. As ferramentas SAST e SCA no pipeline CI/CD fornecem feedback valioso sobre vulnerabilidades em todo o produto e monitoram a evolução da conta de software de materiais. A coleta de dados fornece tendências de melhoria e áreas de preocupação.
- Governança orientada a dados: Ampliando o feedback que as ferramentas SAST e SCA fornecem, os dados criados por compilação fornecem um barômetro contínuo do estado do produto. Analisar esses dados para tendências indica o nível relativo de risco de tipos específicos de vulnerabilidades e áreas específicas do software. Equipes inteligentes estão usando esses dados para impulsionar o foco de teste e segurança a cada iteração. Em produtos que requerem conformidade com padrões específicos, as ferramentas SAST geram relatórios necessários para ajudar a alcançar o sucesso de auditoria e conformidade. As ferramentas SCA ajudam as equipes a monitorar o risco de softwares de terceiros à medida que novas vulnerabilidades são detectadas em seu software dependente.
Obviamente, à medida que uma organização amadurece em termos de práticas de segurança, seu uso de ferramentas e sofisticação aumentam. Eles também usam cada vez mais os dados dessas ferramentas para impulsionar decisões que aumentam a produtividade, uma vez que os recursos estão focados no lugar certo.
Resumo
O relatório BSIMM11 fornece insights interessantes sobre as práticas de segurança de última geração em vigor na indústria de software. Também traça um quadro, baseado na observação das empresas em cada fase da maturidade, para que a organização siga quem está procurando amadurecer suas práticas. A automação e as ferramentas desempenham um papel importante no apoio a processos mais maduros e as empresas usam ferramentas de forma mais avançada.
As ferramentas SAST e SCA desempenham um papel importante na melhoria da segurança de software e o BSIMM mostra que aumentar a integração de ferramentas nas práticas de segurança à medida que as organizações amadurecem. Em termos de análise estática avançada, detectar e prevenir vulnerabilidades de segurança mudam a melhoria de segurança à esquerda até a área de trabalho do desenvolvedor. As ferramentas SCA ajudam a fazer o inventário da pilha de software e identificar áreas de risco na cadeia de suprimentos. O aumento da integração e personalização dessas ferramentas nos fluxos de trabalho existentes indica um uso mais maduro.
Autor: Mark Hermeling