La seguridad del código es una preocupación constante para cualquier desarrollador. Un error común, pero peligroso, es la exposición accidental de secretos en el código fuente. Para mitigar este riesgo, GitHub desarrolló Secret Protection, una herramienta que alerta sobre credenciales expuestas antes de que causen daños mayores.
¿Qué es GitHub Secret Protection?
Secret Protection ofrece varias funcionalidades clave:
- Push Protection: Evita que commits con datos sensibles lleguen al código base.
- Validity Checks: Ayuda a priorizar alertas indicando qué secretos están activos y requieren atención inmediata.
- Programa de Partners: Notifica a proveedores sobre filtraciones en repositorios públicos para que tomen medidas inmediatas (revocación, cuarentena, etc.).
- Copilot Secret Scanning: Detecta secretos genéricos, como contraseñas o cadenas de conexión, que no están asociados a un proveedor específico.
- Custom Patterns: Permite definir expresiones para detectar secretos específicos de tu proyecto u organización.
El poder de Validity Checks
Una parte fundamental de Secret Protection son las Validity Checks, que verifican la validez de las credenciales filtradas consultando un endpoint API del proveedor del token. Esta funcionalidad, lanzada en 2023, inicialmente se centró en los tipos de tokens más comunes (AWS keys, GCP credentials, Slack tokens), llegando a validar aproximadamente el 80% de las alertas.
La IA entra en escena: Copilot como agente de codificación
A finales de 2024 y principios de 2025, con el auge de la IA generativa, el equipo de GitHub se planteó una pregunta clave: ¿Podrían utilizar agentes de codificación para cubrir las validaciones de los tipos de tokens menos comunes? La respuesta fue un rotundo sí.
Optimizando un flujo de trabajo repetible
El proceso para añadir soporte de validación para nuevos tipos de tokens constaba de varios pasos:
- Investigar al proveedor para encontrar un endpoint adecuado para validar el token.
- Escribir el código (el validador).
- “Darkshipping” el validador (probarlo en producción sin afectar a los usuarios).
- Lanzar el validador eliminando la configuración de “darkship”.
Los pasos 2 y 4 (codificación y lanzamiento) eran los candidatos perfectos para la automatización.
Copilot al rescate
Si bien Copilot tuvo algunas dificultades encontrando los endpoints de validación más adecuados, demostró ser excepcional en la generación de código. El equipo de GitHub creó un flujo de trabajo donde la investigación humana generaba issues detallados con información sobre el proyecto, documentación de la API y ejemplos. Estos issues servían como prompts para el agente de codificación de Copilot.
Una vez asignado el issue, Copilot generaba automáticamente un pull request, convirtiendo la investigación en código listo para revisión. Este código se trataba como cualquier otro: pasaba por pruebas automatizadas, revisión humana y, finalmente, despliegue por ingenieros.
GitHub implementó un sistema de retroalimentación donde los ingenieros podían solicitar cambios a Copilot añadiendo comentarios al pull request. Aunque no era perfecto, y a veces omitía detalles de la documentación, el proceso resultó muy eficiente.
“Darkshipping” y lanzamiento con Copilot
La fase de “darkshipping” permitió observar el comportamiento del nuevo código sin afectar a los usuarios, corrigiendo errores antes del lanzamiento final. Para el lanzamiento, simplemente se le pedía a Copilot que realizara un pequeño cambio de configuración para sacar el validador del modo “darkship”.
Resultados impresionantes
Antes de la experimentación con IA, el equipo de GitHub validaba 32 tipos de tokens. Con Copilot, lograron validar casi 90 tipos nuevos en solo unas semanas, gracias a la dirección de los ingenieros.
Copilot actuó como un multiplicador de fuerzas, permitiendo paralelizar tareas y liberar a los ingenieros para centrarse en la investigación y la revisión. Sin embargo, se enfatiza que Copilot no reemplaza el juicio humano, y todo el código generado debe ser revisado y verificado.
Conclusiones clave
- La automatización amplifica la repetibilidad: Si tienes un proceso con pasos bien definidos, los agentes de codificación pueden escalar tus esfuerzos.
- Trata a Copilot como un miembro del equipo: Sus contribuciones necesitan la misma revisión y feedback.
- La calidad del prompt importa: Prompts detallados y con ejemplos generan mejores resultados.
- Itera en tu proceso: Refina los prompts y ajusta los flujos de trabajo a medida que aprendes.
- La paralelización es un superpoder: Asigna múltiples tareas a la vez para desbloquear el trabajo.
El futuro de la ingeniería con IA
GitHub está explorando el uso de agentes de codificación en otros flujos de trabajo repetibles y confía en el potencial de la IA para acelerar la ingeniería de software en toda la industria. Si buscas incorporar automatización a tu flujo de trabajo, identifica los procesos repetibles, invierte en buenos prompts y prioriza la colaboración y la revisión.
GitHub Secret Protection, potenciado por Copilot, ofrece soluciones empresariales para prevenir la exposición accidental de secretos en tus repositorios.
Fuente: GitHub Blog
Leave a Comment