Segurança de Aplicação

Como Desenvolver Aplicações Com Segurança? Um guia inicial

Por que desenvolver com segurança?

Seria muito bom se não precisássemos ter antivírus, que consomem nosso poder de processamento; se não precisássemos de firewalls caros para proteger nossa infraestrutura; e se não tivéssemos que escolher entre segurança ou melhor experiência do usuário. Tudo seria muito mais simples.

Você também pode ouvir a versão em áudio deste artigo:

Contudo, nossa realidade é outra. Por diversos motivos, é comum existir alguém querendo prejudicar ou tirar proveito de nossas aplicações.  Assim como são diversas as motivações – seja ela vender informações, ganhar reputação, ou mesmo vinganças pessoais – também são diversos os tipos de ataques.  

Portanto, precisamos desenvolver aplicações com segurança para proteger o nosso negócio contra as inúmeras ameaças do cotidiano. Agora, como colocar o “S” no nosso ciclo de desenvolvimento? 

Falando em projeto de software, herdamos o clássico modelo cascata, “waterfall”, que entende o projeto em fases ou etapas. Logo, existe um paradigma de que desenvolver com segurança é nada mais do que acrescentar uma etapa de segurança ao projeto. Mas isso significa desenvolver de maneira segura? Não. 

Precisamos romper com este paradigma de que segurança é uma fase do projeto. Afinal, esta forma não é eficiente, gera retrabalho e o risco continua alto por conta de prazos e afins. 

Como fazer desenvolvimento seguro da maneira certa?

Quando falamos das melhores práticas de desenvolvimento seguro, estamos falando em aplicar segurança em todo o fluxo de desenvolvimento. Assim como ter um software de qualidade não é só responsabilidade de uma área –  por exemplo  Q.A – ter um software seguro é responsabilidade de todos os envolvidos no projeto.

Vamos ver como fica o ciclo de desenvolvimento com segurança em cada etapa. A boa notícia é que não estamos sozinhos nesta jornada, em cada etapa teremos referências para nos aprofundarmos no assunto.

Treinamento

Sem conhecimento não temos mudança. Portanto, o primeiro passo é promover treinamentos relacionados aos temas de segurança para o time do projeto. Assim, com conhecimento, a jornada de desenvolvimento seguro terá suas bases sólidas. 

Uma das estratégias bem sucedidas e por isso muito utilizada para treinamentos é a implementação do programa de Security Champion. Não deixe de ler mais sobre como formar seu time de secutity champion e as vantagens de se investir em treinamentos de appsec.

Requisitos de segurança  


Na etapa de levantar requisitos funcionais e não funcionais da aplicação, é necessário obter também os requisitos de segurança, enriquecendo assim, os casos de uso com um viés de segurança. Uma lista de verificação que pode colaborar para os requisitos de segurança é o ASVS (OWASP Application Security Verification Standard).

Design Seguro


Projetar a aplicação com uma arquitetura segura. Levantar as possíveis ameaças e implementar as proteções adequadas. Neste sentido, a dinâmica da análise de ameaças (Threat Modeling) é muito interessante na prática de trazer segurança à esquerda do ciclo de desenvolvimento, Shift-Left

Codificação Segura

Escrever códigos seguros. Mas seguros contra o quê? É importante conhecer as vulnerabilidades das quais nossas aplicações podem sofrer ataques. O OWASP Top Ten é uma lista das vulnerabilidades mais críticas que acontecem nas aplicações web, e conhecendo podemos nos proteger delas. Outra fonte a considerar é a série Cheat Sheets, que coleciona as melhores práticas, inclusive para algumas tecnologias específicas.

Testes de segurança

A aplicação pode ser testada manualmente. Neste caso, estamos falando de revisão de código, “Code Review”, e Pentest, o teste de invasão e que pode ser White, Gray e Black Box. Enquanto o Code Review analisa o código fonte da aplicação para conferir as melhores práticas, o Pentest valida a aplicação desenvolvida a fim de explorar alguma possível falha de segurança. Podemos ainda fazer os testes automatizados. Hoje temos a análise estática do código (SAST), a análise dinâmica da aplicação (DAST) e ainda classificamos outra forma de teste que é a interativa o IAST. 

Confira também: 

Gestão de vulnerabilidades ferramentas de Sast e Dast

Testes de segurança aplicando ao pipeline

Mais sobre Segurança de aplicações

Ainda para auxiliar na jornada de desenvolvimento seguro podemos contar também com as seguintes referências:

O Owasp Proactive Controls, da OWASP, possui dez controles que podemos implementar para deixar nosso produto de software mais seguro contra diversas vulnerabilidades.

A ISO/IEC 27001 provê um modelo para melhorar um Sistema de Gestão de Segurança em seu controle A.14 possuir normas a serem implementadas no ciclo de desenvolvimento.

O NIST, The National Institute of Standards and Technology apresenta um framework para diminuir riscos de cibersegurança. 

O que podemos concluir sobre desenvolver com segurança?

É importante desenvolver com segurança para que nosso negócio não seja prejudicado pelas séries de ameaças que hoje compõem nossa realidade na web.

AppSec é cultura, portanto leva tempo para a transformação do mindset dos colaboradores.

Não há uma solução mágica, mas para cada etapa no ciclo de desenvolvimento é possível trazer as melhores práticas de segurança para entregar aplicações mais robustas que dificultam as invasões e vazamento de dados, assim como indisponibilidade sistêmica.

Há 13 anos, a Conviso vem ajudando empresas na implementação de programas de desenvolvimento seguro. Para isso, conta com a plataforma AppSec Flow, que suporta todas as fases  do desenvolvimento seguros.

Click me
About author

Articles

Profissional da área de tecnologia a mais de 14 anos. Tecnólogo pela ETE, bacharel em Análise de Sistemas e Tecnologia da Informação pela Fatec e pós graduado, Master of Business Administration (MBA), em Gestão e Governança de Tecnologia da Informação pela FIAP. Ao longo da carreira desenvolveu diversos sistemas, em diferentes tecnologias do mercado tanto web como mobile. Participou em todos os ciclos do projeto de reformulação do 'App Mobile de Clientes' da Liberty Seguros SA vencedor na categoria Aplicativo de Seguros, do "Prêmio efinance 2017", uma das principais premiações de tecnologia para a área de finanças. Atua como Analista de Segurança da Informação no time de Consulting trazendo segurança no desenvolvimento de software para os clientes.
Related posts
Code FightersMobileSegurança de Aplicação

Pré-testes Android: Conceitos básicos e uma introdução ao tema

Fazer um bom laboratório para testes de segurança em aplicações android pode ser uma tarefa…
Read more
NotíciasSegurança de Aplicação

Treinamento online e gratuito sobre Segurança de Aplicações: Conheça o AppSec Starter

A Conviso disponibilizou em seu canal de YouTube o treinamento AppSec Starter – um treinamento…
Read more
Segurança de Aplicação

4 dicas para quem quer investir em uma carreira em Segurança de Aplicações

Se você chegou até este artigo, o mais provável é que já tenha lido nosso artigo com 4 motivos…
Read more

Deixe um comentário