GitHub lanzó análisis de código estático para vulnerabilidades





Después de pruebas exhaustivas, GitHub lo puso a disposición del público para escanear el código en busca de vulnerabilidades . Cualquiera puede ejecutar un escáner en su propio repositorio y encontrar vulnerabilidades antes de pasar a producción. El escáner funciona para repositorios en C, C ++, C #, JavaScript, TypeScript, Python y Go.



El escáner se basa en la tecnología CodeQL desarrollada por Semmle, que fue adquirida por GitHub el año pasado . CodeQL se considera el primer escáner de vulnerabilidades del mundo. Las pruebas beta comenzaron en GitHub en mayo de 2020. La función ahora está disponible para todos.



Cómo encender



El escaneo comienza desde la pestaña Seguridad en el repositorio.







Allí hacemos clic en Configurar escaneo de código .







En la siguiente ventana, debemos seleccionar el flujo de trabajo que queremos usar para escanear. El hecho es que CodeQL admite la conexión de motores de terceros. Para el motor estándar, seleccione "Análisis CodeQL".







En principio, este flujo de trabajo se puede configurar: habilite el escaneo programado, escanee para cada uno pusho extraiga la solicitud, use su propio archivo de configuración, inicie consultas de búsqueda adicionales durante el escaneo.



Luego haga clic en el botón Iniciar compromiso y escriba un nombre para el nuevo compromiso.







Elegimos comprometernos con la rama maestra o crear una nueva rama y lanzar una solicitud de extracción.







Es todo. Al final, haga clic en el botón Confirmar archivo nuevo o Proponer archivo nuevo .



Después de especificar la confirmación, el escáner de vulnerabilidades analizará su código de acuerdo con la frecuencia especificada en el flujo de trabajo .



Después de activar CodeQL, puede ver los resultados y cambiar los parámetros de escaneo .



Motor CodeQL







El motor CodeQL busca vulnerabilidades potenciales utilizando un diccionario de más de 2000 consultas. El diccionario es compilado por GitHub y la comunidad de usuarios que han probado el sistema. Esta base de datos se actualizará constantemente y todos pueden agregarla individualmente, simplemente editando el archivo de configuración.



La herramienta de escaneo se basa en el estándar de análisis de código estático SARIF (OASIS Static Analysis Results Interchange Format) y admite la conexión de motores de terceros que funcionarán en una sola interfaz. También se admite la exportación de resultados a través de API unificadas.



Desde el envío en mayo de 2020, se han escaneado más de 12.000 repositorios (1,4 millones de pases en total) y se han identificado más de 20.000 problemas de seguridad, incluidas vulnerabilidades de ejecución remota de código (RCE), inyección SQL y scripts entre sitios (XSS).



Los desarrolladores y mantenedores arreglaron el 72% de las vulnerabilidades encontradas dentro de los 30 días posteriores a su descubrimiento, antes de fusionar el código en la rama principal. Este es un buen resultado, porque según las estadísticas, menos del 30% de las vulnerabilidades encontradas se corrigen dentro de un mes después de la detección.



Como resultado de las pruebas beta, se realizaron 132 confirmaciones de la comunidad al diccionario de consultas de código abierto. Para que los usuarios de GitHub ejecuten herramientas de terceros, se han celebrado acuerdos con más de una docena de desarrolladores de sistemas de seguridad y herramientas de código abierto para análisis estático, escaneo de contenedores y validación de infraestructura como código (Infraestructura como código; IaC): este es un enfoque para administrar y describir la infraestructura a través de la configuración. archivos, y no mediante la edición manual de configuraciones en servidores o interacción interactiva.



Además de buscar vulnerabilidades, GitHub también se asocia con 24 proveedores de servicios de terceros para encontrar sus secretos en el código que no se pueden publicar de forma clara, como las claves de acceso. Los socios incluyen AWS, Google Cloud, Azure, Dropbox, Slack, Discord, npm, Stripe y Twilio. La búsqueda de secretos se realiza automáticamente en repositorios públicos y privados.







El escaneo de código es gratuito para los repositorios públicos y está incluido en el paquete de seguridad avanzada para GitHub Enterprise (que es un servicio pago ). Algunas opciones exóticas (lista de direcciones IP permitidas, SAML, soporte LDAP, etc.) están disponibles solo en la versión paga.



Sin embargo, debe agregar una mosca en la pomada a este barril de miel. Algunos autores de programas de código abierto se quejan ( 1 ,2 ) que el escaneo da demasiados falsos positivos.





En teoría, la comprobación automática de todos los repositorios es algo bueno, pero en la práctica no es muy agradable distraerse constantemente con informes de "vulnerabilidades" falsas, especialmente en repositorios de desarrollo o archivos obsoletos que nunca pasarán a producción. Se vuelve aburrido muy rápido. Algunos autores dicen que la mayoría de las vulnerabilidades en su propio código son en realidad ruido o no son aplicables en un caso particular.



Es decir, el rastreador de GitHub puede desencadenar todos los síntomas de una condición conocida como fatiga de seguridad. Para obtener más información sobre esta afección, consulte el artículo científico.(doi: 10.1109 / MITP.2016.84). Afirma que esta condición en una persona refuerza su renuencia a seguir las recomendaciones de seguridad y afecta el análisis general de costo-beneficio.



All Articles