如何监控正在运行的脚本的完整性?

如何监控正在运行的脚本的完整性?

我想确保正在运行的 python 脚本不会被其他进程(或宇宙射线,或意外的开发人员更新)意外修改。我听说过将脚本的校验和(例如md5sum)与写保护文件中存储的已知值进行比较,但不确定如何获取正在使用的文件的校验和。 正在执行的脚本的内存是我的实际源文件吗? 或者正在其他地方执行什么?

这是我到目前为止所尝试过的,但不知道我的结果是否有效。

1. 创建包含校验和的写保护文件

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.添加cronjob来定期(例如每小时)检查脚本的完整性

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

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

相关内容