Header Ads Widget

Ticker

6/recent/ticker-posts

Cómo proteger los puntos finales de la API: 9 consejos y soluciones

 


¿Por qué es importante proteger los puntos finales de la API?

Los puntos finales de API suelen ser una URL expuesta por un servidor, lo que permite que otros sistemas se conecten y consuman sus servicios. Los puntos finales de API son puntos de entrada a las redes corporativas y, a menudo, proporcionan información valiosa o confidencial. Esto los convierte en un objetivo atractivo para los atacantes.

En este artículo, analizaremos los ataques de ciberseguridad que se dirigen a puntos finales mal asegurados. Proporcionaremos consejos prácticos para mejorar la seguridad del punto final de la API para ayudar a prevenir la próxima violación de datos.

Tipos de ataques de API

A continuación, se muestran varios ciberataques que se centran específicamente en los puntos finales de API o sus debilidades.

Denegación de servicio distribuida

Cada vez es más común que los atacantes generen un flujo de solicitudes falsas a una API para abrumarla y negar el acceso a usuarios legítimos. Esto se conoce como ataque de denegación de servicio (DoS). Cuando el ataque es realizado por una extensa red de máquinas comprometidas (conocida como botnet), se conoce como denegación de servicio distribuida (DDoS).

Los ataques DDoS tradicionales se basaban en técnicas de red simples como la amplificación de TCP. Estos son menos efectivos contra los puntos finales de la API. Sin embargo, los ataques modernos de denegación de servicio utilizan solicitudes HTTP GET / POST completas para imitar el tráfico de usuarios legítimos (inundación HTTP).

Las API web que se ejecutan en la capa HTTP son vulnerables a estos ataques, ya que cada solicitud de API requiere más recursos en el servidor para analizar y responder. Debido a que el ataque envía tráfico similar al tráfico de API legítimo, es difícil determinar un ataque.

Ataques de exfiltración de datos

Un ataque de exfiltración de datos intenta extraer más información de la API de la que la cuenta de usuario está autorizada a recibir. Estos ataques van desde la manipulación de filtros de búsqueda para devolver registros fuera de rango hasta la adivinación de URLs por fuerza bruta en busca de datos.

Es relativamente fácil para los atacantes llevar a cabo este tipo de ataque porque la API está diseñada para acceso automatizado. Los atacantes pueden realizar muchos intentos automatizados para obtener datos y seguir apareciendo como un usuario legítimo. Los atacantes tampoco tienen que hacer esfuerzos especiales para obtener acceso automatizado como lo harían con una aplicación web o un formulario web.

Ataques de funcionalidad y recursos

Las API exponen la funcionalidad básica de un servicio. Esta función principal en sí misma puede ser muy importante para los ciberdelincuentes. A menudo, el ataque implica el uso de funciones legítimas proporcionadas por la API de una manera inesperada que beneficia al atacante.

A continuación, se muestran algunas áreas funcionales comunes de las API de las que a menudo se abusa y que deben monitorearse cuidadosamente:

  • Envío de correo electrónico : los spammers a menudo intentan ingresar a las API legítimas con un mecanismo de comunicación o notificación y las utilizan para enviar correos electrónicos no deseados. Si su API envía correo electrónico, debe limitar el asunto y el contenido del correo electrónico para permitir solo mensajes específicos y predefinidos destinados a ser enviados por su sistema.
  • Publicación de contenido : algunas API permiten a los usuarios modificar o publicar contenido web. Esto se está volviendo muy común con la llegada del contenido generado por el usuario. Sin embargo, permitir que los usuarios ajusten el contenido es extremadamente arriesgado y los atacantes pueden aprovecharlo fácilmente.
  • Subir archivo - la posibilidad de cargar archivos a menudo se abusa por personas que desean distribuir contenido no ética o mejorar el ranking de búsqueda. Durante años, los SEO de sombrero negro intentaron cargar archivos HTML que contenían enlaces a sus sitios web. Un ataque más severo implica que los piratas informáticos carguen malware en un servidor para infectar el servidor mismo o los dispositivos de los usuarios que descargan el contenido. En muchos casos, incluso una carga fallida realizada a través de una API deja un archivo al que se puede acceder a través de la red, lo que permite que los atacantes lo utilicen.

