duetector
Project description
duetector🔍: 基于eBPF的数据使用探测器
简介
duetector是DataUCON项目中的组件之一,DataUCON项目旨在为数据使用控制提供支持。
duetector🔍是一个基于eBPF的数据使用探测器,它可以在Linux内核中对数据使用行为进行探测,从而为数据使用控制提供支持。
🐛🐞🧪 项目正在大力开发中,期待任何Bug报告、功能请求、合并请求
在ABAUC控制模型当中,duetector可作为PIP(Policy Information Point)来获取数据使用行为,从而为PDP(Policy Decision Point)提供数据使用行为的信息。
目录
主要特性
- 插件化系统
- 支持自定义tracer
- 支持自定义filter
- 支持自定义collector
- 自定义插件示例
- 配置管理
- 使用单一配置文件配置
- 支持生成插件配置
- 支持动态加载配置
- 基于eBPF的数据使用探测器
- 文件打开操作
- ……
- 支持SQL数据库的数据收集器
- CLI工具
- PIP服务
eBPF探测器需要内核支持,详见内核支持
安装
代码通过Pypi分发,你可以通过以下命令安装
pip install duetector
目前,代码依赖BCC对eBPF代码进行即时编译,推荐安装最新的BCC编译器
或使用我们提供的Docker镜像
docker pull dataucon/duetector:latest
预发布版本将不会更新到 latest
上,您可以指定tag进行拉取,如 v0.0.1a
docker pull dataucon/duetector:v0.0.1a
使用docker镜像运行的更多细节请参考这里
快速开始
使用命令行启动monitor,由于bcc需要root权限,所以我们使用 sudo
命令,这将启动所有的探测器,并将探测内容收集到当前目录下的 duetector-dbcollector.sqlite3
文件中
sudo duectl start
按下 CRTL+C
可以退出监测,你将看到屏幕上输出了一段总结
{'DBCollector': {'OpenTracer': {'count': 31, 'first at': 249920233249912, 'last': Tracking(tracer='OpenTracer', pid=641616, uid=1000, gid=1000, comm='node', cwd=None, fname='SOME-FILE', timestamp=249923762308577, extended={})}}}
启动时,配置文件将自动生成,对应路径为 ~/.config/duetector
,可以使用 --config
指定使用的配置文件
sudo duectl start --config <config-file-path>
当使用插件时,默认的配置文件不会包含插件的配置内容,使用动态生成配置的指令生成带有插件配置的配置文件,这个指令也支持合并当前已有的配置文件和环境变量
duectl generate-dynamic-config --help
当配置文件出错时,可以使用 generate-config
恢复默认状态
duectl generate-config
更多文档和例子可以在这里找到。
API文档与配置文档
WIP 这一部分内容是PIP相关的,目前还没有完成,完成后将包括可配置的类的内容,以及如何使用duetector作为PIP的内容。
维护者
本项目由哈尔滨工业大学(深圳)数据安全研究院发起,若您对本项目以及DataUCON项目感兴趣并愿意一起完善它,欢迎加入我们的开源社区。
如何贡献
非常欢迎你的加入!提一个 Issue 或者提交一个 Pull Request。
开发环境配置和其他注意事项请参考开发者文档。
在这里了解本项目的设计思路和架构:设计文档
许可证
本项目使用 Apache-2.0 license,有关协议请参考LICENSE。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for duetector-0.0.1b0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f8d3041ff37b66d3f2e0b6dfc9cad560128df2b9689428aa3d39937eafc4f9f2 |
|
MD5 | ca8b5b8a7c6124b4a5b9a65eec12367a |
|
BLAKE2b-256 | da6de574c75119e72faac2e1d86fafb7cc7fef57282fc1a479dafe71c7a652e1 |