Header Ads Widget

Ticker

6/recent/ticker-posts

7 herramientas de seguridad API de código abierto Publicado en Seguridad

 


La seguridad es una preocupación importante para las API. Aquí hay siete herramientas de código abierto para ayudar a protegerlos.

Las API se han convertido en una forma común de permitir la comunicación entre aplicaciones y usuarios, desde su automóvil que le dice dónde está la estación de servicio más cercana hasta su teléfono inteligente para obtener información meteorológica. Pero a medida que más y más organizaciones comparten sus API, aumenta la oportunidad para que los malos actores se aprovechen de las vulnerabilidades de seguridad.

Las API se están convirtiendo en un objetivo fácil de explotar, dejando muchas vulnerabilidades para tapar , y la escalada de ataques puede resultar en graves violaciones de datos para las aplicaciones de nivel empresarial. Estos desafíos aumentan todos los días a medida que más y más API desempeñan un papel fundamental en la aceleración de la innovación.

Afortunadamente, para proteger esta innovación, los proveedores de API tienen algunos conjuntos de herramientas estándar para elegir. A continuación, revisaremos algunas herramientas de código abierto que ayudan a habilitar la seguridad de la API. Hemos reunido algunas utilidades de prueba de seguridad de código abierto útiles, estándares abiertos y soluciones de administración de identidad gratuitas que se pueden usar para ayudar a construir y probar una arquitectura API de confianza cero.

Astra

Astra es una herramienta automatizada de prueba de penetración de API REST utilizada por ingenieros y desarrolladores de seguridad como parte del desarrollo de API. Las pruebas de penetración son un poco complejas debido a los cambios continuos en el modelo de API y la adición de nuevos puntos finales.

Astra puede probar automáticamente las API de inicio y cierre de sesión (API de autenticación). También puede tomar una colección de API como entrada y probar cada punto final de API individualmente en un modo independiente. Estas características hacen que esta herramienta de prueba de penetración sea relativamente fácil de integrar en una canalización de CI / CD .

Características:

  • inyección SQL
  • Secuencias de comandos entre sitios
  • Fuga de información
  • Autenticación rota y gestión de sesiones
  • CSRF (incluido CSRF ciego)
  • Límite de tarifa
  • Configuración incorrecta de CORS (incluidas las técnicas de derivación de CORS)
  • Ataque JWT
  • Detección de CRLF
  • Inyección ciega XXE

crAPI

La API completamente ridícula (crAPI) puede ayudar a su equipo a comprender los diez aspectos de seguridad más importantes de una API dentro de un entorno simulado. Puede decir que crAPI ha implementado todas las lagunas de seguridad que una API nunca debería tener. Esto lo convierte en un buen modelo para mostrar cómo no desarrollar la seguridad de la API.

crAPI utiliza una arquitectura de microservicios y se compone de múltiples servicios que se desarrollan utilizando:

  • Web: Servicio principal de Ingress
  • Identidad: puntos finales de autenticación y de usuario
  • Comunidad: blogs de la comunidad y puntos finales de comentarios
  • Workshop: Puntos finales del taller de vehículos
  • Mailhog: servicio de correo
  • Mongo: base de datos NoSQL
  • Postgres: base de datos SQL

Servidor de identidad Curity (Community Edition)

El Curity Identity Server Community Edition es una versión libre de Curity de Identity Server para ayudar a asegurar el acceso a sus API. Identity Server es un servidor de autenticación que implementa los estándares OpenID Connect y OAuth 2.0 para su API. Proporciona una forma común de autenticar sus aplicaciones web, aplicaciones móviles y puntos finales de API.

La edición comunitaria viene con:

  • Usuarios ilimitados
  • Proveedores de nombre de usuario / contraseña e identidad social
  • Servidor OAuth completo
  • API segura con tokens
  • Autenticación personalizada
Lea nuestra revisión de Curity Identity Server Community Edition .

JWT

JWT o JSON Web Tokens es uno de los métodos más populares para crear tokens de acceso para aplicaciones. Es un estándar abierto que sigue RFC-7519 y define una forma segura de transferir datos entre el cliente y el servidor.

Para resumir cómo funciona JWT, el servidor genera un certificado que aprueba la identidad del usuario y lo envía al cliente. Luego, en el futuro, el cliente debe enviar ese certificado (token) con cada solicitud al servidor para identificar y autenticar al usuario.

Los tokens están firmados criptográficamente pero no encriptados, lo que significa que deben enviarse a través de HTTPS para que se pueda confiar en ellos. El uso de HTTPS también asegura que no haya intermediarios involucrados que puedan modificar o interpretar el token.

Autenticación HAWK

HAWK es una tecnología de autenticación relativamente nueva creada por los desarrolladores originales de OAuth. HAWK tiene como objetivo reemplazar la autenticación de dos patas y utilizar una forma de autenticación mucho más simple. Se utiliza principalmente para autenticaciones HTTP y utiliza resúmenes HMAC.