9 prácticas recomendadas para proteger los puntos finales de la API

Utilice las siguientes prácticas recomendadas para mejorar la seguridad de los puntos finales de la API, reducir la superficie de ataque y reducir la probabilidad de ataques exitosos.

Autorización de usuario con claves API

Una parte esencial de la seguridad de la API es el uso de claves API . Las claves de API se utilizan para controlar el acceso a los servicios públicos REST. Los operadores de servicios web públicos pueden utilizar claves de API para limitar las llamadas a la API y reducir los ataques de denegación de servicio. Para los servicios de API de pago, las claves de API también le permiten proporcionar acceso según el plan de acceso adquirido .

HTTPS siempre

Si su punto final de API permite que los usuarios de API se comuniquen a través de HTTP o cualquier otro protocolo no seguro, corre un alto riesgo. Las contraseñas, las claves privadas y la información de la tarjeta de crédito se roban fácilmente porque los rastreadores de paquetes u otros tipos de ataques Man-in-the-Middle (MitM) pueden leerlos en texto sin formato.

Para proteger su API, haga que HTTPS sea la única opción de comunicación disponible, incluso si el contenido o la funcionalidad proporcionada por la API parece ser trivial.

Hash de contraseña unidireccional

En caso de una violación de seguridad, todas las cuentas de usuario están en riesgo, por lo que nunca almacene las contraseñas en texto sin cifrar. También debe evitar el uso de métodos de cifrado simétricos (en los que se puede usar la misma clave de cifrado para bloquear y desbloquear el contenido) porque los atacantes persistentes y suficientemente sofisticados pueden romperlos.

La opción recomendada para proteger las contraseñas es el cifrado unidireccional, también conocido como hash. Esto aplica una función matemática para codificar los datos de modo que nadie pueda revertirlos. De esta manera, están seguros contra los atacantes y nadie dentro de su red, ni siquiera los administradores del servidor, puede ver las contraseñas de los usuarios.

Aplicar límite de tasa

Independientemente del volumen de solicitudes atendidas por su API, es mejor limitar la cantidad de llamadas que los usuarios pueden realizar durante un período de tiempo determinado. Esto puede prevenir ataques DoS en los que los bots envían cientos de solicitudes simultáneas por segundo (aunque no será efectivo contra ataques DDoS masivos).

Además, para cada operación del usuario, limite el número de solicitudes o la cantidad de datos recuperados a un máximo razonable. También puede especificar límites de uso por hora, diario o mensual por usuario. La mayoría de los marcos de desarrollo web tienen funciones de limitación de velocidad integradas .

Considere el filtrado de direcciones IP

Si solo ciertos socios comerciales usan su API, considere agregar una capa de seguridad que limite las direcciones IP que pueden acceder a ella. En este escenario, verifique la dirección IP en cada nueva ubicación y para cada nuevo cliente. Esto hace que sea más difícil incorporar nuevos clientes, pero conduce a una seguridad mucho más estricta en comparación con otros métodos.

Validar entrada

Si bien esta práctica recomendada es bien conocida, una gran cantidad de API no desinfectan sus entradas, lo que permite a los atacantes realizar una variedad de ataques de inyección de código. Al verificar las entradas, asegúrese de que los datos se reciban en el formato correcto y elimine los caracteres que puedan ser parte de un código malicioso. La hoja de referencia de inyección de código de OWASP proporciona pautas claras sobre cómo prevenir la mayoría de los tipos de ataques de inyección.

Filtrado de clientes API

