Buenas 👍, por si no me conocéis soy César Sánchez y vengo a contaros: ⬇️
Aprobar espacios de trabajo de Slack a través de un perfil de proxy web
Descripción
Este artículo describe cómo controlar el acceso a los espacios de trabajo de Slack mediante la inyección de encabezados HTTP.
Alcance
FortiGate ejecutando FortiOS 6.0 o superior con política de firewall basada en proxy y de inspección SSL completa.
Solución
Puede ser requerido por los administradores de TI para restringir el acceso a ciertos espacios de trabajo de Slack.
Esto puede lograrse aprovechando el perfil de proxy web para añadir dos cabeceras HTTP según la documentación de Slack que se indica a continuación (X-Slack-Allowed-Workspaces-Requester y X-Slack-Allowed-Workspaces.
https://slack.com/help/articles/360024821873-Approve-Slack-workspaces-for-your-network
Requisitos previos de Slack:
1) Debe ser propietario del espacio de trabajo o administrador del espacio de trabajo
2) El plan de Slack debe ser Business+ o Enterprise Grid.
3) Lo anterior es cierto para el contenido de la cabecera ‘X-Slack-Allowed-Workspaces-Requester’.
4) El contenido de la cabecera ‘X-Slack-Allowed-Workspaces’ puede ser cualquier espacio de trabajo público o privado.
Requisitos previos de FortiGate:
1) El modo de inspección de la política del cortafuegos debe establecerse como basado en proxy.
2) El perfil de inspección SSL debe estar configurado como Inspección SSL completa.
Nota.
Lo anterior es necesario sólo para el tráfico hacia el dominio y subdominios de slack.com.
Pasos de configuración:
1) Crear un objeto de dirección para los subdominios de Slack:
# config firewall address
editar «comodín.slack.com»
set type fqdn
set fqdn «*.slack.com»
siguiente
end
2) Crear un perfil de proxy web con la modificación de las cabeceras http:
# config web-proxy profile
editar «SLACK»
set log-header-change enable
configurar cabeceras
editar 1
set name «X-Slack-Allowed-Workspaces-Requester»
set dstaddr «comodín.slack.com»
set content «T03ARHV9669»
siguiente
editar 2
set name «X-Slack-Allowed-Workspaces»
set dstaddr «comodín.slack.com»
set content «T03ARHV9669»
siguiente
editar 3
set name «X-Slack-Allowed-Workspaces»
set dstaddr «comodín.slack.com»
set content » T0A93EN1Y»
siguiente
fin
siguiente
end
Nota.
Se pueden añadir múltiples cabeceras ‘X-Slack-Allowed-Workspaces’ en caso de que se apruebe más de un Slack Workspace.
3) Se puede habilitar el registro adicional con la configuración ‘set log-header-change enable’.
Esto generará un evento extra de tipo ‘http_header_change’ en los registros del filtro web según el ejemplo siguiente:
date=2022-05-11 time=21:03:38 eventtime=1652328219334999559 tz=»-0700″ logid=»0344013632″ type=»utm» subtype=»webfilter» eventtype=»http_header_change» level=»notice» vd=»root» policyid=40 poluuid=»2aa5f31e-8131-51ec-a460-093b51af60ae» policytype=»policy» transid=16777538 sessionid=168777 profile=»SLACK» srcip=172.16.3.30 srcport=54976 srccountry=»Reserved» dstip=44.237.180.172 dstport=443 dstcountry=»Estados Unidos» srcintf=»port6″ srcintfrole=»lan» dstintf=»port1″ dstintfrole=»wan» srcuuid=»cde13dc2-cfe2-51ec-f78f-0e0e49eaf177″ dstuuid=»2e1f07f4-ab2c-51ec-2a5b-4d01ad8b2ed6″ proto=6 service=»HTTPS» url=»https://robertao.slack.com/api/signin.findWorkspaces?_x_id=noversion-1652328222.694&slack_route=T000…» agent=»Chrome/92.0.4515.131″ chgheaders=»Añadido=X-Slack-Allowed-Workspaces-Requester: T03ARHV9669|X-Espacios de trabajo permitidos: T03ARHV9669X-Slack-Allowed-Workspaces: T03891MQN3W»
4) Aplicar el perfil de proxy web a una política de firewall, lo que sólo puede hacerse a través de la CLI
El ejemplo siguiente se aplica a todo el tráfico de reenvío desde 172.16.3.30 hacia el exterior; sin embargo, el cambio de las cabeceras http sólo se aplicará al tráfico que coincida con el perfil web-proxy, que en este ejemplo se limita a *.slack.com.
# configurar política de firewall
editar 40
set name «SLACK-Restricción»
set srcintf «puerto6»
set dstintf «virtual-wan-link»
set action accept
set srcaddr «172.16.3.30»
set dstaddr «all»
set schedule «always»
establecer servicio «TODOS»
set utm-status enable
set inspection-mode proxy
set webproxy-profile «SLACK»
set ssl-ssh-profile «deep-inspection»
set logtraffic all
set nat enable
siguiente
end
Nota.
El perfil de Filtro Web no es necesario, sólo son necesarios los perfiles de inspección web-proxy y SSL completo.
Verificación:
Es importante señalar que el usuario no recibirá un mensaje de sustitución (mensaje de página bloqueada) de FortiGate.
1) Registros del filtro web.
Para verificar si la configuración se está aplicando correctamente, se puede comprobar el registro mencionado anteriormente para confirmar que se realiza la modificación del encabezado.
date=2022-05-11 time=22:14:59 eventtime=1652332499253966355 tz=»-0700″ logid=»0344013632″ type=»utm» subtype=»webfilter» eventtype=»http_header_change» level=»notice» vd=»root» policyid=40 poluuid=»2aa5f31e-8131-51ec-a460-093b51af60ae» policytype=»policy» transid=16777736 sessionid=187333 profile=»SLACK» srcip=172.16.3.30 srcport=49524 srccountry=»Reservado» dstip=44.237.180.172 dstport=443 dstcountry=»Estados Unidos» srcintf=»port6″ srcintfrole=»lan» dstintf=»port1″ dstintfrole=»wan» srcuuid=»cde13dc2-cfe2-51ec-f78f-0e0e49eaf177″ dstuuid=»2e1f07f4-ab2c-51ec-2a5b-4d01ad8b2ed6″ proto=6 service=»HTTPS» url=»https://robertao.slack.com/» agent=»Chrome/92.0.4515.131″ chgheaders=»Añadido=X-Slack-Allowed-Workspaces-Requester: T03ARHV9669X-Slack-Allowed-Workspaces: T03ARHV9669X-Slack-Allowed-Workspaces: T03891MQN3W»
2) Depuración del backend.
Los siguientes filtros pueden ser utilizados considerando que este tipo de depuración puede ser larga.
# diagnosticar filtro wad vd root
# diagnosticar wad filter firewall-policy 40
# diagnose wad debug enable
# diagnose wad debug enable category http
# diagnose debug console timestamp enable
# diagnose debug enable
La salida debería ser similar a la siguiente:
[I]2022-05-11 22:14:59.253880 [p:252][s:187333][r:16777736] wad_dump_http_request :2558 hreq=0x7ff80e80cb48 Solicitud recibida del cliente: 172.16.3.30:49524
GET / HTTP/1.1
Host: robertao.slack.com
sec-ch-ua: «Chromium»;v=»92″, » No es una marca»;v=»99″, «Google Chrome»;v=»92″
sec-ch-ua-mobile: ?0
upgrade-insecure-requests: 1
agente-usuario: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/92.0.4515.131 Safari/537.36
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
sec-fetch-site: ninguno
sec-fetch-mode: navigate
sec-fetch-user: ?1
sec-fetch-dest: documento
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
cookie: b=b88f5b36faece16a3ace963c8e79bd9d
[I]2022-05-11 22:14:59.253987 [p:252][s:187333][r:16777736] wad_dump_fwd_http_req :2567 hreq=0x7ff80e80cb48 Reenvía la petición al servidor:
GET / HTTP/1.1
Host: robertao.slack.com
sec-ch-ua: «Chromium»;v=»92″, » No es una marca»;v=»99″, «Google Chrome»;v=»92″
sec-ch-ua-mobile: ?0
upgrade-insecure-requests: 1
user-agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/92.0.4515.131 Safari/537.36
accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
sec-fetch-site: ninguno
sec-fetch-mode: navigate
sec-fetch-user: ?1
sec-fetch-dest: documento
accept-encoding: gzip, deflate, br
accept-language: en-US,en;q=0.9
cookie: b=b88f5b36faece16a3ace963c8e79bd9d
X-Slack-Allowed-Workspaces-Requester: T03ARHV9669
X-Slack-Allowed-Workspaces: T03ARHV9669
X-Slack-Allowed-Workspaces: T03891MQN3W
3) Mensaje del navegador web para el acceso denegado.
Finalmente, el navegador del usuario final presentará un mensaje de bloqueo de Slack.
🔒 Para terminar, agradecerte que hayas llegado hasta abajo de este artículo. Esperamos que haya servido para solucionar tus problemas y que recibamos pronto otra visita tuya.
Si no logras encontrar solución a tu dilema usa la barra de búsqueda o contacta con nosotros en los comentarios.
¡Un placer!
¿Te ha resultado útil??
0 / 0
Hola, somos Mila Jiménez y César Sánchez. Dos apasionados de la ciberseguridad con muchos años de experiencia. Hemos trabajado en muchas empresas del mundo TI y ahora nos apetece compartir nuestro conocimiento con cualquiera que lo necesite.
¡Si te gusta nuestro contenido puedes invitarnos a un café AQUÍ!