Al igual que la autenticación HTTP básica , HAWK también utiliza credenciales de cliente, incluido un verificador criptográfico y una clave. Sin embargo, la clave nunca se usa para autenticación sino para calcular el valor MAC de la solicitud.

Para realizar las solicitudes HTTP, el cliente debe enviar una identificación de token y una clave de token desde el servidor. Cuando el servidor necesita enviar el token, lo usa Hawk-Session-Tokencomo encabezado. El cliente puede dividir el valor del encabezado en dos partes, es decir, HAWK ID y HAWK token, que se utilizarán en la siguiente solicitud.

OAuth

OAuth significa Open Authorization, que permite que un sitio web o una aplicación acceda a los recursos alojados en una aplicación de terceros en nombre de un usuario. OAuth es el estándar de la industria para la autorización y lo utilizan empresas como Google, Twitter , etc.

Un punto a tener en cuenta es que OAuth es una herramienta de autorización, no una herramienta de autenticación . Esto significa que se utiliza principalmente como una herramienta para otorgar acceso a datos en nombre de un usuario que puede acceder a los datos.

OAuth usa un token de acceso para acceder al recurso. El token de acceso es una cadena que representa la autorización de un usuario para acceder al recurso. En la mayoría de los casos, viene con una fecha de vencimiento y, para generar un nuevo token de acceso, usamos un token de actualización.

Herramientas de OAuth

OAuth Tools es un campo de juego que le permite experimentar y probar el funcionamiento interno de OAuth. Con OAuth Tools, puede decodificar tokens como JWT, Access Token, Refresh Token, etc. Tiene una interfaz de usuario sencilla y le permite realizar pruebas en múltiples entornos. En el entorno personalizado, le permitirá utilizar una URL, un alcance, una clave, metadatos, etc. personalizados.

OAuth Tools también le permite exportar su configuración en un formulario JSON e importarla también, por lo que no tendrá que completar los formularios nuevamente para probar los tokens. Con las herramientas de OAuth, puede probar diferentes flujos y poderes de OAuth , como flujo explícito, flujo híbrido, revocar un token, flujo de cierre de sesión y más.

Prácticas recomendadas para la seguridad de API
  • Monitorear con troncos : Sea un acosador. Supervise cada pequeño detalle de su API. Esté preparado para cualquier error, incumplimiento o caída del servicio. Mantener un registro puede ayudarlo a largo plazo, ya que mantiene un registro de todo, especialmente los errores. Los registros pueden ayudarlo a depurar problemas de API y usarse para generar un tablero para ayudar a los consumidores cuando hay tiempo de inactividad.
  • Pruebe las API de forma rutinaria para detectar vulnerabilidades : las API deben probarse no solo en la etapa de desarrollo, sino también a intervalos regulares. Se deben utilizar diferentes métodos para probar una API, como las pruebas de ataque JWT.
  • Mantenga la pila tecnológica circundante : es posible que esté utilizando Python, PHP, NodeJS y otras tecnologías para construir sus API. Todos los paquetes utilizados, bibliotecas y otras tecnologías deben actualizarse a la última versión estable. Esto permitirá que la base de código elimine cualquier vulnerabilidad inherente a las dependencias.
  • No deje ningún punto final abierto : uno de los puntos más importantes a tener en cuenta cuando está desarrollando la API es que nunca debe crear un punto final de API abierto, incluso si no está documentado. Significa que cada punto final de la API debe estar protegido por los encabezados de autorización o las herramientas que esté utilizando para proteger su API.
  • Las claves de API son insuficientes : como hemos descrito anteriormente, la autenticación básica y las claves de API son posiblemente inadecuadas para la seguridad de las API modernas.

Ultimas palabras

Muchas aplicaciones se están produciendo más rápido de lo que los equipos de seguridad pueden abordarlas. Esto significa que las soluciones de seguridad suelen ser demasiado lentas para satisfacer las necesidades ágiles de una organización, lo que genera frustración entre las diferentes partes interesadas sobre cómo no comprometer la seguridad. La visibilidad en todos los ámbitos entra en juego y la falta de previsión de seguridad puede provocar un cuello de botella en el proceso de implementación.

Dado que la seguridad es un aspecto crucial del desarrollo moderno, es un área que debe madurar rápidamente . Todos los días nos encontramos con violaciones de datos y ciberataques, que pueden hacer que una empresa sufra pérdidas. Arriba, hemos enumerado algunos de los mejores métodos para asegurar su API, muchos de los cuales han sido adoptados por los actores más importantes de la economía. Las pruebas de API también juegan un papel muy importante en la seguridad, ya que lo ayudan a identificar las lagunas y eliminarlas.

Publicar un comentario

0 Comentarios