exein-io/pulsar
GitHub: exein-io/pulsar
一款基于 eBPF 的模块化运行时安全工具,专为物联网设备提供高效的进程、文件和网络活动监控与威胁检测。
Stars: 1004 | Forks: 64
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协议, 内存取证对抗, 内核监控, 可视化界面, 威胁检测, 子域名字典, 安全渗透, 文件监控, 模块化架构, 物联网安全, 系统调用, 网络安全审计, 轻量级安全, 边缘计算安全, 通知系统, 通知系统, 速率限制