[FUG-BR] Opinião sobre proxy transparente

Patrick Tracanelli eksffa em freebsdbrasil.com.br
Domingo Janeiro 25 11:42:19 BRST 2015


On 01/25/15 04:23, Renato Frederick wrote:
> Pessoal
>
>
> Olha aí,
>
> http://lucianopinheiro.net/portal/node/129
>
>
> O que vocês acham? Eu nunca parei para pensar se o proxy transparente é
> ou não a melhor opção, sempre faço meus projetos tendo em mente um proxy
> transparente.
>
> Também achei bem estranho a afirmação abaixo:
>
> [....]
> "Quanto à segurança, parece-me que o melhor mesmo é usar proxy não
> transparente, principalmente por causa dos vírus, trojans e toda a fauna
> de processos mal intencionados no sistema operacional. No Windows, isso
> é vital. Coloca-se um gateway e servidores DNS falsos e processa-se
> apenas o que vier através do navegador. Sugiro utilizar uma máquina
> válida preparada para receber os pacotes não autorizados, de modo que
> identifique-se, via tcpdump, a origem e intenção destes pacotes."
> [....]

Eu não concordo plenamente nem discordo.

Proxy foi criado pra não ser transparente. Diversos recursos, incluindo 
autenticacão não funcionam de forma transparente plenamente ou sem 
grandes ajustes (aka, gambiarra ou novas tecnicas) que vieram depois. O 
proprio proxy transparente veio depois.

A auto-configuracao de proxy seja manual seja por auto-discovery ajuda 
na adocao de proxy não transparente, que já diminuiria uma das primeiras 
vantagens do proxy transparente, que é a ausencia ou não necessidade de 
configurar nada.

Outra vantagem do proxy não transparente é que uma vez configurado proxy 
no sistema, outras aplicacões que simplesmente não funcionariam em um 
proxy transparente, ou não usam portas default ainda que usem protocolos 
default, vão usar o servidor proxy sem ter sido interceptados por um 
firewall em algum momento. Por exemplo, Dropbox desktop ou a solucao de 
conferencia da Cisco nao funcionarão em modo transparente, mas vão 
funcionar com proxy automatico na maquina ou proxy manual.

As vantagens pra mim, param por ai. Isso no entanto so e possivel em 
ambientes corporativos, uma empresa, orgao de governo, etc.

Em um provedor ou uma rede publica de outro tipo onde nao existe a 
possibilidade de intervencao no navegador do usuario ou nao existe 
garantia que a auto-configuracao possa ser viavel (o cara pode ter 
firewall, etc), nao tem escolha e a interceptacao transparente se faz 
necessaria.

A respeito de filtros, nao ha diferenca, nao ha desvantagem no 
transparente, tudo se filtra da mesma forma. A respeito da autenticacao 
nao funciona por padrão mas ja existem alternativas funcionais para 
navegadores modernos - nao vai funcionar no seu firefox2 no IE6 ou no 
Lynx/netscape hehehe como funciona autenticacao em um proxy manual, mas 
se vc usa qualquer coisa de 2 anos pra ca, as alternativas pra auth 
transparente ja funcionarao...

Sobre a estrategia de "seguranca" defendida, convenhamos, é enrolar o 
rabo e sentar em cima pra tentar esconder. Colocar um gateway falso pra 
evitar proliferacao de vírus ehahuauha em primeiro lugar não deveria 
haver vírus, em segundo lugar se tem, não deveria assumir uma posicão 
que o virus vai ficar la tentando se propagar, ele sera eliminado ASAP. 
Faz favor. Outro ponto nada a ve, e que nada impede a adocao de um DNS a 
parte. Mas de novo, ter um "dns pros virus" e deixar o proxy ser o unico 
a usar o DNS autentico me parece de novo o caminho totalmente oposto da 
seguranca.

Se o gateway ou o switch ja no perimetro descartam os pacotes que não 
destinados a interceptacao web pra desvio pro proxy, ja é mais 
eficiente, especialmente porque o drop de um filtro será silencioso 
enquanto um "gateway falso" vai ficar retornando TCP RST, ou icmp 
unreach host loucamente, prejudicando a rede ao inves de trazer qualquer 
tipo de vantagem psicologica. Entao filtro proximo a estacao, ou filtro 
silencioso (default) no firewall, além de mais eficiente dão mais 
controle ja que tem logs, monitoracao... ninguem quer simplesmente uma 
maquina tomando pancada de virus e sem controle sobre o que esta 
acontecendo.

Isso sem mencionar que a maior parte dos virus/worms hoje ja consultam 
se ha um proxy configurado para usa-lo. Primeiro pq isso é facil de ser 
implementado especialmente em Windows, API uniforme e de facil acesso. 
Segundo que esta nas melhores praticas. Sim quem faz virus compartilha 
de suas melhores praticas e buscar proxy, conf dinamica de proxy, DNS 
estatico está entre elas.

Incrivelmente tem virus/worms que implementam melhores praticas ainda 
mais eficientes que aplicativos profissionais, de home banking por 
exemplo. Sem exageros, essa semana me deparei com um backdoor escrito em 
PERL na maquina comprometida por injection de um cliente cujo codigo em 
execucão fazia Public Cert Pinning!!!!

Convenhamos 90% dos apps de home banking no Brasil NAO FAZEM Public Cert 
Pinning... nem pub key. Esse backdoor se preocupa mais com a seguranca 
pra falar com seu Control Node do que o Banco do Brasil se preocupa pro 
Mobile Banking falar com webservice do BB.

Ou seja achar que um virus hoje nao va acessar uma API de uma unica 
chamada pra tentar usar o proxy manual, é, no mínimo, inocência.

Por último, historicamente temos por baixo meia duzia de formas de 
bypassar o proxy configurado manualmente mesmo em um Windows com policy, 
se nao for uma policy bem feita. Ja escapar de um proxy transparente, 
nao da. Se o cara por manualmente outro proxy, voce bloqueia e garante 
que so passam as portas desviadas transparentemente.

Enfim, os dois tem suas vantagens. Poucas sao as vesvantagens de uma 
abordagem perante a outra. Acho que depende muito mais da decisao da 
equipe que vai manter do que exatamente uma discussao do que é melhor e 
mais adequado.


-- 
Patrick Tracanelli


Mais detalhes sobre a lista de discussão freebsd