Português (Brasil)

Ferramentas de desenvolvedor · Calculadora Chmod

Encontrando arquivos graváveis ​​mundialmente e binários setuid com find -perm

· Por que é importante

chmod unix controle de acesso

auditorias de permissão mostradas como um diagrama de bits de permissão Unix distinto
Ilustração vetorial original ToolAcre

Dois padrões de permissão são responsáveis ​​por muitos incidentes reais: arquivos que qualquer pessoa pode alterar e programas executados como root. Esta postagem mostra como encontrar ambos com find -perm e o que fazer com eles.

O revisor pede uma lista que você não possui – quais arquivos qualquer usuário pode modificar e quais programas elevam privilégios quando executados

Uma revisão de permissão geralmente começa com modos já coletados em outro lugar: talvez 0002, 4000, 2000 ou um valor completo como 4755. A calculadora pode decodificar esses números em permissões de proprietário, grupo e outras permissões, incluindo os três bits especiais. Ele não pesquisa diretórios, inspeciona binários ou produz um inventário de caminhos.

Trate cada modo fornecido como uma descrição de bits, não como um veredicto sobre um arquivo. Insira-o, compare o campo octal com a exibição simbólica e a matriz da caixa de seleção e registre o que mudou. Propriedade, entradas ACL, recursos e a identidade de qualquer processo que usa o caminho permanecem fatos a serem coletados do ambiente real.

Gravável mundialmente significa que a outra classe tem w - o padrão octal 0002 e por que -perm -0002 o encontra independentemente de outros bits

O valor 0002 isola o outro bit de gravação. No layout comum de três classes, o dígito final pertence a todos fora das classes proprietárias e de grupo, e seu componente de gravação tem peso 2. Um modo completo contendo esse bit mostrará w na outra classe, embora a calculadora não localize tais modos.

Se uma expressão find específica significa correspondência exata, de todos os bits ou de qualquer bit, pertence à documentação do find, não a este conversor. Forneça um modo resultante. Por exemplo, 0666 torna-se rw-rw-rw-, enquanto 0644 torna-se rw-r--r--; a diferença é visível no grupo e em outras posições de gravação, sem implicar que qualquer um dos modos se adapte a um caminho específico.

0002 expõe o outro bit de gravação; descobrir que a semântica correspondente é externa

O dígito inicial do bit especial usa 4 para setuid e 2 para setgid. Assim, 4755 combina setuid com permissões 755 comuns, enquanto 2755 combina setgid com os mesmos bits finais. A calculadora expõe essas máscaras separadamente e coloca suas letras simbólicas na posição de execução do proprietário ou grupo ao renderizar o modo completo.

O caso traz evidências úteis. Se setuid acompanha a execução do proprietário, a posição de execução do proprietário exibe s; sem executar ele exibe S. Setgid segue a mesma regra na posição de grupo. Essas saídas decodificam um inteiro fornecido, mas não inspecionam um programa, determinam seu proprietário, não o executam ou decidem se um bit especial é justificado.

4000 e 2000 decodificam como setuid e setgid sem auditar binários

A sintaxe de pesquisa de permissão deve ser mantida separada da aritmética de permissão. A calculadora aceita um modo simbólico octal ou de nove caracteres e retorna um valor de doze bits. Ele não tem representação para um operador de pesquisa, predicado de caminho ou regra de correspondência, portanto, uma consulta de modo exato e uma consulta de todos os bits necessários não podem ser distinguidas dentro desta interface.

Decodifique o modo de cada resultado de pesquisa externo em vez de colar a expressão de pesquisa. Os três dígitos comuns são mapeados para proprietário, grupo e outros, enquanto um dígito inicial opcional é mapeado para setuid, setgid e sticky. Este fluxo de trabalho verifica os bits relatados, mas deixa a cobertura da pesquisa e a semântica correspondente para a ferramenta que produziu a lista.

Os modos de localização exato, de todos os bits e de qualquer bit precisam de documentação de localização

Suponha que uma auditoria realizada em outro lugar relate 0666 e 4755. Inserir 0666 produz rw-rw-rw-, tornando other-write visível no último triplo. Inserir 4755 produz rwsr-xr-x: o proprietário leu, gravou e executou, e setuid substitui o caractere de execução do proprietário por s minúsculos porque esse bit de execução está presente.

Uma segunda ocorrência como 4644 demonstra por que a forma simbólica é importante. Ele renderiza rwSr--r--, com S maiúsculo mostrando setuid enquanto a execução do proprietário está ausente. A calculadora pode tornar essa inconsistência evidente. Ainda não é possível identificar o caminho, estabelecer quem é o proprietário, inspecionar seu conteúdo ou recomendar a remoção do bit.

Exemplo resolvido: decodificar ocorrências de auditoria fornecidas sem digitalizar caminhos

Não repare automaticamente todos os modos incomuns. Um modo é apenas uma entrada para uma decisão que também depende do alvo, do proprietário, do grupo e da operação necessária. A página deliberadamente não recebe nada desse contexto. A visualização do comando é um texto inerte e mesmo um caminho citado corretamente não é aberto ou verificado pelo navegador.

Antes de alterar um modo relatado, compare os valores atuais e propostos, um bit de cada vez. Remover outra gravação de 0666 produz 0664; remover setuid de 4755 produz 0755. Esses fatos aritméticos são reproduzíveis, mas se alguma das alterações preserva a carga de trabalho requer evidências locais além da calculadora e além do passo a passo de bits comuns do artigo 501.

Exceções e remediações exigem propriedade local e evidências de carga de trabalho

Várias dimensões de auditoria relevantes estão ausentes. A rota não consulta entradas ACL, recursos de arquivo, propriedade, componentes de caminho graváveis, comportamento de montagem ou política obrigatória. Ele também não executa localizar, inspecionar um PATH ou percorrer o armazenamento. Uma conversão limpa, portanto, diz apenas que o número fornecido e as letras exibidas estão de acordo.

Mantenha esses limites visíveis em qualquer relatório. Registre o caminho e o método de coleta ao lado do modo decodificado e, em seguida, investigue identidades e mecanismos de acesso adicionais com ferramentas externas apropriadas. A calculadora é valiosa como verificação de notação porque recusa dígitos octais inválidos e expõe bits especiais; não é um scanner de sistema de arquivos ou mecanismo de remediação.

Conclusão: conheça seus arquivos graváveis ​​e privilegiados — e use a calculadora Chmod para traduzir cada modo suspeito antes de alterá-lo

Uma auditoria de permissão útil separa a descoberta da interpretação. Deixe um processo externo documentado reunir caminhos candidatos e, em seguida, use a calculadora para traduzir cada modo retornado em permissões de classe explícitas. Verifique o dígito do bit especial opcional com tanto cuidado quanto os três finais, pois 0755, 2755 e 4755 compartilham permissões comuns, mas descrevem diferentes valores de doze bits.

Termine com uma conclusão restrita: quais bits de proprietário, grupo, outros e especiais o modo fornecido contém. Não transforme essa aritmética numa afirmação sem fundamento sobre exposição ou política exigida. A calculadora ajuda os revisores a ler os modos suspeitos com precisão; o sistema ativo deve fornecer evidências de propriedade, carga de trabalho e aplicação antes que alguém os altere.