Pesquisa e coleções
O menu Pesquisar reúne as coleções e a pesquisa recursiva por nome ou conteúdo de ficheiro. Ambas mostram os resultados numa lista ordenável com o caminho de origem de cada ficheiro, e ambas funcionam com o visualizador e com a pré-visualização.
- Ctrl-F: pesquisa a pasta atual e tudo o que está abaixo dela. Todas as palavras têm de
corresponder:
main rsencontramain.rs, ea | bencontra qualquer uma das palavras. Uma palavra em minúsculas ignora maiúsculas e minúsculas; uma palavra com alguma maiúscula tem de corresponder exatamente. Pode também usar padrões glob como*.log, expressões entre aspas, caminhos com uma barra comosrc/libe-wordpara excluir correspondências, além dos filtrosext:rs,toml,type:file,type:dir,type:link,size:>10M,size:1M..50M,mod:<7d(alterado na última semana),mod:>1yein:src(uma pasta em qualquer ponto do caminho). As pesquisas recentes aparecem por baixo do formulário, com as feitas na mesma pasta em primeiro lugar; clique numa delas, ou prima Ctrl-P e Ctrl-N no campo de pesquisa, para a reutilizar. A janela abre com a pesquisa e as opções que lá deixou da última vez, na pasta onde está. Os nomes correspondem em qualquer alfabeto, seja qual for a capitalização de um glob, e as letras acentuadas correspondem independentemente da forma como o sistema de ficheiros as guarda. As correspondências próximas da pasta de pesquisa aparecem primeiro, enquanto o resto da árvore ainda está a ser lido. - Alt-K: junta os ficheiros marcados, ou o ficheiro atual, numa coleção no outro painel. Uma coleção guarda referências, pelo que o conteúdo dos ficheiros não é copiado.
- Alt-V: escolhe uma coleção guardada numa lista com deslocamento que mostra quantas entradas tem cada uma e uma estimativa do seu tamanho. Prima F7 ou N para criar uma. As coleções são mantidas quando o Borg reinicia.
- Esc: oculta os resultados e mantém o cursor, a posição de deslocamento, as marcas, o filtro e o agrupamento.
- Alt-Shift-R: volta a mostrar os resultados ocultos. Uma análise continua a decorrer enquanto os seus resultados estão ocultos.
- Alt-D: abre Tamanhos das pastas para encontrar pastas pelo tamanho total ou pelo número de ficheiros. Os ficheiros ocultos são incluídos por omissão. Alt-D abre a caixa de diálogo de Ctrl-F com Totais de pastas selecionado; altere Procurar para alternar entre os dois modos. Ctrl-C interrompe uma análise.
- Alt-S: calcula os tamanhos da pasta selecionada. Alt-Shift-D: abre uma árvore de tamanhos da pasta atual.
- Alt-W: maximiza ou restaura o painel de resultados ativo. Os resultados abrem num painel
normal por omissão. Os controlos
[+](maximizar),[=](restaurar) e[-](recolher) na barra de título podem ser clicados. Recolher oculta a vista; Alt-Shift-R repõe-na com o mesmo esquema e a mesma seleção. - Ctrl-S: filtra os resultados por nome ou caminho de origem. Um filtro vazio mostra tudo.
Pesquisar dentro dos ficheiros
Seção intitulada “Pesquisar dentro dos ficheiros”Escreva texto em Com o texto na caixa de diálogo de Ctrl-F para listar os ficheiros abaixo da
pasta que o contêm. O padrão de nome continua a aplicar-se, por isso *.rs com fn main em Com
o texto encontra os ficheiros Rust que o têm. As opções ao lado do campo funcionam como na barra
de pesquisa: Alt-C distingue maiúsculas de minúsculas (caso contrário, uma pesquisa em minúsculas
encontra qualquer caixa), Alt-W procura palavras inteiras e Alt-R lê o texto como expressão
regular. Também pode clicar nas opções. Ctrl-P e Ctrl-N no campo trazem de volta pesquisas recentes
da barra de pesquisa e de pesquisas anteriores. Uma pesquisa de texto lista apenas ficheiros, por
isso não aceita totais de pastas nem um mínimo de ficheiros, e Tamanhos das pastas não tem o
campo Com o texto.
Cada resultado mostra a primeira linha com correspondência, com o número da linha, na coluna
Correspondência, e a linha de estado junta o número da linha ao caminho do ficheiro. F3 abre o
ficheiro no visualizador nessa correspondência, com a barra de pesquisa aberta na pesquisa, para que
Enter avance para a seguinte, e Ctrl-Q mostra-o aí na pré-visualização, com a pesquisa marcada. Os
ficheiros Markdown e JSON abrem como código-fonte em ambos, porque a pesquisa leu o ficheiro tal
como está, e s muda para a vista formatada. F4 abre o ficheiro no editor do Borg nessa
correspondência, com a correspondência selecionada e a barra de pesquisa aberta na pesquisa, e Alt-E
faz o mesmo no outro painel, para que os resultados continuem à vista. O Borg lê os ficheiros em
segundo plano, e a linha de contexto conta os ficheiros lidos. Os ficheiros binários (um byte NUL
nos primeiros 8 KiB) e os ficheiros com mais de 64 MiB ficam por ler e contam como binários ou
demasiado grandes. Ctrl-C interrompe a pesquisa, que para nos 20 000 ficheiros como qualquer
pesquisa.
Ctrl-R nos resultados, ou Substituir nos ficheiros… no menu Ficheiro, substitui o texto nos
ficheiros marcados, ou em todos os ficheiros que os resultados mostram quando nenhum está marcado.
Escreva o que fica no seu lugar e prima Enter; deixe o campo vazio para remover o texto. Uma segunda
pergunta indica o texto e os ficheiros e abre com Não selecionado. Prima Y para os alterar. O
Borg não guarda uma cópia do texto antigo. Os interruptores da pesquisa aplicam-se, por isso uma
pesquisa de palavras inteiras substitui palavras inteiras, e com uma expressão regular $1 repõe o
primeiro grupo. O Borg escreve cada ficheiro como o seu editor guarda, por isso as permissões e as
ligações mantêm-se. Ignora os ficheiros que não são texto, que têm mais de 32 MiB ou que mudaram
enquanto a tarefa corria. A tarefa aparece em Alt-J, e os resultados atualizam-se quando ela
termina.
Analisar ficheiros com regras
Seção intitulada “Analisar ficheiros com regras”Defina Procurar como Correspondências de regras na caixa de diálogo de Ctrl-F para analisar os ficheiros abaixo da pasta com regras YARA: as que o Borg inclui e as suas. O padrão de nome, o Tamanho mínimo e Omitir resultados de compilação, caches e ficheiros ignorados continuam a aplicar-se. São as regras que decidem o que procurar, por isso a caixa de diálogo deixa de mostrar Com o texto e Mínimo de ficheiros.
Cada resultado mostra na coluna Correspondência a regra mais grave a que o ficheiro corresponde, a quantas outras corresponde e os primeiros bytes que essa regra encontrou, como texto entre aspas ou em hexadecimal. F3 abre o ficheiro no visualizador nesses bytes, com a barra de pesquisa preenchida com eles, e F4 e a pré-visualização também abrem nesse ponto. A linha de contexto conta os ficheiros analisados e as regras usadas. Os ficheiros com mais de 64 MiB ficam por ler e contam como demasiado grandes, e a análise para nos 20 000 ficheiros como qualquer pesquisa. Ctrl-C interrompe-a.
As regras do próprio Borg procuram:
reverse_shell: uma shell interativa através de/dev/tcp,ncousocata executar uma shell, ou uma shell lançada num pseudoterminal.download_and_run: um script transferido e encaminhado diretamente para uma shell.decode_and_run: base64 descodificado e executado como comando da shell ou como código Python.crypto_miner: o endereço de um pool de mineração, ou as definições de um minerador comum.upx_packed: um executável comprimido com UPX, que se descomprime a si próprio em memória.execve_shellcode: o caminho da shell que o código de exploração constrói antes de iniciar uma shell.ssh_key_planted: uma chave pública acrescentada a um ficheiroauthorized_keys.reboot_job_fetch: uma tarefa cron que corre em cada arranque e transfere, descodifica ou executa algo a partir de uma pasta temporária.password_prompt: uma caixa de diálogo AppleScript que pede uma palavra-passe com a resposta oculta, como fazem os programas que roubam dados no macOS.launch_agent_from_temp: um agente ou daemon de arranque do macOS que inicia um programa a partir de uma pasta temporária ou partilhada.preload_write: uma escrita em/etc/ld.so.preload, que carrega uma biblioteca em todos os programas no Linux.history_wiping: o histórico da shell desativado, ou registos do sistema esvaziados.agent_unattended: um agente de programação com IA iniciado com as aprovações desligadas, como fez o ataque à cadeia de fornecimento do Nx para procurar segredos nas máquinas.hidden_prompt: uma sequência de caracteres de etiqueta Unicode invisíveis, que podem esconder instruções para modelos de IA em prompts, ficheiros de regras e páginas web.pickle_runs_code: um pickle, o formato em que o Python e o PyTorch guardam modelos, que executa um comando quando é carregado.
Coloque as suas regras na pasta rules ao lado de config.toml: ~/.config/borg-commander/rules,
ou a mesma pasta em $XDG_CONFIG_HOME ou $BORG_CONFIG_DIR. O Borg lê todos os ficheiros .yar e
.yara que aí estão e nas pastas abaixo, cada um num espaço de nomes próprio, por isso dois
ficheiros podem usar os mesmos nomes de regras. Cada ficheiro é compilado separadamente. Um ficheiro
com um erro fica de fora por inteiro, a linha de estado indica-o com a mensagem do compilador, a
linha de contexto conta os ficheiros deixados de fora, e os outros ficheiros continuam a correr.
Como cada ficheiro é carregado separadamente, um ficheiro que use include também fica de fora, e
os ficheiros que inclui correm por si.
As regras podem importar os módulos hash, math, string, time, elf, macho, pe, dotnet
e dex; um ficheiro que importe magic, cuckoo ou console fica de fora. As variáveis
filename, filepath e extension contêm o nome, o caminho e a extensão do ficheiro analisado,
como esperam os conjuntos de regras escritos para o THOR e o LOKI, e filetype e owner ficam
vazias. A meta severity de uma regra define a importância de uma correspondência: alert,
critical ou high dão um alerta, warning, medium ou suspicious um aviso, e notice, low
ou info uma nota. Sem ela, um score de 80 ou mais dá um alerta, de 60 ou mais um aviso, e abaixo
disso uma nota. Uma regra sem nenhuma das duas conta como aviso. Os seus campos description e
false_positives aparecem com cada correspondência.
O Borg não inclui conjuntos de regras públicos, porque as licenças variam. Transfira os que considera fiáveis para a pasta de regras e verifique cada licença antes de os usar no trabalho:
- YARA Forge reúne em pacotes testados regras de muitas fontes públicas; cada regra mantém a licença da sua fonte.
- signature-base é gratuito para uso não comercial (CC BY-NC 4.0).
- Os protection artifacts da Elastic estão sob a Elastic License 2.0.
- As regras da ReversingLabs estão sob a licença MIT.
As regras correspondem a padrões de bytes e nada sabem de intenções. Instaladores, ferramentas de segurança e os seus dados de teste também correspondem, e um ficheiro a que nenhuma regra corresponde pode mesmo assim ser malicioso. Encare as correspondências como pistas. Analisar a memória com regras explica o que uma análise não consegue ver.
Encontrar executáveis compactados
Seção intitulada “Encontrar executáveis compactados”Defina Procurar como Executáveis compactados na caixa de diálogo de Ctrl-F para listar os programas abaixo da pasta cujo código é tão denso como bytes comprimidos ou cifrados. Os compactadores e os protetores deixam código assim, tal como o malware que esconde o seu código até ser executado. O Borg lê as partes de cada ficheiro ELF, Mach-O e PE que o carregador mapeia como executáveis, incluindo cada fatia de um binário Mach-O universal, e mede a entropia de até 1024 blocos de 4 KiB distribuídos uniformemente por elas. Um programa é listado quando pelo menos 70% desses blocos chegam a 7,2 bits por byte. O código compilado da forma habitual fica muito abaixo disso. O padrão de nome, o Tamanho mínimo e Omitir resultados de compilação, caches e ficheiros ignorados continuam a aplicar-se, e a caixa de diálogo deixa de mostrar Com o texto e Mínimo de ficheiros.
A coluna Correspondência indica a percentagem de blocos com entropia alta e a entropia mais alta encontrada, como “97% alta · máx. 8”. F3 abre o programa nas linhas hexadecimais do visualizador, no primeiro bloco com entropia alta, com a faixa de entropia descrita em Visualizador e pré-visualização ao lado. A linha de contexto conta os programas lidos e os outros ficheiros, onde o Borg não sabe encontrar código. Ctrl-C interrompe a pesquisa, que para nos 20 000 ficheiros como qualquer pesquisa. Um programa compactado só mostra o seu verdadeiro código enquanto corre, e a Análise de entropia de todos os processos examina os programas dessa forma.
Trabalhar com os resultados
Seção intitulada “Trabalhar com os resultados”Clique no cabeçalho de uma coluna para ordenar por ela e clique de novo para inverter a ordem. Os menus Esquerda e Direita também permitem ordenar, e o menu Pesquisar acrescenta a ordenação por pasta de origem e o agrupamento por pasta ou tipo de ficheiro. Enter no cabeçalho de um grupo recolhe-o; Insert marca os ficheiros correspondentes desse grupo. As marcas mantêm-se quando ordena ou filtra, e o rodapé conta também os ficheiros marcados que o filtro oculta.
F3 e Ctrl-Q abrem o ficheiro original e, depois de uma pesquisa de texto, abrem-no na primeira correspondência. A pré-visualização acompanha o cursor pelos resultados e mostra cada ficheiro na sua correspondência, com a pesquisa marcada como a barra de pesquisa a marca. Alt-E abre o ficheiro no editor do Borg no outro painel, para que os resultados continuem à vista. Esc ou F10 fecha esse editor e devolve o foco aos resultados, e a pré-visualização regressa se estava aberta antes. F5 copia para uma pasta real; se o outro painel for uma coleção, F5 acrescenta-lhe referências. F6 precisa de uma pasta real como destino. Numa coleção, F8 remove referências e não mexe nos ficheiros; nos resultados de pesquisa, F8 pede confirmação para eliminar os ficheiros originais. Shift-F8 também elimina os ficheiros originais a partir de uma coleção, depois de confirmar. Quando estão marcados uma pasta e ficheiros dentro dela, a tarefa trata a pasta uma única vez. Revelar original ou Alt-O abre a pasta do ficheiro no outro painel, com o cursor no ficheiro. Left ou Esc ocultam os resultados, e Alt-Shift-R repõe-nos onde os deixou. Tab alterna entre os painéis mesmo quando a shell tem um comando por terminar. A shell fica sempre numa pasta real. F10 pede sempre confirmação antes de sair.
Por agora, as ações de Git e de arquivos só funcionam em painéis de pastas reais. Para as usar num ficheiro de uma coleção, abra primeiro a respetiva pasta com Revelar original.
Limites da pesquisa
Seção intitulada “Limites da pesquisa”A pesquisa lê nomes de ficheiros e metadados num processo em segundo plano que pode cancelar, e para às 20 000 correspondências. A linha de contexto indica se a pesquisa terminou, os erros e as entradas ignoradas, e se atingiu esse limite. As pastas ocultas só são pesquisadas com Mostrar ficheiros ocultos ativo. A pesquisa não sai do sistema de ficheiros onde começou e não segue ligações simbólicas para pastas. A janela de pesquisa pode limitar os resultados a ficheiros ou a pastas e definir um tamanho mínimo.
Totais de pastas e árvore de tamanhos
Seção intitulada “Totais de pastas e árvore de tamanhos”Escolha Totais de pastas para medir todos os ficheiros abaixo de cada pasta antes de filtrar
por nome, tamanho ou número mínimo de ficheiros. O Borg guarda as 20 000 maiores pastas
correspondentes e ordena-as por tamanho; clique em Ficheiros para as ordenar pelo número de
ficheiros. Use um padrão como node_modules ou
*cache*, ou * para ver todas as pastas abaixo da pasta inicial.
Os totais somam o conteúdo dos ficheiros. Eliminar uma pasta pode libertar uma quantidade diferente de espaço em disco. As subpastas também contam para os totais das pastas que as contêm. As ligações simbólicas nunca são seguidas, as análises não saem do sistema de ficheiros onde começaram, e uma pasta que se contém a si própria (através de uma montagem bind ou de uma pasta com ligação física) só é contada uma vez. Quando um total fica incompleto por causa de um destes limites, ou porque uma subpasta não pôde ser lida ou foi omitida, aparece com ≥. As análises de pastas leem apenas metadados, nunca o conteúdo dos ficheiros. Os resultados aparecem quando a medição termina, e pode cancelar a análise a qualquer momento.
Árvore de tamanhos das pastas mostra no painel atual o total da pasta inicial e das suas subpastas. Right expande um ramo, ou entra nele se já estiver expandido; Left recolhe um ramo ou seleciona o ramo pai. Enter abre a própria pasta. Clique na seta de um ramo para o recolher ou expandir, ou no cabeçalho de uma coluna para ordenar as pastas do mesmo nível por nome, tamanho ou número de ficheiros. Esc oculta a árvore, e Alt-Shift-R repõe os ramos, as marcas e o cursor. As operações com ficheiros atuam sobre os caminhos reais e, se marcar uma pasta e uma subpasta dela, uma tarefa de cópia ou eliminação recebe apenas a pasta.
O que as pesquisas omitem
Seção intitulada “O que as pesquisas omitem”Com Omitir resultados de compilação, caches e ficheiros ignorados assinalado, as pesquisas
por nome ignoram pastas geradas: node_modules, .git, caches e ambientes virtuais de Python,
pastas como target e dist que estejam ao lado de um ficheiro de compilação (Cargo.toml,
package.json), e qualquer pasta marcada com um ficheiro CACHEDIR.TAG. Ignoram também os
ficheiros excluídos por .gitignore,
.ignore, .rgignore ou .borgignore, e os globs definidos em [search] exclude.
Para alterar o que fica de fora, prima F4 na caixa de diálogo de pesquisa ou clique em F4
Editar. Pode ativar ou desativar as pastas geradas e os ficheiros de exclusão, e adicionar
(Ins), editar (Enter) ou remover (Del) padrões. As alterações são guardadas no ficheiro de
configuração. Uma pasta omitida continua a aparecer se o próprio nome corresponder, e a linha de
contexto indica quantas pastas foram omitidas. Acrescente excluded:yes a uma pesquisa para
procurar em tudo nessa vez, ou hidden:yes para incluir ficheiros ocultos. As análises de
tamanho leem sempre tudo.
No macOS, as pesquisas e as análises de tamanho que começam acima de ~/Library/Containers e
~/Library/Group Containers ignoram estas pastas: ler aí faz com que o macOS suspenda a leitura
até alguém responder se autoriza o acesso aos dados de outra aplicação. Uma pesquisa iniciada
dentro de uma destas pastas lê-a normalmente.
O histórico de pesquisa fica neste computador e só o utilizador o pode ler. Defina
history = false em [search] para deixar de o guardar.
Pesquisa instantânea com índice
Seção intitulada “Pesquisa instantânea com índice”Pesquisar → Indexar esta pasta para pesquisa instantânea mantém um índice de todos os nomes
abaixo da pasta ativa, para que Ctrl-F responda de imediato nessa pasta ou em qualquer pasta
abaixo dela. A linha de contexto indica quando o índice foi criado. O Borg reconstrói os índices
em segundo plano depois de arrancar e sempre que um índice tem mais de 15 minutos, e o índice
antigo continua a responder até o novo estar pronto. Uma pesquisa que não omite nada, ou que usa
exclusões diferentes, lê as pastas diretamente, tal como uma pesquisa de texto, porque o índice só
guarda nomes. Escolha de novo a mesma opção do menu para deixar
de indexar e eliminar o índice. Os índices ficam na pasta de cache, junto às análises de tamanho,
e [index] na configuração enumera as pastas indexadas.
Contar tamanhos em segundo plano
Seção intitulada “Contar tamanhos em segundo plano”Para medir tamanhos sem fechar os painéis de ficheiros normais, prima Alt-I ou escolha
Pesquisar → Contar tamanhos em segundo plano. O Borg analisa todas as pastas abaixo da atual,
incluindo ficheiros ocultos, e preenche o total de cada pasta à medida que termina. Pode continuar
a navegar ou usar a consola enquanto a análise decorre. As pastas que ainda estão a ser medidas
mostram um total crescente assinalado com ≥, e os totais mantêm-se quando sai de uma pasta e
volta a ela. O rodapé do painel mostra o progresso; prima Alt-I de novo, ou clique no rodapé,
para parar a análise e manter os totais medidos até esse momento. Iniciar uma tarefa de cópia,
movimentação ou eliminação para uma análise de tamanhos em curso. As análises concluídas partilham
a cache com a árvore de tamanhos e com Totais de pastas.
Análises de tamanho guardadas
Seção intitulada “Análises de tamanho guardadas”As análises concluídas ficam guardadas neste computador. Totais de pastas e a árvore de tamanhos
reutilizam uma análise guardada da mesma pasta com a mesma definição de ficheiros ocultos. Quando
volta a abrir uma pasta que já foi medida, os tamanhos guardados aparecem de imediato, assinalados
com ~, com a data da medição por cima da árvore. Ctrl-R volta a analisar em qualquer das
vistas de tamanho, e Ctrl-C cancela. A árvore anterior continua visível durante a atualização
e mantém-se se a nova análise for cancelada ou falhar. As listagens normais de pastas também
mostram os totais guardados, quando existem. Alterações feitas fora do Borg podem desatualizá-los,
e a navegação nunca inicia uma análise recursiva por si só. As tarefas de cópia, movimentação e
eliminação do Borg descartam as análises guardadas que abrangem os caminhos alterados.
A cache SQLite local guarda todas as pastas medidas para até 16 pastas iniciais. As árvores
carregam as subpastas de um ramo quando o expande. Um ramo mostra até 20 000 pastas, e Totais de
pastas guarda as 20 000 maiores correspondências; estes limites de apresentação não interrompem a
análise nem alteram os totais. Uma linha “Ficheiros nesta pasta” contabiliza os bytes guardados
diretamente numa pasta expandida. Os erros e as subpastas ignoradas marcam os totais como
incompletos. A cache fica em
~/.cache/borg-commander, ou em XDG_CACHE_HOME se estiver definido; BORG_CACHE_DIR substitui
essa localização. A cache contém apenas medições que podem ser recriadas e é independente das
coleções. Um ficheiro com ligações físicas conta uma vez por cada caminho que tem. Todos os
tamanhos medem o conteúdo dos ficheiros, pelo que o espaço que um ficheiro ocupa em disco pode
ser maior ou menor.
Este guia acompanha o ramo main · Borg 0.11.0 · 1f6bce6
A versão mais recente pode ainda não incluir tudo o que aqui se descreve. Notas de versão
Traduzido a partir do guia em inglês. As correções são bem-vindas. Os comandos e os atalhos de teclado não são traduzidos.