Si eres nuev@ en el mundo de las APIS, veamos lo que puedes aprender

Protege tus APIS con las mejores prácticas de seguridad

Protege tus APIS con las mejores prácticas de seguridad

Si eres nuev@ en el mundo de las APIS, voy a compartir contigo una pequeña definición para que puedas contextualizar su significado e introducirte en este apasionante mundo. Si has entrado en este post para conocer las mejores prácticas, ve directamente a la parte donde te cuento que hacer para tener unas APIS seguras.

🧐 Una interfaz de programación de aplicaciones (API) es un conjunto de protocolos que permiten que los componentes de software interactúen. La interfaz intermedia se usa comúnmente para agilizar el desarrollo al permitir que los equipos de software reutilicen el código. Las API también abstraen la funcionalidad entre sistemas al desacoplar las aplicaciones de la infraestructura en la que se ejecutan. 

🔒 ¿Qué es la seguridad de las API?


Una API representa un conjunto de servicios que permiten que un programa se comunique con otro programa externo o interno. Cuando hablamos de seguridad de API, generalmente nos referimos a proteger los servicios de back-end de una aplicación, incluida su base de datos, el sistema de administración de usuarios u otros componentes que interactúan con el almacén de datos.


La seguridad de API abarca la adopción de múltiples herramientas y prácticas para proteger la integridad de una pila tecnológica. Una API sólidamente protegida cubre tanto las API que usa una organización como los servicios que las usan. Esto incluye evitar que los actores malintencionados accedan a información confidencial o realicen acciones en tu nombre que  no pretendías que realizarán. 


Es fundamental comprender cómo las aplicaciones de terceros canalizan los datos a través de la interfaz cuando se usan las API. Además, dado que las API se están convirtiendo cada vez más en un vector de ataque, las medidas de seguridad de las API ayudan a los equipos de seguridad a evaluar los riesgos de seguridad y tener un plan integral para protegerlos.


Así que,abróchate el cinturón y protege de todas las amenazas

🔥 Riesgos de las vulnerabilidades de la API

Dado que las API son de acceso público, son objetivos comunes para robar información confidencial, incluida la lógica de la aplicación, las credenciales de los usuarios, los números de tarjetas de crédito, etc. red para otras formas de ataques, como secuencias de comandos entre sitios e inyecciones de código. El Proyecto de seguridad de aplicaciones web en línea (OWASP) emite recomendaciones basadas en riesgos sobre las 10 principales vulnerabilidades para proteger la API web. Éstos incluyen:


✅ Autenticación de usuario rota: la autenticación básica presenta un desafío único en las API, ya que la autenticación de múltiples factores y los inicios de sesión basados ​​en credenciales a menudo se consideran poco prácticos para las llamadas a la API. Como las API se basan en tokens de sesión integrados en las llamadas para autenticar a los clientes, las API con autenticación insuficiente, como la implementación defectuosa del token de acceso, permiten a los piratas informáticos asumir la identidad de usuarios legítimos. Por otro lado, los tokens de larga duración también permiten que el atacante persista, comprometiendo el sistema indefinidamente.

✅ Autorización de nivel de objeto roto: en las API, la autorización de nivel de objeto es un mecanismo de control de nivel de código que se utiliza para validar el acceso a objetos. Para las API con vulnerabilidades de autorización a nivel de objeto rotas, un usuario externo puede sustituir la ID de su propio recurso con la ID del recurso de otro usuario. Esto permite a los atacantes acceder al recurso del usuario especificado, lo que lleva al acceso no autorizado de datos confidenciales.

Falta de limitación de recursos y velocidad: cuando la API no limita la cantidad y la frecuencia de las solicitudes de un cliente en particular, este podría realizar numerosas llamadas por segundo. El cliente API también puede solicitar acceso a múltiples recursos y registros a la vez, sobrecargando el servidor de aplicaciones para atender múltiples solicitudes al instante. Esto puede dar lugar a ataques de denegación de servicio, ya que un cliente que realiza demasiadas solicitudes a la vez dificulta la capacidad del servidor para procesar las solicitudes. La falta de limitación de velocidad también alienta a los piratas informáticos a realizar ataques de fuerza bruta en los puntos finales de autenticación.

✅ Asignación masiva: la vulnerabilidad de asignación masiva ocurre en las API que canalizan automáticamente la entrada del usuario a objetos o variables de programa. Si bien esta característica simplifica el desarrollo de código, algunos usuarios pueden inicializar y sobrescribir variables del lado del servidor, lo que compromete la aplicación. Los atacantes se aprovechan principalmente de esto adivinando y proporcionando propiedades de objetos adicionales cuando elaboran solicitudes. También pueden leer la documentación de la aplicación o identificar puntos finales de API débiles que les permitan modificar objetos del lado del servidor.

✅ Configuraciones incorrectas de seguridad: varias configuraciones incorrectas de seguridad representan una amenaza para las API. Éstos incluyen:

✅ Mensajes de error detallados: algunas API envían mensajes de error descriptivos que contienen seguimientos de pila e información del sistema, manteniendo el uso


✅ Configuraciones incorrectas de seguridad: varias configuraciones incorrectas de seguridad representan una amenaza para las API. Éstos incluyen:

