Terminología y conceptos clave
Las siguientes terminologías le ayudan a empezar a utilizar Application Dependency Management (ADM). En la documentación de Oracle Cloud Infrastructure (OCI) se proporciona terminología relacionada.
- Dependencia de Aplicación
-
Componente de software representado por una URL de paquete (purl) o GAV (Maven Group, Artifact, Version coordinar) que se debe comprobar para detectar vulnerabilidades dentro de una auditoría de vulnerabilidad.
- Componente
-
Un artefacto es una biblioteca, como un jar, producida o utilizada por un proyecto de software.
Las dependencias de un proyecto de software se especifican en términos de sus artefactos. Algunos artefactos se producen debido al proceso de integración continua del proyecto. Están ubicados en el repositorio del proyecto. Se pueden descargar otros artefactos de repositorios de terceros y, a su vez, tener artefactos dependientes. Por lo tanto, un proyecto tiene un gráfico de dependencias, algunas creadas por el propio proyecto y otras proporcionadas por contribuyentes externos.
- Herramienta de integración continua
-
La integración continua es una práctica en la que los miembros de un equipo de desarrollo comparten y fusionan sus cambios en un repositorio de control de versiones unificado. La práctica se utiliza con pruebas automatizadas y otras medidas de verificación para garantizar la calidad de la versión unificada.
Una herramienta de integración continua automatiza esta práctica y proporciona un marco en el que se realizan las pruebas y las medidas de verificación. El acceso a una herramienta suele controlarse mediante permisos en los que se puede otorgar acceso de lectura y escritura a los miembros del equipo, colaboradores u otras partes interesadas.
Application Development Management soporta las siguientes herramientas de integración continua:- Pipelines de compilación DevOps de OCI
- GitHub Acciones
- Pipeline de GitLab
- Pipeline de Jenkins
- Base de conocimientos
-
Una base de conocimientos proporciona acceso a las vulnerabilidades de los servicios de ADM. Al configurar una receta de solución o crear una auditoría de vulnerabilidad, se debe especificar una base de conocimientos a la que esté asociada. La base de conocimientos de ADM almacena detalles de dependencias de software para varios lenguajes de programación y sus vulnerabilidades. La base de conocimientos se ha mejorado para almacenar los detalles de clase y método de algunas vulnerabilidades de Java.
- Solicitud de recuperación
-
Una solicitud de recuperación, también conocida como solicitud de fusión, es un medio común de contribuir a un repositorio de código fuente que utiliza un sistema de control de versiones distribuido, como los compatibles con ADM.
Por ejemplo, un usuario crea una solicitud de extracción para informar a otros sobre los cambios que se han transferido a una rama de un repositorio. Cuando se utiliza con una herramienta de integración continua, la solicitud de extracción hace que la herramienta cree el proyecto y lo verifique mediante pruebas. Si la verificación se realiza correctamente, los cambios se fusionan con el código fuente del proyecto existente.
- Receta de solución
-
Una receta de solución representa la configuración de un flujo de trabajo, que consta de una secuencia de cuatro etapas:
- Detectar
- Recomendar
- Comprobar
- Aplicación
Normalmente, se crea una receta de solución correspondiente a la rama supervisada del repositorio que contiene el proyecto.
Una receta de solución tiene un estado, que debe ser uno de los siguientes:
- Activa
- Creando
- Se ha suprimido
- Suprimir
- Fallo
- Desactivado
- Necesita atención
- Actualización
- Ejecución de solución
-
Una ejecución de solución describe la acción de realizar una receta de solución, en la que cada una de las etapas de la receta de solución se realiza en secuencia hasta que se alcanza una etapa finalizada. Puede disparar una ejecución de solución manualmente o especificar que se dispare una ejecución de solución cuando se identifique una nueva vulnerabilidad.
Una receta de solución solo se puede ejecutar si está en estado activo.
Una ejecución de solución tiene un estado, que debe ser uno de los siguientes:
- Aceptado
- Cancelada
- En cancelación
- Creación
- Fallo
- En Curso
- Correcta
ADM soporta una única ejecución a la vez para una receta.
- Repositorio
-
Un repositorio de código es una ubicación de almacenamiento para el proyecto de software. Normalmente incluye el código fuente del proyecto, los metadatos del proyecto y otros artefactos de los que depende el proyecto. El acceso a un repositorio suele controlarse mediante permisos en los que puede otorgar acceso de lectura y escritura a los miembros del equipo, colaboradores u otras partes interesadas.
Application Development Management soporta los siguientes repositorios:
- OCI DevOps
- GitHub
- GitLab
- Secreto
-
Un secreto es una credencial como una contraseña, un certificado, una clave SSH o un token de autenticación que se utiliza con los servicios de OCI.
- Severity
-
La gravedad se refiere al impacto o la criticidad de una vulnerabilidad, representada por diferentes valores.
- Almacenar en Zona Intermedia
-
Una etapa describe un paso en una ejecución de solución. Las cuatro etapas son:
- Detectar: detecta vulnerabilidades en la aplicación. Una ejecución de solución continúa con la siguiente etapa de una ejecución de solución si se detectan una o más vulnerabilidades que superan el umbral de puntuación de CVE configurado. Si no hay ninguno, se completa la ejecución de la solución y puede ver la salida de la auditoría de vulnerabilidad.
- Recomendar: identifique las dependencias de terceros recomendadas que utiliza la aplicación y abra una solicitud de recuperación para proponer estos cambios. Si se realiza correctamente, la ejecución de solución continúa con la siguiente etapa. Si no puede resolver nuevas versiones de dependencia para abordar las vulnerabilidades, la ejecución de solución finaliza aquí, proporcionando los detalles de lo que puede recomendar y las vulnerabilidades que no pudo resolver. Si la etapa falla, la ejecución de la solución termina aquí con un estado de fallo.
- Verificar: verifique los cambios mediante las pruebas especificadas en la herramienta de integración continua. La ejecución de solución continúa a la siguiente etapa si las pruebas se realizan correctamente.
- Aplicar: fusiona la solicitud de recuperación. Si la fusión falla, la ejecución de la solución termina en un estado fallido.
Una etapa tiene un estado, que debe ser uno de los siguientes:
- Cancelada
- Creación
- Fallo
- En Curso
- Correcta
- Vault
-
Un almacén es una entidad lógica en la que el servicio OCI Vault crea y almacena de forma duradera claves y secretos.
- Vulnerabilidad
- Una vulnerabilidad es una debilidad o error en un artefacto de proyecto, como una dependencia de aplicación. Una vulnerabilidad es una generalización de una falla de seguridad de la información, como las descritas por el sistema Common Vulnerabilities and Exposures (CVE).
La Base de Datos Nacional de Vulnerabilidad (NVD) proporciona una medida de la gravedad de una vulnerabilidad de software, utilizando el Sistema Común de Puntuación de Vulnerabilidad (CVSS), que varía de 0 a 10. El NVD admite los estándares CVSS v2.0 y v3.0. Para obtener más información sobre las métricas de vulnerabilidad, consulte National Vulnerability Database. Junto con CVSS, ADM proporciona sus propios indicadores de gravedad, como Alto, Medio y Bajo. Las vulnerabilidades con gravedad desconocida no se incluyen en las auditorías de vulnerabilidad.
Una vulnerabilidad false-positive hace referencia a una vulnerabilidad que se detecta durante la creación de la auditoría de vulnerabilidad, pero no se considera que afecte a la aplicación según los detalles de dependencia. El falso positivo se identifica mediante la creación de imagen nativa de Oracle GraalVM que captura el uso real de la aplicación en el código a través de las clases y los métodos de la aplicación y, a continuación, lo compara con la base de conocimientos de Application Dependency Management.
Una vulnerabilidad ignored hace referencia a una vulnerabilidad que se detecta durante la creación de la auditoría de vulnerabilidad, pero se marca como ignorada según la configuración. La configuración se configura para ignorar vulnerabilidades en función de patrones de exclusión o valores de gravedad máximos permitidos.
- Auditoría de vulnerabilidad
- Una auditoría de vulnerabilidad contiene las vulnerabilidades por las que se ve afectada una aplicación debido a sus dependencias en un momento específico. Incluye información resumida sobre las cantidades y la gravedad máxima de las vulnerabilidades.
Una auditoría de vulnerabilidad está asociada con una base de conocimientos.
- Datos de uso de auditoría de vulnerabilidad
- La creación de una auditoría de vulnerabilidad puede aceptar opcionalmente datos de uso como entrada al crear una auditoría de vulnerabilidad. Los datos de uso detallan todas las clases y métodos utilizados en la imagen nativa GraalVM creada a partir de la aplicación Java. El servicio ADM utiliza estos datos para identificar vulnerabilidades con falsos positivos en las que la aplicación puede no ser vulnerable debido a que no se está utilizando el código vulnerable de la dependencia de la aplicación. Los datos de uso se cargan como un archivo gzip en OCI Object Storage en formato JSON. Los datos se generan mediante GraalVM Native Image y la herramienta de inspección Native Image.