O Cisco ASA pode realizar a filtragem de URL quando a inspeção de HTTP está ativada. Eles têm um excelente artigo mostrando como ele funciona aqui . O exemplo mais relevante desse documento para você seria algo como isto:
! Replace regex with all known MS Update hostnames
regex ms-updates "^update\.microsoft\.com|download\.windowsupdate\.com$"
! Match if the Host: header does not match the regex.
class-map type inspect http match-any not-ms-updates
match not request header host regex ms-updates
! Drop packets matching the class-map (and thus not matching the regex).
policy-map type inspect http ms-update-policy
parameters
class not-ms-updates
drop-connection log
! Configure HTTP inspection with the policy applied.
policy-map global_policy
class inspection_default
inspect http ms-update-policy
service-policy global_policy global
O principal problema é que a inspeção HTTP só pode lidar com HTTP não criptografado. Não é possível inspecionar o tráfego HTTPS com o ASA. Alguns URLs do Microsoft Update estão disponíveis como HTTPS, então isso é algo que você deve conhecer.
O uso de uma política de inspeção ainda deixa você aberto a um usuário que cria uma solicitação HTTP personalizada que corresponda à política, mas que na verdade não acessa um site autorizado. Isso pode ser mitigado usando nomes de host reais nas suas listas de acesso, usando o recurso FQDN Object introduzido no item 8.4 (2) . Isso permite que você crie um objeto que faça referência a um nome de domínio totalmente qualificado, que, por sua vez, pode ser usado em uma lista de acesso. Por exemplo:
object network ms-update-1
fqdn update.microsoft.com
access-list inside_access_out extended permit any object ms-update-1 eq 80
access-list inside_access_out extended deny ip any any log
access-group inside_access_out in interface inside
Se você adotar essa abordagem, sugiro posicionar a linha FQDN o mais baixa possível na ACL, para que ela só seja acionada para o tráfego de atualização real. O ASA realiza o cache de DNS, mas se o TTL de um FQDN consultado for muito baixo, isso pode resultar em muitas solicitações de DNS do ASA. Usar um servidor DNS em cache local deve ajudar a minimizar quaisquer atrasos.
Uma combinação dessas duas abordagens deve fazer o que você precisa com o que você tem e sem custo adicional, mas eu sugiro strongmente ler os documentos vinculados para que você entenda suas limitações.