Getty Images
Mejore el nivel de la gobernanza del software de código abierto
El gobierno de código abierto es una parte vital de la madurez de un proyecto de software. Adopte estas herramientas y consejos para monitorear la seguridad de código abierto, los permisos de uso y la calidad del código.
A medida que se multiplican los proyectos de código abierto, también lo hacen los riesgos de usar estas herramientas sin precauciones.
El gobierno de código abierto es la práctica de definir una política y un proceso detallados en torno al uso de herramientas de código abierto por parte de una organización. Ayuda a una organización a comprender las herramientas y sus riesgos.
La gobernanza del software de código abierto ayuda a los desarrolladores a administrar cómo usan las herramientas de código abierto para optimizar este tipo de software y reducir el riesgo. Exploremos algunos consejos para reducir los riesgos de seguridad y aumentar la responsabilidad al usar software de código abierto.
Escanee bibliotecas de código abierto en busca de vulnerabilidades
Las bibliotecas de código abierto en los proyectos de desarrollo de software son increíblemente populares. Aprovechar los proyectos de código abierto ha permitido el éxito de innumerables proyectos de software. Es imposible usar internet sin depender de la colaboración de muchos proyectos de código abierto. Cuando los desarrolladores utilizan bibliotecas de código abierto, pueden centrarse en las funciones específicas de una aplicación, al tiempo que incorporan software maduro y bien probado para manejar protocolos estandarizados, como la capa de conexión segura y HTTP.
Sin embargo, hay casos raros en los que las bibliotecas de código abierto tienen errores y vulnerabilidades de seguridad, lo que puede tener un efecto enorme y catastrófico. Por ejemplo, la vulnerabilidad Log4Shell en la biblioteca de registro de código abierto Log4j de Apache puso en riesgo a millones de sistemas. La gran popularidad de Log4j significó que, de la noche a la mañana, las organizaciones necesitaban apresurarse a parchar su software para evitar el control no autorizado de los sistemas seguros.
La primera línea de defensa contra las bibliotecas de código abierto vulnerables es escanear las dependencias de un proyecto en busca de bibliotecas que se sabe que tienen vulnerabilidades de seguridad. OWASP Dependency-Check es una herramienta que devuelve un informe que identifica dependencias vulnerables, junto con sus vulnerabilidades y exposiciones comunes (CVE). Hay diferentes formas de ejecutar OWASP Dependency-Check, como a través de una interfaz de línea de comandos, un complemento de Apache Maven, una tarea Ant o un complemento de Jenkins, lo que permite una fácil integración en cualquier tubería de CI/CD.
El uso de una herramienta que crea informes procesables es tan útil como el proceso aplicado en torno a la herramienta. Ejecute OWASP Dependency-Check en un horario consistente para escanear el código base contra las últimas actualizaciones de CVE recién descubiertas. Dedique tiempo y plan para los CVE identificados.
Adhiérase a las licencias
Cuando utilice dependencias de código abierto, tenga en cuenta las licencias que rigen su uso. Las licencias para proyectos de código abierto definen cómo usar, copiar y distribuir el software.
Según el software de la aplicación y los tipos de distribución, es posible que el código fuente de la aplicación no permita ciertas herramientas de código abierto. Por ejemplo, una licencia como GNU General Public License versión 3 especifica que cualquier proyecto que se base en el trabajo de otro creador con licencia GPLv3 debe estar disponible públicamente al igual que el proyecto original.
Infringir los términos de estas licencias plantea a la organización costosas consecuencias legales. ScanCode Toolkit es una herramienta de línea de comandos independiente que escanea un proyecto y crea un informe de las diversas licencias que rigen los componentes de código abierto en el código fuente de un proyecto. ScanCode Toolkit es completamente de código abierto y está disponible en GitHub. ScanCode Toolkit simplifica el proceso que requiere mucho tiempo para comprender las dependencias de código abierto de un proyecto.
Comprenda que un proyecto no solo tiene dependencias directas, donde el código fuente de la aplicación hace referencia explícita a ciertos proyectos de software de terceros, sino también dependencias indirectas. Las dependencias indirectas son proyectos de software de terceros que utilizan las dependencias directas.
Los desarrolladores deben obedecer las licencias de las dependencias directas, ya que su código fuente se basa en estos proyectos de software de terceros. Y debido a que las dependencias indirectas también son parte del código fuente de un software, los desarrolladores también deben obedecerlas. ScanCode Toolkit está escrito en Python y diseñado para ser extensible, con un sistema de complementos para agregar funcionalidad a los escaneos.
Configure propietarios de código de GitHub
Use la característica de «propietarios de código» en GitHub para responsabilizar a los desarrolladores contribuyentes de los nuevos cambios introducidos en los proyectos de código abierto. Con esta función en un repositorio de GitHub, los desarrolladores pueden designar usuarios específicos como revisores de los cambios introducidos en ciertas partes de su base de código. Los revisores reciben una notificación cuando se abre una solicitud de incorporación de cambios en las partes correspondientes del repositorio que se les ha asignado.
Esta función, junto con las protecciones de rama, garantiza que los desarrolladores puedan revisar todas las solicitudes de extracción antes de que se fusionen con la rama principal. Esta combinación produce un mayor nivel de garantía de calidad, porque los colaboradores que están más familiarizados con los archivos modificados verifican los cambios.