PATHSCOPE 0.1.9 · Última atualização: 2026-10-17

Manual de utilização do PathScope

Este manual percorre os ecrãs por ordem, desde encontrar com o PathScope os pontos fracos deste dispositivo até perceber por onde começar a corrigi-los. As explicações dos ecrãs evitam, tanto quanto possível, o jargão técnico; os comandos estão reunidos no capítulo «Utilização na linha de comandos».

1. O que é o PathScope

O PathScope identifica os «caminhos» pelos quais um utilizador comum deste dispositivo pode chegar a root (privilégios de administrador) ou a dados sensíveis e mostra, com prioridades, onde corrigir é mais eficaz. Destina-se a verificar dispositivos que gere e ambientes de teste.

A análise é só de leitura. Não altera definições nem ficheiros e não aplica correções automaticamente. São apresentados exemplos de comandos de correção, mas cabe a si decidir se os executa.

Sistemas suportados e onde está incluído
Funciona em Mac (macOS 12 ou posterior) e em Linux. No Mac está incluído no ficheiro de distribuição do RoamSwitch (DMG); no Linux, nos pacotes da versão cliente do RoamSwitch (.deb, .rpm, AUR), e tanto a janela como o comando estão disponíveis. Os pacotes da versão servidor do RoamSwitch para Linux incluem apenas o comando (pathscope). O PathScope é uma aplicação separada do RoamSwitch, com licença Apache License 2.0. Não está abrangido pelo contrato de licença do RoamSwitch (EULA).

2. Instalação e arranque

O PathScope é instalado como uma aplicação separada, com ícone próprio. Veja como o iniciar.

AmbienteComo iniciar
MacAbra o PathScope.app a partir do ficheiro de distribuição (DMG) e clique em «Analisar».
LinuxAbra «PathScope» na lista de aplicações e clique em «Analisar». A partir de um terminal, execute pathscope-gui. A janela requer o WebKitGTK 4.1, que é instalado automaticamente com deb e rpm. No Arch (AUR), instale webkit2gtk-4.1 como dependência opcional.
Linha de comandosExecute pathscope num terminal. No Mac é PathScope.app/Contents/MacOS/pathscope.

Ao iniciar, abre-se uma janela com os botões «Analisar», «Histórico», «Assistência de LLM», «Explicar com LLM» e «Definições» na parte superior. «Explicar com LLM» só pode ser premido depois de ser apresentado um resultado. O PathScope não abre nenhuma porta em escuta e a janela não carrega sítios externos.

3. Executar a análise e ler o resultado

Ao clicar em «Analisar», o PathScope recolhe o estado deste dispositivo a partir do utilizador atual e analisa-o. Pode demorar de alguns segundos a algumas dezenas de segundos. No fim, o resultado é guardado automaticamente como uma entrada do histórico.

Passos

  1. Clique em «Analisar».
  2. Em «Diagrama de caminhos» e «Lista de caminhos», veja que utilizador chega a root ou a dados sensíveis e por que passos. Os círculos e quadrados são utilizadores e destinos, e cada linha é um passo que eleva privilégios. O número sobre uma linha corresponde ao «motivo pelo qual o passo é possível» na tabela abaixo do diagrama.
  3. Em «Pontos de correção (por ordem de correção)», verifique onde corrigir tem maior efeito. Cada item mostra a prioridade (crítica, alta, média ou baixa, com uma pontuação), o número de caminhos afetados, uma correção sugerida e a técnica MITRE ATT&CK mais próxima.
  4. Clique em «E se corrigir isto?» para voltar a analisar, a título de teste, os caminhos que restariam se esse ponto fosse corrigido como sugerido. «E se corrigir tudo?» faz o mesmo para todos os pontos apresentados. Nenhuma das opções altera este dispositivo.
  5. Leia a lista das áreas que não foi possível verificar, apresentada abaixo dos pontos de correção.
As áreas não verificadas não são «seguras»
São áreas que não foi possível verificar por falta de privilégios ou porque o destino referenciado não existe. Não significa que se tenha confirmado que «não há perigo», nem que haja perigo. Os itens marcados «podem ser verificáveis se executar com privilégios de root» por vezes podem ser verificados executando como root.

