exein-io/pulsar

GitHub: exein-io/pulsar

一款基于 eBPF 的模块化运行时安全工具,专为物联网设备提供高效的进程、文件和网络活动监控与威胁检测。

Stars: 1004 | Forks: 64

Pulsar dark logo Pulsar light logo

Release License License

Pulsar 是一款安全工具,由 [eBPF](https://ebpf.io/) 驱动,用于在运行时监控 Linux 设备的活动。 Pulsar 核心模块使用 eBPF 探针以安全高效的方式从内核收集事件。Pulsar 事件可以归类为以下四个主要领域: - **进程**:进程信息,包括文件执行和文件打开。 - **文件 I/O**:磁盘和内存上的 I/O 操作。 - **网络**:来自网络协议栈的数据。 Pulsar 采用模块化设计构建,使得核心架构易于适应新的用例、创建新模块或编写自定义规则。 ## 快速入门 要下载并安装 Pulsar,请在终端中运行以下命令: ``` curl --proto '=https' --tlsv1.2 -LsSf https://github.com/exein-io/pulsar/releases/latest/download/pulsar-install.sh | sh ``` 在终端中**以管理员权限**启动 pulsar 守护进程: ``` pulsard ``` 基本就是这样。此时,Pulsar 正在主动监控所有目标进程的活动,并根据规则文件中定义的安全策略集进行检查。你可以通过触发一个威胁事件来测试,例如在另一个终端中运行以下命令: ``` ln -s /etc/shadow /tmp/secret ``` 在 pulsar 终端中,你应该看到类似以下内容: ``` [2023-02-07T14:29:09Z THREAT /usr/bin/ln (36267)] [rules-engine - { rule_name = "Create sensitive files symlink" }] File Link { source: /tmp/secret, destination: /etc/shadow, hard_link: false } ``` 如你所见,Pulsar 将上述命令识别为威胁事件。 ### 它是如何工作的? 在幕后,当应用程序执行操作时,它会在内核层面被 Pulsar BPF 探针拦截,转换为唯一的事件对象并发送到用户空间。在那里,Pulsar 规则引擎根据规则文件中定义的规则集处理该事件,如果匹配成功,则发出一个标记为威胁的新事件。最后,日志模块将威胁事件打印到终端。 在上面的示例中,产生的事件匹配了以下规则: ``` - name: Create sensitive files symlink type: FileLink condition: (payload.destination IN ["/etc/shadow", "/etc/sudoers", "/etc/pam.conf", "/etc/security/pwquality.conf"] OR payload.destination STARTS_WITH "/etc/sudoers.d/" OR payload.destination STARTS_WITH "/etc/pam.d") AND payload.hard_link == "false" ``` ## 安装 ### (推荐)使用官方安装脚本 开始使用 Pulsar 的推荐方法是使用官方安装脚本。请按照[快速入门](#quickstart)部分的指南操作。 ### 使用预编译二进制文件 安装 Pulsar 的另一种方法是使用预编译二进制文件。二进制文件可在[最新版本](https://github.com/exein-io/pulsar/releases/latest)中获取。下载适用于你架构的两个可执行文件:`pulsard`(守护进程)和 `pulsar`(命令行工具)。静态构建版本可能会带有 `-static` 后缀(如果可用)。 ### 从源码构建 我们不建议从源码构建 Pulsar。只有在你希望进行修改时,才需要从源码构建。如果你想研究源代码,请查阅文档中的[开发者](https://pulsar.sh/docs/category/developers)部分。 ## 资源 - [阅读文档](https://pulsar.sh/docs):了解如何安装和配置 Pulsar。 - [概念](https://pulsar.sh/docs/category/concepts):深入了解 Pulsar 架构和主要概念。 - [教程](https://pulsar.sh/docs/category/tutorials):通过实际示例学习如何使用 Pulsar。 - [开发新的 eBPF 模块](https://pulsar.sh/docs/developers/tutorials/create-ebpf-probe-module):构建新的 eBPF 探针并通过模块系统将其集成到 Pulsar 中; - [路线图](https://github.com/orgs/exein-io/projects/14):查看 Pulsar 下一个版本的发布计划; - [支持](https://discord.gg/MQgaTPef7a):加入 Discord 服务器获取社区支持。 ## 社区 加入 Pulsar [Discord 服务器](https://discord.gg/MQgaTPef7a),与开发者、维护者及整个社区交流。你也可以在官方 [GitHub 讨论区](https://github.com/exein-io/pulsar/discussions)提出关于 Pulsar 的任何问题,或使用 [GitHub Issues](https://github.com/exein-io/pulsar/issues) 进行功能请求和错误报告。 ## 许可证 Pulsar 采用双重[许可](./LICENSE) —— Pulsar 用户空间代码采用 [APACHE-2.0](./LICENSES/LICENSE-APACHE-2.0) 许可。Pulsar eBPF 探针采用 [GPL-2.0](./LICENSES/LICENSE-GPL-2.0) 许可。
标签:AMSI绕过, Docker镜像, Hpfeeds, HTTP工具, IP 地址批量处理, SQLite数据库, TCP/UDP协议, 内存取证对抗, 内核监控, 可视化界面, 威胁检测, 子域名字典, 安全渗透, 文件监控, 模块化架构, 物联网安全, 系统调用, 网络安全审计, 轻量级安全, 边缘计算安全, 通知系统, 通知系统, 速率限制