Para minimizar los riesgos de seguridad , limite los permisos y las capacidades del cliente al mínimo requerido para consumir el servicio API. Primero, restrinja el acceso HTTP para asegurarse de que los clientes malintencionados o mal configurados no reciban nada excepto las especificaciones de la API y un código de acceso. Asegúrese de que la API rechace las solicitudes incorrectas con un código de respuesta 405 (método no permitido).

Filtrado geográfico

Una gran parte de los ciberataques se origina en determinados países. Una práctica es bloquear el acceso a su API desde cualquier región en la que no haga negocios. Además, si detecta un ataque, bloquear las solicitudes GET / POST de esa región puede detenerlo en seco. Ser capaz de bloquear rápidamente países / regiones que realizan solicitudes GET / POST a su API podría ser la forma más rápida de detener un ataque en curso.

Considere XDR (detección y respuesta extendidas)

La mayoría de las organizaciones implementan las herramientas de seguridad tradicionales, incluidos los firewalls y los sistemas de protección / detección de intrusiones (IPS / IDS), pero no están diseñadas explícitamente para proteger las API.

Un nuevo tipo de tecnología de seguridad, llamado XDR, proporciona protección integral en todo el entorno de TI, incluidos los puntos finales API. Proporciona a los equipos de seguridad alertas en tiempo real de comportamiento malicioso, lo que les permite contener e investigar ataques rápidamente.

XDR protege los puntos finales de la API de las siguientes formas:

  • Monitoreo HTTPS : XDR puede administrar certificados de seguridad e inspeccionar comunicaciones HTTPS. Cuando identifica una anomalía, puede interrumpir instantáneamente la conexión o realizar otra acción automatizada.
  • Monitoreo de llamadas a la API : XDR puede monitorear la cantidad de llamadas a la API y alerta a los equipos de seguridad sobre comportamientos sospechosos, incluso si no se excede el límite de velocidad.
  • Filtrado de direcciones IP : XDR se integra con bases de datos de inteligencia de amenazas y puede verificar si una solicitud entrante tiene una dirección IP legítima o se origina en un servidor malicioso.
  • JSON Web Token (JWT) : un método estándar (RFC 7519) utilizado para representar de forma segura la identidad de un usuario cuando se comunica entre dos partes. Si dos sistemas están intercambiando datos, XDR puede identificar a los usuarios a través de JWT. El sistema XDR puede usar JWT para identificar al usuario sin tener que transmitir credenciales. Esto hace posible identificar cuentas de usuario en el tráfico de API y analizar su comportamiento en comparación con líneas de base conocidas.
  • Validación de entrada : incluso si el código de la aplicación subyacente no desinfecta las entradas correctamente, las soluciones XDR analizan SQL u otras consultas para detectar ataques de inyección de código, bloquearlos y alertar a los equipos de seguridad.

Conclusión

Las API son una parte central de la economía digital moderna. Son extremadamente vulnerables a los ataques y deben protegerse con el mismo cuidado (si no más) que los sistemas de TI tradicionales como servidores y redes.

Este artículo cubrió varias formas en que puede mejorar la seguridad de sus puntos finales de API:

  • Autorice a los usuarios mediante claves API.
  • Aplique HTTPS para todas las API, incluso si parecen triviales.
  • Utilice hash de contraseña unidireccional con cifrado fuerte para proteger las contraseñas.
  • Utilice la limitación de velocidad para evitar accesos irrazonables y bloquear ataques DoS.
  • Valide las entradas para evitar ataques de inyección de código.
  • Filtre las solicitudes de los clientes y bloquee las geografías no deseadas.
  • Considere el uso de sistemas XDR, un nuevo tipo de sistema de seguridad que brinda protección integral para las API.

Con suerte, esto le ayudará a diseñar API más seguras, que pueden proporcionar un gran valor a los usuarios sin exponer a su organización a ataques.

Publicar un comentario

0 Comentarios