¿Por qué y cómo proteger el punto final de la API?

¿Cómo estás asegurando tu API?

Es la era de la explosión de la economía digital y se están canalizando cargas de datos masivas a través de las API. Negocios, juegos, educación, clima, ciencia, artes. . . Tu dilo; todo funciona en las API. Para un mundo tan fundamentalmente dependiente de las API, sorprendentemente hay poco enfoque en la seguridad.

Para los desarrolladores, los valores predeterminados de sus marcos son suficientes; o peor aún, cuando no se utilizan marcos, piensan que están siguiendo prácticas de seguridad. Para los administradores de sistemas, la seguridad predeterminada que ofrece su infraestructura o proveedor de servicios es en lo que confían.

No es una vista bonita en absoluto, si me preguntas.

Fuente: desarrollador.ibm.com

No hace falta decir que hay mucho en juego, de lo que nos damos cuenta solo cuando algo verdaderamente terrible sucede

Pero primero lo primero. 🙂

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

Esto tiene que ser una obviedad, ¿verdad?

Necesitamos asegurar los terminales porque, bueno, de eso depende el negocio.

Si bien ese es un argumento lo suficientemente fuerte en sí mismo, quiero ampliar un poco el punto de vista y resaltar otras consecuencias relacionadas, pero igualmente mortales.

Pérdida de negocio 📉

Esta es la obvia. Si alguien logra meterse con los puntos finales de su API, todo se detendrá en seco. Las brechas de seguridad también pueden tomar mucho tiempo para recuperarse, lo que se traduce en un suicidio en términos comerciales. Si bien es cierto que la mayoría de las empresas probablemente no se verán afectadas por una o dos horas de inactividad, para algunas no es permisible.

¡Imagínese que un cambio de moneda está inactivo durante unos minutos!

Cuestiones de cumplimiento

No asegurar sus API correctamente puede causarle serios problemas, dependiendo de las regiones geográficas o industrias con las que esté tratando. Por ejemplo, si presta servicios a la industria bancaria (especialmente en la UE), el costo de ser descubierto sirviendo con API inseguras generará problemas legales y de cumplimiento masivos. Tanto es así que incluso podría significar el final de su negocio.

Pérdida de reputación

Ser pirateado es bastante doloroso en sí mismo, pero si las noticias se hacen públicas, habrá una pérdida irrecuperable para la imagen de su marca. Por ejemplo, Sony ya ha sido pirateada varias veces y, en los círculos de seguridad, la empresa es una hazmerreír de clases

Incluso si no se incurre en una pérdida real de datos o dinero, buena suerte tratando de convencer a sus clientes hundidos. 🙂

Facturas de infraestructura infladas 💰

Cuando su API se ejecuta en la infraestructura, consume recursos (ancho de banda, CPU y memoria, en su mayoría). Por ejemplo, cuando la API no está protegida correctamente y los extraños maliciosos pueden interactuar con ella, es posible que obliguen a la API a seguir haciendo un montón de trabajo inútil (ejecutar consultas de base de datos pesadas, por ejemplo), lo que puede disparar sus facturas por razones.

En las plataformas donde está habilitado el escalado automático de recursos (como AWS), los resultados pueden ser impactantes (fuera del tema, pero si alguna vez se ve atrapado en una sopa como esta en AWS, son bastante comprensivos con la situación y renuncian de inmediato la factura inflada, ¡al menos al momento de escribir!).

moral del equipo

Entonces, podría estar pensando que el equipo que permitió que estos compromisos sucedieran perderá la moral por ellos. Bueno, no del todo. Es posible que los compromisos se deban a una débil seguridad de la infraestructura, lo que desalentará a los desarrolladores o viceversa.

Si esto sucede el tiempo suficiente, tendrás una cultura en tus manos que te arrepentirás de haber dejado desarrollar.

ganancias del competidor

Así que digamos que hubo una brecha, pero no hubo una pérdida real. Sin embargo, sus competidores utilizarán el incidente para desarrollar su propia API y afirmar cuánto más segura es la suya (¡incluso si no lo es!). Una vez más, buena suerte tratando de convencer al mercado. 🙂

En general, las violaciones de seguridad tienen consecuencias que van más allá de perder dinero.

Prácticas recomendadas para proteger los puntos finales de la API

Afortunadamente, existen ciertas prácticas fáciles de implementar y bien entendidas que puede aplicar a los puntos finales de su API para protegerlos. Esto es lo que recomiendan la mayoría de los expertos en seguridad.

