Header Ads Widget

Ticker

6/recent/ticker-posts

Descripción general de APICheck


 Revisamos APIcheck, una herramienta de código abierto de OWASP que ayuda a escanear una API en busca de vulnerabilidades críticas.

Tener la capacidad de ejecutar comprobaciones en una API es vital. Proporcionar una funcionalidad y seguridad adecuadas requiere probar la API y asegurarse de que coincida con las especificaciones. Una gran experiencia de usuario depende de una experiencia de desarrollador predecible y consistente , que solo se puede lograr mediante la estandarización del código base subyacente. En todos los niveles, tener un conjunto de herramientas para garantizar la coherencia es vital.

Ingrese APICheck , una herramienta recientemente de código abierto de OWASP. En nuestro espacio, OWASP es más conocido por su discusión sobre las vulnerabilidades de API y, como tal, son un candidato principal para la creación de un producto para escanear esas vulnerabilidades. A continuación, veremos su respuesta a la pregunta de coherencia, APICheck, y daremos una impresión general de cómo se usa.

¿Qué es APICheck?

APICheck : "El conjunto de herramientas de DevSecOps para API HTTP"

APICheck es un entorno creado para "crear cadenas de ejecución" con fines de prueba. En el contexto de las API, el concepto de cadena de ejecución a menudo se da por sentado, pero hay algo de valor en discutir por qué es importante una cadena de ejecución. Las llamadas a la API tienen un inicio definido y un final definido: es este proceso de realizar una solicitud, transformar la información resultante y luego recibir una salida que forma una cadena de ejecución.

Sin embargo, estas cadenas no ocurren de forma aislada. A menudo, los errores en cadenas de ejecución específicas reflejan errores dentro de la propia API (o, al menos, sugieren un error que es sistémico para la API o su entorno). Por esa razón, aislar las cadenas de ejecución y luego probarlas repetidamente puede dar como resultado una retroalimentación procesable.

Este es el principal beneficio de algo como APICheck: poder usar herramientas poderosas para probar las mismas áreas repetidamente produce datos confiables que se pueden probar, volver a probar y verificar.

APICheck Herramientas de DevSecOps

Para comprender los casos de uso específicos de APICheck como parte de un flujo de seguridad, debemos mirar el conjunto de herramientas que se ofrecen para ver cómo se crean e interactúan las cadenas de ejecución. Parte de esta información se extrae de la documentación oficial , que ofrece guías de implementación específicas y resultados de ejemplo.

Reproducir solicitudes HTTP

Esta función es un mecanismo mediante el cual se pueden repetir solicitudes anteriores de forma controlada. En esencia, la solicitud leída stdinse envía una vez más, con nuevas respuestas capturadas; las respuestas antiguas se almacenan para su posterior procesamiento. La reproducción de solicitudes es una herramienta obvia pero poderosa, que permite a los desarrolladores repetir solicitudes de manera controlada para probar funciones específicas, informes de errores, interacciones, etc.

Como ejemplo de flujo para este tipo de función, considere la posibilidad de repetir una cadena de ejecución fallida en un entorno inestable. Supongamos que está haciendo una llamada a la API, pero no está claro si la red está causando fallas repetidas o si hay un error en la propia API. Puede realizar solicitudes con regularidad, pero dada la variedad de interfaces y variables introducidas durante un flujo de cadena de ejecución típico, necesitamos una mejor solución.

Con la reproducción HTTP, simplemente puede reproducir la misma función de la misma manera a través de los mismos flujos para obtener un resultado predecible. Si sigue viendo fallas independientemente de cuándo vuelva a reproducir la función, lo más probable es que la función en sí sea el problema. Si, por otro lado, ve un éxito intermitente y la única variable es la red en sí, puede comenzar a comprender en qué parte de la cadena se ha roto la ejecución.

Sistemas de proxy

Proxy remoto

No todas las cadenas de ejecución son confiables; hay muchas ocasiones en las que es posible que desee probar una función pero no desee conectarse directamente al final de esa cadena. Dentro de la documentación hay un ejemplo bastante bueno de tal caso de uso:

“Todos los días visitamos muchos sitios en Internet. Cada uno de estos sitios tiene muchos recursos y hace muchas conexiones a servidores externos, pero… ¿cómo podemos verificar las conexiones de sitios sospechosos? ¿Y cómo podemos programar algunas acciones?
Puede instalar un antivirus. Puede usar algún software adicional que intente "protegerlo" contra este tipo de sitios, pero no puede ejecutar ninguna acción personalizada (¡o script de shell!) Cuando los detecta. ¿Por qué no usar APICheck para eso? "

Esta herramienta permite probar las llamadas mediante el enrutamiento a través de un proxy remoto. Al hacerlo, puede crear una capa de aislamiento que aísle los sistemas de prueba del recurso que se está probando. Esto tiene sentido para cualquier recurso potencialmente malicioso, pero también ayuda a probar inquietudes específicas con respecto a los flujos de datos aislados o geográficamente limitados. En otras palabras, puede averiguar si el problema es el recurso o si el problema es usted.

Proxy local

Cabe señalar que APICheck tampoco se limita simplemente a las funciones de proxy remoto. Hay ocasiones en las que un proxy local es más apropiado, especialmente cuando intenta probar dispositivos, funciones y bases de código locales que ya controla pero que, no obstante, son externos a su API principal. Para esto, APICheck también ofrece una opción que permite realizar pruebas rápidas y sencillas a través de un proxy de intermediario.

Detector de datos sensibles

