Skip to main content

duetector

Project description

duetector🔍: 基于eBPF的数据使用探测器

Actions Status pre-commit.ci status LICENSE Releases Pre Releases Last Commit Python version

中文 | English

简介

duetector是DataUCON项目中的组件之一,DataUCON项目旨在为数据使用控制提供支持。

查看DataUCON的网页

深入了解并部署DataUCON

duetector🔍是一个基于eBPF的数据使用探测器,它可以在Linux内核中对数据使用行为进行探测,从而为数据使用控制提供支持。

🐛🐞🧪 项目正在大力开发中,期待任何Bug报告、功能请求、合并请求

ABAUC控制模型当中,duetector可作为PIP(Policy Information Point)来获取数据使用行为,从而为PDP(Policy Decision Point)提供数据使用行为的信息。

目录

主要特性

  • 插件化系统
  • 配置管理
    • 使用单一配置文件配置
    • 支持生成插件配置
    • 支持动态加载配置
  • 基于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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

duetector-0.0.2b0.tar.gz (101.9 kB view details)

Uploaded Source

Built Distribution

duetector-0.0.2b0-py3-none-any.whl (37.0 kB view details)

Uploaded Python 3

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

Hashes for duetector-0.0.2b0.tar.gz
Algorithm Hash digest
SHA256 9caf5e5d0b57d7d4d38e05f03bb4bd5fcb3ab65fe4d028290cea100c3d31e036
MD5 0d404db6a3a93e2726a4233540259500
BLAKE2b-256 408c149805dbbd12cdcd0dc477565068028b28d36842764f6c73464b9a45273b

See more details on using hashes here.

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

Hashes for duetector-0.0.2b0-py3-none-any.whl
Algorithm Hash digest
SHA256 5f55031a864d3a0ceee7b1cbbaa59c7184a1fce81d03f6f674a467709704bb3c
MD5 ec10e41e084c91d2383c97c018cf5ab2
BLAKE2b-256 3ee994bb165d3c86acdc8449613c325377a2fdf14d47422b453f52753f46a1a5

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page