💻API Hacking
Introducción a los ataques API
Las Application Programming Interfaces (API) son fundamentales para el desarrollo de software moderno, siendo las API web la forma más común. Permiten la comunicación fluida y el intercambio de datos entre diversos sistemas a través de internet, actuando como puentes cruciales que facilitan la integración y la colaboración entre diferentes aplicaciones de software.
En esencia, las API consisten en reglas y protocolos definidos que determinan cómo interactúan los distintos sistemas. Especifican los requisitos de formato de datos, definen los métodos de acceso a los recursos y definen las estructuras de respuesta esperadas. Las API se clasifican, en general, en públicas (accesibles a terceros) o privadas (restringidas a organizaciones o grupos de sistemas específicos).
Estilos de construcción de API
Las API web se pueden crear utilizando varios estilos arquitectónicos, incluidos REST, SOAP, GraphQL, y gRPC, cada uno con sus propias fortalezas y casos de uso:
Representational State Transfer (
REST) es el estilo de API más popular. Utiliza un modeloclient-serveren el que los clientes realizan solicitudes a recursos en un servidor mediante métodos HTTP estándar (GET,POST,PUT,DELETE). Las APIRESTfulno tienen estado, lo que significa que cada solicitud contiene toda la información necesaria para que el servidor la procese, y las respuestas suelen serializarse como JSON o XML.Simple Object Access Protocol (
SOAP) utiliza XML para el intercambio de mensajes entre sistemas. Las APISOAPestán altamente estandarizadas y ofrecen funciones integrales de seguridad, transacciones y gestión de errores, pero generalmente son más complejas de implementar y usar que las APIREST.GraphQL es un estilo alternativo que ofrece una forma más flexible y eficiente de obtener y actualizar datos. En lugar de devolver un conjunto fijo de campos para cada recurso,
GraphQLpermite a los clientes especificar exactamente los datos que necesitan, lo que reduce la sobrecaptura y la subcaptura de datos. Las APIGraphQLutilizan un único endpoint y un lenguaje de consulta fuertemente tipado para recuperar datos.gRPC es un estilo más reciente que utiliza Protocol Buffers para la serialización de mensajes, lo que proporciona una forma eficiente y de alto rendimiento de comunicarse entre sistemas. Las API
gRPCse pueden desarrollar en diversos lenguajes de programación y son especialmente útiles para microservicios y sistemas distribuidos.
En este módulo, nos centraremos en los ataques contra una API web RESTful . Sin embargo, las vulnerabilidades demostradas también podrían existir en API creadas con otros estilos arquitectónicos.
Ataques API
Debido a su versatilidad y ubicuidad, las API son un arma de doble filo. Si bien son un componente crítico de la arquitectura de software moderna, también presentan una amplia superficie de ataque. La naturaleza misma de las API, que facilitan el intercambio de datos y la comunicación entre diversos sistemas, introduce vulnerabilidades, como Exposure of Sensitive Data, Authentication and Authorization Issues, Insufficient Rate Limiting, Improper Error Handling y otras configuraciones de seguridad incorrectas.
API OWASP Top 10
Para categorizar y estandarizar las vulnerabilidades de seguridad y las configuraciones incorrectas que pueden enfrentar las API, OWASP ha creado el OWASP API Security Top 10 , una lista completa de los riesgos de seguridad más críticos relacionados específicamente con las API:
Riesgo
Descripción
La API permite a los usuarios autenticados acceder a datos que no están autorizados a ver.
Los mecanismos de autenticación de la API se pueden eludir o eludir, permitiendo el acceso no autorizado.
La API revela datos confidenciales a usuarios autorizados a los que no deben acceder o les permite manipular propiedades confidenciales.
La API no limita la cantidad de recursos que los usuarios pueden consumir.
La API permite que usuarios no autorizados realicen operaciones autorizadas.
La API expone flujos comerciales sensibles, lo que puede generar posibles pérdidas financieras y otros daños.
La API no valida adecuadamente las solicitudes, lo que permite a los atacantes enviar solicitudes maliciosas e interactuar con recursos internos.
La API sufre configuraciones de seguridad incorrectas, incluidas vulnerabilidades que conducen a ataques de inyección.
La API no administra de forma adecuada y segura el inventario de versiones.
La API consume otra API de forma insegura, lo que genera posibles riesgos de seguridad.
Este módulo se centrará en explotar todos estos riesgos de seguridad y comprender cómo prevenirlos.
Relacionado
🕸️IDOR en APIs InsegurasÚltima actualización