¿Qué es una API?
Una interfaz de programación de aplicaciones, o API, es un tipo de software que permite la comunicación entre diferentes programas y servicios.
Hay cuatro arquitecturas de API principales:
REST es una arquitectura uniforme y sin estado donde el cliente y el servidor operan independientemente e interactúan a través de HTTP.
SOAP es más complejo y consume más ancho de banda que REST, trabajando exclusivamente con el formato de datos XML.
RPC , o protocolo de llamada a procedimiento remoto, permite que los procedimientos se ejecuten en un servidor remoto dentro de un sistema distribuido.
GraphQL es una infraestructura fuertemente tipada e impulsada por esquemas con su lenguaje de consulta único, que permite a los clientes obtener datos específicos en una sola solicitud.
Mejores prácticas de seguridad de API avanzadas [Hoja de referencia]
Descargue la hoja de referencia de mejores prácticas de seguridad de API de Wiz y fortalezca su infraestructura de API con técnicas avanzadas y probadas diseñadas para una gestión de API segura y de alto rendimiento.
Download Cheat Sheet¿Qué es la seguridad API?
Las API están sujetas a una amplia gama de amenazas. Algunas provienen del exterior, como intrusiones no autorizadas de piratas informáticos, pero otras provienen del interior y pueden interrumpir los sistemas o dejar la API expuesta a ataques. La seguridad de las API se refiere a las estrategias, los conjuntos de herramientas y los procedimientos diseñados para mantenerlas seguras.
La seguridad de la API se centra en tres sectores de seguridad importantes:
Seguridad de la aplicación
Seguridad de la información
seguridad de la red
La seguridad de las API también puede ayudar a abordar cuestiones como el control de acceso, la seguridad basada en la identidad, la validación de contenido, la limitación de velocidad, la limitación de solicitudes, la supervisión y el análisis, y la protección de datos. Dado que las API sirven como puntos de entrada para aplicaciones o redes, la seguridad de las API es fundamental para proteger a las organizaciones de posibles amenazas.
¿Por qué es importante la seguridad de la API?
Las API son fundamentales en el desarrollo de software moderno. La mayoría de las organizaciones las utilizan para intercambiar datos e interactuar con componentes de software internos o externos.
Sin embargo, las API son susceptibles a los ciberataques y suelen ser el blanco de los piratas informáticos que buscan explotar vulnerabilidades con fines maliciosos. Las API dañadas o expuestas ocupan un lugar destacado entre las causas de importantes violaciones de datos.
Para garantizar la seguridad de una API es necesario preservar la confidencialidad de sus datos y garantizar que solo los usuarios autorizados puedan acceder a ellos. Esto incluye salvaguardar la integridad de los datos durante y después de la transmisión. Esta mayor concienciación ha intensificado el enfoque en la seguridad de las API.
Por qué los ataques a las API son la principal preocupación de los profesionales de la seguridad en la nube
Leer másRiesgos de seguridad de API: los 10 principales de OWASP
El Top 10 de OWASP es una lista de riesgos de seguridad diseñada para ayudar a los desarrolladores a diseñar aplicaciones teniendo en cuenta la seguridad. Veamos cómo se relacionan estos puntos con las API:
Autorización a nivel de objeto defectuosa: las API pueden conectar identificadores de objetos de control y, sin la seguridad adecuada, la API podría revelar esos identificadores, dejándolos expuestos a ataques. Por ejemplo, en 2018, el Servicio Postal de los Estados Unidos (USPS) experimentó una vulnerabilidad debido a controles de acceso y autorización débiles, lo que puso en peligro los datos críticos de más de 60 millones de usuarios.
Autenticación defectuosa: sin mecanismos de autenticación robustos, los atacantes pueden obtener acceso a las API y utilizarlas con fines maliciosos. En junio de 2021, se explotó una API expuesta que carecía de la autenticación adecuada, lo que puso en peligro los datos personales de aproximadamente 1,3 millones de personas. Una simple autenticación con tokens o claves podría haber frustrado este ataque.
Autorización a nivel de propiedad de objeto defectuosa: en ocasiones, los desarrolladores devuelven datos superfluos, suponiendo que solo los usuarios autenticados accederán a las API. Sin embargo, los atacantes pueden aprovechar este exceso de datos. HealthEngine sufrió esta vulnerabilidad en su API de comentarios, lo que filtró la información personal de más de 59 000 pacientes.
Consumo ilimitado de recursos: cada vez que se realiza una solicitud de API, se consume una determinada cantidad de recursos, incluidos el ancho de banda de la red, la memoria y el cómputo. Esto presenta una vulnerabilidad interna, ya que las solicitudes ilimitadas pueden sobrecargar una API, lo que aumenta los costos operativos o incluso provoca la denegación del servicio a usuarios legítimos.
Autorización a nivel de función rota: muchos sistemas tienen políticas de control de acceso complejas. Si no se implementan autorizaciones a nivel de función, los atacantes pueden acceder a funciones no autorizadas. En un caso reciente, ocurrido en septiembre de 2022, un atacante se infiltró en la infraestructura de TI de Uber debido a esta vulnerabilidad.
Acceso sin restricciones a flujos comerciales sensibles: el acceso excesivo a flujos comerciales críticos puede interrumpir las operaciones. En 2011, CITI sufrió una filtración de datos que afectó a 350.000 titulares de tarjetas de Norteamérica debido a un ataque que manipuló sus flujos comerciales.
Falsificación de solicitud del lado del servidor (SSRF): las vulnerabilidades de SSRF ocurren cuando una API obtiene datos de una URL definida por el usuario no validada, lo que potencialmente permite a los atacantes eludir las medidas de seguridad. Las tecnologías modernas, como Docker y Kubernetes, son especialmente vulnerables.
Configuración incorrecta de la seguridad: las configuraciones de API inseguras pueden dar lugar a diversos ataques que exponen los datos y permiten obtener acceso no autorizado. Estas vulnerabilidades surgen de una gran variedad de factores, como la falta de parches, sistemas obsoletos o detalles de errores expuestos.
Gestión inadecuada del inventario: las API suelen exponer más puntos finales que las aplicaciones web tradicionales, por lo que es esencial mantener una documentación precisa. Una gestión deficiente del inventario puede deberse a un almacenamiento inseguro, un cifrado débil o controles de acceso inadecuados.
Consumo inseguro de API: el consumo de API a menudo depende de la confianza que los desarrolladores depositan en las respuestas de terceros. Muchos desarrolladores creen que las API de terceros, especialmente las que ofrecen empresas conocidas, son intrínsecamente seguras. Esta confianza equivocada puede generar vulnerabilidades. En lugar de apuntar directamente a sus API, los atacantes podrían explotar estas integraciones de terceros. Los incidentes, como los ataques SSRF, pueden manifestarse debido a una validación y desinfección inadecuadas de las respuestas. Por ejemplo, en enero de 2021, Parler enfrentó problemas de seguridad al permitir que las API de terceros accedieran a los datos sin autenticación. Los atacantes adivinaron las URL que contenían información confidencial y accedieron a los datos sin autenticación.
Al comprender estos riesgos e implementar las medidas de seguridad adecuadas, las organizaciones pueden mitigar significativamente las amenazas potenciales asociadas con las API. Visite el Top 10 de seguridad de API de OWASP para obtener un desglose detallado de cada riesgo.
Seguridad de API para SOAP, REST y GraphQL
Cada una de las tres arquitecturas de API principales (SOAP, REST y GraphQL) tiene sus propias implicaciones de seguridad únicas.
API Architecture | Security Implications |
---|---|
Seguridad de la API SOAP | SOAP es un protocolo de mensajería simplificado basado en XML diseñado para intercambiar datos estructurados en redes informáticas descentralizadas. Es adaptable a varios protocolos, como HTTP y SMTP. Las capas de seguridad de SOAP incorporan seguridad de la capa de transporte (como HTTPS) para cifrar los datos en tránsito y seguridad a nivel de mensajes, incluidas las firmas digitales XML, para mantener la integridad de los mensajes. Al seguir las especificaciones de los servicios web (WS), que ofrecen pautas estandarizadas, SOAP proporciona funciones de seguridad sólidas, como WS-ReliableMessaging, para un mejor manejo de errores. |
Seguridad de la API REST | Las API REST emplean JSON para la representación de datos y dependen de HTTP/s para las transferencias de datos, lo que agiliza el proceso de desarrollo. Dado que REST carece de mecanismos de seguridad inherentes, su seguridad depende del diseño de la API. Es esencial implementar medidas de seguridad en la transmisión de datos, la implementación y las interacciones con los clientes. Por lo general, las API REST se basan en protocolos como HTTPS y emplean autenticación basada en tokens para mejorar la seguridad. |
Seguridad de la API de GraphQL | GraphQL, un lenguaje API de código abierto, funciona como lenguaje de consulta y como entorno de ejecución para la ejecución de consultas. Su esquema estrictamente tipado garantiza la coherencia de los datos. Sin embargo, su flexibilidad puede ser un arma de doble filo: las consultas complejas y sin filtros podrían desviar a los servidores y ejecutar solicitudes maliciosas. La adopción de prácticas de seguridad como la limitación, la configuración de límites de profundidad de las consultas y la implementación de tiempos de espera de las consultas pueden mitigar estas vulnerabilidades. |
¿Su empresa está desarrollando aplicaciones con GenAI? Al igual que cualquier otro servicio multiinquilino, las aplicaciones que incorporan GenAI pueden sufrir vulnerabilidades de API tradicionales. Descubra cómo implementar modelos de IA generativa como parte de sus aplicaciones en la nube multiinquilino de forma segura
Estándares de seguridad de API
La clave para mantener seguras sus API es mantener mejores estándares de seguridad de API. Puede comenzar por cumplir con los siguientes puntos:
Descubrimiento e inventario de API
Para proteger una API, primero debe conocer su existencia. El descubrimiento y el inventario automatizados continuos mediante escáneres son fundamentales para detectar todos los puntos finales de la API y comprender sus parámetros y tipos de datos.
Identificar riesgos y vulnerabilidades de API
Reconocer las vulnerabilidades de su sistema es fundamental para mantener las API seguras. Manténgase actualizado con los componentes del sistema, identifique los posibles puntos débiles en el ciclo de vida de su API y emplee herramientas de seguridad de API de múltiples capas contra las amenazas que se trataron en los principales riesgos de API, ataques de bots y ataques DDoS de OWASP.
Utilice encriptación
Las API cifradas son menos propensas a sufrir infracciones. El uso de firmas garantiza que solo los usuarios autorizados puedan acceder a los datos y modificarlos. Los métodos como los protocolos de cifrado TLS protegen eficazmente los datos de las API.
Implementar autenticación y autorización fuertes
La autenticación verifica al usuario, generalmente mediante claves API o autenticación de acceso básica, mientras que la autorización garantiza que los usuarios accedan solo a los datos permitidos, lo que suele lograrse mediante el control de acceso basado en roles (RBAC). Ambos son vitales para una seguridad API sólida.
Utilice límites de velocidad y limitación
Los ataques DoS y DDoS presentan amenazas graves para sus operaciones, y las API son un vector común. Al aplicar cuotas y límites de velocidad, puede frustrar estas amenazas y otros riesgos, como el robo de credenciales.
Utilice una puerta de enlace API
Las API administradas reducen las vulnerabilidades. Dado que las puertas de enlace de API funcionan como mediadores entre los clientes y los servicios de backend, pueden autenticar el tráfico y mejorar la seguridad de la API.
Un nuevo enfoque para la seguridad de las API
Como hemos comentado, la seguridad de las API comienza con el descubrimiento de las API y su inventario. Las soluciones existentes para la seguridad de las API se basan principalmente en agentes y escáneres de red. Sin embargo, estos no consiguen ofrecer una visibilidad completa y también son complejos de implementar. Con Wiz Dynamic Scanner , Wiz ha aportado un enfoque nuevo y moderno a la seguridad de las API.
Con su escaneo sin agente para todos los principales proveedores de nube, Wiz Dynamic Scanner analiza todas las capas de nube de su implementación, lo que hace posible detectar cualquier componente de riesgo y rutas de ataque que puedan estar presentes en su entorno de nube.
Este enfoque le brinda visibilidad completa para identificar todas sus API que están expuestas a Internet, junto con su contexto asociado, para que pueda comprender por completo qué está expuesto y cuál podría ser el radio de explosión si fueran explotadas.
Para obtener una comprensión más clara y ver cómo se comporta en su entorno, programe una demostración con Wiz para ver usted mismo cómo funciona y todas las características que ofrece.
Un enfoque contextual y sin agentes para la seguridad de las API
Descubra cómo con Wiz los clientes ahora pueden responder de forma sencilla a la pregunta de dónde tengo API expuestas en mi entorno con todo el contexto asociado con el entorno de ejecución.
Preguntas frecuentes sobre seguridad de API