关于Batfish
Batfish是一款功能强大的网络配置安全分析工具和网络验证工具,该工具能够帮助广大研究人员寻找目标网络系统中的配置问题,并能够根据设备配置构建基于网络行为的完整模型,以及自动识别违反网络策略、用户定义和最佳实践的恶意行为。
Batfish可以在我们部署网络配置之前对配置的安全性和完整性进行验证,而部署前的验证是现代网络自动化工作流中的关键因素。通过将Batfish接入自动化工作流后,网络工程师就能够更好地确保配置和部署的正确性。
Batfish不需要直接访问目标网络设备,工具只需要网络设备的配置信息即可完成核心分析。除此之外,我们还可以使用目标网络的其他信息来辅助分析。
支持的网络设备和操作系统列表
Batfish支持扫描和分析大型网络和设备(物理或虚拟),其中包括:
A10 网络
Arista
AWS (VPCs, Network ACLs, VPN GW, NAT GW, Internet GW, Security Groups…)
Cisco (Cisco NX-OS, IOS, IOS-XE, IOS-XR, ASA)
Check Point
Fortinet
Free-Range Routing (FRR)
Juniper (所有的JunOS 平台: MX, EX, QFX, SRX, T-series, PTX)
Palo Alto网络
SONiC
Batfish支持下列平台:
Aruba
Dell Force10
Foundry
Batfish的系统要求
Batfish可以在任何支持Docker的操作系统上运行,当前版本的Batfish容器已经在macOS和Ubuntu 16.04 LTS上进行过测试。
设备最低要求:
双核CPU
8 GB RAM
256 GB硬盘
服务器最低要求:
四核双线程CPU
32 GB RAM
256 GB硬盘
工具下载
Batfish的下载非常简单,我们只需要通过Docker容器直接拉取最新版本的Batfish镜像即可:
docker pull batfish/allinone docker run --name batfish -v batfish-data:/data -p 8888:8888 -p 9997:9997 -p 9996:9996 batfish/allinone
接下来,在分析网络配置之前,我们还需要安装Pybatfish,即一个用于跟Batfish服务交互的Python 3 SDK。我们建议大家在一个虚拟环境中安装Pybatfish。
然后,我们可以使用下列命令来安装Pybatfish:
python3 -m pip install --upgrade pybatfish
工具使用演示
视频地址:https://www.you*tube.com/channel/UCA-OUW_3IOt9U_s60KvmJYA/videos
许可证协议
本项目的开发与发布遵循Apache-2.0开源许可证协议。
项目地址
Batfish:【GitHub传送门】
参考资料
https://github.com/batfish/pybatfish/tree/master/jupyter_notebooks
https://www.github.com/batfish/pybatfish
https://docs.python.org/3/library/venv.html
https://github.com/batfish/batfish/wiki/Packaging-snapshots-for-analysis#format-for-host-json-files