La transformación digital está obligando a las organizaciones a buscar enfoques creativos para poder ofrecer una respuesta específica a cada usuario. En esta realidad, las API en tiempo real se han convertido en los cimientos de los nuevos negocios digitales, al permitir a los desarrolladores crear aplicaciones dirigidas a satisfacer las necesidades de sus clientes de forma instantánea. Esto hace que la capacidad para proteger las API se haya convertido en un factor crítico.
Las API son el chasis de las aplicaciones modernas. Permiten a los desarrolladores obtener información valiosa de otros componentes de software para integrarla en sus aplicaciones y son también clave en cada etapa de la interacción del usuario con la aplicación.
En esta realidad hay que tener dos factores en cuenta. Por una parte, la llegada de 5G va a hacer que los usuarios sean cada vez menos tolerantes con el rendimiento deficiente de las aplicaciones, por lo que, con toda seguridad, las empresas que no logren ofrecer una respuesta en tiempo real de sus API –inferior a 30ms– perderán mercado. Por otra, las API están proporcionando a los ciberdelincuentes una nueva vía para lograr controlar las aplicaciones. Gartner predice que en 2022 los abusos de API serán el vector de ataque más frecuente contra las aplicaciones web empresariales.
En lo que a seguridad se refiere, existe una combinación de factores que convierte a las API en objetivos muy deseables. Uno de los mayores problemas es la imposibilidad de establecer permisos de acceso adecuados. Debido a que no están diseñadas para el acceso directo de los usuarios, las API, a menudo, tienen acceso a todos los datos dentro del entorno de aplicación. El acceso se controla otorgando permisos específicos a los usuarios que realizan las solicitudes iniciales y que se traducen en llamadas a la API, y haciendo que la API herede esos permisos. Esto funciona bien hasta que un atacante logra eludir el proceso de autenticación del usuario y acceder a la aplicación posterior directamente a través de la API, lo que le permitirá alcanzar una visibilidad absoluta.
Al igual que las solicitudes web HTTP básicas, las llamadas a API incorporan URIs (Uniform Resource Identifier), métodos, encabezados y otros parámetros. Todos ellos pueden ser objetivo de un ataque. Desafortunadamente, la mayoría de los ataques web típicos: inyección, fuerza bruta de credenciales, manipulación de parámetros, session snooping… funcionan sorprendentemente bien en las API y las convierten en un objetivo fácil.
¿Cómo se protegen las API?
Es vital incorporar seguridad en cada fase del ciclo de vida de la API: desarrollo, prueba y producción, a través de tecnologías que abarquen integración con el WAF, con la solución de gestión de la API, con el gateway API y protección frente a bots, entre otras.
WAF
Un WAF reconoce solicitudes no legítimas y dirigidas a explotar vulnerabilidades en el código de la aplicación, lo que permitirá a los atacantes robar información o ejecutar código malicioso. Es crucial que cualquier WAF proteja, como mínimo, contra los tipos de ataque más comunes. Contar con una solución basada en un WAF avanzado resulta clave para proteger a las API frente a una serie de ataques muy comunes.
Protección de bots
El HTTP de las API puede ser objeto de la acción de bots y de otras formas de automatización basadas en tráfico malicioso o no deseado. Aquí es donde hay que acudir a soluciones capaces de ofrecer opciones de visibilidad, estrangulación y mitigación para proteger las API basadas en HTTP frente a bots y otras modalidades de ataques automatizados.
Gestión de API
Entre otras funciones, las soluciones de gestión de API proporcionan la interfaz para definir políticas de seguridad que el gateway de la API aplica a medida que procesa las llamadas a la API. Es importante que los módulos de gestión de API incluyan protecciones como URI implícito basado en la especificación API, tasa de limitación programable, diferentes controles de políticas y de estrangulamiento para proteger contra ataques de denegación de servicio.
Gateway API
Es necesario que el gateway API proteja las llamadas a API en su papel de guardián responsable de tres funciones clave:
- Autenticacion y autorización
La autenticación de API consiste en permitir el acceso solo a clientes reconocidos, aquellos que pueden demostrar que son quienes dicen ser. Debido a que la autenticación no es fundamental para lo que hace una API, tiene sentido realizarla fuera del código de la aplicación. Esto libera a los desarrolladores de API de tener que escribir su propio código de autenticación y significa que es posible administrar de forma centralizada la autenticación para todas las API sin dejar de flexibilizar los requisitos de autenticación. Por ejemplo, sería posible permitir el uso no autenticado de la API que muestra los resultados de los partidos en un sitio web de deportes, pero será siempre necesario autenticar a las personas que usan una API para editar el contenido. Es importante distinguir entre autenticación y autorización. La autenticación es el proceso de verificar la identidad del usuario. La autorización es lo que viene después: determinar qué acciones tiene derecho a realizar un usuario en particular y transmitir esa información al servidor.
- Límites de velocidad
Los límites de velocidad controlan la frecuencia con la que un cliente determinado puede realizar una llamada a la API. Tienen dos propósitos principales: proteger los servicios de backend para que no se sobrecarguen y garantizar un uso justo para los clientes. Un ejemplo de limitación de la tasa podría ser permitir 100 transacciones por segundo durante un período de gran demanda. Los límites de velocidad se pueden aplicar a nombres de usuario individuales, rangos o direcciones IP específicas, así como a todos los usuarios (por ejemplo, durante las horas pico de tráfico).
- Validación de entrada
La validación de entrada es verificar que la entrada proporcionada por un usuario o aplicación sea correcta: consiste en un tipo correcto de caracteres (dígitos, letras, puntuación), tiene el tamaño correcto, es uno de un conjunto predefinido de valores aceptables, es consistente con otro valor que se proporciona, y así sucesivamente. Por ejemplo, puedes verificar que el código postal coincida con la dirección proporcionada o que la fecha de nacimiento no sea futura. La validación de entrada evita que los datos formados incorrectamente ingresen a un sistema de información y amenacen su integridad. También es una forma importante de detectar usuarios malintencionados, que luego pueden ser bloqueados para que no realicen más solicitudes.
Las API son una opción estratégica que proporciona a las organizaciones la agilidad y la velocidad que necesitan para alcanzar el éxito en el entorno actual. Pero las empresas deben sentirse seguras a la hora de exponer sus datos a través de ellas, a fin de no poner en riesgo la continuidad del negocio.
Juan Rodríguez
Director general de F5