API Security – Aprovechando las API para aplicar seguridad a cada interacción
Arquitectura de Software
En demasiadas empresas, las APIs no están diseñadas, catalogadas o administradas de manera uniforme, lo que significa que un equipo a veces duplica las APIs ya creadas por otro equipo, que las APIs creadas por un equipo no pueden ser fácilmente entendidas y aprovechadas por los desarrolladores en otros lugares, y así sucesivamente. Las APIs bien diseñadas deben ser consistentes, intuitivas y estar bien documentadas para facilitar su consumo por parte de los desarrolladores.
Por esta razón, las APIs no deben considerarse como “middleware” solo, sino como productos que permiten a los desarrolladores trabajar de forma ágil y receptiva, aprovechar los activos digitales con mayor facilidad y experimentar e iterar más rápidamente. Muchas empresas exitosas han formado equipos APIs dirigidos por un administrador de productos APIs para ayudar a garantizar que las APIs estén diseñadas de manera consistente para el consumo intuitivo del desarrollador, bien respaldadas con documentación y otros recursos, actualizadas y mantenidas en función de los patrones de los usuarios y las necesidades comerciales cambiantes, y protegidas contra amenazas
No descuides lo básico
Seguir algunas de las mejores prácticas básicas ayudará a establecer una arquitectura de software sólida desde el principio y a mitigar futuras complicaciones. Más allá de las pruebas rudimentarias, puede ser importante realizar revisiones de código y seguridad, por ejemplo, tanto para aumentar la probabilidad de encontrar vulnerabilidades antes de que afecten a los clientes como para garantizar que los defectos de seguridad producidos en una parte de un programa API estén documentados y no vuelve a ocurrir en otra parte.
Los profesionales de TI también deben ser conscientes de que los usuarios de APIs útiles encuentran muchos problemas de seguridad, lo que significa que es importante establecer canales para que los usuarios informen problemas, desarrollen soluciones y los pongan en producción y verifiquen con la persona que presentó el error para confirmar que el problema realmente se ha resuelto.
Equilibre la protección y la facilidad de uso.
Desde los datos del cliente hasta la información del inventario y desde las aplicaciones heredadas hasta los microservicios, las APIs exponen los valiosos datos y la funcionalidad de una empresa, haciéndolos análogos a las puertas y ventanas de la empresa. Del mismo modo que poner una puerta alrededor de una casa no disminuye la necesidad de cerraduras en esas puertas y ventanas, cada API es un punto de acceso potencial que necesita ser asegurado.
La cantidad óptima de seguridad no siempre es fácil de alcanzar. No hace mucho tiempo, “necesita ser asegurado” era sinónimo de “bloquearlo” en muchos círculos de TI, pero este control rígido a menudo ya no es sostenible; Los desarrolladores de una empresa deben moverse de manera rápida y receptiva, dejando poco espacio para políticas de seguridad duras y procesos de acceso restrictivos que pueden tardar días o semanas en completarse. Ahora que el negocio está alimentado por ecosistemas digitales y billones de interacciones a través de miles de millones de puntos finales, una empresa no puede protegerse impidiendo a los desarrolladores, lo que invalida todo el punto.
Afortunadamente, muchas empresas han avanzado desde este enfoque, utilizando la administración de APsI para mediar el acceso a las APIs, monitorear su uso y automatizar el registro, la incorporación, la autenticación y la educación del desarrollador.
Aun así, todavía es común que las empresas apliquen estas precauciones solo a algunas de sus APsI, ya sea debido a una gobernanza desigual, atajos tomados para alcanzar plazos agresivos de sprint, la creencia de que las APIs a medida no destinadas a la reutilización no requieren administración; existen muchas otras posibles razones. Este enfoque parcial es similar a poner cerraduras en las ventanas que permiten vislumbrar los objetos de valor más impresionantes, dejando las puertas desprotegidas.
Politicas de seguridad
Autenticar a los usuarios correctos
Las APIs debidamente aseguradas deberían proporcionar autenticación tanto para los usuarios finales como para las aplicaciones.
OAuth es el estándar abierto de facto para la seguridad API, que permite la autenticación y autorización basadas en tokens. Permite que los usuarios finales y las aplicaciones obtengan acceso limitado a un recurso protegido sin requerir que el usuario revele sus credenciales de inicio de sesión. Para las API específicamente, OAuth permite que un cliente que realiza una llamada a la API intercambie algunas credenciales por un token, y ese token le da acceso al cliente a la API. Si un usuario final permite que su cuenta de redes sociales inicie sesión en una suscripción a un periódico, por ejemplo, es probable que OAuth se esté utilizando para facilitar la transacción, utilizando un token y manteniendo en secreto las contraseñas.
Un token identifica de forma exclusiva una sola aplicación en un solo dispositivo, lo que limita su alcance en comparación con una contraseña. Aunque OAuth es sencillo en principio, aplicarlo correctamente puede ser difícil, por lo que los equipos API deben familiarizarse con las capacidades de OAuth y las mejores prácticas de autenticación actuales. Los equipos de API deberían considerar incorporar la autenticación OAuth de los usuarios finales en todas las aplicaciones críticas.
Además de autenticar a los usuarios, OAuth también admite el concepto de credenciales de la aplicación, que requiere una API para verificar tanto el usuario como la aplicación antes de devolver una llamada, lo que facilita las transacciones de servidor a servidor. Esto no proporciona protección absoluta, ya que cualquier persona con credenciales de aplicación puede usarlas y potencialmente abusar de ellas, lo cual es una de las razones por las que la supervisión de APIs y otras capacidades de administración también son necesarias para mantener las API seguras. Aun así, las credenciales de la aplicación proporcionan una capa importante de seguridad, fortaleciendo el flujo de confianza que conecta al usuario final, la aplicación, el servidor de autorización OAuth y el activo protegido que la aplicación solicita a través de una APIs.
OAuth está compuesto por una familia compleja de especificaciones, y hay muchas formas de usarlo. Muchas empresas confían en las plataformas de administración de APIs para generar tokens OAuth, controlar de forma granular lo que se permite que haga un token y aplicar conceptos como el control de acceso basado en roles (RBAC), que asigna diferentes niveles de acceso a APIs y privilegios basados en el incorporado tipos de usuario
Use la validación de entrada para frustrar las inyecciones y otros ataques comunes
La validación de entrada ayuda a una aplicación a verificar (antes de enviar datos) que la entrada del usuario coincide con los parámetros esperados. La aplicación de la validación de entrada a las APIs es una de las mejores defensas contra las inyecciones de SQL, las secuencias de comandos entre sitios y otras amenazas comunes, y la validación configurada incorrectamente ha desempeñado un papel en algunas de las brechas notables mencionadas anteriormente.
Las APIs bien diseñadas y administradas deberían aprovechar una especificación OpenAPI o una especificación Swagger para definir claramente la entrada y salida y desplegar APIs con procesos uniformes de validación de entrada. Aplicar una validación de entrada inconsistente a las APIs es similar a colocar diferentes tipos de puertas en un solo edificio: algunas con manijas de empuje, algunas con perillas giratorias, algunas con cerrojos, algunas con pestillos simples, algunas con cerraduras redundantes, algunas sin ellas, etc. Del mismo modo que un ladrón que cubra un edificio de este tipo evaluaría sistemáticamente los diferentes tipos de puertas en busca de debilidades, los piratas informáticos y otros actores malos buscarán diferencias en la validación de entradas con la esperanza de detectar una vulnerabilidad.
La implementación de bibliotecas compartidas puede ser una forma efectiva de lograr consistencia, y algunas plataformas de administración de API ofrecen políticas que permiten una fácil aplicación de validación de entrada. Las sólidas capacidades de administración de API monitorean el comportamiento de validación y ofrecen informes para que cuando ocurra un ataque, la empresa pueda obtener rápidamente una comprensión de los métodos del culpable. Es poco probable que las aplicaciones legítimas y los usuarios de API bien intencionados infrinjan las políticas de validación de entrada, por lo que al observar a las personas cuyo comportamiento no puede validarse, los equipos de API pueden comprender más rápidamente cuándo y cómo alguien está tratando de penetrar en sus sistemas.
Cifrar datos confidenciales con TLS
El protocolo criptográfico que garantiza que las llamadas a la APIs usen https en lugar de http se denomina “cifrado de capa de transporte” o TLS. Establece un enlace encriptado entre el servidor y el cliente, es decir, el enlace que las API protegidas median para formar experiencias conectadas. Proteger el tráfico de red mediante un canal encriptado es la forma más fácil de garantizar que la información confidencial no sea susceptible a ataques durante el tránsito, lo que significa que TLS es, en muchos sentidos, la base de la seguridad APIs.
Monitoree y analice el tráfico API
Una empresa no puede asegurar lo que no puede ver, por lo que el monitoreo es una parte esencial de la protección de las APIs y las experiencias conectadas que soportan. Los profesionales de seguridad no detectan muchos problemas de seguridad, sino cuando el equipo de operaciones nota algo peculiar en el curso de la supervisión del tráfico para mantener los servicios en buen estado.
Del mismo modo, si bien un equipo de APIs puede proteger los activos digitales simplemente observando signos de abuso y revocando el acceso de los usuarios que rompen las reglas, puede llevar su seguridad (así como su capacidad para mantener las API en línea) a otro nivel al extraer el tráfico de APIs para patrones y transmitir resultados de manera efectiva a audiencias clave.
Las capacidades de monitoreo se centran en el tiempo presente, cuidando los flujos de datos continuamente actualizados y permitiendo a los equipos de operaciones de TI tomar decisiones casi en tiempo real. Son análogos a un monitor de frecuencia cardiaca que que permite a los usuarios distinguir cuándo su corazón está sano de cuando necesitan llamar a una ambulancia, o un sistema de seguridad que permite al usuario distinguir cuándo un gato ha activado una luz del detector de movimiento de cuando ocurre un robo.
Los análisis, por el contrario, son más retrospectivos. El objetivo es menos comprender el tiempo presente que comprender las tendencias y utilizar esa comprensión para mejorar la toma de decisiones. En términos de mantener la disponibilidad de la APsI, las capacidades analíticas son menos parecidas a un monitor cardíaco que a un equipo de médicos, entrenadores personales y dietistas que hacen recomendaciones personalizadas y basadas en datos sobre el estilo de vida y el estado físico. En términos de seguridad, las capacidades analíticas no son tanto un sistema de seguridad en el hogar como un equipo de consultores de seguridad que ayudan a una empresa a comprender por qué los ladrones han tenido tan poca dificultad con los sistemas de seguridad anteriores.
Estos dos tratamientos distintos de los mismos datos de tráfico significan que las soluciones de monitoreo y análisis de API deben admitir una variedad de casos de uso, que incluyen alertas, diagnósticos, análisis predictivos y capacidad de acción. No es útil, por ejemplo, si el equipo de operaciones recibe una alerta de que el tráfico está aumentando pero no puede identificar rápidamente si una API está sobrecargada debido a un ataque DDoS, un aumento en el tráfico legítimo o un problema sistémico. Ciertamente no es útil hacer que cientos o miles de APIs estén disponibles para desarrolladores internos y externos sin hacer un seguimiento de cuáles se están adoptando, cuáles podrían representar nuevas oportunidades de negocio y si se están utilizando de manera no autorizada que podrían amenazar el negocio. y sus clientes
Una plataforma de administración APIs puede ayudar a las empresas a implementar esta gama de capacidades de monitoreo y análisis porque permite que la misma plataforma maneje no solo el monitoreo y el análisis, sino también las acciones tomadas en función de esos datos y análisis. Algunas herramientas de monitoreo de terceros se pueden atornillar a una gateway APIs, por ejemplo, pero estas herramientas generalmente emiten llamadas APIs periódicas para verificar la disponibilidad, sin ninguna visibilidad más granular, análisis detallado, automatización inteligente y poderosa capacidad de acción que pueda ser logrado cuando el monitoreo es una parte central de la plataforma de gestión.
Las empresas confían en la capacidad de una empresa para unir muchos activos digitales discretos en una experiencia conectada coherente, y la visibilidad parcial y la capacidad de acción limitada no son un enfoque suficiente para mantener esas experiencias en línea y seguras.
Use límites de velocidad (Rate Limits) para mantener el control
Los equipos de API siempre deben considerar el uso de límites de velocidad para seguridad de API adicional. Cualquier API podría estar sujeta a un ataque de fuerza bruta: una técnica en la que los malos actores usan software automatizado para generar una gran cantidad de conjeturas consecutivas en un intento de obtener acceso a datos protegidos. Tales ataques pueden ser inevitables para las empresas digitales exitosas; de alguna manera, es un costo hacer negocios. Los límites de tarifas ayudan a estas empresas a mantener el control de sus activos digitales y a proteger la experiencia del cliente y la privacidad cuando se producen los ataques.
Las plataformas de administración de API que admiten límites de velocidad permiten que un equipo de API establezca umbrales en los que se desencadenan los picos de detención, lo que ayuda a evitar que los backends se vean afectados por actividades inesperadas. Un equipo de API puede establecer que nadie debe llamar a una API más de 500 veces por segundo, por ejemplo, o que a una aplicación se le asigna solo un cierto número de llamadas de API por día.
Detectar y bloquear bots malos
Al igual que los ataques de fuerza bruta, los ataques de bots malos son, de alguna manera, el costo de tener éxito en un ecosistema digital conectado. Mientras más empresas usen software para automatizar las conexiones, más actores malos intentarán aprovechar la automatización ellos mismos. Por ejemplo, un atacante que ha comprometido una clave API puede desplegar miles de bots que se hacen pasar por “usuarios” que intentan comprar productos, iniciar sesión en cuentas de fidelidad o afectar las clasificaciones y precios del mercado.
Aunque los “bots malos” son una amenaza, muchos programas automatizados son “bots buenos” que son críticos para las experiencias conectadas con API. Es esencial que las empresas no solo administren las claves API con cuidado, sino que también puedan discernir de los patrones de tráfico si las llamadas API provienen de usuarios legítimos o delincuentes.
Priorice la usabilidad al evaluar paneles y capacidades de informes
Las experiencias conectadas unen activos digitales que pueden distribuirse en una variedad de geografías, nubes públicas y privadas y proveedores de APIs. Uno de los objetivos de la administración y seguridad efectivas de APIs es controlar esta arquitectura distribuida de manera unificada. Muchas soluciones proporcionan capacidades de monitoreo y análisis que se pueden agrupar en informes, pero cualquier brecha entre ellas puede poner en riesgo a la empresa. Como se señaló anteriormente, la salud de un programa de APIa a menudo se basa en transferencias efectivas entre los equipos de seguridad y operaciones, y si las capacidades de informes no pueden aclararse cuando una situación requiere un equipo versus el otro o no puede facilitar una colaboración fácil y rápida, Los datos y las percepciones en esos informes no valen mucho.
En consecuencia, es importante evaluar no solo si una plataforma de administración de APIs proporciona capacidades tales como monitoreo y análisis, sino también si la integración de estas capacidades en realidad acelerará las soluciones a los problemas comerciales. Las capacidades efectivas de generación de informes y paneles deberían proporcionar información de un vistazo, así como la capacidad de profundizar para obtener detalles más detallados. Debería ser simple ver los cambios en el tráfico día a día o semana tras semana, para ver los patrones de tráfico en los períodos de tiempo elegidos, para acceder a información sobre la gestión de cambios y los datos de gobierno, para ver los datos de configuración de políticas en una API y por -proxy base, y mucho más. Tener una capacidad es una cosa, estar habilitado por la capacidad de resolver problemas es otra.
Proteja el negocio: no lo bloquee
Gobierno y cumplimiento:
¿Cumple la seguridad los estándares regulatorios, aplica el cifrado y evita complicaciones básicas, como exponer los datos del usuario?
Autenticación:
¿La empresa controla quién puede acceder a las API?
Protección automatizada de bots:
¿Controla la empresa no solo quién puede acceder a las API sino también qué puede hacer el usuario con ellas?
Detección de comportamiento anómalo:
¿Puede la empresa detectar automáticamente comportamientos sospechosos, como un usuario norteamericano que nunca ha iniciado sesión desde un dispositivo móvil que de repente inicia sesión desde un teléfono inteligente en otro país e intenta realizar una compra grande?
Protección de backends:
¿Puede la empresa detectar problemas y aplicar soluciones automáticamente, como detenciones de picos, antes de que la experiencia del cliente se deteriore?
Opcionalidad y acción de un vistazo:
¿Puede la empresa no solo aislar problemas sino también remediarlos rápidamente?
¿Los paneles y las capacidades de informes están equipados para transferencias entre equipos de operaciones y seguridad y para proporcionar información de un vistazo que puede informar decisiones casi en tiempo real?
Más allá de simplemente verificar los requisitos anteriores, las empresas deben apuntar a aplicar procesos de seguridad y administración ligeros. El objetivo es proteger las APIs sin comprometer la agilidad y la libertad que las APIs proporcionan a los desarrolladores y que han hecho que las APIs y las experiencias conectadas sean populares en primer lugar.
Los objetivos del ecosistema digital de una empresa pueden no avanzar mucho, por ejemplo, si aplica OAuth pero continúa usando procesos de aprobación manual que requieren que los desarrolladores esperen semanas o meses entre solicitar una API sy acceder a ella. La seguridad es una parte importante de habilitar experiencias conectadas, pero también lo es empoderar a los desarrolladores que crean esas experiencias.
Muchas empresas intentan establecer la combinación correcta mediante el establecimiento de un portal de desarrolladores de autoservicio en el que los desarrolladores puedan acceder rápidamente a las APIs, pero que todavía le da a la empresa control y visibilidad sobre ese acceso. El portal debe incluir documentación y código de muestra para ayudar a los desarrolladores a comenzar, probar entornos en los que los desarrolladores puedan comenzar a experimentar e incluso opciones de monetización que les permitan pagar el acceso a la APIs o compartir las ganancias de sus aplicaciones con el proveedor de la APIs cuya tecnología estamos aprovechando.
La seguridad y la agilidad deben ser equilibradas, en otras palabras, y las empresas que desean beneficiarse de las experiencias conectadas no deben priorizar una a la exclusión de la otra. Cada punto de interacción debe estar asegurado, pero cada punto también debe dejar a los participantes la flexibilidad para interactuar. Las empresas que parecen APIs como ejercicios tanto en la habilitación de desarrolladores como en la seguridad empresarial se colocan en la mejor posición para crecer en el panorama conectado de hoy.
Artículos relacionados
Descubre los cientos de artículos en nuestro blog