Falha de Segurança - SquidAnalyzer



  • Estava testando ontem o SquidAnalyzer (muito legal por sinal). Acho que encontrei uma falha de segurança…  ???

    Quem tiver acesso liberado pela internet no webConfigurator, deixa exposto para todos o squidanalyzer.

    :o :o :o :o

    Ex.: IP Válido - 200.200.200.200

    webConfigurator - https://200.200.200.200:9443

    URL Squidanalyzer - https://200.200.200.200:9443/squidreport

    Se você abrir diretamente a URL do squidanalyzer, você tem o acesso SEM autenticação no webConfigurator.

    TESTEM AÍ…

    Ambiente testado:

    PF 2.3.2_1 64 bits
    HTTPS - porta diferente do padrão



  • Putz cara, baaita falha de segurança… Reporta isso no Bug Database do pfsense > https://redmine.pfsense.org/projects/pfsense <



  • Esse PKG não é homologado por eles. Será que vão dar atenção?  :-\



  • Agora que o pfSense é da Netgate acho que sim, pois mesmo não sendo homologado, ainda sim é considerada uma falha de segurança, indicando que existe uma forma de burlar o acesso sem credenciais, sem importar se isso é por um bug de pacote.

    É o que eu penso pelo menos né…





  • Show de bola.. é uma grande ajuda para a comunidade pfSense essa descoberta.
    Parabéns pela iniciativa de informar os colegas..



  • Recusaram o chamado, devido o pacote não ser homologado.  :(

    Quem tem webConfigurator liberado para acesso externo e utiliza o SquidAnalyzer, repensem esta situação.

    É possível ver os registros de navegação, de qualquer lugar.



  • Putz, sacanagem..



  • O pacote mantido por eles é o Lightsquid, então não é falha de segurança do pfSense.
    Se voce usa um pacote de "terceiros" não ha como eles garantirem segurança, e inclusive até pouco tempo o Lightsquid não tinha autenticação.

    A questão aí é que "não" pode deixar a interface de configuração "aberta" para internet, pra mim isso sim é falha de segurança.

    Faça uma VPN, e sobre o squidanalyzer creio que seja possível fazer autenticação, ajustando o servidor web.



  • Eu consegui fazer um contorno, para o SquidAnalyzer ficar disponível somente na rede interna.

    Precisamos de uma 2º instância do NGINX rodando e mais algumas pequenas alterações.

    Contando que o IP lan do seu PF seja 192.168.1.1 (altere se necessário).

    Para o NGINX, podemos fazer o mesmo procedimento descrito aqui https://forum.pfsense.org/index.php?topic=118346.0 (até a parte do nginx apenas).

    Depois de validar, vamos mover a pasta do squidanalyzer

    mv /usr/local/www/squidanalyzer /usr/local/www/nginx-dist/
    

    Desta forma, ja pode testar o acesso:  http://ip_lan_pf/squidreport

    Legal, mas vamos melhorar…

    Vamos editar através do SHELL os arquivos squidanalyzer.inc e squidanalyzer.xml.

    .INC

    sed -ri "" s/\\\/usr\\\/local\\\/www\\\/squidreport/\\\/usr\\\/local\\\/www\\\/nginx-dist\\\/squidreport/g /usr/local/pkg/squidanalyzer.inc
    

    Altera todas as linhas que contenham o path web atual, para o novo destino nginx-dist (ouvindo pela 2ª instância do NGINX).

    .XML

    sed -ri "" s/"\/squidreport"/"http:\/\/192.168.1.1\/squidreport"/g /usr/local/pkg/squidanalyzer.xml
    
    

    Altera a URL que aparece no menu Services > SquidAnalyzer > SquidAnalyzer Report, apontando para sua rede interna.



  • Eu consegui botar a autenticação do LightSquid para o SquidAnalyzer…  :P

    Testes, testes e testes... :'(

    Meu SquidAnalyzer está solicitando a mesma autenticação utilizada no LightSquid, inclusive está na mesma porta (7445).

    Ainda em TESTES!  8)






  • As alterações em memória funcionaram.

    Agora estou validando alterações nos .INC, porém, não tenho conhecimento em PHP.

    Fiz alteração no lightsquid.inc, mas ao rebootar, apareceu mensagem de crash report:

    PHP Parse error:  syntax error, unexpected '"', expecting identifier (T_STRING) or variable (T_VARIABLE) or number (T_NUM_STRING) in /usr/local/pkg/lightsquid.inc on line 271

    Nesta linha, fiz a inclusão disto:

    $HTTP["url"] =~ "^/lightsquid|^/squidreport" {
    

    Qual seria o "problema" ?

    Código completo da instrução:

    $HTTP["url"] =~ "^/lightsquid|^/squidreport" {
    auth.require = ( "" =>
            (
            "method" => "basic",
            "realm" => "Password Required",
            "require" => "valid-user"
            )
    )
    }
    

    Obs.: Alterando o CONF manualmente, exatamente como está ali, funciona! É algo de sitanxe do PHP, mas não consegui identificar ainda.



  • Finalmente um protótipo funcional!  8)

    Depois de correr atrás e quebrar a cabeça, consegui fazer os ajustes nos arquivos INC e XML.

    Após modificações e testes, pude rebootar o pfsense sem perder as configs.

    Esclarecendo, o SquidAnalyzer vai rodar na mesma instância do LightSquid e utilizará a mesma forma de autenticação (credenciais definidas na página de configuração do LightSquid).  ;)
















  • Aceito colaborações (tanto em conhecimento como em $  :P) para validar e liberar um script que aplica segurança no SquidAnalyzer, através de credenciais para acesso.

    Estou implementando e testando ainda… Mas já está funcional, faltando alguns pequenos ajustes e avisos.










  • @brunok:

    Aceito colaborações (tanto em conhecimento como em $  :P) para validar e liberar um script que aplica segurança no SquidAnalyzer, através de credenciais para acesso.

    Estou implementando e testando ainda… Mas já está funcional, faltando alguns pequenos ajustes e avisos.

    Amigo tem como disponibilizar o escript? estou batendo cabeça aqui para inserir uma autenticação para o squidanalyzer.



  • @brunok:

    Finalmente um protótipo funcional!  8)

    Depois de correr atrás e quebrar a cabeça, consegui fazer os ajustes nos arquivos INC e XML.

    Após modificações e testes, pude rebootar o pfsense sem perder as configs.

    Esclarecendo, o SquidAnalyzer vai rodar na mesma instância do LightSquid e utilizará a mesma forma de autenticação (credenciais definidas na página de configuração do LightSquid).  ;)

    Amigo vc pode me auxiliar nas configurações do Lightsquid .inc e .xml para integrar a autenticação no squidreport?



  • O pacote que disponibilizei via repositório já tem isso corrigido a muito tempo. Uso a mesma técnica que implementei no pacote sarg para visualizar o relatório via arquivo php no lugar de chamadas diretas aos htmls gerados.

    Pacote não oficial SquidAnalyzer para pfSense software



  • @marcelloc:

    O pacote que disponibilizei via repositório já tem isso corrigido a muito tempo. Uso a mesma técnica que implementei no pacote sarg para visualizar o relatório via arquivo php no lugar de chamadas diretas aos htmls gerados.

    Pacote não oficial SquidAnalyzer para pfSense software

    Não sei se me expressei bem!!!

    Preciso colocar a pagina de login, para poder autenticar o usuário admin antes de visualizar os relatórios, através dos posts vi que vc acertou em usar a autenticação do lightsquid, poderia me ajudar a integrar isso ao squidanalyzer?



  • @wtech.online:

    Preciso colocar a pagina de login, para poder autenticar o usuário admin antes de visualizar os relatórios

    É exatamente isso que eu implementei no pacote.



  • @marcelloc:

    @wtech.online:

    Preciso colocar a pagina de login, para poder autenticar o usuário admin antes de visualizar os relatórios

    É exatamente isso que eu implementei no pacote.

    Se entendi bem!!!

    Package / Squid log analyzer / General Settings  –-> Pagina de configuração ok

    depois de fazer as configurações e o update dos log, eu clico na aba  squidanalyzer report-->link do squidreport e ele cai direto na tela do relatório sem nenhuma autenticação!

    Está certo?

    Se eu colocar direto no navegador .....

    meu dns: porta/squidreport ele vcai direto sem autenticação.

    Mesma coisa rede interna.

    Esta certo, onde estou errando pois não consigo essa autenticação (login) de acesso ao squidreport.

    Me da um help ai por favor!

    :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

    Entendi porque não consigo o login!!!!

    Estou usando a versão 0.1!!

    Como usar a versão 0.2 no pfsense 2.4?



  • @wtech.online:

    Como usar a versão 0.2 no pfsense 2.4?

    Subi a 0.2 agora para a 2.4




  • @marcelloc:

    @wtech.online:

    Como usar a versão 0.2 no pfsense 2.4?

    Subi a 0.2 agora para a 2.4

    Legal eu atualizei a VER-0.1 manualmente com seus arquivos, agora estou testando aqui!

    Show….Obrigado!!!



  • A solução é bem simples:

    1) Mover o diretório do squidanalyzer para dentro do diretório lightsquid que possui autenticação.

    mv /usr/local/www/squidanalyzer /usr/local/www/lightsquid

    2) Alterar o caminho de Output no arquivo /etc/squidanalyzer/squidanalyzer.conf

    Output /usr/local/www/lightsquid/squidanalyzer

    3) Testar a geração do relatório

    squid-analyzer -d

    4) Acessar o endereço

    https://ip-do-pfsense:7445/squidanalyzer

    Obs: Lembrando que a senha é alterada lá no webconfigurator, LightSquid.


Log in to reply