【WEB安全】In0ri:基于深度学习的网站内容污染检测系统

1,195 阅读2分钟

关于In0ri

In0ri是一个内容污染检测系统,该工具主要利用一个图像分类卷积神经网络实现其功能。

在监控网站时,In0ri会定期抓取网站的屏幕截图,然后将其放入预处理器,预处理器将图像大小调整为250x250px,并在将图像传递到分类器之前对图像进行数字化处理。分类器的核心是一个卷积神经网络,经过训练可以检测网站内容是否正常。如果被监控的网站确实被破坏,In0ri将通过电子邮件向用户发出警告。

【学习资料】

工具要求

Python3 (版本 >=3.6)

Docker

Docker-compose

工具安装

广大研究人员可以使用下列命令将该项目源码克隆至本地:

git clone https://github.com/J4FSec/In0ri.git

cd In0ri

接下来,我们需要配置电子邮件凭证和代理密钥,以实现In0ri通过电子邮件向用户发出警告。编辑Alert/sendEmail.py文件:

EMAIL_SERVER = "mail.example.com"

EMAIL_ADDRESS = "foo@gmail.com"

EMAIL_PASSWORD = "$uper$ecurePa$$word"

配置Telegram通知

编辑Alert/chatbot.py文件:

CHAT_ID= 'foo' # Channel ID to send notifications to

TOKEN = 'bar' # Bot token retrieved from @BotFather

现在,我们就可以启动In0ri了:

docker-compose up -d

工具使用

我们有两种方式部署和使用In0ri:

通过定期访问url来运行crontab;

在Web服务器上运行内部代理;

第一种方法:URL检测

通过访问https://:8080/进入到In0ri的WebUI,然后点击“注册”,填写并提交表单。

第二种方法:内部代理

通过访问https://:8080/进入到In0ri的WebUI,然后点击“注册”,填写并提交表单。

点击“创建代理”,然后填写表单,确认邮件的代理密钥是否正确。

在待监控的Web服务器上,从本项目的【GitHub库】下载“Agent”文件夹。

安装内部代理运行所需的依赖包:

python3 -m pip install watchdog

python3 -m pip install requests

编辑config.json文件:

nano config.json

按照下列格式填写相关参数:

{

    "id":"01",

    "key":"123123123",

    "rootPath":"/var/www/html",

    "excludePath":"",

    "apiServer":"http://<serverIP>:8088/checkdeface"

}

然后,使用下列命令运行代理即可:

python3 agent.py

许可证协议

本项目的发开与发布遵循GNU AGPLv3开源许可证协议。