我现在生活中没有太多时间来维护这个项目。我接受这个挑战是为了学习JavaScript,并改进我已经掌握的Python技能。我确信在实现过程中有很多可以做得更好的地方,如果有人下载并查看我的代码后提出建设性的批评,我不会介意。我知道在开发过程中学到了很多,希望开源社区能继续教我更多东西 :)
注意:由于我不维护这个项目,有些功能可能开箱即用就不太正常,例如,地图可能不会显示,因为我没有为合法的MapBox API密钥付费。要解决这个问题,你可能需要自己创建一个MapBox账户并使用你自己的密钥。
这个GeoIP攻击地图可视化工具旨在实时显示针对你组织的网络攻击。数据服务器监听系统日志文件,并解析出源IP、目标IP、源端口和目标端口。协议通过常见端口确定,可视化结果根据协议类型以不同颜色显示。点击这里观看演示视频。如果没有Sam Cappella,这个项目就不可能实现,他为2015年Palmetto网络安全防御竞赛创建了一个网络流量可视化工具。我主要参考了他的代码,但在创建显示服务器和webapp的可视化方面时,我确实借用了一些函数。我还要特别感谢Dylan Madisetti,他在我实现的某些方面提供了建议。
这个程序完全依赖于系统日志,由于所有设备记录日志的格式不同,你需要自定义日志解析函数。如果你的组织使用安全信息和事件管理系统(SIEM),它可能可以规范化日志,从而为你节省大量编写正则表达式的时间。
如果你发现任何错误或缺陷,请告诉我。也欢迎提出问题和反馈,可以发送到[email protected],或者在此仓库中创建一个issue。
已在Ubuntu 16.04 LTS上测试通过。
克隆应用程序:
git clone https://github.com/matthewclarkmay/geoip-attack-map.git
安装系统依赖:
sudo apt install python3-pip redis-server
安装Python依赖:
cd geoip-attack-map
sudo pip3 install -U -r requirements.txt
启动Redis服务器:
redis-server
配置数据服务器数据库:
cd DataServerDB
./db-dl.sh
cd ..
启动数据服务器:
cd DataServer
sudo python3 DataServer.py
启动系统日志生成脚本,在DataServer目录内:
打开一个新的终端标签页(在Ubuntu上是Ctrl+Shift+T)。
./syslog-gen.py
./syslog-gen.sh
配置攻击地图服务器,将旗帜文件解压到正确位置:
打开一个新的终端标签页(在Ubuntu上是Ctrl+Shift+T)。
cd AttackMapServer/
unzip static/flags.zip
启动攻击地图服务器:
sudo python3 AttackMapServer.py
从浏览器访问攻击地图服务器:
要通过另一台计算机的浏览器访问,请使用运行AttackMapServer的机器的外部IP。
在“AttackMapServer”目录下的“/static/map.js”文件中编辑IP地址。从:
var webSock = new WebSocket("ws:/127.0.0.1:8888/websocket");
改为,例如:
var webSock = new WebSocket("ws:/192.168.1.100:8888/websocket");
重启攻击地图服务器:
sudo python3 AttackMapServer.py
在另一台计算机上,将浏览器指向:
http://192.168.1.100:8888/