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镜像,其使用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>
当使用插件时,默认的配置文件不会包含插件的配置内容,使用动态生成配置的指令生成带有插件配置的配置文件,这个指令也支持合并当前已有的配置文件和环境变量
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 daemon of command `duectl start`, All arguments after...
status Status of daemon Determined by the existence of pid file in...
stop Stop daemon Determined by the existence of pid file in `workdir`
更多文档和例子可以在这里找到。
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
File details
Details for the file duetector-0.0.2b0.tar.gz
.
File metadata
- Download URL: duetector-0.0.2b0.tar.gz
- Upload date:
- Size: 101.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9caf5e5d0b57d7d4d38e05f03bb4bd5fcb3ab65fe4d028290cea100c3d31e036 |
|
MD5 | 0d404db6a3a93e2726a4233540259500 |
|
BLAKE2b-256 | 408c149805dbbd12cdcd0dc477565068028b28d36842764f6c73464b9a45273b |
File details
Details for the file duetector-0.0.2b0-py3-none-any.whl
.
File metadata
- Download URL: duetector-0.0.2b0-py3-none-any.whl
- Upload date:
- Size: 37.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.18
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f55031a864d3a0ceee7b1cbbaa59c7184a1fce81d03f6f674a467709704bb3c |
|
MD5 | ec10e41e084c91d2383c97c018cf5ab2 |
|
BLAKE2b-256 | 3ee994bb165d3c86acdc8449613c325377a2fdf14d47422b453f52753f46a1a5 |