¿Puedes confiar realmente en tu API?

El ecosistema de VMware es inmenso y ahora abarca un número desalentador de plataformas en las que ni siquiera habías pensado, incluyendo muchas en el mundo de IoT. Sucede que todos estos dispositivos deben hablarse entre sí para ser compatibles, y hacen eso con una interfaz de programación de aplicaciones, abreviada como API (del inglés Application Programming Interface). Pero ¿son seguras las API?

Si no lo son, procesos falsos pueden robarse enormes cantidades de información y exfiltrarla silenciosamente. Claramente, las API son un aspecto central de la seguridad, o deberían serlo. Pero muy a menudo su seguridad es algo en lo que se piensa más tarde.

VMworld muestra todas las formas en las que puedes mover no solo grandes volúmenes de datos, sino tipos completamente distintos de información entre distintos sistemas. Por ejemplo, la tecnología virtualizada se usa para controlar las puertas de enlace de equipos industriales en tiempo real, de manera que las grúas no choquen con otros equipos o para al menos alertar a los operadores de que se avecina un posible desastre.

A medida que el ecosistema se hace más grande, debe haber una forma común por la que varias máquinas puedan solicitar –y en ocasiones ordenar– que otras máquinas reciban o actúen según una determinada información. Esto se hace a través de una interfaz diseñada para que a las máquinas les sea simple hablarse entre sí.

El problema es que la API suele ser el último ítem que se integra al softwareEl problema es que la API suele ser el último ítem que se integra a una aplicación de software, si es que se añade. Es fácil ver por qué, ya que el apuro por comercializar es el mayor imperativo en muchos proyectos de software, y luego “oh, por cierto, necesitamos una API”.

Si bien la API es una de las últimas partes que recibe atención, suele ser una de las primeras usadas para conectar  todos los sistemas interoperables entre sí. Esto significa que asegurarla, lamentablemente, no es una prioridad principal. También significa que una vez que una serie de máquinas empieza a interactuar, es muy difícil (y a menudo poco gratificante) actualizar esa interfaz, por miedo a que interrumpa las comunicaciones o las corrompa.

Entonces, si bien puede haber alguna revisión de código, especialmente en las partes centrales del programa que se está construyendo, será una comprensión distinta y mucho más matizada de la interacción entre tu programa y muchos otros que podrían interactuar con su información.

En cierta forma, es un alivio el hecho de que muchas API simplemente producen un pequeño subconjunto de información a través de interfaces de solo lectura, pero a veces es necesario que algunas controlen una máquina directamente. Obviamente, esto abre al ecosistema de software a nuevas amenazas, que pueden ser difíciles de contener sin la experiencia en seguridad adecuada.

La mayoría de los proyectos arman una API basada en un conjunto dado de requerimientos en ese momento. Pero a medida que las necesidades cambian los usos crecen, y la seguridad se vuelve un factor todavía más importante. Es ahí cuando se vuelve cada vez más difícil pensar en forma holística sobre la seguridad de las API.

Pero aquí estamos en VMworld, encantados de que más y más máquinas parecen estar hablando, y esperamos que la seguridad esté en esas conversaciones. ¿Sabemos siempre lo que las API están emitiendo?

Hacer un pentest en el nivel de la API parecería una instancia natural en el desarrollo, aunque puede que no siempre suceda. Y mientras el perímetro pierde su definición, ya que está en todas partes, asegurarse de que la API solo está compartiendo la información que se supone que comparta se vuelve un problema de enormes proporciones.

Esperemos que se empiecen a dirigir más esfuerzos al nivel de la API, para que todos puedan estar seguros de que no está comportándose mal repentinamente o haciendo cosas de las que nadie sabe hasta que es demasiado tarde.

Autor , ESET

Síguenos