Diretrizes para priorização da auditoria de pacotes

Ao executar uma auditoria na distribuição Debian, uma das primeiras questões é decidir quais pacotes examinar.

Idealmente todos os pacotes deveriam ser examinados, mas devido ao tamanho do repositório deve haver uma maneira simples de priorizar o trabalho.

De acordo com um simples conjunto de diretrizes, os pacotes que devem ser examinados prioritariamente são:

  1. Qualquer binário que é instalado com setuid ou setgid
  2. Qualquer coisa que provê um serviço pela rede.
  3. Qualquer script CGI/PHP acessível remotamente.
  4. Qualquer coisa que contenha um cronjob ou outro script automatizado que seja executado com privilégio de root.

Pacotes populares devem geralmente receber maior prioridade já que qualquer problema neles afetará um número maior de usuários(as).

O concurso de popularidade do Debian mantém uma pesquisa contínua para mostrar quais são os pacotes mais populares entre os voluntários(as) do concurso.

Veja particularmente os pacotes ordenados por voto. Essa lista por voto classifica os pacotes por quão frequentemente eles são usados pelas pessoas que participam da pesquisa.

Se um pacote é importante para segurança, especialmente se é enquadrado em um dos critérios acima, e é popular (de acordo com a pesquisa de popularidade), então ele é definitivamente um candidato para auditoria.

Binários com setuid e setgid

Binários com setuid e setgid são tradicionalmente alvos de auditoria de segurança, pois o comprometimento de binários vulneráveis com quaisquer dessas permissões pode permitir que um(a) usuário(a) local obtenha privilégios que ele(a) não deveria ter.

Para ajudar nessa busca, há uma lista com todos os binários com setuid e setgid os quais estão presentes na versão estável atual.

Quando se trata de escolher os binários, é importante atentar-se ao fato de que alguns deles são mais sensíveis na segurança do que outros. Os binários com setuid(root) devem ser examinados antes de setgid(games) e setuid(bugs) por exemplo.

Servidores de rede

Servidores de rede são outra fonte óbvia de inspiração quando se trata de realizar uma auditoria de segurança já que uma vulnerabilidade explorável neles pode permitir que atacantes comprometam máquinas remotamente.

Comprometimentos remotos são geralmente mais severos que comprometimentos locais.

Scripts on-line

Scripts on-line, especialmente scripts CGI, estão realmente na mesma classe que servidores de rede — embora seu servidor de páginas em si seja seguro, a segurança dos scripts que rodam nele são igualmente importantes.

Um bug em um script disponível através da rede é tão sério quanto um bug em um servidor aguardando conexões — ambos podem permitir que a máquina seja comprometida da mesma forma.

Cronjobs e serviços do sistema

Embora não haja muitos destes, vale a pena olhar os scripts automáticos, cronjobs, etc, que são incluídos em pacotes.

Vários coisas de suporte rodam como root por padrão para limpar arquivos de log, etc.

A exploração bem sucedida de um ataque a link simbólico pode resultar em um comprometimento local.