O dia que recuperei o código fonte da empresa

O dia que recuperei o código fonte da empresa

Este artigo detalha a experiência de recuperar o código fonte perdido de uma empresa que estava conectado ao AWS Amplify. Através da alteração do arquivo amplify.yml, foi possível enviar o código fonte para um repositório Git durante o processo de build. Vamos explorar o funcionamento do Amplify, focando em aspectos de segurança e detalhando como o código fonte fica exposto no momento do build.

Como desenvolvedores, passamos alguns perrengues no dia a dia: uma empresa entrou em contato comigo para fazer um serviço freelance de "ajustes pequenos", porém, não tinham acesso ao código fonte desenvolvido pelo desenvolvedor anterior 😅. E aí, você tocaria o projeto? Falaria para fazer do zero? Tentaria recuperar o código fonte?

Cenário

O código fonte estava hospedado no GitHub e hospedado na AWS por meio do Amplify. Não tínhamos acesso ao repositório, mas tínhamos acesso ao painel da AWS.

Teoria

Em algum momento o código sai do GitHub e vai para AWS para ser buildado e hospedado. Então podemos ter acesso, existe luz no fim do túnel!

O que é o AWS Amplify?

O AWS Amplify é um conjunto de ferramentas e serviços que permite aos desenvolvedores construir aplicativos escaláveis e seguros na nuvem. Ele fornece uma interface fácil de usar para gerenciar recursos de backend e frontend, incluindo autenticação, APIs, armazenamento e hospedagem.

Você pode começar o uso do Amplify, configurando um repositório para seu código fonte.

Perceba que é preciso dar autorização ao AWS Amplify de leitura do seu código e escrita do arquivo amplify.yml que é o arquivo que irá controlar o processo de build e deploy no Amplify e pode ser personalizado para atender às necessidades específicas do projeto.

Recuperação do Código Fonte

Como pudemos ver o código fonte fica exposto ao AWS Amplify, para que o processo de build seja feito. Ou seja, não saia conectando seu repositório em qualquer lugar e qualquer conta. Nesse caso, o desenvolvedor anterior que estava prestando serviço acreditava que seu código estava inacessível. Porém, sabemos que isso não é verdade.

As configurações de build ficam em um arquivo yml e pode ser modificado pelo painel da AWS ou pelo próprio repositório, como podemos ver na imagem a seguir:

Como não tinha acesso ao repositório, eu modifiquei esse arquivo pelo painel da AWS que a empresa tinha acesso, e inclui um passo antes do build que enviava todo código para um repositório git vazio, assim mantive todo o histórico de alterações do código fonte.

version: 1
frontend:
  phases:
    preBuild:
      commands:
        - echo 'Enviando código fonte para o repositório Git alternativo'
        - git remote add alternate-repo <URL_DO_REPOSITÓRIO_ALTERNATIVO>
        - git push alternate-repo master


Com isso descobrimos que o desenvolvedor estava terceirizando o serviço para outro 🤡.

💡
Observação: Se tivesse autorizado a terceirização no contrato, tudo certo. O cara ficou mudo quando soube que conseguimos acesso ao código fonte. Mas é isso galera, fiquem atentos às possibilidades, entendam o funcionamento e conceito das ferramentas para poderem utilizar da melhor forma e sair de perrengues como esse, sempre de forma ética.

Até a próxima, pessoal!

💡
As opiniões e comentários expressos neste artigo são de propriedade exclusiva de seu autor e não representam necessariamente o ponto de vista da Revelo.

A Revelo Content Network acolhe todas as raças, etnias, nacionalidades, credos, gêneros, orientações, pontos de vista e ideologias, desde que promovam diversidade, equidade, inclusão e crescimento na carreira dos profissionais de tecnologia.