Una vulnerabilidad es todo aquello que amenaza la estabilidad o la seguridad de algo pudiéndose considerar como un punto débil del sistema.

Si necesitas vigilar las vulnerabilidades en equipos Cisco, deberás ingresar a páginas como Cisco Software Checker, Cisco Security Advisories o Cisco Active Advisor para poder investigarlas, pero ¿No hay algún servicio donde pueda validarlos de manera automatizada? Pues si, con OpenVuln API, un modulo basado en Python para hacer consultas a Cisco PSIRT es posible.
Si te interesa saber como muestran las vulnerabilidades, sus estándares y como automatizarlas con Python, aquí te cuento. Al final del post hay un enlace para búsquedas de vulnerabilidad ofrecido en este página .
Nota: Este post explica lo necesario para poder comprender el uso de este API. Ciberseguridad es mucho más amplio y complejo, que se escapa del tema en sí.
1. Antes de comenzar…¿Que sección de seguridad estamos comentando aquí?
La seguridad informática es un tema crucial, por esta razón las empresas tienen frentes de protección en sus premisas por posibles ataques y cuando me refiero a frentes me refiero a las multiples capas de protección que debes tener en cuenta.
Para tener una idea, si fijas la seguridad con los cortafuegos (Firewall) de borde como único método de protección, solo estás en la capa perimetral:
La verdad que ciberseguridad es difícil de masterizar, ya que hay muchas áreas y cada uno de ellos tiene su grado de complejidad. En este post nos enfocamos en la sección de prevención a través de las vulnerabilidades: Prevention “Vulnerability Assessment”.
Nota: Una buena base para temas de seguridad es el marco de referencia NIST o prepararte en materiales de estudio como CISSP. Al final de este post te dejo enlaces de referencias.
1-1. Riesgos y Ataques
Los riesgos de la información están presentes cuando confluyen fundamentalmente dos elementos: amenazas de ataques, y vulnerabilidades de la tecnología; conceptos íntimamente relacionados donde no es posible ninguna consecuencia sin la presencia conjunta de estos.
2. Estándares de seguridad en la industria
Hay estándares de seguridad reconocidos y aceptados en la industria de seguridad. Comencemos con los lenguajes y formatos:
- CVRF: Common Vulnerability Reporting Framework.
- OVAL: Open Vulnerability and Assessment Language.
2.1 – CVRF (icasi.org) y OVAL (cisecurity.org):
Son dos formatos de lenguaje basados en XML que permite a diferentes partes interesadas de diferentes organizaciones compartir información crítica relacionada con la seguridad en un solo formato, acelerando el intercambio y la digestión de la información. Dentro de ellos se pueden llamar otras referencias de seguridad estandar.
2-2 Las 3 C’s : CWE – CVE – CVSS.
- Aparte del formato en sí mencionado previamente, existen otras definiciones útiles como CWE, CVE y CVSS.
La forma más sencilla de entender la diferencia de los 2 primeros es por su definición:
- CWE: Common Weakness Enumeration: Es una entrada en la base de datos correspondiente a una debilidad y no está relacionado con un producto o sistema.
- CVE: Common Vulnerability Exposure: Es una entrada en la lista de vulnerabilidades, es decir, es una instancia específica de una debilidad en un producto o sistema.
Por lo que podríamos decir que las debilidades identificadas en los CWEs nos llevan las vulnerabilidades existentes en las aplicaciones y recogidas en los CVEs.
En el caso de CVSS (Common Vulnerability Scoring System). Consta de tres grupos de métricas: Base, Temporal y Ambiental. Las métricas Base producen una puntuación que va de 0 a 10, que luego se puede modificar al puntuar las métricas Temporal y Ambiental. Entre mayor el número, mayor la vulnerabilidad.
3. openVuln API
OpenVuln API es un código abierto desarrollado en Python para realizar consultas de vulnerabilidad de los productos Cisco. Es genial para saber si tus productos tienen alguna vulnerabilidad expuesta en tu organización.
3.1 Consulta por Código – Python
- Para poder utilizar OpenVuln API necesitas solicitar los permisos en apiconsole.cisco.com. Sigue los pasos de la página. Con ello te brindarán un CLIENT_ID y un CLIENT_SECRET.
- Luego, descarga la librería en Python en tu ordenador:
>> pip install openVulnQuery
- exporta las variables del primer paso en tu ordenador:
>> export CLIENT_ID="abc12abcd13abcdefabcde1a" >> export CLIENT_SECRET="1a2abcDEfaBcDefAbcDeFA3b"
- Realiza una consulta de prueba:
openVulnQuery --ios_xe 16.1.1 -f bug_ids -c
En este ejemplo, el sistema operativo IOS-XE versión 16.1.1 es consultado sobre la cantidad de bugs que tiene, indicando un total 181 Bugs hasta el momento de la escritura de este artículo.
3.2 Consulta por Web – SYNCORP
¿Te gustaría disfrutar de este API rápidamente?, pues en SYNCORP habilitamos en nuestro portal el servicio de consultas OpenVuln. Puedes preguntar tus vulnerabilidades por versiones de equipos para las plataformas IOS, IOS-XE, NX-OS e incluso al modo ACI de los Cisco Nexus.
¿Que información aparecerá?, bueno. Depende de la plataforma consultada, pero en general sería la siguiente información:
- AdvisoryId: Un identificador único usado en el formato OVAL.
- AdvisoryTitle: Una descripción del AdvisoryID
- BugIDs: Lista los bugs (si los hay), asociado a la vulnerabilidad mencionada
- cves: Indica la vulnerabilidad en común detectada(s) usado generalmente bajo el formato CVRF.
- cvssBaseScore: Puntaje que va del 0 al 10. Entre más alta, mayor riesgo de afectaciones.
- cwe: ID donde indica cuando se identificó la debilidad.
- iosRelease: La versión consultada en SYNCORP.
- firstFixed: La primera versión donde se soluciona esta vulnerabilidad
- firstPublished: Fecha cuando fue publicado este ID.
- lastUpdated: Fecha cuando fue actualizada este ID.
- publicationUrl: Enlace para ver mayores detalles desde la plataforma de Cisco PSIRT.
- sir: (Security Impact Rating) Los valores aquí serían Informational, Medium, High y Critical. A continuación la tabla que pueden encontrar en las políticas de seguridad de vulnerabilidades:
Conclusiones:
Anteriormente no he mencionado algún artículo de seguridad, por lo que una breve descripción fue realizadas antes de hablar sobre esta API de seguridad.
Si te gustó este post, no te olvides de darle un like o recomendación, y seguirnos en nuestras nuevas redes sociales en Instagram y Facebook. Donde se darán información relacionado a tecnología, redes y soluciones tecnológicas.
¿Dudas, opinión o sugerencias? Déjame tus comentarios.
Si te interesa leer todos los posts, puedes localizarlos en la sección de blogs. Gracias por la lectura.
Referencias:
Cisco:
https://blogs.cisco.com/security/openvuln-update
https://github.com/CiscoPSIRT/openVulnAPI/tree/master/openVulnQuery
https://tools.cisco.com/security/center/resources/security_vulnerability_policy.html
https://developer.cisco.com/psirt/
https://developer.cisco.com/docs/psirt/#!getting-started/getting-started
https://apiconsole.cisco.com/docs
NIST info:
https://www.nist.gov/cyberframework
CVRF info:
CVSS info:
https://www.first.org/cvss/v3.1/examples
OVAL info:
MITRE info:
https://makingsecuritymeasurable.mitre.org/docs/MSM_Measurement_and_Architecture_diagram_handout.pdf