Al observar toda la experiencia de la API, las API se basan en gran medida en el intercambio abierto de información. Dicho esto, hay algunos casos legítimos en los que los datos no deben compartirse, ya sea lógica empresarial, IP internas o simplemente información que de alguna manera tiene privilegios. Es preocupante que no es raro que estos datos se expongan de alguna manera. APICheck tiene una herramienta para verificar estos datos y asegurarse de que los datos confidenciales no estén expuestos de manera incorrecta.

El método por el cual APICheck hace esto se basa en reglas, dependiendo de un archivo YAML simple para establecer requisitos para los datos en el flujo de ejecución. Esto es especialmente útil si no está completamente seguro de qué elemento del flujo tiene fugas. Con API demasiado complejas, es muy posible que la fuente de exposición de datos confidenciales no esté en la interacción de nivel superior, sino que esté enterrada en algunas subllamadas adicionales que se ejecutan en otros almacenes de datos. Con este método basado en reglas, puede comenzar a reducir dónde se encuentra esta exposición a medida que reduce función por función.

Esta es una excelente manera de probar la exposición excesiva de datos , una de las 10 principales vulnerabilidades señaladas por OWASP. No toda la exposición de los datos se mostrará obviamente en los datos de retorno; tener un sistema automatizado para probar basado en un conjunto de reglas preformadas puede ser de gran ayuda para administrar este tipo de riesgo.

Funciones de seguridad

Este conjunto de funciones se utiliza mejor para verificar la seguridad que surge tanto del código como de la implementación práctica. Cabe señalar que las soluciones son excelentes formas de probar algunos errores comunes marcados por OWASP, incluida la autorización de nivel de función rota, problemas con la limitación de recursos y velocidad, y la autenticación de usuario rota .

Validador de tokens JWT

El validador de tokens JWT es exactamente lo que parece: una herramienta para validar tokens JWT y su emisión frente a un conjunto de prácticas y estándares. Realiza esto aceptando un argumento o un objeto de solicitud / respuesta de stdinputUna vez que el valor está en el sistema, se compara con un conjunto de comprobaciones para verificar que el encabezado y los campos de reclamos estándar estén completos, sean válidos y estén configurados correctamente. Además, el validador verificará la verificación de la firma, asegurando que el JWT sea utilizable para su forma y propósito.

Linter de OpenAPI

Un linter es una herramienta que permite a un desarrollador mirar creaciones en un lenguaje específico para buscar código incorrecto. Con esto en mente, APICheck ha desarrollado un linter OpenAPI v2 y v3 para ayudar a agregar esta herramienta al kit de herramientas APICheck. La herramienta es una interacción simple de entrada y salida: acepta la entrada de OpenAPI como un argumento (o lee la entrada stdinput) y genera la misma definición (si no se descubren errores) o una lista de errores.

Comprobador de OpenAPI v3

APICheck también proporciona una herramienta para verificar los puntos finales en una especificación OpenAPI v3 con un conjunto de reglas semánticas y de seguridad. Basado en términos generales en semáforos / espectrales, esto se ve mejor como una herramienta de "mejores prácticas", que garantiza que la entrada se adhiera a un conjunto de expectativas, estándares y requisitos.

APICheck de cURL (acurl)

APICheck también proporciona algunas funciones básicas para confirmar una función APICheck desde cURL. APICheck ha hecho esta herramienta lo más simple posible manteniendo la forma y función idénticas a cURL . En esencia, esta herramienta simplemente emite una solicitud de curl en la línea de comando. A partir de aquí, la herramienta convierte el rizo binario en un reqresobjeto para su posterior manipulación.

Una impresión general

En teoría, no hay nada realmente innovador acerca de APICheck; todas estas son herramientas relativamente de sentido común que cualquier desarrollador o evaluador agradecería. El verdadero valor de APICheck proviene de dos atributos principales que lo convierten en un fuerte competidor para su uso.

En primer lugar, todo está perfectamente combinado y la experiencia del usuario claramente se ha hecho pensando en la simplicidad. Esto puede parecer una faceta menor de cualquier sistema, pero la simplicidad es increíblemente importante en las pruebas y la verificación de errores. Cualquier complejidad adicional en un sistema de este tipo introduce necesariamente complejidad en el sistema general de generación de errores y, como tal, puede generar confusión o ignorancia de problemas a largo plazo. Tener una forma sencilla de demostrar repetidamente que algo está creando un error es muy beneficioso.

En segundo lugar, el hecho de que APICheck exista como una entidad combinada singular significa que se puede utilizar como una instancia singular. Existen demasiados sistemas como este en una multitud de módulos, complementos o complementos, y esto puede crear confusión y reducir la efectividad general. Tener un paquete único y limpio a través del cual se pueda realizar una buena parte de las pruebas es de gran beneficio para casi cualquier grupo de desarrollo.

Conclusión

En última instancia, cualquier recurso que ayude a los desarrolladores de API a agilizar la verificación de errores y reducir los problemas comunes es uno de los buenos en nuestro libro. APICheck es bastante sencillo en su aplicación y función, y cumple bien este propósito. Los usuarios encontrarán que las implementaciones sencillas son fáciles de usar y proporcionan una cantidad adecuada de datos y capacidad de transformación para garantizar que las comprobaciones sean exhaustivas.

¿Qué opinas de nuestra descripción general? ¿Ha utilizado APICheck? ¿Existen otras herramientas similares que pueda recomendar? ¡Háznoslo saber a continuación!

Publicar un comentario

0 Comentarios