Asegurar las APIs: ¿Misión imposible?

Publicado el 06 de junio de 2022
por Pieter Danhieux
ESTUDIO DE CASO

Asegurar las APIs: ¿Misión imposible?

Publicado el 06 de junio de 2022
por Pieter Danhieux
Ver recurso
Ver recurso

Los ciberataques están, sin duda, en aumento. Según el informe Verizon 2021 Data Breach Investigations Report, el panorama de las amenazas es hoy más peligroso que nunca. Organizaciones de todos los tamaños están experimentando un mayor volumen de ataques y un mayor nivel de sofisticación por parte de los actores de las amenazas que se dirigen a ellas. Y las tasas de éxito de los atacantes también se están disparando.

El análisis de los ataques más recientes ayuda a revelar algunas de las vulnerabilidades y técnicas más comunes utilizadas por los hackers durante este bombardeo sin precedentes contra las ciberdefensas. Algunos de los ataques más populares, como los que se incluyeron en la lista de los 10 principales riesgos y vulnerabilidades de seguridad para 2021 del Proyecto de Seguridad de Aplicaciones Web Abiertas (OWASP), implicaron el robo o la puesta en peligro de credenciales. Y, según una investigación de seguridad realizada por Akamai, la inmensa mayoría, casi el 75%, se dirigía directamente a las credenciales de las API.

El auge y la posible ruina de las API

No es de extrañar que las interfaces de programación de aplicaciones, en la mayoría de los casos denominadas simplemente API, estén en auge en las redes de casi todas las organizaciones. Son un componente crítico de la mayoría de los servicios basados en la nube, que están asumiendo rápidamente las funciones de los activos on-prem en la mayoría de las empresas, organizaciones y agencias gubernamentales. Hoy en día casi no se puede llevar a cabo ningún tipo de negocio o tarea sin la nube, especialmente los que están orientados al público. Y eso significa que las APIs van a ser sin duda el pegamento que mantenga unidos bastantes servicios en cada red.

Lo sorprendente de las APIs es que, en su mayoría, son pequeñas y discretas en cuanto a la asignación de recursos de red. Además, son completamente flexibles, por lo que pueden encargarse de realizar casi cualquier trabajo. En esencia, las API son piezas individuales de software diseñadas para controlar o gestionar un programa concreto. Pueden utilizarse para realizar funciones muy específicas, como el acceso a los datos de un sistema operativo anfitrión, una aplicación o un servicio.

Desgraciadamente, es esta misma flexibilidad, y el hecho de que a menudo son pequeñas y son pasadas por alto por los equipos de seguridad, lo que hace que las API sean objetivos atractivos. La mayoría de las APIs están diseñadas por los desarrolladores para una flexibilidad total, de modo que puedan, por ejemplo, seguir funcionando aunque se modifique o cambie el programa central que gestionan. Y hay pocos estándares. Casi como los copos de nieve, muchas API son únicas en el sentido de que se crean para cumplir una función concreta con un solo programa en una red específica. Si son codificadas por desarrolladores que no son muy conscientes de la seguridad, o que no se concentran específicamente en la seguridad, entonces pueden y probablemente tendrán cualquier número de vulnerabilidades que los atacantes pueden encontrar y explotar.

Lamentablemente, el problema se está descontrolando rápidamente. Según Gartner, en 2022 las vulnerabilidades relacionadas con las API se convertirán en el vector de ataque más frecuente en todas las categorías de ciberseguridad.

La razón principal por la que los atacantes quieren comprometer las APIs no es para hacerse con la función específica que realiza la API, sino para robar las credenciales asociadas a ella. Uno de los mayores problemas de las APIs, además de estar repletas de vulnerabilidades, es que a menudo tienen demasiados permisos en lo que respecta a su funcionalidad principal. Para simplificar, la mayoría de las APIs tienen un acceso casi de nivel de administrador en una red. Si un atacante obtiene el control de una de ellas, a menudo puede utilizar sus permisos para lanzar incursiones más profundas y sustanciales en una red. Y como la API tiene permiso para realizar cualquier tarea a la que el atacante la dirija, sus acciones pueden a menudo eludir la supervisión tradicional de la ciberseguridad porque la API no está infringiendo ninguna regla gracias a su pase VIP de acceso a todas las áreas.

Si las organizaciones no tienen cuidado, el aumento de las API dentro de su red y sus nubes también puede suponer un gran problema si son objetivo de los atacantes.

Defensa de las APIs

A pesar de lo peligrosa que se está volviendo la situación con las APIs, está lejos de ser desesperada. Hay un gran esfuerzo a través de movimientos como DevSecOps para ayudar a que los desarrolladores sean más conscientes de la seguridad, y para llevar la seguridad y las mejores prácticas a todos los aspectos de la creación de software, desde el desarrollo hasta las pruebas y el despliegue. Incluir la seguridad de las APIs como parte de esa formación será fundamental para cualquier organización que quiera frenar la tendencia de explotación de las APIs hasta 2022 y más allá.

