Los interfaces de programación de aplicaciones (API) se han convertido en la moda de la actualidad, los desarrolladores de las empresas ahora dependen en gran medida de las mismas para apoyarse en la entrega de nuevos productos y servicios. Esto no es ninguna sorpresa, ya que permiten a los programadores integrar la funcionalidad de los servicios prestados de forma externa en lugar de tener que construir esas funciones ellos mismos.
Mientras que las interconexiones ofrecidas por APIs han existido desde que se escribieron los primeros programas, el paisaje está cambiando con los contenedores "dockers" y el desarrollo de aplicaciones móviles. Podemos ver la inmensidad del mundo API a traves de ProgrammableWeb que tiene un directorio con una lista de aproximadamente 15,000 APIs usadas en aplicaciones móviles y web.
Las aplicaciones legacy están siendo reestructuradas, las empresas están rompiendo el software en pedazos más pequeños, y cada vez más aplicaciones están siendo conectadas a nuevos frontends móviles a través de APIs. (Steve Willmott - Director ejecutivo de la API 3scale)
Sin embargo, con el aumento de las APIs también viene un incremento en el potencial de más agujeros de seguridad, lo que significa que los desarrolladores deben entender el riesgo de mantener seguros los datos corporativos y de los clientes. Los desafíos comienzan con las listas de prioridades de los programadores. Los desarrolladores se centran más en elementos como la funcionalidad y la agilidad que en la propia seguridad. En consecuencia, las empresas necesitan directrices para garantizar que sus implementaciones API no tienen problemas de seguridad, y por ello os muestro estas ocho prácticas esenciales en seguridad de APIs.
1. Reconocer los riesgos de las APIs
Cuando los desarrolladores trabajan con APIs, se enfocan en un pequeño conjunto de servicios con el objetivo de que el conjunto de características sea lo más robusto posible, tendiendo a pensar "inside the box". Los desafíos surgen porque hoy en día los extremos delanteros y los extremos traseros están vinculados a una mezcolanza de componentes, donde los hackers piensan "out the box", examinando maneras en que una puerta de entrada de aquí o de allí puede usarse para propósitos nefastos.Mediante el uso de APIs, las empresas pueden inadvertidamente abrir la puerta a todos sus datos corporativos, como hemos podido comprobar hace unas horas con una brecha en los datos de Accenture atraves de una mala configuración de sus APIs de AWS.
2. Las APIs son difíciles de usar
El desarrollo de software se ha enfrentado a una espada de doble filo recientemente. Los DevOps han hecho la asignación de recursos más simple y más rápido, pero al mismo tiempo, el número de conexiones ha aumentado y el diseño de los sistemas se ha vuelto más complejo. Las APIs admiten literalmente miles de conexiones posibles. Estar bajo presión para lanzar nuevas versiones lo antes posible, hace que los programadores bien intencionados y responsables a veces se apresuren y cometan errores.
De hecho, los investigadores de la Universidad de Virginia descubrieron que incluso cuando los desarrolladores siguen los procedimientos de programación aceptados, entregan código inseguro. El grupo probó tres conjuntos de aplicaciones, incluidas las aplicaciones de cliente en la Windows 8 App Store, que utilizaban varias secuencias de comandos de medios sociales y determinó que entre el 67 y el 86 por ciento de las aplicaciones tenían vulnerabilidades de seguridad que podrían comprometer los datos de los usuarios.
3. Supervisar cuidadosamente el software complementario
La sofisticación de las APIs crea otros problemas. Un uso popular de las interfaces es permitir a terceros escribir aplicaciones complementarias para una plataforma. Las soluciones móviles y los programas de redes sociales, como Facebook, dependen de otros para agregar valor a su sistema base. Un "bugicidio" potencial es que tales interfaces suelen dar a los desarrolladores un alto nivel de derechos de autorización (funcionalidad de administrador del sistema en algunos casos), donde los piratas informáticos codiciaran esos privilegios y tratarán vorazmente de desenterrar tales vulnerabilidades del sistema.
4. Trabajar con juicio las normas
Los proveedores han estado trabajando en estándares para mejorar la seguridad de las APIs y facilitar las implementaciones, pero los resultados han sido variados. OAuth de Internet Engineering Task Force es un estándar de autorización abierto, diseñado para proporcionar a los clientes acceso restringido seguro a los recursos del sistema sin compartir sus credenciales. El estándar se utiliza comúnmente como una forma para que los usuarios de Internet inicien sesión en sitios web de terceros a través de sus cuentas de Microsoft, Google, Facebook o Twitter.
Pero los problemas pueden surgir porque el estándar se basa en HTTP, que tiene fallas, y las APIs proporcionan un punto de explotación atractivo. Los metadatos API proporcionan toda la superficie de ataque de una API, facilitando a los hackers el conocimiento o la detección de posibles vulnerabilidades
Entonces, ¿qué tipo de ataques pueden ocurrir? Desafortunadamente, la lista es larga. El Open Web Application Security Project (OWASP), un consorcio ad hoc centrado en mejorar la seguridad del software, expone las vulnerabilidades más comunes de la API, incluyendo inyecciones de SQL / scripts y vulnerabilidades de autenticación.
5. Enfocar la autorización y autenticación en los Front Ends
Las APIs no viven solas. Los desarrolladores unen estos elementos en otras piezas de software. Asegurar el código correctamente requiere que los desarrolladores adopten un enfoque multidimensional. Esto comienza con la autenticación sólida, que es el proceso de comprobar si una persona es quien dice ser. Las empresas se han estado alejando de los sistemas de contraseña simple a hacia una autenticación de varios pasos con un énfasis creciente en las soluciones biométricas como son las huellas dactilares. Una vez que la persona es autenticada, necesitan pasar un chequeo de autorización para tener acceso a diferentes tipos de información.
Por ejemplo, pocos empleados necesitan acceso a los datos de nóminas, pero todos deben ser capaces de leer el blog de la intranet. La organización necesita asegurar que los datos corporativos se mantengan seguros. Cada vez más, las empresas cifran la información desde el inicio hasta la eliminación. Anteriormente, los datos se cifraban principalmente cuando se desplazaban de un lugar a otro de la red, donde, con el cifrado, si los tipos malos de alguna manera entran, idealmente no pueden ver nada de valor.
6. Revisar los datos Back End
Las empresas pasan mucho tiempo y esfuerzo asegurando la información Front End, pero los atacanques como los gusanos , pueden complicar la existencia de los datos en los sistemas.
Las empresas necesitan establecer otro punto de control en la salida de la red. Si el delincuente accede a información confidencial, sólo tiene valor si puede moverla a sus propios sistemas. En otras palabras, debemos asegurarnos no solo que no puedan verse los datos, sino de que dan con ellos, no se los puedan llevar.
7. Echa un vistazo a las herramientas de seguridad API
Las nuevas herramientas que ayudan a los desarrolladores a administrar APIs se están desarrollando desde una variedad de fuentes , que van desde start-ups hasta proveedores establecidos. Veremos miles de herramientas y proveedores, tanto para la gestión de seguridad en tiempo de ejecución como para la detección de vulnerabilidades de diseño / desarrollo y pruebas. Estas herramientas incluyen elementos como las exploraciones de seguridad preconfiguradas que comprueban el código y las posibles fallas, como el análisis sintáctico y los problemas de manejo de datos inadecuados.
8. Presupuesto para pruebas de seguridad
Las pruebas de seguridad requieren tiempo y dinero, y las empresas necesitan inversión en seguridad. Mientras que la nueva funcionalidad impulsa el desarrollo, entre el 5 y el 10 por ciento del presupuesto de los proyectos deben asignarse a las pruebas de seguridad.
Idealmente, el equipo de seguridad corporativa ha desarrollado procesos y procedimientos sólidos y repetibles, por lo que no es necesario iniciar el proceso desde cero con cada nuevo proyecto.
El uso de las APIs está aumentando y las empresas están capacitadas para crear aplicaciones más dinámicas y de una forma mucho más rápida. Sin embargo, al aprovechar estas capacidades, las organizaciones deben ser conscientes de los posibles fallos de seguridad.