El día que recuperé el código fuente de la empresa

El día que recuperé el código fuente de la empresa

Este artículo detalla la experiencia de recuperar el código fuente perdido de una empresa que estaba conectado a AWS Amplify. Al cambiar el archivo amplify.yml, fue posible enviar el código fuente a un repositorio Git durante el proceso de compilación (build). Exploremos cómo funciona Amplify, centrándonos en los aspectos de seguridad y detallando cómo se expone el código fuente en el momento de la compilación.

Como desarrolladores, nos enfrentamos a algunas dificultades a diario: una empresa se puso en contacto conmigo para ofrecerme un servicio independiente para "pequeños ajustes". Sin embargo, no tenían acceso al código fuente desarrollado por el desarrollador anterior 😅. Entonces, ¿aceptarías el proyecto? ¿Hablarías de hacerlo desde cero? ¿Intentarías recuperar el código fuente?


Escenario

El código fuente se alojó en GitHub y se alojó en AWS a través de Amplify. No tenía acceso al repositorio, pero sí al panel de AWS.

Teoría

En algún momento, el código sale de GitHub y va a AWS para ser compilado y alojado para que podamos tener acceso. ¡Hay luz al final del túnel!

¿Qué es AWS Amplify?

AWS Amplify es un conjunto de herramientas y servicios que permiten a los desarrolladores crear aplicaciones escalables y seguras en la nube. Proporciona una interfaz fácil de usar para administrar recursos de backend y frontend, incluida la autenticación, las API, el almacenamiento y el alojamiento.

Puedes comenzar con Amplify configurando un repositorio para tu código fuente.


Ten en cuenta que debes autorizar a AWS Amplify para leer tu código y escribir el archivo amplify.yml, el archivo que controlará el proceso de compilación e implementación en Amplify y que puede personalizarse para satisfacer las necesidades específicas del proyecto.


Recuperación del código fuente

Como podemos ver, el código fuente queda expuesto a AWS Amplify para que se pueda realizar el build. En otras palabras, no conectes tu repositorio a ningún lugar ni a ninguna cuenta. En este caso, el desarrollador anterior que proporcionó el servicio creía que su código era inaccesible. Sin embargo, sabemos que esto no es cierto.

Las configuraciones de build quedan en un archivo yml y se puede modificar a través del panel de AWS o a través del propio repositorio, como podemos ver en la siguiente imagen:

Como no tenía acceso al repositorio, modifiqué este archivo a través del panel de AWS al que tenía acceso la empresa e incluí un paso antes del build que enviaba todo el código a un repositorio Git vacío, manteniendo así todo el historial de cambios al código fuente.

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


Con esto, descubrimos que el desarrollador estaba subcontratando el servicio a otro 🤡.

💡
Nota: Si hubieras autorizado la tercerización en el contrato, todo estaría bien. El individuo se quedó sin palabras cuando escuchó que teníamos acceso al código fuente. Pero, ¡eso es todo, chicos!

Estén atentos a las posibilidades, comprendan el funcionamiento y el concepto de las herramientas para utilizarlas de la mejor manera y salir de problemas como éste, siempre de forma ética.

¡Hasta luego!

💡
Las opiniones y comentarios emitidos en este artículo son propiedad única de su autor y no necesariamente representan el punto de vista de Listopro.

Listopro Community da la bienvenida a todas las razas, etnias, nacionalidades, credos, géneros, orientaciones, puntos de vista e ideologías, siempre y cuando promuevan la diversidad, la equidad, la inclusión y el crecimiento profesional de los profesionales en tecnología.