Como monitorar a integridade de um script em execução?

1

Eu quero ter certeza de que um script python em execução não foi modificado acidentalmente por algum outro processo (ou raio cósmico ou atualização de desenvolvedor inesperada). Já ouvi falar de uma soma de verificação do script (por exemplo, com md5sum ) em relação a um valor conhecido armazenado em um arquivo protegido contra gravação, mas não tenho certeza de como obter a soma de verificação de um arquivo em uso. A memória do script que está sendo executado é o meu arquivo de origem? Ou o que está sendo executado em algum outro lugar?

Aqui está o que eu tentei até agora, mas não sei se meu resultado é válido.

1. Crie um arquivo protegido contra gravação contendo a soma de verificação

cd ~/Developer/MyProj
# Compute the md5 hash and store it in a new file
md5sum /home/username/Developer/MyProj/myscript.py > checksum
# Remove the write permissions for all (user, group, and other)
chmod a-w checksum
# Inspect the permissions to validate
ls -al checksum

2. Adicione o cronjob periodicamente (por exemplo, por hora) para verificar a integridade do script

sudo crontab -e
0     *     *     *     * /bin/sh /home/username/Developer/MyProj/healthcheck.sh

Em healthcheck.sh :

#!/bin/bash

s1=$(md5sum /home/username/Developer/MyProj/myscript.py)
s2=$(cat /home/username/Developer/MyProj/checksum)

if [ "$s1"="$s2" ]
then
  echo "Script is what we think it is"
else
  echo "Script was modified!"
fi
    
por tarabyte 06.12.2014 / 21:40

0 respostas