Los desarrolladores utilizan cada vez más las APIs para acelerar el tiempo de comercialización de su software. Si bien es extremadamente beneficioso para el negocio, la tendencia creciente de aprovechar las APIs junto con la creación de aplicaciones en un entorno nativo de la nube ha puesto de manifiesto la necesidad de una mayor visibilidad y seguridad.
Las APIs, según lo diseñado, a menudo difieren de su estado de tiempo de ejecución debido a diferencias en el tiempo, APIs en desuso, APIs zombis y compatibilidad con versiones anteriores. Muchas aplicaciones no brindan a los clientes acceso a su especificación OpenAPI, lo que dificulta en el mejor de los casos las nuevas integraciones y la evaluación de riesgos API. En resumen, ya sea que se trate de un desarrollador que aprovecha las APIs internas, consume una APIs de terceros o produce una APIs como servicio, existe una necesidad urgente de visibilidad sobre qué APIs se utilizan en entornos nativos de la nube y su postura de seguridad.
Comprensión de la reconstrucción de especificaciones OpenAPI
La comunicación entre aplicaciones se puede comparar con la comunicación entre personas. Sin dicho protocolo, la comunicación sería imposible. Para dibujar una analogía de Star Trek: imagine a los oficiales de la Flota Estelar reuniéndose con los klingon por primera vez y teniendo que reconstruir el idioma klingon para poder entenderlos.
Así como los oficiales de la Flota Estelar extraerán inferencias lingüísticas haciendo uso de reglas, también lo hará APIClarity en la reconstrucción de las especificaciones de APIs. Este concepto forma la base de la reconstrucción de especificaciones.
¿Cuáles son las herramientas actuales de reconstrucción de especificaciones OpenAPI?
Optic, Avantation, har2openAPI, Response2Schema, InducOapi, SwagDefGen, API Shark y SwaggerHub son todas herramientas que proporcionan la reconstrucción de especificaciones OpenAPI, que actualmente son gratuitas. Sin embargo, estas herramientas (aparte de Optic, SwaggerHub y API Shark) no tienen la capacidad de agregar y detectar diferencias de especificación a lo largo del tiempo (p. Ej., una fase de aprendizaje) además, la mayoría de ellos no tienen una fase de revisión, donde los desarrolladores pueden modificar la especificación.
- SwaggerHub: un conjunto premium de herramientas para el diseño y documentación de API. Swagger también incluye una herramienta de reconstrucción de especificaciones, pero no es de código abierto y los desarrolladores no pueden integrarse con un entorno de tiempo de ejecución.
- Óptica: una herramienta de código abierto que ayuda a los desarrolladores a documentar, revisar y aprobar los cambios de API antes de implementarlos. La óptica es excelente para los cambios de API de activación, pero como no está diseñada para monitorear el tráfico de API en vivo y los grupos desplegados, carece de escalabilidad. La óptica parece más adecuada para la computadora personal de los desarrolladores que en un entorno de servicios múltiples.
Además de lo anterior, otros proveedores incluyen Akita, Imvision y Salt, pero estos productos no son soluciones de código abierto.
APIClarity:
APIClarity es una herramienta de código abierto, construida para reconstruir las especificaciones de OpenAPI a partir del tráfico en tiempo real sin problemas. APIClarity aprovecha un marco de malla de servicio para capturar todo el tráfico API en un entorno existente. Use APIClarity para:
- Construya la especificación OpenAPI observando el tráfico API
- Cargue la especificación OpenAPI, revise, modifique y apruebe las especificaciones OpenAPI generadas
- Alerta sobre cualquier diferencia entre la especificación API aprobada y la que se observa en tiempo de ejecución, detecta API de sombras y zombis
- Audite y monitoree los hallazgos de API a través de su panel de control
La hoja de ruta del contribuyente de APIClarity incluye gRPC, Protobuf y más. Para obtener más información, twittee en #APIClarity.
APIClarity, casos de uso:
A través de implementaciones sin interrupciones, sin SDK, instrumentación de código o modificación de carga de trabajo, APIClarity proporciona:
Visibilidad API: Produzca automáticamente un inventario completo de sus API
Reconstrucción de especificaciones API: APIClarity supervisará el tráfico API para saber cómo se comunica la API para generar una reconstrucción API. APIClarity agregará eventos a lo largo del tiempo. En cualquier momento, revise y aplique la especificación reconstruida.
Detecte desviaciones de especificación API (tiempo real y tiempo extra): Detecte cualquier desviación en la comunicación en tiempo real de las especificaciones establecidas en tiempo real o aproveche la capacidad de APIClarity para agregar eventos, durante un período de tiempo. Compare fácilmente las diferencias a través de las especificaciones proporcionadas (cargadas) o las especificaciones reconstruidas
¿Cómo puede ayudar APIClarity a aumentar la seguridad?
Identificar el protocolo OpenAPI es el primer paso para agregar visibilidad en las llamadas API y fortalecer la seguridad API. Se puede usar para:
- Detecte problemas de seguridad API – Al analizar la especificación OpenAPI, los desarrolladores pueden obtener visibilidad sobre si se utilizó una autenticación débil o si se divulgó la Información de identificación personal (PII).
- Eliminar errores tipográficos / errores de código – Con la especificación OpenAPI reconstruida, los desarrolladores ahora pueden generar la capa de infraestructura cliente / servidor, acelerar el desarrollo, validar la entrada, eliminar errores tipográficos y asegurarse de que solo se sirvan las API especificadas
- Habilite las pruebas de pelusa – Además de detectar manualmente los problemas de seguridad de API, los desarrolladores pueden usar la especificación identificada para habilitar las pruebas fuzz. El fuzzing es una técnica automatizada que consiste en crear y alimentar entradas y datos inválidos e inesperados en una aplicación para encontrar errores de codificación y lagunas de seguridad.
- Rectificar y complementar la documentación – Las organizaciones a menudo descuidan publicar especificaciones API o publicar instancias inexactas o incompletas que no se actualizan necesariamente. En muchos casos, la única documentación disponible es a menudo un manual SDK desactualizado. Acceder a las especificaciones completas de API requiere reconstruirlas dinámicamente desde cero. APIClarity automatiza la reconstrucción de especificaciones OpenAPI.
- Escanear la especificación API para debilidades – Las herramientas de seguridad API, como 42 Crunch, se pueden ejecutar en una especificación API reconstruida para detectar debilidades.
- Detección de cambios o derivaciones API a lo largo del tiempo – La documentación publicada de OpenAPI puede no actualizarse regularmente, por lo que la reconstrucción de la especificación a partir del tráfico en tiempo real le mostrará el estado actual de API. Con la especificación en tiempo real disponible, una herramienta de analizador de especificaciones (como 42Crunch) puede mostrarle configuraciones erróneas, vulnerabilidades y otros riesgos potenciales de seguridad de API.
- Identificación de API de zombis y sombras – Cuando se proporcionan especificaciones OpenAPI, la reconstrucción de las especificaciones API es crucial para detectar desviaciones de la especificación API publicada.
El 21 de septiembre de 2021, el CNCF organizó un seminario web sobre APIClarity, que está disponible para Reproducir aquí. Para comenzar a usar APIClarity hoy, acceda aquí a través de GitHub.
APIClarity es un proyecto del equipo de Tecnologías Emergentes e Incubación en Cisco. Puede obtener más información sobre nuestros proyectos y equipo en Twitter @ciscoemerge o LinkedIn.
Además de APIClarity, también puede aprovechar otras soluciones de seguridad, desde Cisco, incluidas SecureCN, SecureApp, o SecureWorkload para una seguridad integral en sus API, aplicaciones nativas en la nube e infraestructura.