Guia de Desenvolvimento Seguro de Software
A COSEGI, como parte da Governança de Segurança da Informação, está desenvolvendo um Guia de Desenvolvimento Seguro de Software para o Ministério da Saúde. Este guia simplificado oferecerá métodos e ferramentas para todas as equipes envolvidas nos projetos, promovendo uma cultura de segurança desde o início. Seguir esses princípios desde o início do projeto determinará se o software será seguro e confiável, evitando preocupações futuras e a necessidade de correções constantes.
INTRODUÇÃO
O Guia de Desenvolvimento Seguro é uma ferramenta essencial para garantir que o software desenvolvido seja seguro, confiável e resistente a ataques cibernéticos. Ele deve ser atualizado regularmente para incorporar as mais recentes ameaças e tecnologias de segurança. As APIs (Application Programming Interface, em inglês, ou Interface de Programação de Aplicação, em português) são um conjunto de rotinas e padrões estabelecidos por um software ou sistema para utilizar as suas funcionalidades por aplicativos que não pretendem se envolver com os detalhes da implementação do software fonte, mas apenas utilizar os seus serviços.
OBJETIVO
É notável a importância do papel das APIs na materialização das estratégias de negócio e na transformação digital. Atualmente, muitas aplicações recorrem às APIs para garantir a integração com múltiplos sistemas, o que melhora a governança de suas atividades de interoperabilidade, estabelece relações inter organizacionais, fomenta agilidade aos processos de suporte a serviços digitais de ponta a ponta, e fornece os meios para garantir visibilidade, que é um princípio subjacente da transparência, mediante a obtenção de interfaces externas para os serviços públicos. Ainda sobre a importância do uso de APIs, pode ser citada a Política de Dados Abertos (Decreto nº 8.777, de 11 de maio de 2016), que se assenta em dois pilares fundamentais do mercado interno: transparência e livre concorrência. Tal quadro enfatiza a importância da reutilização de dados no setor público, no que concerne à iniciativa “once only”.
O princípio “uma única vez” que permite que cidadãos e empresas sejam capazes de fornecer informações apenas uma vez e tenham esses dados compartilhados e reutilizados por outros órgãos e entidades públicas. Saber como estruturar uma boa política de gestão de APIs reutilizáveis e específicas é essencial para evitar complexidade excessiva e para permitir a ligação mais fácil e rápida entre dados, aplicações e sistemas.
Quando bem desenhadas e utilizadas, as APIs são um excelente mecanismo para aumentar a produtividade das equipes e possibilitar a fruição de ferramentas mais avançadas. Contudo, é preciso observar alguns pontos relacionados à privacidade e segurança da informação de APIs antes de incorporar o uso de tais serviços. A proteção e a confiabilidade de informações sensíveis que trafegam por meio das APIs devem ser aspectos prioritários.
ESTRUTURA DO DOCUMENTO
O documento sobre requisitos de segurança no desenvolvimento de APIs segue uma estrutura bem definida, composta por cinco seções principais. A primeira seção aborda as premissas fundamentais que devem ser observadas em todas as fases de desenvolvimento, estabelecendo diretrizes gerais para garantir a segurança das APIs. Essas premissas são essenciais para criar uma base sólida de proteção de dados e mitigação de riscos ao longo do processo de desenvolvimento.
A segunda seção abrange o ciclo de desenvolvimento seguro, detalhando as etapas e boas práticas recomendadas para garantir a segurança em cada fase do desenvolvimento de uma API. Essa seção destaca a importância da incorporação de medidas de segurança desde o início do processo, garantindo que os requisitos de segurança sejam considerados em todas as etapas, desde a concepção até o lançamento e a manutenção contínua.
A terceira seção concentra-se nos requisitos de privacidade de dados em APIs, conforme definidos pelo Guia de Requisitos Mínimos de Privacidade e Segurança da Informação para APIs do PPSI. Esses requisitos estabelecem diretrizes específicas para garantir a proteção adequada dos dados pessoais e a conformidade com regulamentos de privacidade aplicáveis. É crucial que as APIs sejam projetadas e utilizadas de acordo com esses requisitos para evitar violações de privacidade e garantir a confiança dos usuários.
Por fim, a quarta e quinta seções aborda a documentação das APIs e os requisitos de segurança relacionados ao desenvolvimento. Isso inclui a necessidade de documentar adequadamente as funcionalidades, as diretrizes de segurança, as políticas de acesso e autenticação, bem como os procedimentos para tratamento de exceções e monitoramento de segurança. Essa seção destaca a importância de manter uma documentação atualizada e acessível, facilitando a compreensão e o uso seguro das APIs por parte dos desenvolvedores e usuários finais.
Essa estrutura é de extrema importância, pois fornece um guia abrangente para o desenvolvimento seguro de APIs. Ao seguir essa estrutura, as equipes de desenvolvimento podem garantir a adoção de práticas de segurança consistentes em todas as fases do processo, protegendo os dados sensíveis e minimizando riscos de violações de segurança. Além disso, a inclusão dos requisitos de privacidade de dados e a documentação adequada das APIs garantem que as APIs sejam projetadas e utilizadas em conformidade com as regulamentações de privacidade aplicáveis e permitam aos usuários entendam e utilizem as APIs de forma segura. No geral, essa estrutura contribui para a construção de um ambiente de desenvolvimento confiável e seguro, que fortalece a proteção dos dados e a confiança dos usuários.
Sob a perspectiva de conformidade com Normas e Regulamentações, a Ministério da Saúde\DATASUS\CGIE\COSEGI adota fortemente que segurança da informação é uma prioridade. Sendo assim, o órgão reconhece a importância da segurança da informação e está comprometido em proteger os ativos e dados sensíveis, assim como cumprir as disposições da LGPD.
A implementação de um Ciclo de vida de Desenvolvimento Seguro de Software (SSDLC) é essencial para garantir a segurança dos sistemas de informação no âmbito do Governo Federal. Sendo que o Ministério da Saúde\DATASUS\CGIE\COSEGI reconhece que quaisquer implementações de Softwares, como APIs, são vulneráveis a ameaças e ataques cibernéticos e entende que um SSDLC rigorosamente estruturado e em conformidade com a LGPD, é necessário para mitigar todos os ricos provenientes e impactantes que são direcionados diariamente a informações de saúde.
Assim, o Ministério da Saúde\DATASUS\CGIE\COSEGI, deseja estabelecer um processo padronizado e consistente para o desenvolvimento seguro de seus Softwares e reconhece a importância da consistência e padronização para garantir a eficácia e a eficiência na aplicação de práticas de segurança em todas as fases de projetos de software dentro da esfera Federal do Governo.
Também será proposta toda a documentação referente ao SSDLC para fornecer orientações claras e acionáveis aos desenvolvedores e equipes de projetos, garantindo controles e práticas de segurança que visam assegurar a privacidade e a proteção adequada de todos os dados pessoais. Assim, o Ministério da Saúde\DATASUS\CGIE\COSEGI reconhece também que a documentação clara, acionável, íntegra e processável é essencial para facilitar a implementação correta do SSDLC pelas equipes de desenvolvimento e que o alinhamento com as melhores práticas e normas reconhecidas, como o OWASP e a ISO/IEC 27034, é garantia de conformidade e consistência com padrões que estão sendo semeados no âmbito da administração pública federal.
Sobre a revisão dessas documentações, o Ministério da Saúde\DATASUS\CGIE\COSEGI irá revisar e atualizar regularmente, para refletir as mudanças nas ameaças de segurança e nas tecnologias em desenvolvimento. Pois, com este olhar disruptivo e antecipado, o Ministério da Saúde\DATASUS\CGIE\COSEGI reconhece a importância da adaptação contínua para lidar com as estas ameaças que estão em constante evolução.
Com a meta de melhor gerir as etapas e processos do desenvolvimento seguro, apresentamos este modelo de referência para o desenvolvimento seguro de APIs, onde as etapas devem ser planejadas, aplicadas, geridas, auditadas e monitoradas com a participação das equipes de desenvolvimento, infraestrutura e segurança (DevSecOps). Fomentar e garantir o processo de engajamento e integração das equipes promove a elevação da qualidade e agilidade do desenvolvimento do projeto, garantindo que a API seja planejada, desenvolvida e distribuída, como um produto seguro e resiliente contra ameaças que venham a surgir e ataques que sejam executados.
As etapas do desenvolvimento de uma API, já contemplando a interação das equipes de desenvolvimento, segurança e operações, são:
As etapas do desenvolvimento de uma API, já contemplando a interação das equipes de desenvolvimento, segurança e operações, são:
Levantamento de Requisitos – iniciar o processo com o planejamento e a definição dos requisitos de segurança. As equipes devem buscar a compreender os requisitos de segurança para API, o que inclui a autenticação, autorização, criptografia e a validação de acesso.
Security by Design – desde a etapa de design da API a segurança já deve figurar com elevada importância. Desenvolvedores devem interagir com as equipes de segurança, o motivo é a avaliação de possíveis riscos de segurança e com essa contemplação avaliar como inserir no projeto as ferramentas apropriadas para prevenir e mitigar os riscos.
Execução Segura – todos os envolvidos no desenvolvimento devem aplicar as melhores práticas já na codificação da API. Para tal devem ser contemplados itens como a criptografia de alto nível, controle de acesso, validação de dados de entrada, autenticação e níveis de autorização.
Testes de Segurança do Projeto – testar a segurança da API deve ser um processo realizado durante toda esteira de desenvolvimento do projeto. Dentre estes testes devem ser realizados os seguintes: testes de penetração, testes manuais e automatizados de segurança.
Gerenciamento de Vulnerabilidades - Os envolvidos no projeto devem trabalhar com a visão de processo de gerenciamento de vulnerabilidades, o objetivo é garantir que as vulnerabilidades sejam identificadas e corrigidas simultaneamente ao desenvolvimento. Recomenda-se o monitoramento contínuo da API desenvolvida paralelamente com os eventos de correções ajustado as necessidades do projeto.
Modelo de Monitoramento de Segurança – as equipes devem montar um modelo estrutural de monitoramento da API, o que levará a detecção de possíveis ameaças ao ambiente e com isso oferecer respostas rápidas aos possíveis incidentes de segurança.
Muitos dos requisitos aqui listados são recomendações, não requisitos absolutos. Isso ocorre porque, em muitos casos, tornar um requisito absoluto é apropriado apenas para um subconjunto de APIs, mas não para todas. Conforme apropriado, algumas APIs podem impor requisitos normativos mais específicos que os requisitos neste documento e devem ser listados na documentação da API, com todos os critérios de documentação estabelecidos neste guia.
Considerações Finais
Um guia de desenvolvimento seguro deve ser atualizado regularmente para garantir que esteja sempre alinhado com as últimas ameaças e vulnerabilidades de segurança. A revisão e atualização contínua devem ser uma parte importante do processo de manutenção do guia. Além disso, recomenda-se que o guia possua:
Facilidade de uso: O guia deve ser fácil de usar e entender pelos desenvolvedores, com informações claras e concisas. Isso garantirá que o guia seja adotado pela equipe de desenvolvimento e aplicado efetivamente durante o processo de desenvolvimento de software.
Adequação ao contexto: O guia deve ser adaptado às necessidades específicas da organização e do projeto, levando em consideração os requisitos de segurança específicos e as tecnologias utilizadas no desenvolvimento de software.
Integração com outros processos de segurança: O guia deve ser integrado com outros processos de segurança da organização, como gerenciamento de riscos, testes de segurança e conformidade com normas e regulamentações. Isso garantirá uma abordagem abrangente e coesa à segurança cibernética.
Divulgação e treinamento: É importante divulgar o guia para toda a equipe de desenvolvimento e fornecer treinamento adequado sobre como aplicar as diretrizes de segurança nele contidas. Isso ajudará a promover a cultura de segurança cibernética na organização e garantir que todos estejam alinhados com as melhores práticas de segurança.