duetector
Project description
duetector🔍: 支持eBPF的可扩展数据使用探测器
简介
duetector是DataUCON项目中的组件之一,DataUCON项目旨在为数据使用控制提供支持。
duetector🔍是一个基于可扩展的的数据使用探测器,它可以在Linux内核中对数据使用行为进行探测(基于eBPF),从而为数据使用控制提供支持。
🐛🐞🧪 项目正在大力开发中,期待任何Bug报告、功能请求、合并请求
在ABAUC控制模型当中,duetector可作为PIP(Policy Information Point)来获取数据使用行为,从而为PDP(Policy Decision Point)提供数据使用行为的信息。快速了解用户案例
目录
主要特性
- 插件化系统
- 支持自定义tracer
- 支持自定义filter
- 支持自定义collector
- 自定义插件示例
- 配置管理
- 使用单一配置文件配置
- 支持生成插件配置
- 支持动态加载配置
- 基于eBPF的数据使用探测器
- 文件打开操作
- ……
- 基于Shell命令的探测器
- 内核信息探测
- ……
- 支持SQL数据库的数据收集器
- CLI工具
- PIP服务
eBPF程序需要内核支持,详见内核支持
安装
代码通过Pypi分发,你可以通过以下命令安装
pip install duetector
目前,代码依赖BCC对eBPF代码进行即时编译,推荐安装最新的BCC编译器
或使用我们提供的Docker镜像,其使用JupyterLab作为示例用户应用,您也可以自行修改Dockerfile和启动脚本来自定义用户程序
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={})}}}
启动 DEBUG
日志
sudo DUETECTOR_LOG_LEVEL=DEBUG duectl start
启动时,配置文件将自动生成,对应路径为 ~/.config/duetector
,修改这个配置文件可以修改数据库地址等内容,可以使用 --config
指定使用的配置文件
sudo duectl start --config <config-file-path>
也支持使用环境变量进行配置:
Usage: duectl start [OPTIONS]
Start A bcc monitor and wait for KeyboardInterrupt
Options:
...
--load_env BOOLEAN Weather load env variables,Prefix: DUETECTOR_,
Separator:__, e.g. DUETECTOR_config__a means
config.a, default: True
...
当使用插件时,默认的配置文件不会包含插件的配置内容,使用动态生成配置的指令生成带有插件配置的配置文件,这个指令也支持合并当前已有的配置文件和环境变量
duectl generate-dynamic-config --help
当配置文件出错时,可以使用 generate-config
恢复默认状态
duectl generate-config
更进一步的,后台运行可以使用 duectl-daemon start
命令,这将会在后台运行一个守护进程,你可以使用 duectl-daemon stop
来停止它
使用 duectl-daemon --help
获取更多细节:
Usage: duectl-daemon [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
start Start a background process of command `duectl start`.
status Show status of process.
stop Stop the process.
更多文档和例子可以在这里找到。
API文档与配置文档
WIP 这一部分内容是PIP相关的,目前还没有完成,完成后将包括可配置的类的内容,以及如何使用duetector作为PIP的内容。
维护者
本项目由哈尔滨工业大学(深圳)数据安全研究院发起,若您对本项目以及DataUCON项目感兴趣并愿意一起完善它,欢迎加入我们的开源社区。
如何贡献
非常欢迎您的加入!我们欢迎任何类型的Issue,同时也期待您的PR
我们提供了以下资料让您更快了解项目
如何开发插件
目前,tracer、filter、collector都支持自定义插件开发,以Python包作为单个插件或多个插件,可以查看自定义插件示例了解开发步骤
TODO: 提供一个插件的cookiecutter模板
许可证
本项目使用 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.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f603ddc3259d7b168bd5d94340ca3cf9ff92617bf01d210a2904c8f536de698f |
|
MD5 | f3bc99fdd90bb878e30b68baf02d8669 |
|
BLAKE2b-256 | c90f601b161089d2264245aebd85f539e9fc51425198ec139dcc37f70dfcc623 |