Checksecurity é uma coleção de ferramentas (em formato de shell scripts) simples de segurança, para verificar o sistema em execução.
Descrição
O comando checksecurity executa uma pequena coleção de simples scripts de segurança, que verificam as falhas mais comuns em sistemas Unix-like. Checksecurity, pode ser executado em background, todos os dias pelo Cron (agendador de tarefas) e realizar automaticamente a verificação da segurança sistema.
Sintaxe:
# checksecurity
Configuração
No arquivo
checksecurity.conf temos as variáveis de configuração do checksecurity, que são:
- MAILTO= Setar ou apontar em qual email deve ser enviado o resultado do relatório da verificação do sistema;
- CHECK_DISKFREE= Verificar a porcentagem (%) limite de cada partição. Isso é, quando estiver próximo de "lotar" a partição ou próximo de sobrecarregar, gera avisos antes avisando o ocorrido. Ex: Se você achar que quando a partição ou partições estiver(em) próximo(s) da capacidade de 70%, será emitido avisos alertando o ocorrido;
- CHECK_PASSWD= Verificar as segurança das senhas;
- CHECK_SETUID= Verificar as diferenças entre um ou mais binários com setuid, quando são iniciados;
- LOGDIR= Diretório onde será gerado o log do checksecurity.
Checksecurity é um programa que executa uma coleção de plugins e que estão localizados no diretório
/usr/share/checksecurity e podem ser configurados individualmente. Se você abrir cada um destes plugins, verá que na verdade são apenas scripts shells e que também (se você conhecer da linguagem Shell Script, lembre-se de ver o site do Aurélio e também a seção scripts do Viva o
Linux) pode gerar mais e novos plugins, com scripts novos, gerando novas funções.
CHECK_PASSWD: Se esta variável for setada com TRUE, então o script shell
check-passwd será executado. Este script foi desenvolvido para reportar contas do sistema que não possuem senhas ou senhas em branco.
CHECK_DISKFREE: Se esta variável for setada com TRUE, então o script shell
check-diskfree será executado. Ele emitirá alertas quando uma ou mais partições montadas estiverem com pouco espaço livre.
CHECK_SETUID: Se esta variável for setada com TRUE, então o script shell
check-setuid será executado, ele irá comparar os binários com setuid iniciados no sistema com os em disco e se existirem diferenças entre eles, exibe-as.
Arquivos de configuração:
- /etc/checksecurity.conf - Arquivo de configuração do checksecurity;
- /etc/check-diskfree.conf - Arquivo de configuração dos plugins do check-diskfree;
- /etc/check-passwd.conf - Arquivo de configuração dos plugins do check-passwd;
- /etc/check-setuid.conf - Arquivo de configuração dos plugins do check-setuid.
Arquivos de plugins:
- /usr/share/checksecurity/check-diskfree - Arquivo de script shell que verifica o limites de espaço das partições, gerando avisos;
- /usr/share/checksecurity/check-passwd - Arquivo de script shell que verifica as senhas e o quanto são seguranças ou inseguras;
- /usr/share/checksecurity/check-setuid - Arquivo de script shell que verifica os Setuid;
- /usr/share/checksecurity/check-sockets - Arquivo de script shell que verifica os sockets (portas de conexão), quais estão abertas.
Exemplo de configuração do
/etc/checksecurity.conf:
# MAILTO enviar email no caso para usuário ROOT, como os relatórios e alertas.
#
MAILTO=root
# Se o CHECKSECURITY_EMAIL estiver setado, o relatório será enviado para o email apontado.
# Note que quando configurado, está sendo assumido que você tem seu email /usr/bin/mail e que aceita a opção -s;
# o pacote mailx é ótimo para isso; ou que você tem instalado o mutt e cria um link para ele, ou outra opção que for alternativa
# a isso. Qualquer outra configuração de sua responsabilidade.
#
#CHECKSECURITY_EMAIL="root"
#
# Este é o caminho de onde os scripts shells, serão executados inicialmente.
#
PATH=/usr/sbin:/usr/bin:/sbin:/bin
# Verificar setuid dos binários do sistema diariamente.
CHECK_DAILY="DISKFREE PASSWD SOCKETS"
# Verificar setuid dos binários do sistema semanalmente.
CHECK_WEEKLY="SETUID"
#
# Verificar as partições montadas, se estão com pouco espaço livre, em referência a porcentagem no arquivo check-diskfree.conf. Caso verdadeiro, emite alertas e logs avisando.
#
CHECK_DISKFREE="TRUE"
# Configurar a verificação aqui /etc/checksecurity/check-diskfree.conf
#
# Verificar as senhas
#
CHECK_PASSWD="TRUE"
# Configurar a verificação aqui /etc/checksecurity/check-passwd.conf
#
# Verificar arquivos setuid
#
CHECK_SETUID="TRUE"
# Configurar a verificação aqui /etc/checksecurity/check-setuid.conf
#
# Verifica se há sockets abertos
#
CHECK_SOCKETS="TRUE"
# Configurar a verificação aqui /etc/checksecurity/check-sockets.conf
Visualizando os logs de SETUID do hoje (today):
e seu conteúdo:
Visualizando os logs de SETUID do ontem (yesterday):
e seu conteúdo (como é a primeira vez que estamos executando a ferramenta, não há logs anteriores. No dia seguinte provavelmente haverá o log do dia anterior):
e por último as mudanças (changes):
Espero ter te ajudado.
Mauro Risonho de Paula Assumpção
Pentest / Analista de Segurança