Dicho esto, hay algunas buenas prácticas que se pueden implementar ahora mismo en términos de seguridad de la API.

Lo primero es incluir controles de identidad estrictos para todas las APIs. Deberías considerarlas casi como usuarios humanos a la hora de asignar permisos. Sólo porque una API está diseñada para hacer una función específica, hay que pensar en lo que podría pasar si un atacante es capaz de comprometerla. Considere la posibilidad de utilizar un control de acceso basado en roles. Lo ideal es que, en última instancia, aplique los principios de confianza cero a sus APIs y usuarios, pero eso suele ser un camino largo. Una buena gestión de identidades es un buen punto de partida. Sólo asegúrese de incluir las APIs como parte de ese programa.

También debe controlar estrictamente las distintas llamadas que se realizan a través de sus APIs en la medida de lo posible. Si limitas esas llamadas a peticiones muy centradas en el contexto, será mucho más difícil para un atacante modificarlas con fines nefastos. Incluso puedes estratificar tus APIs, con una API inicial que haga una llamada muy contextual a otra API que sepa exactamente qué buscar y qué ignorar. Esta puede ser una forma eficaz de limitar la funcionalidad disponible para un actor de la amenaza, incluso si son capaces de explotar y comprometer una API dentro de esa cadena.

Las amenazas que se ciernen sobre las API pueden parecer ciertamente abrumadoras. Pero si se aplican las mejores prácticas y se ayuda y recompensa a los desarrolladores que se convierten en campeones de la seguridad, la situación puede parecer mucho menos desesperada. Con una buena formación y práctica, se puede construir un programa de seguridad sólido que dé a los atacantes poco margen de maniobra, incluso si de alguna manera comprometen uno de sus pequeños pero esenciales caballos de batalla de la API.

Ver recurso
Ver recurso

Autor

Pieter Danhieux

Pieter Danhieux es un experto en seguridad mundialmente reconocido, con más de 12 años de experiencia como consultor de seguridad y 8 años como instructor principal de SANS enseñando técnicas ofensivas sobre cómo atacar y evaluar organizaciones, sistemas y personas en busca de debilidades de seguridad. En 2016, fue reconocido como una de las personas más cool de la tecnología en Australia (Business Insider), galardonado como Profesional de Seguridad Cibernética del Año (AISA - Asociación Australiana de Seguridad de la Información) y tiene certificaciones GSE, CISSP, GCIH, GCFA, GSEC, GPEN, GWAPT, GCIA.

¿Quieres más?

Sumérjase en nuestras últimas ideas sobre codificación segura en el blog.

Nuestra amplia biblioteca de recursos tiene como objetivo potenciar el enfoque humano de la mejora de la codificación segura.

Ver blog
¿Quieres más?

Obtenga las últimas investigaciones sobre la seguridad impulsada por los desarrolladores

Nuestra amplia biblioteca de recursos está repleta de recursos útiles, desde libros blancos hasta seminarios web, que le ayudarán a iniciarse en la codificación segura orientada a los desarrolladores. Explórela ahora.

Centro de recursos

Asegurar las APIs: ¿Misión imposible?

Publicado el 06 de junio de 2022
Por Pieter Danhieux

Los ciberataques están, sin duda, en aumento. Según el informe Verizon 2021 Data Breach Investigations Report, el panorama de las amenazas es hoy más peligroso que nunca. Organizaciones de todos los tamaños están experimentando un mayor volumen de ataques y un mayor nivel de sofisticación por parte de los actores de las amenazas que se dirigen a ellas. Y las tasas de éxito de los atacantes también se están disparando.

El análisis de los ataques más recientes ayuda a revelar algunas de las vulnerabilidades y técnicas más comunes utilizadas por los hackers durante este bombardeo sin precedentes contra las ciberdefensas. Algunos de los ataques más populares, como los que se incluyeron en la lista de los 10 principales riesgos y vulnerabilidades de seguridad para 2021 del Proyecto de Seguridad de Aplicaciones Web Abiertas (OWASP), implicaron el robo o la puesta en peligro de credenciales. Y, según una investigación de seguridad realizada por Akamai, la inmensa mayoría, casi el 75%, se dirigía directamente a las credenciales de las API.

El auge y la posible ruina de las API

No es de extrañar que las interfaces de programación de aplicaciones, en la mayoría de los casos denominadas simplemente API, estén en auge en las redes de casi todas las organizaciones. Son un componente crítico de la mayoría de los servicios basados en la nube, que están asumiendo rápidamente las funciones de los activos on-prem en la mayoría de las empresas, organizaciones y agencias gubernamentales. Hoy en día casi no se puede llevar a cabo ningún tipo de negocio o tarea sin la nube, especialmente los que están orientados al público. Y eso significa que las APIs van a ser sin duda el pegamento que mantenga unidos bastantes servicios en cada red.

