#file #integrity #hash #verification #detection #notifications #logs

nightly app snitch

入侵检测和文件完整性验证

2个版本

0.1.3 2022年6月17日
0.1.2 2022年6月17日
0.1.1 2022年6月10日

#1469 in 文件系统

MIT 许可证

26KB
620

Snitch - 入侵通知

Rust

Snitch是一个文件完整性和认证监控系统。

  • Snitch通过递归用户定义的目录树来计算和存储文件的哈希值。如果文件哈希值发生变化,Snitch将向用户(通过电子邮件或Telegram)发送警告,通知已修改的文件。

  • Snitch还监视认证日志,并在用户登录时发送通知。

要求

这是一个正在进行中的工作,需要rust nightly功能

rustup default nightly

在纯Ubuntu/Debian上,您还需要

apt install gcc build-essential pkg-config libssl-dev

安装

cargo install snitch

请注意,访问root级别的文件夹和监视认证日志通常需要以root身份安装。

用法

运行初始扫描

snitch --init

并使用以下命令触发扫描以验证文件完整性:

snitch --scan

要开始监视认证日志,请使用以下命令:

snitch --watch

配置

Snitch可以在etc/snitch/config.yaml中进行配置。如果该文件不存在,您可以运行

snitch --demo-config > /etc/snitch/config.yaml

来创建一个模板,该模板在UbuntuDebian上应该很好。

该文件中所有在directories下的文件都将进行完整性检查。

通知渠道

Telegram

需要环境变量:TELEGRAM_BOT_TOKENTELEGRAM_CHAT_ID

Slack

需要环境变量:SLACK_WEBHOOK_URLSLACK_CHANNEL

电子邮件

需要环境变量:SMTP_SERVERSMTP_USERSMTP_PASSWORD。请注意,一旦有人获得访问权限,在您的系统上以明文形式存储电子邮件凭证风险相当高。因此,现在最好仅用于开发。

性能

Ubuntu20.04 (~150,000个文件) 使用SHA265哈希算法在一个虚拟CPU上计算哈希值大约需要一分钟。

依赖关系

~30-65MB
~1M SLoC