21 Mejores prácticas de seguridad para GitHub
GitHub es extremadamente proactivo a la hora de proteger la seguridad de sus usuarios y su código. Además de fomentar o hacer cumplir el uso de autenticación de múltiples factores (MFA), también desarrolló y desplegado herramientas para ayudar a prevenir que accesos no autorizados e información sensible se expongan en repositorios públicos. Como resultado, la mayoría de los incidentes de seguridad relacionados con GitHub son causados por errores de sus usuarios. Este artículo explora algunas buenas prácticas que las organizaciones que emplean GitHub pueden adoptar para garantizar la seguridad de sus repositorios de GitHub y del código y datos que contienen.
Las 21 mejores prácticas de seguridad para GitHub
Aquí tienes las 21 mejores prácticas de seguridad para GitHub:
#1. Nunca almacenes credenciales ni datos sensibles en Github
GitHub es un sistema de control de versiones, así que los datos almacenados en él permanecen para siempre. Herramientas como git-secrets pueden bloquear que el código que contiene datos sensibles se envíe a GitHub.
#2. Desactivar el bifurcación
Forking hace una copia de un repositorio de GitHub sin afectar la base de código original. Desactiva el fork para mantener el control sobre el código fuente y cerciorarte de que los datos sensibles no se agreguen ni se hagan públicos por una bifurcación no autorizada.
#3. Desactivar los cambios de visibilidad
GitHub soporta tanto repositorios públicos como privados, y los usuarios privilegiados pueden cambiar la visibilidad de un repositorio. Limita el número de usuarios que pueden hacerlo desactivando la licencia para que todos los afiliados a tu organización modifiquen "Cambio de visibilidad del repositorio" en los privilegios de los afiliados a GitHub.
#4. Valida tu aplicación de GitHub
Las organizaciones suelen trabajar con desarrolladores externos que tienen acceso a cuentas de GitHub. Estos usuarios externos deben tener acceso limitado y todas las confirmaciones deben validar antes de agregarlas a un repositorio.
#5. Imponer la autenticación de dos factores
GitHub permite a las organizaciones hacer cumplir el uso de autenticación en dos factores (2FA). Exigir 2FA para todos los usuarios reduce el riesgo de filtraciones de código o código malicioso debido a cuentas inseguras.
#6. Implementar SSO (solo GitHub Enterprise)
GitHub Enterprise permite a las organizaciones asignar licencias de forma granular a diversos recursos. Además, el inicio de sesión único (SSO) SAML permite la integración de GitHub con la solución IAM de una organización.
#7. Limitar el acceso a las direcciones IP permitidas
La inclusión de IP permite a una organización limitar el acceso a dispositivos locales o VPNs corporativas. Esto protege contra el acceso a repuestos por parte de antiguos empleados o dispositivos no autorizados.
#8. Gestionar estrictamente las licencias de los colaboradores externos
Los colaboradores externos pueden formar parte de un proyecto solo durante un corto periodo de tiempo, y el acceso debe eliminar cuando su función esté completada. Gestionar cuentas externas reduce el intervalo de seguridad y los precios 'por usuario' en GitHub.
#9. Revocar licencias en un plazo razonable
Los usuarios pueden dejar de necesitar acceso a repositorios tras dejar la compañía o el proyecto. Revocar el acceso o cambiar a solo lectura reduce el riesgo asociado a su cuenta.
#10. Exigir firma de compromiso
La identidad percibida de un usuario puede cambiar en GitHub simplemente modificando su configuración git. La firma de códigos de forma criptográfica se compromete para garantizar la autenticidad y la trazabilidad.
#11. Hacer cumplir la revisión de código antes de los commits
La revisión de código puede identificar posibles vulnerabilidades de seguridad o funcionalidades maliciosas en un commit. GitHub puede configurar para que todas las solicitudes sean pull requests, permitiendo la revisión antes de fusionar.
#12. Agregar un archivo Security.md
El archivo security.md documenta oficialmente las políticas de seguridad de un repositorio. Esto puede emplear para compartir requisitos de seguridad y medios para reportar vulnerabilidades.
#13. Rotar Claves SSH y Tokens de Acceso Personal (PATs)
GitHub emplea claves SSH y PATs como alternativa a las contraseñas para la autenticación. Estos deberían rotarse de manera regular para eliminar las credenciales potencialmente vulneradas.
#14. Auditar todo el código subido a GitHub
Las bases de código heredadas y externas pueden agregar a un repositorio de GitHub como parte de una aplicación. Este código debe ser auditado para detectar posibles vulnerabilidades antes de ser aceptado en una base de código.
#15. Revisa tus registros de auditoría de GitHub para detectar actividades sospechosas
GitHub ofrece un registro robusto para la actividad dentro del GitHub de una organización. Revisar estos registros de manera regular puede ayudar a identificar actividades potencialmente sospechosas y cuentas comprometidas.
#16. Habilitar alertas para dependencias vulnerables
Aplicación puede heredar vulnerabilidades de sus dependencias, en particular dependencias de terceros y de código abierto . GitHub ofrece reportes automáticos de vulnerabilidades en los repositorios públicos de una organización.
#17. Emplea escaneo secreto automatizado en el pre-commit
Las credenciales codificadas en una aplicación corren riesgo de ser expuestas, incluso en repositorios privados. El escaneo secreto automatizado identifica y bloquea la inclusión de estas credenciales en el código comprometido.
#18. Borra tu historial de GitHub
Los extensos historiales de versiones de GitHub pueden ser problemáticos si se incluyen datos sensibles en el código. El historial puede reescribir usando el comando git filter-branch.
#19. Habilitar la protección de ramas Git
La protección de ramas git evita modificaciones no autorizadas en ramas específicas. Esto puede proteger estas ramas contra la pérdida de código y datos debida a la eliminación accidental o a la fusión de git squash.
#20. Agregar archivos sensibles a .gitignore
Un repositorio git local puede requerir acceso a ciertas claves SSK y tokens de acceso que no deberían enviar a un repositorio git. Incluyendo estos archivos en .gitignore impide que se suban.
#21. Emplea un servicio de "Bóveda de Secretos"
Una cámara secreta almacena información sensible — contraseñas, claves criptográficas, etc. — a la que una aplicación necesita acceder. Una bóveda proporciona una protección más fuerte que la disponible en GitHub.
Logrando la seguridad en GitHub con Check Point
Para las organizaciones que emplean repositorios de GitHub, protegerlos es esencial para proteger el código y los datos sensibles que puedan contener.
Para más consejos sobre cómo mantener seguros tus repositorios de GitHub, consulta esta lista más completa de mejores prácticas de seguridad en GitHub. Check Point ofrece soluciones para aplicaciones seguras a lo largo del ciclo de vida del desarrollo de software (SDLC).
Descubre cómo tu organización puede mejorar la seguridad de GitHub con Check Point Developer Security.