Que caminhos encontra

As vulnerabilidades conhecidas são verificadas com dados incluídos na aplicação. São abrangidos o macOS e as versões de Debian, Ubuntu, família RHEL, SUSE, Arch e Alpine para as quais existem dados; tudo o resto (Debian 11 e anteriores, Fedora, etc.) é apresentado como «não verificado». Não é uma funcionalidade para examinar vulnerabilidades de forma exaustiva.

4. Histórico, exportação e verificação periódica

Os resultados da análise ficam guardados automaticamente como histórico neste dispositivo. Clique em «Histórico» para abrir a lista, onde pode abrir uma entrada, atribuir-lhe uma etiqueta (por exemplo, antes da correção) ou eliminá-la. Selecione duas entradas e clique em «Comparar os dois selecionados» para ver os caminhos que desapareceram e os que surgiram, bem como as alterações nos pontos de correção. Use isto para comparar a situação antes e depois de uma correção.

Os resultados da análise guardados em formato JSON noutro dispositivo podem ser trazidos para o histórico com «Importar resultados de análise». Selecione duas ou mais entradas no histórico e clique em «Resumir os selecionados» para ver os dispositivos mais em risco, por ordem, e as fragilidades comuns a vários dispositivos.

O resultado apresentado pode ser guardado como «Resultado da análise (JSON)», «Lista de vigilância (JSON)» ou «Regras do auditd (para o registo de auditoria do Linux)». O destino escolhe-se na janela de gravação. Apenas se escrevem ficheiros; não é aplicada nenhuma definição nem este dispositivo é alterado.

Isto escreve um ficheiro de configuração que analisa periodicamente e avisa quando há mais caminhos do que da vez anterior.

  1. Apresente um resultado de análise e clique em «Guardar como referência».
  2. Defina o «Intervalo (minutos)» (de 5 a 10080).
  3. No Mac clique em «Guardar definições do launchd…», no Linux em «Guardar definições do systemd…», e escolha onde guardar.
  4. Verifique o conteúdo escrito e depois registe-o você mesmo (por exemplo, com launchctl load). O PathScope não o regista.

5. Funcionalidades que usam um LLM (opcional)

Desativado por predefinição
As funcionalidades que usam um LLM não funcionam até as ativar nas definições. Depois de ativadas e usadas, parte do conteúdo da análise é passada ao comando do LLM escolhido e ao serviço que está por trás. Esta comunicação não está incluída no «Zero Telemetry» do RoamSwitch. Se a deixar desativada, o PathScope não envia conteúdo da análise para fora deste dispositivo.

Configuração

  1. Assinale «Ativar o LLM».
  2. Escolha o «LLM a utilizar». As opções são os comandos claude, opencode, codex e agy, e podem ser usados aqueles cujo «Estado» é «Instalado». Se aparecer «Não encontrado», instale primeiro esse comando.
  3. Escolha «O que enviar ao LLM ao ler as configurações» (veja a tabela abaixo).
  4. Clique em «Guardar».

Na lista, o «Modelo» e o «Limite de tempo (segundos)» podem ser alterados para cada LLM. O claude é iniciado com a execução de comandos e a leitura de ficheiros desativadas. O opencode, o codex e o agy são tratados como não restringíveis e só podem ser usados se assinalar «Compreendo que não é possível impedir este LLM de executar comandos nem de ler ficheiros». Um LLM que não pode ser restringido pode ler ficheiros por iniciativa própria durante o processo, e o seu conteúdo pode ser enviado ao serviço do LLM.

Explicar com LLM

Com um resultado apresentado, clique em «Explicar com LLM» para que o LLM escreva uma avaliação geral, a ordem e os motivos das correções, o significado das áreas não verificadas e pontos semelhantes. É passado apenas um resumo dos caminhos, dos pontos de correção e das áreas não verificadas; a informação em bruto recolhida (como listas de proprietários e permissões de ficheiros) não é passada. O resumo contém, no entanto, os nomes de utilizador e os caminhos de ficheiros que aparecem nos caminhos. A resposta do LLM é indicativa. São as pessoas que verificam e decidem o que fazer, e nada muda automaticamente com base na resposta.

