Introdução ao Desenvolvimento Seguro
Tags: security
Published: 2022-06-29 16:42:30

Neste artigo abordaremos o tema de **Desenvolvimento Seguro** de softwares. O quão cuidadoso você é ao desenvolver suas aplicações? 


Atualmente, quando um programador está aprendendo e estudando algumas tecnologias, com toda certeza o desenvolvimento seguro não é um de seus temas de estudo, afinal, o que ele quer mesmo é desenvolver seus aplicativos e somente isso.

Porém, ao ir crescendo nessa área, ele se debate com este assunto. Aqui, você começará a entender e dar o ponta-pé inicial neste assunto.

## **Começando do Início**
O <u>desenvolvimento seguro</u> é um termo que ganhou bastante popularidade atualmente em nosso meio e isso é um dos motivos que precisamos falar dele.

O desenvolvimento seguro é uma junção de metodologias e/ou protocolos que tem como objetivo prezar pela qualidade e segurança de um software, seja ele em forma de programas, aplicativos ou aplicações web.

Nos últimos anos, este assunto tem sido bem mais debatido, pois há uma onda de ataques cibernéticos no mundo inteiro, colocando pessoas e organizações em altos graus de risco.

É importante pontuar que nem sempre o desenvolvimento seguro foi uma alta prioridade para a maioria dos desenvolvedores. Só nos últimos anos aumentou a necessidade de se incorporar a segurança nas etapas desenvolvimento do início ao fim deste processo.

Isso pode ter sido acarretado tanto pelo aumento de incidentes relacionados à vulnerabilidade nas aplicações, seja por atualizações nas regulamentações por exemplo o caso da Lei Geral de Proteção de Dados que recentemente entrou em vigor no Brasil.

O desenvolvimento seguro inclui em se importar com a segurança das aplicações de ponta a ponta em todas as etapas — do planejamento de requisitos à projeção de arquitetura.

Também refere-se a manter este mesmo cuidado atrelado à manutenção da segurança do software e da infraestrutura subjacente (revisão do código-fonte, teste de penetração, etc).

## A modelagem de ameaças e o planejamento de recursos
A modelagem de ameaças ocorre depois que a arquitetura de software de alto nível é projetada e os principais fluxos de dados e pontos de entrada de dados no aplicativo futuro são estabelecidos. 

Normalmente, inclui as seguintes etapas:
• A decomposição da arquitetura planejada do aplicativo em componentes funcionais, determinando ameaças a cada um dos componentes;

• Categorizar e priorizar ameaças;

• Planejar e dar prioridades a controles e contramedidas para possíveis ataques.

A logo após, com base nas informações descritas e nas atividades de modelagem de ameaças, são planejados:
• A arquitetura de software segura (por exemplo, empregando particionamento de aplicativos, abordagem baseada em contêiner);

• Os recursos de segurança (criptografia, auditoria/registro, identificação do usuário, verificação e autorização (baseada em senha, multifator, baseada em certificado, baseada em token, biométrica).

### **As práticas seguras de codificação, análise estática e revisão**
Nesta etapa, os desenvolvedores precisam:
• Empregar práticas de codificação seguras para mitigar ou minimizar vulnerabilidades de alto risco no nível de implementação;

• Usar apenas ferramentas de desenvolvimento seguras (bibliotecas, frameworks, etc.);

• Executar testes de unidade regulares;

• Realizar análises de código estático automatizadas;

### **O teste de penetração, a revisão final de segurança e um plano de resposta a incidentes**
O conjunto de práticas sugerido nesta etapa “pós-desenvolvimento” normalmente são as seguintes:
• Realizar testes de penetração do software e de sua infraestrutura, correção de problemas de segurança identificados e condução de testes de regressão. Se o desenvolvimento de software for construído interativamente, essas atividades devem ser realizadas em cada construção.

• Revisão final de segurança por especialistas para verificar se os riscos de segurança identificados no curso das atividades de segurança anteriores foram devidamente tratados (corrigidos ou têm um plano de mitigação em vigor).

• Criação de um procedimento de resposta a incidentes;

• Configuração do sistema de monitoramento de segurança de aplicativos;

• Estabelecimento de um processo de feedback e ferramentas para usuários, hackers, etc. Para relatar sobre vulnerabilidades reveladas.

### **Para finalizar**
O desenvolvimento seguro garante que as aplicações desenvolvidas sejam seguras de ponta a ponta.

Neste sentido, todas as etapas do desenvolvimento devem ter a segurança como eixo principal. Para isso, é importante que tudo seja realizado com foco na identificação de problemas, evitando os custos de remediar e impactos negativos.