Estou usando o firewall do Windows 7 com a filtragem de saída ativada. O Firewall do Windows não fornece uma interface do usuário para novos prompts de conexão de saída, apenas os bloqueia. O Controle do Firewall do Windows resolve isso usando uma solução alternativa - ele permite o registro de auditoria de falhas de recebimento de pacotes / conexões, monitora o registro de Segurança para novos entradas e exibe os prompts conforme necessário.
Eu passei algum tempo criando uma lista de regras de saída para todos os serviços e aplicativos do sistema que precisam fazer conexões de saída. O Firewall do Windows é capaz de direcionar serviços específicos dentro do svchost.exe, permitindo um controle bastante refinado. Eu encontrei apenas duas coisas em que isso não funciona - Network Discovery e Cryptographic Services.
Eu tenho a seguinte regra ativada:
netsh advfirewall firewall add rule name="Windows Cryptographic Services"
program="%SystemRoot%\System32\svchost.exe" service=CryptSvc
protocol=tcp remoteport=80,443 dir=out action=allow
No entanto, continuo recebendo blocos originados do cryptSvc de hospedagem svchost.exe, tentando fazer conexões http de saída para verificar certificados e outros. Até usei sc config CryptSvc type=own
para isolar o serviço em seu próprio contêiner, para confirmar que, de fato, o CryptSvc está fazendo essas solicitações. E mesmo assim, a regra ainda não combinaria. Existem muitas outras regras com a mesma estrutura, apenas um serviço de destino diferente, onde tudo funciona bem.
Até agora, não consegui encontrar uma solução satisfatória. Permitir 'tudo' para o CryptSvc ainda não fará com que seja compatível. O escopo precisa ser, pelo menos, "todos os serviços" para corresponder, e isso é muito amplo. Eu posso adicionar uma regra de ignorar para svchost.exe no WFC, mas isso, novamente, é muito amplo para o meu gosto. Eu preferiria uma solução sistemática.
EDIT: Tentar editar minha regra de firewall exibe uma caixa de aviso:
Windows services have been restricted with rules that allow expected behavior only. Rules that specify host processes, such as svchost.exe, might not work as expected because they can conflict with Windows service-hardening rules.
Are you sure that you want to create a rule referencing this process?
Pode ser que esse "endurecimento" esteja interferindo no mecanismo do firewall para identificar o serviço de origem.