Assistência de LLM (leitura de ficheiros de configuração)

Os ficheiros de configuração como sudoers, cron e scripts são escritos de formas muito variadas e, só com um programa, por vezes não é possível lê-los. A assistência de LLM faz com que um LLM leia esses ficheiros e procure descrições relacionadas com privilégios de root.

  1. Clique em «Assistência de LLM». Os ficheiros candidatos à leitura são listados com o motivo de cada um (no início estão todos selecionados). São candidatos o sudoers, o cron, as definições do systemd e do launchd e os executáveis carregados por serviços que correm como root, entre outros. Desmarque os que não quiser enviar.
  2. Clique em «Enviar ao LLM os selecionados (○)». Aparece uma confirmação do que será enviado; leia-a e depois clique em «Enviar (confirmado)».
  3. No resultado, verifique «Elementos encontrados», «Ficheiros lidos» e «Ficheiros não lidos (continuam por verificar)».
  4. Clique em «Aplicar e analisar de novo» para acrescentar os elementos encontrados à análise. Se já não os quiser usar, elimine-os em «Guardados».

Só são usados os elementos indicados pelo LLM cuja linha foi confirmada como existindo realmente no ficheiro original. Os que não foram confirmados aparecem apenas em «Apenas para referência» e não são usados na análise. A verificação repete-se a cada análise, pelo que um elemento cuja linha original desapareceu deixa de ser usado.

O que é enviadoDetalhes
PadrãoOs valores que parecem palavras-passe ou chaves são substituídos por «[REDACTED]» antes do envio. Ficheiros como chaves privadas não são enviados. De um ficheiro grande são enviadas apenas as linhas que contêm caminhos ou comandos.
Sem restriçõesUma definição para os casos em que o conteúdo não sai do seu dispositivo, como num LLM local (por sua conta e risco). São também enviados os hashes de palavras-passe e semelhantes.
O que nunca é enviado, em nenhum dos modos
Um ficheiro que contém uma chave privada não é enviado, mesmo que tenha outro nome. As chaves em formatos conhecidos e os valores cujo nome indica um segredo, como uma palavra-passe ou um token, são substituídos e depois enviados, independentemente da definição. Como são encontrados pelo nome e pela forma, tenha presente que alguns segredos podem não ser detetados.

6. Utilização na linha de comandos

A mesma análise da janela pode ser executada com o comando pathscope. Sem opções, analisa os caminhos do utilizador atual para root. A recolha é só de leitura e não altera o estado do dispositivo.

pathscope
pathscope --json-out=report.json
pathscope --what-if-fix=all
pathscope --baseline=base.json --fail-on=new --notify
pathscope --print-schedule=systemd --interval-min=60
pathscope --export-watch=watch.json --export-auditd=pathscope.rules
pathscope --plain
pathscope --version
pathscope --lang=en
OpçãoDetalhes
--json-out=<file>Guarda o resultado como JSON.
--what-if-fix=allVolta a analisar, a título de teste, os caminhos que restariam se tudo fosse corrigido como sugerido. Com um número, apenas esse ponto de correção.
--baseline=<file> --fail-on=newCompara com um JSON anterior e termina com o código 1 se os caminhos tiverem aumentado. Com --notify, é também apresentada uma notificação no ambiente de trabalho (apenas o número).
--fail-on=any|new|critical|high|mediumany termina com o código 1 quando há pelo menos um caminho; critical, high e medium fazem-no quando há um ponto de correção com essa prioridade ou superior.
--print-schedule=launchd|systemdMostra um exemplo de configuração de execução periódica. Não a regista. Com --interval-min indica-se o intervalo em minutos.
--plainMostra a apresentação anterior em texto simples em vez de Markdown. Os pressupostos da análise vão então para o erro padrão em vez de constarem do resultado.
--help / --version--help (-h) mostra a descrição de todas as opções, os códigos de saída e exemplos. --version (-V) mostra a versão.

