缺少连接开源威胁情报工具的链接。

threatbus的Python项目详细描述


用于互连开源安全应用程序的缺失工具。在

PyPI StatusBuild StatusTotal alertsLanguage grade: PythonDevelopment StatusLatest ReleaseChatLicense

Getting Started- Contributing Guidelines- Writing Plugins- License- Documentation

Matrix上与我们聊天。在

主要特点

  • Connect开源安全工具:Threat Bus是的发布订阅代理 威胁情报数据。使用Threat Bus可以无缝集成 ^使用Zeekintel框架或报表的{a15}智能 从IDS部署到一些数据库的观察。在

  • Plugin-based Architecture:项目基于插件,可以扩展 很容易。我们欢迎大家为采用新的开源工具而贡献自己的力量!到目前为止,在那里 存在VASTMISPZeekCIFv3的插件。在

  • Snapshotting:快照功能允许订阅服务器直接请求 一定时间内来自其他应用程序的威胁情报数据。 威胁总线处理所有相关应用的点对点通信。在

入门

config.yaml.example文件为威胁总线提供了一个工作配置 与RabbitMQ一起启用所有现有的应用程序插件 骨干。在

下面的示例演示如何通过连接MISPZeek 威胁巴士。有更多的集成可用,所以一定要检查所有的 Threat Bus projects on PyPI。在

启动威胁总线

mv config.yaml.example config.yaml   # rename example config file
venv/bin/threatbus -c config.yaml

Start Zeek作为威胁总线应用程序

^{pr2}$

启动Zeek并请求快照

zeek -i <INTERFACE> -C ./apps/zeek/threatbus.zeek -- "Tenzir::snapshot_intel=30 days"

Threat Bus也作为预构建的Docker映像提供,可在 Docker Hub。在

使用威胁总线Docker容器

docker run tenzir/threatbus:latest --help

Start Threat Bus container with a custom config file

docker run -p 47661:47661 -v $PWD/my-custom-config.yaml:/opt/tenzir/threatbus/my-custom-config.yaml tenzir/threatbus:latest -c my-custom-config.yaml

安装

安装threatbus和您需要的所有插件。或者,使用虚拟 环境。在

virtualenv venv           # optional
source venv/bin/activate  # optional
pip install threatbus
pip install threatbus-inmem
pip install threatbus-misp
pip install threatbus-zeek
pip install threatbus-rabbitmq
pip install threatbus-<plugin_name>

测试

使用Makefile来运行单元测试和集成测试。在

make unit-tests
make integration-tests

集成测试需要本地Zeek安装。在

插件开发

设置一个虚拟环境并安装threatbus和一些带有 在开发模式下:

virtualenv venv
source venv/bin/activate
make dev-mode

配置和扩展

插件必须定义setup.py。无论何时安装插件,都必须 向threatbus'config.yaml添加相应的配置节。那个 节必须以的入口点声明中的name命名 插件的setup.py文件。在

请遵守plugin naming conventions 并始终在插件名称前面加上threatbus-。在

插件可以是appsbackbones。应用程序插件(应用程序)添加新的 用于threatbus并允许与 支持威胁情报的应用程序(如Zeek或Suricata)。主干插件添加 新的存储和分发后端到threatbus(例如,内存或Kafka)。在

示例:

  • 插件文件夹结构:
    plugins
    ├── apps
    |   └── threatbus-zeek
    │       ├── setup.py
    |       └── threatbus_zeek.py
    └── backbones
        └── threatbus-inmem
            ├── setup.py
            └── threatbus_inmem.py
    
  • setup.py
    fromsetuptoolsimportsetupsetup(name="threatbus-myapp",install_requires="threatbus",entry_points={"threatbus.app":["myapp = threatbus_myapp"]},py_modules=["threatbus_myapp"],)
  • config.yaml的条目threatbus
    ...plugins:apps:myapp:...

威胁总线API

插件规范可在threatbus/appspecs.pythreatbus/backbonespecs.py。对于任何插件,你至少应该 实现run函数。在

应用程序插件提供了两个回调函数用于订阅 管理层。在内部,威胁总线将向所有 已安装主干插件。在

订阅回调允许应用程序请求可选快照 时间差。威胁总线会将快照请求转发给所有那些 已经实现了快照功能(请参见threatbus/appspecs.py)。在

许可证

威胁总线带有一个3-clause BSD license。在

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
Java中的第10个解决方案   Java中泛型的super和extends组合   Java Android OpenGL ES 2.0片段着色器texture2D不工作   在JList elementJava上按下时打开弹出窗口   字典Java数据结构允许对象上的布尔标志和排序?   java我该如何停止为AWS关系数据库服务收费?   java如何检查Google定位准确度是否提高?   java使用Mockito将方法存根在与被测类相同的类中(CUT)   java IntelliJIdea disable inspection:参数的实际值始终为   java CXF+多态POST数据   java命名空间“ads”未绑定   Sun(1999)的“Java编程语言的代码约定”的编码风格过时了吗?   JAVA中的隐式接口、类转换   javafx如何配置Java登录应用程序代码   java如何在滚动窗格中设置选项卡以及如何显示选项卡标题   java中等式和条件运算符的优先级   java Spring WS无法返回JAXB响应   错误响应上的java jaxws处理程序行为   java Hibernate HQL映射查询