Lo sorprendente de las APIs es que, en su mayoría, son pequeñas y discretas en cuanto a la asignación de recursos de red. Además, son completamente flexibles, por lo que pueden encargarse de realizar casi cualquier trabajo. En esencia, las API son piezas individuales de software diseñadas para controlar o gestionar un programa concreto. Pueden utilizarse para realizar funciones muy específicas, como el acceso a los datos de un sistema operativo anfitrión, una aplicación o un servicio.

Desgraciadamente, es esta misma flexibilidad, y el hecho de que a menudo son pequeñas y son pasadas por alto por los equipos de seguridad, lo que hace que las API sean objetivos atractivos. La mayoría de las APIs están diseñadas por los desarrolladores para una flexibilidad total, de modo que puedan, por ejemplo, seguir funcionando aunque se modifique o cambie el programa central que gestionan. Y hay pocos estándares. Casi como los copos de nieve, muchas API son únicas en el sentido de que se crean para cumplir una función concreta con un solo programa en una red específica. Si son codificadas por desarrolladores que no son muy conscientes de la seguridad, o que no se concentran específicamente en la seguridad, entonces pueden y probablemente tendrán cualquier número de vulnerabilidades que los atacantes pueden encontrar y explotar.

Lamentablemente, el problema se está descontrolando rápidamente. Según Gartner, en 2022 las vulnerabilidades relacionadas con las API se convertirán en el vector de ataque más frecuente en todas las categorías de ciberseguridad.

La razón principal por la que los atacantes quieren comprometer las APIs no es para hacerse con la función específica que realiza la API, sino para robar las credenciales asociadas a ella. Uno de los mayores problemas de las APIs, además de estar repletas de vulnerabilidades, es que a menudo tienen demasiados permisos en lo que respecta a su funcionalidad principal. Para simplificar, la mayoría de las APIs tienen un acceso casi de nivel de administrador en una red. Si un atacante obtiene el control de una de ellas, a menudo puede utilizar sus permisos para lanzar incursiones más profundas y sustanciales en una red. Y como la API tiene permiso para realizar cualquier tarea a la que el atacante la dirija, sus acciones pueden a menudo eludir la supervisión tradicional de la ciberseguridad porque la API no está infringiendo ninguna regla gracias a su pase VIP de acceso a todas las áreas.

Si las organizaciones no tienen cuidado, el aumento de las API dentro de su red y sus nubes también puede suponer un gran problema si son objetivo de los atacantes.

Defensa de las APIs

A pesar de lo peligrosa que se está volviendo la situación con las APIs, está lejos de ser desesperada. Hay un gran esfuerzo a través de movimientos como DevSecOps para ayudar a que los desarrolladores sean más conscientes de la seguridad, y para llevar la seguridad y las mejores prácticas a todos los aspectos de la creación de software, desde el desarrollo hasta las pruebas y el despliegue. Incluir la seguridad de las APIs como parte de esa formación será fundamental para cualquier organización que quiera frenar la tendencia de explotación de las APIs hasta 2022 y más allá.

Dicho esto, hay algunas buenas prácticas que se pueden implementar ahora mismo en términos de seguridad de la API.

Lo primero es incluir controles de identidad estrictos para todas las APIs. Deberías considerarlas casi como usuarios humanos a la hora de asignar permisos. Sólo porque una API está diseñada para hacer una función específica, hay que pensar en lo que podría pasar si un atacante es capaz de comprometerla. Considere la posibilidad de utilizar un control de acceso basado en roles. Lo ideal es que, en última instancia, aplique los principios de confianza cero a sus APIs y usuarios, pero eso suele ser un camino largo. Una buena gestión de identidades es un buen punto de partida. Sólo asegúrese de incluir las APIs como parte de ese programa.

También debe controlar estrictamente las distintas llamadas que se realizan a través de sus APIs en la medida de lo posible. Si limitas esas llamadas a peticiones muy centradas en el contexto, será mucho más difícil para un atacante modificarlas con fines nefastos. Incluso puedes estratificar tus APIs, con una API inicial que haga una llamada muy contextual a otra API que sepa exactamente qué buscar y qué ignorar. Esta puede ser una forma eficaz de limitar la funcionalidad disponible para un actor de la amenaza, incluso si son capaces de explotar y comprometer una API dentro de esa cadena.

Las amenazas que se ciernen sobre las API pueden parecer ciertamente abrumadoras. Pero si se aplican las mejores prácticas y se ayuda y recompensa a los desarrolladores que se convierten en campeones de la seguridad, la situación puede parecer mucho menos desesperada. Con una buena formación y práctica, se puede construir un programa de seguridad sólido que dé a los atacantes poco margen de maniobra, incluso si de alguna manera comprometen uno de sus pequeños pero esenciales caballos de batalla de la API.

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.