HTTPS siempre 🔒

Si los puntos finales de su API permiten que los consumidores de la API hablen a través de http u otros protocolos no seguros, los está poniendo en un gran riesgo. Las contraseñas, las claves secretas y la información de la tarjeta de crédito pueden ser robadas fácilmente como cualquier otra. ataque de hombre en el medioo la herramienta de detección de paquetes puede leerlos como texto sin formato.

Por lo tanto, siempre haga que https sea la única opción disponible. No importa cuán trivial pueda parecer un punto final, conectarse a través de http ni siquiera debería ser una opción. El certificado TLS no cuesta mucho; puede comprar por tan solo $ 20 en el Tienda SSL.

Hash de contraseña unidireccional

Las contraseñas nunca deben almacenarse como texto sin formato, ya que en caso de que se produzca una brecha de seguridad, todas las cuentas de usuario se verán comprometidas. Al mismo tiempo, se debe evitar estrictamente el cifrado simétrico, ya que cualquier atacante ingenioso y lo suficientemente persistente podrá romperlos.

La única opción sugerida son los algoritmos de cifrado asimétricos (o «unidireccionales») para almacenar contraseñas. De esa manera, ni un atacante ni ningún desarrollador o administrador de sistemas dentro de la empresa podrá leer las contraseñas de los clientes.

Autenticación fuerte 💪

Ahora, casi todas las API tienen una forma de autenticación, pero en mi opinión, el sistema OAuth2 funciona mejor. A diferencia de otros métodos de autenticación, divide su cuenta en recursos y solo permite un acceso limitado al portador del token de autenticación.

Al mismo tiempo, otra muy buena práctica es configurar tokens para que caduquen cada, digamos, 24 horas, por lo que deben actualizarse. De esta manera, incluso si su token se filtra, existe la posibilidad de que el plazo de 24 horas reduzca el impacto de la infracción.

Aplicar límite de velocidad

A menos que tenga una API que utilizan millones de personas cada minuto, es una muy buena idea imponer un límite de cuántas llamadas puede hacer un cliente a la API en un período de tiempo determinado.

Esto es principalmente para desalentar a los bots, que pueden seguir enviando cientos de solicitudes simultáneas cada segundo y hacer que su API consuma recursos del sistema sin una buena razón. Todos los marcos de desarrollo web vienen con un middleware de limitación de velocidad (y si no, es bastante fácil agregarlo a través de una biblioteca) que toma solo un minuto para configurar.

Validar entrada

Esto suena como una obviedad, pero se sorprenderá de cuántas API caen en esto. Validar la entrada no solo significa comprobar que los datos entrantes están en un formato correcto, sino también que no es posible que haya sorpresas. Un ejemplo simple es la inyección de SQL, que puede acabar con sus bases de datos si deja pasar las cadenas de consulta con poca o ninguna verificación.

Otro ejemplo es validar el tamaño de la solicitud POST y devolver un código y un mensaje de error adecuados al cliente. Intentar aceptar y analizar entradas ridículamente grandes solo servirá para explotar la API.

Hacer cumplir el filtrado de direcciones IP, si corresponde

Si le interesan los servicios B2B y las empresas utilizan sus API desde ubicaciones determinadas, considere agregar una capa adicional de seguridad que restrinja las direcciones IP que pueden acceder a su API. Para cada nueva ubicación y nuevo cliente, la dirección IP deberá verificarse con la solicitud entrante.

Sí, agrega molestias a la incorporación, pero el resultado final es una seguridad mucho más estricta de lo que se puede lograr de otra manera.

Herramientas para aumentar la protección de API

¿Existen herramientas que puedan ayudarnos a escanear vulnerabilidades o, mejor aún, ofrecer la primera línea de defensa cuando se trata de proteger las API?

Afortunadamente, sí. Hay varias herramientas que puede usar, pero tenga en cuenta que, al final del día, ninguna estrategia de seguridad es perfecta. Habiendo dicho eso, estas herramientas pueden aumentar la seguridad de su API muchas veces, por lo que se recomiendan.

metasploit es un marco de código abierto extremadamente popular para pruebas de penetración de aplicaciones web y API. Puede escanear su API en varios parámetros diferentes y realizar una auditoría de seguridad exhaustiva para los diferentes niveles de vulnerabilidades presentes.

Por ejemplo, el análisis de seguridad realizado por Metasploit puede decirle si sus firmas API revelan las tecnologías subyacentes y el sistema operativo o no; ocultar esto es a menudo la mitad de la batalla ganada en seguridad API.

