[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