✅ Mensajes de error detallados: algunas API envían mensajes de error descriptivos que contienen seguimientos de pila e información del sistema, lo que mantiene informado al usuario sobre cómo funciona la aplicación internamente.

Los encabezados HTTP mal configurados exponen brechas de seguridad que los piratas informáticos pueden usar para filtrar datos y realizar ataques sofisticados más profundos.

✅ Métodos y servicios HTTP innecesarios: si los administradores no cierran los servicios innecesarios, los atacantes maliciosos pueden modificar los recursos publicados utilizando diferentes métodos HTTP.

✅Configuraciones predeterminadas inseguras: las API se conectan con dependencias de terceros, muchas de las cuales son inseguras de forma predeterminada y requieren una postura de seguridad mejorada para lidiar con una superficie de ataque ampliada.

👉 Seguridad de API

Prácticas de seguridad de API web que pueden ayudar a mitigar los ataques de API:


Use Throttling y Rate-Limiting

La limitación implica establecer un estado temporal que permite que la API evalúe cada solicitud y, a menudo, se usa como una medida contra el correo no deseado o para evitar abusos o ataques de denegación de servicio. Hay dos consideraciones principales al implementar la función de limitación: ¿cuántos datos se deben permitir por usuario y cuándo se debe aplicar el límite?

Por otro lado, la limitación de velocidad ayuda a administrar la seguridad de la API REST al evitar los ataques DoS y de fuerza bruta. En algunas API, los desarrolladores establecen límites flexibles, que permiten a los clientes superar los límites de solicitud durante un breve período. Establecer tiempos de espera es una de las mejores prácticas de seguridad de API más sencillas, ya que puede manejar solicitudes sincrónicas y asincrónicas. Las bibliotecas de colas de solicitudes permiten la creación de API que aceptan un número máximo de solicitudes y luego ponen el resto en una cola de espera. Cada lenguaje de programación viene con un directorio de biblioteca de colas para implementar colas de solicitudes.


Escanear en busca de vulnerabilidades de API

Para mantener la seguridad continua de los servicios de API, es vital habilitar el escaneo automático, identificar vulnerabilidades y mitigarlas en todas las etapas del ciclo de vida del software. Las herramientas de escaneo automatizadas detectan de manera autónoma las brechas de seguridad al comparar la configuración de la aplicación con una base de datos de vulnerabilidades conocidas.


Utilice HTTPS/TLS para las API REST

HTTPS y Transport Layer Security (TLS) ofrecen un protocolo seguro para transferir datos cifrados entre navegadores web y servidores. Aparte de otras formas de información, HTTPS también ayuda a proteger las credenciales de autenticación en tránsito. Como una de las prácticas más críticas, cada API debe implementar HTTPS para la integridad, confidencialidad y autenticidad.

Además, los equipos de seguridad deben considerar el uso de certificados del lado del cliente autenticados mutuamente que brinden protección adicional para datos y servicios confidenciales. Al crear una API REST segura, los desarrolladores deben evitar redirigir HTTP a HTTPS, lo que puede romper la seguridad del cliente API. También se deben tomar las medidas adecuadas para desviar las solicitudes de Intercambio de recursos de origen cruzado (CORS) y JSONP por sus vulnerabilidades fundamentales para las llamadas entre dominios.



Restringir métodos HTTP

Las API REST permiten aplicaciones web que ejecutan varias operaciones de verbo HTTP posibles. Los datos sobre HTTP no están encriptados, el uso de algunos métodos HTTP puede ser interceptado y explotado por vectores de ataque. Como mejor práctica recomendada, se deben prohibir los métodos HTTP (GET, PUT, DELETE, POST, etc.) que son intrínsecamente inseguros. Si no es posible prohibir por completo su uso, los equipos de seguridad también pueden aplicar políticas para examinar el uso de dichos métodos con una lista de permitidos estricta, por lo que todas las solicitudes que no coincidan con la lista deben ser rechazadas.También se recomienda utilizar las mejores prácticas de autenticación de la API RESTful para garantizar que el cliente solicitante pueda usar el método HTTP especificado en la acción, el registro y la recopilación de recursos.


Implementar una validación de entrada suficiente

En principio, no se debe confiar ciegamente en los datos proporcionados por el cliente API, ya que el servidor de autenticación puede terminar ejecutando un script malicioso de usuarios o servicios de aplicaciones no autorizados. Para evitar esto, los equipos de seguridad deben implementar mecanismos de validación de entrada tanto en el lado del cliente como en el del servidor para evitar entradas en mal estado. Mientras que la validación del lado del cliente implica una indicación interactiva de errores y consejos para un usuario sobre entradas aceptables, una validación del lado del servidor verifica adicionalmente los datos recibidos para evitar los diferentes tipos de ataques XSS y SQL Injection.


Puerta de enlace API

Una puerta de enlace de API desacopla la interfaz del cliente de la colección de API de back-end, brindando un recurso centralizado para una disponibilidad y escalabilidad consistentes de los servicios de API. Además de administrar varios servicios de API, la plataforma de administración de API también maneja funciones estándar, incluida la telemetría, la limitación de velocidad y la autenticación de usuarios, para mantener la seguridad entre los servicios internos. La puerta de enlace actúa como un guardián de proxy inverso que acepta todas las llamadas API, coordina los recursos necesarios para atenderlos y devuelve la información adecuada.

Nos vemos en la siguiente entrega