🚀 Capítulo 02: Filosofia Shift Left & DevSecOps (Tema: De Volta para o Futuro)

NOTE

Este capítulo utiliza a temática de De Volta para o Futuro para explicar o Shift Left. Mudar o passado é a melhor forma de garantir um futuro seguro!


1. 🎯 Objetivo da Aula

Compreender o conceito de Shift Left (Deslocar para a Esquerda) e entender como o movimento DevSecOps integra a segurança em todas as fases do ciclo de vida do software.

2. 🏢 O Cenário Prático (Seu Desafio)

Marty McFly precisa impedir que um desastre aconteça no futuro.

  • A Abordagem Antiga (Segurança no Final): Esperar o futuro chegar, ver o desastre acontecer e tentar consertar a cidade destruída. Isso custa caro e muitas vezes é tarde demais!
  • A Abordagem Shift Left: Entrar no DeLorean, voltar no tempo para o início da história (à esquerda na linha do tempo) e impedir que o problema sequer comece!

No desenvolvimento de software, “Shift Left” significa trazer os testes e as preocupações de segurança para o início do projeto (planejamento e codificação), em vez de deixar para testar apenas na véspera do lançamento! Seu desafio é viajar no tempo e proteger seu código desde o berço!

3. 🧠 Fundamentos: A Teoria Traduzida

O ciclo de vida do software (SDLC) geralmente segue uma linha do tempo da esquerda para a direita: Planejamento -> Codificação -> Build/Teste -> Deploy -> Produção

⬅️ O que é Shift Left?

É a prática de mover as atividades de segurança para o mais próximo possível do início (da esquerda).

  • Antes (Shift Right): O time de segurança só testava o sistema pronto, gerando atrasos enormes porque os programadores tinham que refazer partes inteiras do código.
  • Agora (Shift Left): Ferramentas automáticas avisam o programador sobre falhas de segurança enquanto ele ainda está digitando o código!

🔄 O que é DevSecOps?

É a evolução do DevOps. Significa que a Segurança (Sec) não é um departamento separado, mas faz parte do dia a dia do Desenvolvimento (Dev) e das Operações (Ops). Todo mundo é responsável pela segurança!


4. 📖 Exemplo Guiado: O Custo da Correção

Imagine o custo de corrigir uma falha de segurança (como uma porta dos fundos aberta no código):

  • Se encontrada na fase de Codificação: O programador gasta 5 minutos alterando a linha de código. Custo: Baixíssimo.
  • Se encontrada na fase de Testes: O sistema precisa voltar para o programador, ser refeito, testado de novo e atrasa a entrega. Custo: Médio.
  • Se encontrada em Produção (com o cliente usando): O sistema precisa ser tirado do ar às pressas, a imagem da empresa fica manchada, clientes podem processar a empresa por vazamento de dados. Custo: Altíssimo!

A regra de ouro: Encontre o bug no passado para não sofrer no futuro!


5. 🛠️ Prática Obrigatória 1: Linha do Tempo do SDLC

Coloque as ações de segurança abaixo na fase correta do desenvolvimento (Planejamento, Codificação ou Produção):

  1. O programador usa uma extensão no VS Code que avisa que a função que ele acabou de escrever é insegura.
  2. A equipe se reúne para desenhar o sistema e pensar em como os hackers poderiam tentar atacar.
  3. O sistema está no ar e um analista fica monitorando os acessos para ver se há tentativas de invasão.

6. 🛠️ Prática Obrigatória 2: Automação no Shift Left

Se o Shift Left exige testar a segurança o tempo todo desde o início, é humanamente possível ter uma pessoa do time de segurança revisando cada linha de código que 50 programadores digitam todo dia? O que é essencial existir na esteira de desenvolvimento para que o Shift Left funcione de verdade?


7. 📤 Instruções de Entrega (GitHub Desktop + Microsoft Teams)

  1. Faça o Commit: No GitHub Desktop, digite a mensagem (ex: Finaliza Capítulo 02 Seguranca) e clique em Commit to main.
  2. Envie para a Nuvem (Push): Clique em Push origin.

8. 📂 Estrutura de Pastas

mod_12_desenvolvimento_seguro/
├── capitulos/
│   ├── capitulo_02_shift_left.md
│   └── codigos/
│       └── cap02/
│           └── custo_correcao.txt

💡 Checkpoint de Lógica

Shift Left não significa que não faremos testes no final. Significa que faremos testes no início também, para que os testes do final não encontrem surpresas desagradáveis!

10. 🔥 Desafio de Fixação

Pesquise sobre o conceito de SAST (Static Application Security Testing) e como ele ajuda no conceito de Shift Left.

🔑 Gabarito de Código/Fórmulas

Gabarito da Prática 1:

  1. Codificação (Acontece enquanto digita).
  2. Planejamento (Acontece antes de codificar).
  3. Produção (Acontece com o sistema no ar).

Capitulo Anterior | Proximo Capitulo