Crear un caso de estudio personalizado de App-IDs: Fortnite
Resolution
Incidencia
Fortnite es un juego multijugador en línea, para PC y otros dispositivos. Este juego es común entre los estudiantes de edad escolar y es uno de los muchos juegos de este tipo que los colegios de internos necesitan para adaptarse a su red.
Pre-definidos App-IDs se proporcionan para un número de juegos bien conocidos. Sin embargo, para juegos muy nuevos o poco comunes, App-IDs puede no estar disponible. Además, estos juegos se actualizan con frecuencia, y los formatos de comunicación pueden cambiar rápidamente. Por lo tanto, incluso los juegos con App-IDS predefinidos pueden fallar hasta que se pueda identificar el cambio y se liberen nuevas firmas. Palo Alto Networks ofrece la posibilidad de crear App-IDS personalizados, permitiendo a los administradores utilizar una amplia gama de factores dentro del tráfico de la red para identificar las aplicaciones.
Gran parte del tráfico de red asociado con dichos juegos se ejecuta a través de protocolos de red comunes, como HTTPS. Sin embargo, un poco de tráfico, particularmente la comunicación en el juego requiere protocolos más rápidos con menos sobrecarga. Por lo tanto, es común observar flujos UDP sobre puertos altos, clasificados por el NGFW como ' Unknown-UDP '.
Las escuelas y otras organizaciones comúnmente tienen un requerimiento para bloquear ese tráfico no identificado, y por lo tanto es necesario identificar y crear App-IDs personalizados para estos patrones de tráfico. Debido a la exigencia de que este tráfico sea lo más ligero posible, la cantidad de contenido arbitrario en estos mensajes que se pueden utilizar como firma es baja.
Proceso
Encontrar el tráfico no identificado
La mayoría de los juegos en línea se comunican de diversas maneras. Por ejemplo, cuando el juego se inicia por primera vez, el tráfico HTTPS se utiliza para autenticar al usuario en un servidor de contabilidad, y proporciona al cliente del juego información sobre los juegos y servidores actualmente en ejecución, comúnmente conocidos como lobby. Cuando el juego en sí se inicia, una sesión de comunicación se establece en el servidor de juego para proporcionar información sobre los movimientos de los jugadores y el estado del juego. La mayor parte de este tráfico se envía a ubicaciones no predecibles, y algunos tráficos se envían a través de puertos imprevisibles.
Sin embargo, gran parte del tráfico se identificará como una aplicación, aunque sea tan amplia como ' SSL ', y estas aplicaciones normalmente se permiten a través del firewall. El primer paso es, por lo tanto, identificar el tráfico específico que se está bloqueando, y esto se puede hacer fácilmente desde el registro de tráfico NGFW, a través de la ficha Monitor. Agregar columnas adicionales, como ' to Port ' puede ayudar a identificar el tráfico más tarde.
recopilar muestras de tráfico de varios clientes
Es necesario recopilar las capturas de paquetes de varios clientes para encontrar las firmas correctas dentro de ese tráfico. Las capturas de paquetes se pueden realizar localmente en el cliente, mediante Wireshark o mediante el cortafuegos. Para eliminar los patrones relacionados con los usuarios o las máquinas, es necesario recopilar una amplia gama de capturas de paquetes, desde diferentes máquinas y con diferentes cuentas de usuario. Esto asegura que sólo se identifiquen las firmas relevantes para el juego.
Analizar capturas de paquetes y exportar flujos de tráfico relevantes
Una vez que se han recopilado las capturas de paquetes, se pueden identificar y exportar las secuencias de tráfico correspondientes, utilizando las características de Wireshark ' Follow TCP stream ' y ' Follow UDP stream '.
Para cada captura de paquetes, utilice la salida de monitor de Firewall para comprender la naturaleza de la secuencia en cuestión, por ejemplo, el puerto UDP 9011, y utilice el filtro Wireshark para encontrar ese tráfico.
Haga clic con el botón derecho en un paquete en esa secuencia y seleccione seguir > UDP Stream. Seleccione ' Mostrar y guardar datos como volcado hexadecimal ' y, a continuación, haga clic en guardar como... para generar datos en un archivo de texto.
Repita este paso para cada captura de paquete.
Encontrar patrones de datos similares en cada salida de secuencia
Ahora que se han creado una variedad de muestras de secuencias de datos, estas secuencias se pueden comparar para encontrar los patrones idénticos. UN comando como dwdiff es útil aquí. A diferencia de otras herramientas de diff, que se basan en líneas de coincidencia de datos, dwdiff funciona emparejando datos a nivel de palabra. Dwdiff es un comando que se ejecuta dentro del shell BASH. También está disponible para los dispositivos de Mac según estas instrucciones (los resultados similares deben ser posibles con el comando wdiff, disponible para Windows). El uso del comando de la siguiente manera creará un nuevo archivo que contendrá las cadenas de coincidencia...
dwdiff-12 stream1. txt stream2. txt > diff1. txt
La salida de este comando se puede entonces ejecutar contra otras secuencias para afinar más fino los patrones similares...
dwdiff-12 diff1. txt stream3. txt > diff2. txt
El archivo resultante mostrará cualquier patrón que coincida con todas las secuencias.
Agregar firma a Custom App-ID
Cualquier arreglo hexadecimal resultante de más de 7 bytes se puede Agregar a un identificador de aplicación personalizado a través de la interfaz NGFW. Para crear un nuevo app-id, inicie sesión en el NGFW, y desplácese a objetos > aplicaciones > Add. Como alternativa, seleccione un identificador de aplicación personalizado existente que desee actualizar.
Configure las características de la aplicación en las fichas configuración y avanzadas. A continuación, en firmas, añada una nueva firma a la aplicación. Cree una nueva condición, seleccione ' patrón Match ' como operador, seleccione el contexto correcto e introduzca el patrón hexadecimal encontrado, rodeado de parámetros/x.
Una vez agregadas todas las firmas, confirma la configuración y prueba del firewall. Si la firma ha funcionado, el tráfico previamente desconocido debe resolverse con el nombre de la aplicación personalizada ID. La política puede entonces ser configurada para definir cómo y cuándo el juego debe ser permitido (es decir, las casas de embarque después de horas de escuela). Por último, pruebe el juego para comprobar que el cortafuegos identifica correctamente la aplicación.
Actualizaciones
Mientras se probaba la firma de la aplicación, se lanzó una nueva versión del cliente Fortnite, y después de esta actualización, la firma App-ID no pudo identificar el tráfico. Para resolverlo, repetimos los pasos anteriores con el nuevo cliente y descubrimos que la firma se encontró previamente modificada (aunque la nueva firma era consistente en todos los dispositivos que ejecutaban el nuevo cliente).
Conclusión
Un enfoque basado en la firma es la forma más eficaz de identificar positivamente el tráfico de aplicaciones, y donde los puertos y direcciones IP impredecibles son utilizados por las aplicaciones, puede ser la única manera. Los cortafuegos de la próxima generación de Palo Alto Networks proporcionan la posibilidad de crear ' App-IDS ' personalizados, utilizando firmas encontradas en las secuencias de tráfico de la aplicación. Para las organizaciones que utilizan aplicaciones a medida o inusuales, app-id es una forma eficaz de permitir dichas aplicaciones mientras se aplica un enfoque de confianza cero al tráfico de red.