Olá! Meu nome é Michelle e estou aqui para apresentar um pouco sobre a disciplina de desenvolvimento seguro e também sobre minha trajetória profissional.
Audiodescrição: Michelle é uma mulher branca, com cabelo castanho claro e liso. Ela veste uma blusa azul e está em um ambiente de escritório, com uma estante de livros ao fundo.
Hoje, vamos iniciar nossa disciplina sobre desenvolvimento seguro. Sou formada em Engenharia de Computação e possuo mestrado na área de Engenharia Biomédica. Minha experiência abrange as áreas de Cybersegurança, Cloud, Arquitetura de Software e Desenvolvimento de Software. Iniciei minha carreira na área de Desenvolvimento de Software e, posteriormente, migrei para a área de Segurança.
Comecei na Segurança Ofensiva, aproveitando meu conhecimento sobre o pensamento das pessoas desenvolvedoras e como as vulnerabilidades podem ocorrer. Em determinado momento, decidi unir meu conhecimento em Segurança Ofensiva com o de Desenvolvimento de Software. Assim, migrei para as áreas de DevSecOps e Application Security, onde atuo intensamente. Meu trabalho envolve implementar controles de segurança na arquitetura dos softwares e aplicações, analisar o pipeline, integrar ferramentas e realizar modelagem de ameaças.
Neste curso, meu objetivo é ajudar a entender, na prática, o que é desenvolvimento seguro, explorando cada uma das camadas e elementos presentes na área de segurança.
Por fim, é importante destacar uma forma eficaz de melhorar em programação, que foi a maneira como começamos. Trata-se da ideia da Cultura Maker, utilizando Arduino. Esse foi um dos motivos pelos quais ingressamos na área de Engenharia de Computação. Compreender na prática e observar o funcionamento dessas ferramentas contribuiu para nossa entrada na área de segurança e atuação na Engenharia de Computação.
Esperamos que apreciem a disciplina. Vamos apresentar um pouco da ementa. A ementa abrange desde os princípios do desenvolvimento seguro, passando pela compreensão dos controles de segurança, até chegarmos à parte de cultura, juntamente com Security Enabled e DevSecOps.
Iniciamos com a introdução ao que é DevSec e o SSDLC, requisitos de design seguro, desenvolvimento seguro, componentes como a parte de input e quantificação dos componentes, e testes de segurança. Discutiremos sobre o que é SCA, IEC, DASH e SASH, além de segurança na implementação, operação e manutenção. Isso inclui como gerenciar informações e patches em um ambiente antes de ir para a produção. Também abordaremos frameworks de maturidade e a cultura em AppSec, comentando sobre frameworks como o ASP.SAN e explicando o que é a cultura e desenvolvimento seguro, utilizando Security Enabled.
Esperamos que apreciem a disciplina. Vamos em frente. Obrigado a todos!
Anteriormente, discutimos a importância de um profissional de Application Security (AppSec) em uma organização. Esse papel é fundamental para ajudar as pessoas desenvolvedoras a compreenderem questões de segurança. Agora, vamos aprofundar por que a AppSec é tão relevante.
A AppSec é responsável por proteger softwares e aplicações contra ameaças e vulnerabilidades. No mercado de trabalho atual, o profissional de AppSec é conhecido como engenheiro na área de aplicação e também em Security Production. Esse profissional é essencial para garantir a segurança dos produtos, que incluem softwares.
O principal objetivo é proteger as aplicações, considerando que, atualmente, os softwares são vistos como produtos escaláveis, seja para aplicações web ou móveis, distanciando-se do ambiente desktop, que antes era de difícil acesso. Com a internet, as aplicações podem ser escaladas, aumentando a superfície de ataque, o que demanda profissionais para manter a segurança nesse ambiente.
O profissional de AppSec tem a função de garantir e proteger as aplicações, considerando a arquitetura, entendendo o código e realizando treinamentos. Além disso, é responsável por assegurar a segurança desde o início do ciclo de desenvolvimento do software, o que chamamos de SSDLC.
Outro ponto importante é o impacto das falhas na área de segurança. Entendemos que uma vulnerabilidade explorada pode fazer com que as pessoas percam a confiança no produto, resultando em impactos financeiros, legais e danos à reputação. Isso gera insegurança nos clientes finais em relação ao armazenamento de dinheiro e dados nesse ambiente.
Portanto, é crucial manter o ambiente seguro de forma proativa. O profissional de AppSec é vital nesse contexto, pois dissemina a segurança dentro das equipes.
Além disso, no contexto das ameaças, entendemos o crescimento dos ataques, principalmente após a pandemia, quando as pessoas ficaram cada vez mais conectadas, usando o computador, acessando a internet e as aplicações. Isso fez com que saíssemos daquele ambiente de desktop e tivéssemos uma superfície maior de exposição. Houve um crescimento, além de um aumento no número de bibliotecas e aplicações em funcionamento.
Existe também a questão de que as aplicações estão cada vez mais complexas, considerando aspectos como escalabilidade e observabilidade, ou seja, aplicações que têm várias pessoas acessando de forma simultânea. Isso aumentou a complexidade. Com isso, precisamos desenvolver as aplicações de forma mais rápida, o que também aumentou os riscos. Tudo isso fez com que as aplicações ficassem mais inseguras, podendo trazer brechas de vulnerabilidade, pois as pessoas desenvolvedoras têm menos tempo para corrigir e pensar em novas funcionalidades, colocando-as em produção sem testar a parte de segurança.
Por isso, é tão importante que os profissionais entendam sobre segurança para, ao desenvolver e pensar na arquitetura da aplicação, já considerarem esse ponto. Outro ponto importante é que, se desenvolvemos uma aplicação com segurança desde o início do software, podemos ver que, se fizermos isso na fase inicial, que são os requisitos, pensando em requisitos de segurança como requisito funcional e não como algo não funcional, conseguimos resolver um problema de segurança de forma mais rápida e também diminuir os custos em comparação a quando está em produção.
Quando uma vulnerabilidade é identificada em produção, é necessário fazer um rollback, ou seja, voltar a aplicação para uma versão anterior, e nessa versão corrigir rapidamente a vulnerabilidade explorada. Isso requer profissionais para fazer essa correção rapidamente, além de profissionais de segurança para explorar a vulnerabilidade e entender se realmente era uma vulnerabilidade de segurança. Tudo isso aumenta o custo e o tempo para lançar a aplicação.
Esses pontos são extremamente importantes quando pensamos em segurança e ameaças. Dessa forma, entendemos que desenvolvimento seguro é incorporar essa cultura nos times. É extremamente importante, pois, se fizermos isso desde o início, como vimos, o custo é muito menor.
Nós discutimos sobre a importância do profissional de AppSec no ciclo de desenvolvimento de software e agora vamos explicar melhor o que é SDLC e SSDLC. Antes de detalharmos essas siglas, vamos abordar o modelo antigo de desenvolvimento de software.
O modelo antigo começava com a fase de requisitos, que incluía requisitos funcionais e não funcionais. Os requisitos funcionais são aqueles essenciais para a aplicação. Por exemplo, em um e-commerce, seriam necessários uma tela de login, uma tela para checkout, opções de pagamento e seleção de produtos. Após definir os requisitos, havia uma fase de planejamento do tempo de desenvolvimento, seguida pela definição da arquitetura da aplicação e, finalmente, o desenvolvimento em si.
Esse modelo antigo é conhecido como modelo em cascata. Nele, a fase de requisitos até o desenvolvimento podia levar um ano, sem interação com o cliente para verificar se o produto atendia às expectativas, nem com o time de testes. O desenvolvimento era concluído antes de passar para o time de QA (Quality Assurance), e qualquer problema identificado exigia um retorno ao desenvolvimento, sem divisão em etapas, o que tornava o processo mais demorado.
No modelo em cascata, após o desenvolvimento, o código era entregue ao time de QA para testes. Se aprovado, seguia para produção através do deploy. Já no modelo DevOps, o processo é mais fragmentado, utilizando a metodologia Agile. Agora, o desenvolvimento é dividido em sprints, permitindo interação com o cliente e o PO (Product Owner) a cada duas semanas, para garantir que as funcionalidades atendem às necessidades do software.
Nesse modelo, vários programadores trabalham em suas próprias branches, e em algum momento, o código precisa ser integrado. No modelo em cascata, essa integração ocorria apenas após o desenvolvimento completo, o que podia resultar em muitos erros. No modelo DevOps, a integração e os testes são realizados por etapas, permitindo uma abordagem mais ágil e eficiente.
Os testes que conhecemos como parte da integração contínua e entrega contínua são conhecidos como CICD. Esses testes são realizados dentro de uma esteira, onde são aplicados testes de segurança e qualidade para garantir que a aplicação se mantenha segura e com qualidade, alinhada com a ideia do DevOps.
O processo é dividido em sprints, permitindo que a aplicação seja analisada de forma anônima para verificar se possui todos os requisitos necessários para funcionar corretamente. Após essa verificação, é realizado o merge para a branch principal. O DevOps possibilita uma maior qualidade, pois permite a realização de testes durante a etapa de desenvolvimento, quebrando o código e testando-o em uma pipeline, que é uma esteira onde todos esses testes são realizados de forma integrada.
No modelo antigo, sem a ideia de segurança, como no modelo cascata, o desenvolvimento era feito antes dos testes. Isso dificultava a identificação rápida de vulnerabilidades, pois o foco estava em desenvolver toda a aplicação para depois testá-la. Esse método resultava em uma identificação tardia das vulnerabilidades, aumentando os custos devido à necessidade de correção e ao tempo gasto. Além disso, havia um maior risco de não encontrar todas as vulnerabilidades no código, já que os testes não eram contínuos e integrados.
Com isso, surgiu a ideia de incorporar a segurança no ciclo de desenvolvimento do software. O SDLC significa ciclo de desenvolvimento de software, enquanto o SSDLC é o ciclo de desenvolvimento de software seguro, onde a segurança é integrada ao ciclo de desenvolvimento. Isso ocorre porque o software está sempre em aprimoramento, sem um início, meio e fim definidos. A ideia é integrar práticas de segurança em todas as fases do desenvolvimento, reduzindo o tempo e o custo de correção de vulnerabilidades. Ao fazer isso desde o início, o custo das falhas é significativamente reduzido.
O curso AppSec: Fundamentos de segurança no desenvolvimento de software possui 161 minutos de vídeos, em um total de 53 atividades. Gostou? Conheça nossos outros cursos de Segurança em DevOps, ou leia nossos artigos de DevOps.
Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:
Impulsione a sua carreira com os melhores cursos e faça parte da maior comunidade tech.
1 ano de Alura
Matricule-se no plano PLUS e garanta:
Mobile, Programação, Front-end, DevOps, UX & Design, Marketing Digital, Data Science, Inovação & Gestão, Inteligência Artificial
Formações com mais de 1500 cursos atualizados e novos lançamentos semanais, em Programação, Inteligência Artificial, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
A cada curso ou formação concluído, um novo certificado para turbinar seu currículo e LinkedIn.
No Discord, você participa de eventos exclusivos, pode tirar dúvidas em estudos colaborativos e ainda conta com mentorias em grupo com especialistas de diversas áreas.
Faça parte da maior comunidade Dev do país e crie conexões com mais de 120 mil pessoas no Discord.
Acesso ilimitado ao catálogo de Imersões da Alura para praticar conhecimentos em diferentes áreas.
Explore um universo de possibilidades na palma da sua mão. Baixe as aulas para assistir offline, onde e quando quiser.
Acelere o seu aprendizado com a IA da Alura e prepare-se para o mercado internacional.
1 ano de Alura
Todos os benefícios do PLUS e mais vantagens exclusivas:
Luri é nossa inteligência artificial que tira dúvidas, dá exemplos práticos, corrige exercícios e ajuda a mergulhar ainda mais durante as aulas. Você pode conversar com a Luri até 100 mensagens por semana.
Aprenda um novo idioma e expanda seus horizontes profissionais. Cursos de Inglês, Espanhol e Inglês para Devs, 100% focado em tecnologia.
Para estudantes ultra comprometidos atingirem seu objetivo mais rápido.
1 ano de Alura
Todos os benefícios do PRO e mais vantagens exclusivas:
Mensagens ilimitadas para estudar com a Luri, a IA da Alura, disponível 24hs para tirar suas dúvidas, dar exemplos práticos, corrigir exercícios e impulsionar seus estudos.
Envie imagens para a Luri e ela te ajuda a solucionar problemas, identificar erros, esclarecer gráficos, analisar design e muito mais.
Escolha os ebooks da Casa do Código, a editora da Alura, que apoiarão a sua jornada de aprendizado para sempre.
Conecte-se ao mercado com mentoria personalizada, vagas exclusivas e networking estratégico que impulsionam sua carreira tech para o próximo nível.