diferenciar entre llamadas de red internas y externas

2

Poseemos una API REST que las máquinas consumen en la red de nuestra propia empresa, por lo que no tenemos ninguna autenticación en este momento. El plan es exponer la API a Internet utilizando Apigee, mientras que también existen nuestros consumidores de red interna. ¿Cuáles son las formas estándar de saber de manera segura si se realizó una llamada dentro o fuera de la red de la empresa?

¿Es la autenticación basada en IP un método seguro para saber si se realizó una llamada a la API desde las máquinas en la red interna? Nuestras API se escriben utilizando el marco .NET y se ejecutan en la máquina con Windows Server 2008.

    
pregunta Gaurav Waghmare 02.04.2018 - 12:24
fuente

3 respuestas

1
  

¿Es la autenticación basada en IP un método seguro para saber si una llamada a la API fue   Hecho de máquinas en red interna?

¿Qué quieres decir con seguro? ¿Qué sucede si una máquina dentro de la red es atacada y utilizada como un proxy? ¿Acceso ilimitado a las llamadas a la API?

La API REST necesita autenticación y autorización antes de que pueda pretender que tiene una seguridad real. Por supuesto, deben hacerse correctamente, pero eso está en el extremo inferior de lo que necesita.

    
respondido por el rox0r 02.04.2018 - 12:39
fuente
1

Por lo general, no es aconsejable intentar controlar el acceso a un servicio en red por medios tan vagos. En el pentesting práctico, no es raro que el atacante pueda poseer, por ejemplo, una impresora de café o una máquina de café, y usarlo como trampolín para realizar solicitudes en su servicio con privilegios de 'red local'. En un nivel más filosófico, si está tratando de dividir a los clientes como 'locales' y 'extranjeros', indica que no ha realizado un análisis adecuado de quién tiene necesidad de qué tipo de acceso. Los sistemas combinados sin un análisis sistemático tienden a errar al lado del aspecto accesibilidad de la seguridad de los datos, y dichos errores pueden llevar a fallas, a veces masivas, del aspecto confidencialidad .

Si está desarrollando lo que es esencialmente un solo servicio, pero con más acceso otorgado a los agentes de su organización que a personas anónimas fuera de Internet, debe configurar algún mecanismo de autenticación y distribuir contraseñas, certificados de clientes, tokens OTP, o algún otro medio de identificación segura para aquellas personas con necesidades específicas de acceder a los datos que pretende que no sean accesibles al público por randos. En el contexto de los servicios basados en Windows, es probable que sus usuarios ya tengan entradas en su Active Directory, y que se hayan configurado para autenticarse en su contra cuando inicien sesión en sus estaciones de trabajo. Si su análisis sugiere que este nivel de autenticación es apropiado para su servicio, puede, por ejemplo, configurar su servidor web para solicitar que los navegadores de los usuarios presenten tickets de Kerberos cuando accedan a su servicio, y determinar el nivel de acceso apropiado en función de la identidad del usuario en este manera.

Si el análisis muestra que lo que está tratando de hacer está mejor modelado como dos servicios distintos, es posible que prefiera configurar un servicio para el acceso público y otro para la red local, tal vez con algún tipo de proceso de migración de datos regular. entre sus datastores. Es recomendable que autentiques a las personas que consideras 'locales' antes de darles datos no públicos o aceptar comandos de ellos que no quieras aceptar de Randos, por supuesto.

    
respondido por el dig 03.04.2018 - 06:00
fuente
1

Voy a responder estrictamente solo esta pregunta:

  

¿Es la autenticación basada en IP un método seguro para saber si se realizó una llamada a la API desde las máquinas en la red interna?

La respuesta es SÍ, las direcciones IP de origen se pueden usar para validar de manera confiable si el tráfico se originó dentro de su LAN con las siguientes advertencias:

  • El resto de la API solo es accesible a través de TCP. (La dirección de suplantación IP de la fuente UDP es más fácil de lograr debido a la naturaleza sin estado del protocolo. Dicha falsificación es mucho menos práctica en TCP)
  • No tiene puertas de enlace expuestas que le permitan a alguien girar dentro de su LAN, como un proxy abierto, un sistema de acceso remoto de acceso público, etc.
respondido por el illumant 03.04.2018 - 06:34
fuente

Lea otras preguntas en las etiquetas