zenShaunD/pacis
GitHub: zenShaunD/pacis
开源离线优先的 AI 驱动网络安全紫队平台,将攻防测试、威胁情报、取证和应急响应统一于一个终端界面。
Stars: 1 | Forks: 0
# PACIS
```
██████╗ █████╗ ██████╗██╗███████╗
██╔══██╗██╔══██╗██╔════╝██║██╔════╝
██████╔╝███████║██║ ██║███████╗
██╔═══╝ ██╔══██║██║ ██║╚════██║
██║ ██║ ██║╚██████╗██║███████║
╚═╝ ╚═╝ ╚═╝ ╚═════╝╚═╝╚══════╝
```
**持久自主网络封锁系统**
*通过封锁实现和平*
[](LICENSE)
[](https://python.org)
[](#)
[](https://github.com/zenShaunD/pacis/releases/tag/v1.2.0)
由 **Zen (Shaun Patrik Dyess)** / [ZPAK / ZenPeak](mailto:peacezen@proton.me) 构建
## 什么是 PACIS?
PACIS 是一个**开源、离线优先的网络安全平台**,将攻击性测试、防御加固、威胁情报、取证和应急响应统一到一个终端 UI 中。它封装了 **54 个精选安全工具**,配备专用运行器,并通过通用的动态发现和执行机制支持**整个 BlackArch Linux 生态系统(2,852+ 工具)**。所有工具通过实时子进程执行,输出实时流式传输,TUI 基于 [Textual](https://textual.textualize.io/) 构建。
**v1.0 提供完整的平台功能**:基于 Valkey 的持久化状态、通过 Ollama 实现的 LLM 驱动的 Agent 编排、带有可视化仪表盘的实时数据包分析、自动化紫队循环、Playbook 驱动的应急响应、高级 HTML/STIX/Navigator 报告,以及用于扩展的插件系统。
PACIS 可在商用硬件上离线运行。无云依赖。无遥测。您的威胁数据保留在您的基础设施中。
## v1.2.0 新增功能 — BlackArch 通用集成
### 2,852+ BlackArch 工具
- **动态工具发现** — 通过 PATH 扫描自动检测系统上的每一个 BlackArch、Kali 和 Parrot 工具
- **通用执行器** — 通过子进程安全运行任何已发现的工具,具有超时强制、审计日志记录和危险工具标记功能
- **Agent 工具桥接** — 所有 12 个 PACIS Agent 都可以通过 4 个通用功能工具发现、搜索和执行 2,852 个工具中的任何一个
- **47 类别映射** — 每个 BlackArch 类别自动映射到相应的 PACIS Agent
- **BlackArch 军火库 TUI** — 新的 Screen [G] 用于浏览、搜索、过滤和运行完整数据库中的工具
- **安装建议** — 查看缺少哪些工具并获取 `pacman -S` 安装命令
### v1.1.0 — CI/CD 与审计修复
- GitHub Actions CI/CD 流水线,包含 lint、测试、构建和发布阶段
- 修复了综合代码库审计中的 47 个审计发现
- 具有 JWT 身份验证和 WebSocket 流式传输的 RESTful API
- 964 → 1,073 个通过的测试
## v1.0 新增功能
### Valkey 持久层
- **发现队列** — 按 CPS 分数在 Valkey 有序集合中排序
- **资产存储** — 扫描历史和会话跟踪由 Valkey 哈希支持
- **扫描结果缓存** — 基于 TTL 的过期机制
- **Pub/sub 事件流** — 用于实时 TUI 更新
- **审计跟踪** — 持久化到 Valkey 流(+ JSONL 离线备份)
- 当 Valkey 不可用时优雅回退到 JSON 文件
### LLM 驱动的 Agent 编排
- **AgentRuntime** — 使用 Ollama 作为 LLM 后端驱动所有 12 个 Agent
- **自然语言命令解析器** — 输入 `scan 192.168.1.0/24`,PACIS 会自动处理其余部分
- **基于规则的回退** — 当没有 LLM 可用时(完全离线功能)
- **PurpleTeamLoop** — 自动化 MAP → ATTACK → DETECT → GAP → FIX → RETEST → REPORT 循环
- 每次工具调用时强制执行范围验证 — 没有数据包能在未经范围验证的情况下发出
### 实时数据包分析仪表盘
- **协议分布** — 实时水平条形图
- **连接跟踪器** — 活动流,包含源/目标、协议、字节、持续时间
- **数据包速率迷你图** — 当前、平均和峰值 pkt/s
- **Top talkers** — 按流量排名的源/目标 IP
- **流量警报** — 自动端口扫描检测和异常标记
### Playbook 引擎
- YAML 定义带有模板变量的响应 Playbook
- 内置操作:iptables 阻止/解除阻止、警报、扫描、证据收集
- 基于条件的步骤执行,具有失败处理和升级机制
- 5 个预构建的 Playbook:暴力破解、数据渗出、横向移动、端口扫描、勒索软件
### 高级报告
- **HTML 报告** — 深色主题、交互式、打印就绪,带有 CPS 条形图
- **MITRE ATT&CK Navigator 层** — 颜色编码的技术覆盖图
- **STIX 2.1 包** — 结构化威胁情报交换格式
- **执行摘要** — 为领导层提供的简明文本输出
- **JSON 导出** — 完整的机器可读数据转储
### 插件系统
- 注册自定义工具、运行器、Agent、富化源和报告格式
- 从内置、用户(~/.pacis/plugins/)和配置定义的路径加载插件
- 用于扫描前/后、发现事件和报告生成的生命周期钩子
- 配置验证器 — 检查范围、权重、模型、工具和目录
## 功能 (v1.0)
PACIS 附带 **17 个交互式 TUI 屏幕**,覆盖完整的网络安全生命周期:
| 模块 | 关键工具 | 描述 |
|--------|-----------|-------------|
| **侦察与扫描** | nmap, masscan, subfinder, httpx | 端口扫描、服务检测、OS 指纹识别、DNS 枚举 |
| **攻击与利用** | Nuclei, SQLmap, Hydra, Metasploit | 范围强制的漏洞扫描和利用 |
| **防御与响应** | iptables, ss, sysctl | 防火墙管理、IP 阻止、系统加固 |
| **网络分析** | tcpdump, tshark, traceroute | 实时数据包捕获、协议分析、ARP 扫描 |
| **仪表盘与监控** | psutil | 自动刷新的 CPU/RAM/磁盘/网络 I/O 指标 |
| **威胁情报** | NVD, EPSS, CISA KEV, WHOIS | CVE 查询、利用概率、已知被利用漏洞检查 |
| **报告** | 内置 | HTML, STIX 2.1, MITRE Navigator, 执行摘要, JSON |
| **WebApp 扫描** | Nikto, Gobuster, WhatWeb | Web 漏洞扫描、目录爆破、技术指纹识别 |
| **密码与哈希** | hashid, John the Ripper, Hashcat | 哈希识别和字典/暴力破解 |
| **PCAP 分析** | tshark | 协议摘要、凭证提取、实时流量可视化 |
| **日志分析** | 内置解析器 | auth.log 取证、syslog 分析、暴力破解检测 |
| **文件与恶意软件** | file, strings, YARA, VirusTotal | 静态文件分析、熵、恶意软件模式匹配 |
| **无线侦察** | iwlist, airodump-ng, aircrack-ng | 802.11 网络发现和捕获 |
| **应急响应** | Playbook 引擎 | 自动化分类、遏制、Playbook 执行 |
| **设置与配置** | ConfigValidator | 范围管理、工具状态、配置验证 |
| **帮助** | — | 快捷键、模块参考、安装指南 |
### 统计
| 指标 | 数量 |
|--------|-------|
| TUI 屏幕 | 17 |
| 注册工具包装器 | 31 |
| 运行器函数 | 46 |
| 通过的测试 | 964 |
| AI Agent 定义 | 12 |
| v1.0 新模块 | 7 |
## 快速开始
### 通过 pip 安装(推荐)
```
# 通过 wheel 安装(从 GitHub Releases 下载)
pip install pacis-1.0.0-py3-none-any.whl
# 或从源码安装
git clone https://github.com/zenShaunD/pacis.git
cd pacis
pip install -e ".[dev]"
# 启动 TUI
pacis
```
### 可选:安装 Valkey
```
# Ubuntu/Debian
sudo apt install valkey-server
sudo systemctl start valkey
# 或通过 Docker
docker run -d --name valkey -p 6379:6379 valkey/valkey:latest
```
### 可选:安装 Ollama
```
# 安装 Ollama
curl -fsSL https://ollama.ai/install.sh | sh
# 拉取默认模型
ollama pull qwen3:8b
# PACIS 自动检测 localhost:11434 上的 Ollama
```
### 安装系统工具
PACIS 通过子进程封装外部工具。安装您需要的工具:
```
# 核心扫描与网络
sudo apt install nmap masscan tcpdump tshark whois dnsutils
# Web 应用扫描
sudo apt install nikto gobuster dirb
# 密码破解
sudo apt install john hashcat
pip install hashid
# 无线
sudo apt install aircrack-ng
# 恶意软件分析
sudo apt install yara
# 漏洞利用
sudo apt install sqlmap hydra
go install github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
```
PACIS 会优雅降级 —— 缺少的工具会显示带有安装提示的清晰错误消息。启动 TUI 不需要任何特定工具。
## 首次启动
首次运行时,PACIS 会显示一个**设置向导**(灵感来自 airgeddon),它会:
1. 检测所有已安装的安全工具及其版本
2. 显示带有 IP 地址的网络接口
3. 检查 Valkey 和 Ollama 的连接性
4. 验证配置文件
5. 高亮显示缺少的必需工具与可选工具
设置完成后,您将进入 **4x4 主仪表盘**,所有 16 个模块都可以通过数字键或鼠标点击访问。
## 自然语言命令
PACIS 可以理解 TUI 命令栏中的自然语言:
```
scan 192.168.1.0/24 → nmap network scan
attack 10.0.0.50 → nuclei vulnerability scan
defend → system hardening
block 10.0.0.99 → iptables IP block
capture eth0 → tcpdump packet capture
crack hash.txt → john/hashcat cracking
lookup CVE-2024-12345 → NVD/EPSS enrichment
hunt lateral movement → threat hunting
purple 192.168.1.0/24 → full MAP→ATTACK→DETECT→GAP→FIX→RETEST cycle
report html → generate HTML report
status → dashboard overview
```
当 Ollama 可用时,模糊的命令会获得 LLM 辅助解析。如果没有 Ollama,正则表达式将处理所有标准命令。
## 架构
```
┌─────────────────────────────────────────────────────────────────┐
│ PRESENTATION LAYER │
│ TUI (Textual) · CLI entry point · Real-time streaming output │
├─────────────────────────────────────────────────────────────────┤
│ AGENT LAYER │
│ 12 specialized agents · AgentRuntime · PurpleTeamLoop │
│ LLM routing (Ollama) · Natural language command parser │
├─────────────────────────────────────────────────────────────────┤
│ ORCHESTRATION LAYER │
│ Scope enforcement · CPS scoring · Playbook engine │
│ Plugin system · Config validation │
├─────────────────────────────────────────────────────────────────┤
│ TOOL LAYER (GPL via subprocess ONLY) │
│ 31 wrappers: nmap, masscan, nuclei, nikto, gobuster, john, │
│ hashcat, tshark, aircrack-ng, yara, iptables, and more │
├─────────────────────────────────────────────────────────────────┤
│ ENRICHMENT LAYER │
│ EPSS · CISA KEV · NVD · WHOIS · VirusTotal · AbuseIPDB │
├─────────────────────────────────────────────────────────────────┤
│ DATA LAYER │
│ Valkey (primary) · JSON file (fallback) · Audit JSONL stream │
│ Pub/sub events · Session tracking · Scan cache (TTL) │
├─────────────────────────────────────────────────────────────────┤
│ REPORTING LAYER │
│ HTML · MITRE Navigator · STIX 2.1 · Executive Summary · JSON │
└─────────────────────────────────────────────────────────────────┘
CROSS-CUTTING: Scope Validator · CPS Engine · Audit Logger · Plugin Registry
```
### Agent 层次结构
```
┌──────────────────────────────┐
│ CUSTOS (Orchestrator) │
└──────────────┬───────────────┘
│
┌────────────────────────────┼─────────────────────────┐
│ │ │
┌──────▼──────┐ ┌───────▼──────┐ ┌───────▼──────┐
│ RED SIDE │ │ BLUE SIDE │ │ SUPPORT │
│ Explorator │ │ Scutum │ │ Memoria │
│ Gladius │ │ Sapientia │ │ Nuntius │
│ │ │ Vigil │ │ Esca │
│ │ │ Faber │ │ Discipulus │
│ │ │ Iudex │ │ │
└─────────────┘ └──────────────┘ └──────────────┘
```
## 已集成工具 (31)
| 类别 | 工具 | 许可证 |
|----------|------|---------|
| Recon | nmap, masscan, subfinder, httpx, whatweb | GPL-2.0 / MIT |
| Exploitation | nuclei, msfconsole, sqlmap, hydra | MIT / BSD / GPL / AGPL |
| WebApp | nikto, gobuster, dirb | GPL-2.0 / Apache-2.0 |
| Password | john, hashcat, hashid | GPL-2.0 / MIT / GPL-3.0 |
| Detection | suricata, sigma, yara | GPL-2.0 / LGPL / BSD |
| Wireless | airmon-ng, airodump-ng, aircrack-ng | GPL-2.0 |
| Forensics | volatility3, tshark, tcpdump | PSF / GPL-2.0 / BSD |
| Defense | iptables, nft | GPL-2.0 |
| Deception | opencanary | BSD-3-Clause |
| Runtime | git, python3 | GPL-2.0 / PSF |
所有 GPL 工具仅通过**子进程**调用 —— 从不作为 Python 库导入,保持了 PACIS 的 AGPLv3 许可边界。
## 安全模型
- **范围验证器**:每次工具调用在发送任何数据包之前,都会根据 `config/scope.yml` 验证目标
- **审计日志记录器**:所有特权操作写入仅追加的 JSONL + Valkey 流
- **无 GPL 导入**:所有 GPL 工具仅通过子进程调用
- **无硬编码密钥**:所有凭证通过 `.env` / 环境变量管理
- **输入验证**:外部数据通过 Pydantic v2 模型处理
- **无危险模式**:无 `eval()`、无 `pickle`、不对不可信输入使用 `shell=True`
- **Playbook 安全性**:模板变量安全解析,无任意代码执行
## 配置
```
config/
├── scope.yml # Allowed targets and exclusions
├── priority_weights.yml # CPS scoring weights (sum to 1.0)
├── agent_models.yml # LLM model assignments per agent
├── notification_webhooks.yml # Alert destinations
└── plugins.yml # Plugin directory paths
playbooks/
├── brute_force_response.yml
├── exfiltration_response.yml
├── lateral_movement_response.yml
├── port_scan_response.yml
└── ransomware_response.yml
```
运行 `pacis config validate` 以检查所有配置文件。
## 开发
```
# 克隆并安装开发依赖
git clone https://github.com/zenShaunD/pacis.git
cd pacis
pip install -e ".[dev]"
# 运行测试(964 个通过)
pytest tests/ -v
# Lint
ruff check pacis/ tests/
# 构建包
python -m build
```
## 贡献
PACIS 欢迎网络安全社区的贡献。
1. 运行 `pytest tests/` —— 所有 964+ 个测试必须通过
2. 对于主要功能或架构更改,请先开 issue
3. 遵循 [Conventional Commits](https://www.conventionalcommits.org/) 编写提交信息
如有问题:peacezen@proton.me
## 许可证
PACIS 采用**双重许可**:
- **社区版**:[AGPLv3](LICENSE) —— 免费用于开源、学术和个人使用
- **企业版**:用于专有部署的商业许可证 —— 联系方式:peacezen@proton.me
## 链接
| 资源 | URL |
|----------|-----|
| GitHub | https://github.com/zenShaunD/pacis |
| Releases | https://github.com/zenShaunD/pacis/releases |
| Issues | https://github.com/zenShaunD/pacis/issues |
| Email | peacezen@proton.me |
*由 **Zen (Shaun Patrik Dyess)** / ZPAK / ZenPeak 构建 — 通过封锁实现和平*
标签:AGPL, AI风险缓解, API接口, BlackArch, CAI, CAI框架, CISA项目, Cloudflare, CSV导出, DLL 劫持, FTP漏洞扫描, GitHub, Google搜索, HTTP工具, IP 地址批量处理, Linux安全工具, LLM评估, MITRE ATT&CK, Modbus, Mr. Robot, Ollama, OpenCanary, PE 加载器, Python, SOAR, STIX, StruQ, Textual, TUI, ZenPeak, ZPAK, 人工智能, 后渗透, 大语言模型, 威胁情报, 安全编排, 密码管理, 幻觉检测, 库, 应急响应, 开发者工具, 插件系统, 攻击模拟, 数字取证, 数据展示, 无后门, 无线安全, 流量嗅探, 用户模式Hook绕过, 离线优先, 空气隔离, 紫队平台, 红队, 终端用户界面, 网络安全, 网络安全审计, 自主拦截, 自动化与编排, 自动化脚本, 请求拦截, 逆向工具, 隐私保护, 驱动签名利用