Si bien el marco central de código abierto generalmente es suficiente, existen excelentes productos pagos construidos sobre Metasploit que vale la pena ver. El plan profesional es excelente si desea soporte premium y utilizará el marco en profundidad, pero generalmente no es necesario si su equipo tiene suficiente experiencia.

AppTrana

Protección API dedicada de AppTrana Las funciones ofrecen una solución integral basada en riesgos para protegerse contra una amplia gama de amenazas de API, incluidas las 10 mejores API de OWASP, ataques DDoS y bots basados ​​en API, amenazas integradas, fuga de datos, etc. prueba, monitorea continuamente su puntaje de riesgo para fortalecer la postura de seguridad.

La protección de API de AppTrana garantiza la solución más completa con la combinación de detección de riesgos, detección de amenazas de API, políticas de seguridad positiva de API, políticas DDoS específicas de API, módulos de bot específicos de API y características de detección de API.

Su detección de API garantiza una visibilidad completa de las llamadas a la API, incluidas las API ocultas y no documentadas, para comprender la superficie de ataque de su API. Esta protección de API dedicada recopila información sobre los detalles del usuario, el comportamiento de uso de la API, la actividad de amenazas, los mapas de llamadas de API y más para mostrar el estado de protección con análisis en tiempo real.

Con Indusface AppTrana, puede generar políticas específicas de API personalizadas para bloquear el abuso centrado en API en tiempo real.

Llamarada de nube

No solo CDN sino Llamarada de nube ofrece muchas funciones de seguridad como WAF, limitación de velocidad, protección DDoS, que serán esenciales para proteger su API de las amenazas en línea.

Invicti

Invicti viene con una USP de «escaneo basado en pruebas». En términos más simples, a menudo es posible que las condiciones irregulares de la red o algunos comportamientos de API menos conocidos se interpreten como lagunas de seguridad, que luego se descubre que son incorrectas.

Esto desperdicia recursos, ya que todas las vulnerabilidades informadas deben escanearse nuevamente manualmente para confirmar que no son falsos positivos. Invicti dice que la herramienta puede proporcionarle una prueba de concepto lo suficientemente sólida para los informes, eliminando las dudas sobre los vínculos débiles encontrados.

Con empresas como Sony, Religare, Coca-Cola, Huawei, etc., en su lista de clientes, puede estar seguro de que estas personas están haciendo algo bien. 🙂

SoapUI Pro

Construido por SmartBear, SoapUI Pro es una forma intuitiva y fácil de crear pruebas de API y obtener informes precisos basados ​​en datos sobre ellas. También se integra perfectamente con su canalización de CI/CD, asegurándose de que ninguna adición de código nuevo comprometa la seguridad de su API.

SoapUI puede trabajar con Swagger, OAS y otros estándares API populares, lo que reduce significativamente el tiempo para comenzar. Con clientes como Microsoft, Cisco, MasterCard, Oracle, etc., y planes desde $659 por año, esta es una herramienta valiosa para API más seguras.

Okta

Probar Okta para permitir que sus desarrolladores se concentren en mejorar la experiencia del usuario y proteger los datos de su empresa de manera eficiente. Ofrece autorización OAuth 2.0 y está diseñado para aplicaciones móviles y web. También es compatible con servicios de administración de API de terceros.

Use Okta para crear, auditar y mantener todas las políticas para el acceso a la API a través de consolas fáciles de usar y especialmente diseñadas sin necesidad de códigos personalizados. Le ofrece flexibilidad adicional para que no tenga que proteger sus API utilizando instancias de puerta de enlace adicionales.

Okta abarca una política basada en la identidad para controlar diferentes tipos de usuarios y servicios bajo un mismo techo. Defina el acceso según los perfiles de usuario, las redes, los grupos, el consentimiento y los clientes. Extienda tokens utilizando datos dinámicos de sus sistemas internos para disfrutar de una integración más rápida y una migración sin problemas.

Facilita una administración centralizada de las API y le permite proteger los recursos de la API. Okta se centra en la seguridad al permitirle salvaguardar el acceso entre diferentes microservicios.

Conclusión

hay Sin escasez de herramientas de seguridad API disponibles en el mercado, ya sea de código abierto, gratuito o comercial, o cualquier combinación de estos.

Pruebe algunos de ellos de la lista y vea cuál funciona mejor para sus necesidades.