A saída é em Markdown. Depois do título aparecem, por esta ordem, uma tabela de resumo, os caminhos, os pontos de correção (uma tabela com a prioridade, o passo, o motivo e os caminhos afetados e, depois, para cada número, um detalhe com a correspondência ATT&CK, os comandos de correção e um aviso), o âmbito da recolha e os pressupostos da análise. Os pontos de correção só aparecem se tiverem sido encontrados caminhos, e os pressupostos só se houver algo a indicar. Com --what-if-* segue-se uma lista da análise hipotética e, com --baseline, uma lista das alterações desde a execução anterior. Pode colá-la tal como está numa nota ou num ticket. Para obter a apresentação anterior em texto simples, acrescente --plain.

O código de saída é 0 se tudo correr bem, 1 quando uma condição de --fail-on foi cumprida e 2 num erro de utilização ou de entrada/saída. Quando executado como root, recolhe também diretamente os listeners em que o root está à escuta. Os resultados de leitura guardados com a assistência de LLM também são incluídos na análise do comando.

7. Onde ficam os dados e atualizações

ItemLocalização
Histórico de resultados da análiseNo Mac, ~/Library/Application Support/net.lafine.pathscope/history.sqlite3; no Linux, ~/.local/share/net.lafine.pathscope/history.sqlite3
Definições do LLM~/.config/pathscope/settings.json (guardado com permissões que só lhe permitem a si lê-lo e escrevê-lo)
Conteúdo guardado pela assistência de LLM~/.local/share/pathscope/facts.json
A «referência» da verificação periódica~/.local/share/pathscope/baseline.json

O histórico pode ser apagado com «Eliminar tudo» no ecrã do histórico. Os resultados da análise contêm informação sensível sobre a configuração deste dispositivo (nomes de utilizador, caminhos de ficheiros, permissões), pelo que deve limitar onde são guardados e com quem são partilhados. Para usar um comando que não está na lista de LLM, acrescente-o manualmente em profiles no ficheiro de definições. Não é possível alterá-lo a partir da janela.

Atualizar a aplicação

O PathScope no Mac atualiza-se a si próprio, de forma independente do RoamSwitch. Só liga ao lafine.net, para obter a informação da versão mais recente, quando clica em «Procurar atualizações» (não é enviada informação sobre este dispositivo nem sobre os resultados da análise). Se houver uma versão nova, clique em «Instalar a v○○» e, no fim, em «Reiniciar para aplicar». Uma atualização transferida só é instalada depois de a assinatura ser verificada e confirmar que não foi adulterada.

No Linux faz parte do pacote do RoamSwitch, pelo que se atualiza atualizando esse pacote. O separador «Atualizações» também o indica.

Os dados usados na análise, como os das vulnerabilidades conhecidas, vêm incluídos na aplicação. O que for descoberto depois não é verificado até atualizar o PathScope. Quando os dados incluídos ficam antigos, o resultado da análise assinala-o.

8. O que não faz

9. Se algo não funcionar

SintomaO que fazer
No Mac, «Dados das definições de privacidade (TCC.db)» aparece entre as áreas não verificadasNo separador «Permissões» de «Definições», clique em «Abrir as definições de Acesso completo ao disco», ative o PathScope nas Definições do Sistema, reinicie o PathScope e analise de novo. As outras análises funcionam mesmo sem esta permissão.
Aparece «Não é possível usar o LLM» ou não é possível guardarAtive-o em «Integração com LLM» nas «Definições» e escolha o LLM a utilizar. Se a lista indicar «Não encontrado», instale o comando. Com opencode, codex ou agy também é necessária a caixa de confirmação.
Um LLM para com «Tempo esgotado»Na lista de «Integração com LLM» em «Definições», aumente o «Limite de tempo (segundos)» desse LLM (de 1 a 900) e guarde.
«E se corrigir isto?» não pode ser usadoNão pode ser usado num resultado aberto a partir do histórico. Clique novamente em «Analisar» e use-o depois.
A atualização dentro da aplicação não pode ser usadaSe o instalou no Linux a partir de um pacote do RoamSwitch, atualize-o atualizando o pacote. Se não o instalou a partir de um pacote (.deb, .rpm ou AppImage), a atualização dentro da aplicação não pode ser usada, pelo que deve reinstalar o pacote distribuído.
← Página do produto PathScope Manual de utilização para Linux →