频率无关的基于SDR的信号理解与逆向工程
FISSURE 是一个 开源射频框架,支持 操作部署 以及 研究与教育。
FISSURE 通过将软件、库和参考材料集中到一个一致的框架中,简化了复杂的 SDR 工作流程。该框架可在台式机、笔记本电脑、单板计算机和加固系统上运行,或扩展到在现场网络中分布式战术节点。
Fracture 是 AIS 基于开源 FISSURE 框架构建的可部署战术射频系统。
FISSURE 提供底层软件环境,用于射频感知、信号分析、协议实验、TAK 集成、分布式节点协调和基于插件的能力开发。Fracture 将此基础扩展到为操作使用而设计的可部署硬件配置。
Fracture 侧重于分布式射频感知、地理定位、射频效应、电子战工作流程以及通过 WinTAK 和 ATAK 实现的实时操作控制。一个中央集线器通过 IP 网络和远距离射频链路协调边缘节点,以支持分布式环境中的感知、目标瞄准和任务执行。
该架构旨在支持固定站点、车辆、单兵背负、小型无人机和固定翼部署,同时通过 FISSURE 的插件框架保持可扩展性。
对于需要受支持且集成的战术射频能力的组织,Fracture 提供了一条产品化路径,保留了底层 FISSURE 生态系统的灵活性、透明性和可扩展性。
FISSURE 的路线图随着客户需求和社区反馈而发展。
要获取最新的视图,请探索交互式路线图(每年七月更新):
FISSURE 有一系列白皮书支持,这些白皮书探讨了不同领域的技术和操作应用。
AIS 发布了多篇文章,突出了 FISSURE 的应用、更新和用例:
插件与操作架构: FISSURE 正在过渡到统一的插件和操作框架,使能力能够打包、部署,并在 Dashboard、传感器节点、WinTAK 和 ATAK 上执行。
WinTAK 集成: WinTAK 现在支持节点管理、警报、目标、检测、工件、插件选择、操作执行以及分布式传感器节点操作。
ATAK 集成: ATAK 集成正在积极开发中,将 FISSURE 和 Fracture 的能力扩展到移动设备和战术边缘操作人员。
分布式战术节点: 传感器节点支持远程操作、分布式感知工作流程、TAK 集成、工件收集、警报以及跨 IP 连接网络的插件执行。
地理定位与目标管理: 继续投入射频地理定位、目标管理、多节点协调和真实世界操作测试。
Apptainer 容器化: FISSURE 可以部署在 Apptainer 容器中,以简化在支持平台上的安装、测试、可移植性和部署。
Fracture 架构与 TAK 工作流程: 新增了说明 Fracture 系统架构、TAK 集成工作流程和分布式战术操作的图表和文档。
2025年5月5-8日:SOF Week - Assured Information Security, Inc. (AIS) 展位
2025年2月6日星期四:宾汉姆顿大学2025年春季招聘会 - 11:00-15:00 EST
2025年1月20日(无限期运行):FISSURE 挑战赛。链接(现已上线)
2024年9月17日星期二:GNU Radio 会议 2024 - 16:05-16:35 EST 描述/幻灯片,现场录制
2024年9月5日星期四:宾汉姆顿大学 STEM 招聘会 - 11:00-15:30 EST
2024年8月10日星期六:DEF CON 32 - 射频村 - 14:00-15:00 PST。预录视频,现场录制
以下是一份“受支持”硬件列表,集成程度各有不同:
支持的操作系统
FISSURE 现在有两个分支:Python3 分支和 Python2_maint-3.7 分支。Python3 分支包含最新代码,并支持 PyQt5 以及 GNU Radio 3.8 和 3.10 版本。Python2_maint-3.7 分支已弃用,仅当特定第三方工具需要 GNU Radio 3.7 或更旧的操作系统时才会更新。安装仅支持最新次要版本的操作系统,我们将尽力跟上。已更新但尚未完全测试的操作系统将列在“进行中(beta)”下。
本仓库提供的 GitHub 发布版是项目状态的定期快照,主要用于存档目的。这些发布版可能不包含最新的更新、错误修复或正在开发的功能。要访问最新版本的软件,我们强烈建议使用主 Python3 分支,它反映了持续开发以及项目当前的状态。
FISSURE 在 Ubuntu 上经过最广泛的测试,因此是最受验证的平台。
进行中(beta)
| 这些操作系统仍处于 beta 状态。它们正在开发中,已知缺少若干功能。安装程序中的某些项可能与现有程序冲突,或在该状态移除之前无法成功安装。Operating System | FISSURE Branch | Default GNU Radio Version |
|---|---|---|
| BackBox Linux |
注意:某些软件工具并非适用于所有操作系统。请参考已知冲突和第三方软件
Apptainer 安装
正在使用 apptainer 对 FISSURE 安装进行容器化测试。宿主OS、容器OS和FISSURE安装模式(full、base、Dashboard、HIPRFISR、SensorNode)的组合仍在进行中。以下是支持的组合。
| Host Operating System | Container Operating System | FISSURE Mode |
|---|---|---|
| Ubuntu 24.04 | Ubuntu 24.04 | full |
安装
用于将 SSH 密钥添加到 GitHub 并通过 SSH 克隆(供贡献需要):``` ssh-keygen -t ed25519 cat ~/.ssh/id_ed25519.pub Paste text into "Settings" > "SSH and GPG keys" > "New SSH Key" git clone [email protected]:ainfosec/FISSURE.git
使用https克隆:```
git clone https://github.com/ainfosec/FISSURE.git
准备安装程序:``` cd FISSURE git checkout Python3 # Optional, or Python2_maint-3.7 for select legacy third-party tools ./install
说明:
- 如果未找到启动安装 GUI 所需的 PyQt 软件依赖项,安装程序会询问是否安装。
- 在 GUI 中选择与您的操作系统最匹配的运行选项(如果您的操作系统与某个选项匹配,通常会自动检测)。
- 在安装过程中,定期回答有关第三方软件的提示。请自行判断,答案不太可能影响 FISSURE。
- 确保系统时钟设置正确,以避免 apt 因拒绝仓库更新而出错。
- 安装完成后,重启计算机或注销后重新登录,使用户组更改生效。
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/5588/ea812c13507dcd73629484d74bae5229caf78da4f8c48bcfd701d429c60bc392.png" width="257" height="379">
</p>
建议在干净的操作系统上安装 FISSURE,以避免与现有软件发生冲突。将继续推进虚拟化和依赖管理的相关工作。关于安装程序的说明:
- "最小安装"类别下列出的项目是启动 FISSURE 仪表板且不报错所必需的。
- 无线电硬件和外部模块是执行 FISSURE 中许多操作所必需的。
- 流量图需要重新编译,以避免在 GNU Radio 次要版本间出现错误。
- 最小安装之外的软件程序是可选的,可按需安装。
- 选中所有推荐的复选框(默认按钮),以避免在操作 FISSURE 中的各种工具时出现错误。
- 默认未选中的项目可能无法正确安装,或可能与现有程序冲突(欢迎提出修复建议!)。
- 安装过程中会有多次提示,主要请求提升权限和输入用户名。这些提示主要与第三方工具相关,详情请参考维护者提供的安装说明。
- 如果某个项目末尾包含"Verify"部分,安装程序将运行其后的命令,并根据命令是否产生错误将复选框项高亮为绿色或红色。没有"Verify"部分的已勾选项在安装后将保持黑色。
- 为避免安装和权限错误,请将 FISSURE 下载到用户拥有的目录,如 Home 目录。运行安装脚本和 fissure 命令时不要使用 sudo。许多第三方工具将下载并安装到 `~/Installed_by_FISSURE` 目录。
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/5588/3c404a7fc456dc0a3346fc0ed7432381c57cf6f6db4358221010a5b66a3281f5.png" width="692" height="479">
</p>
FISSURE 安装程序有助于准备计算机或安装感兴趣的特定软件。代码可快速修改以支持自定义软件安装。程序的尺寸估计值为完整安装前后的读数。每个程序的大小并不精确,因为部分依赖项已在先前勾选的项目中安装。随着程序的更新,尺寸也可能随时间变化。
<p align="center">
<img src="https://assets.kitploit.com/production/public/readmes/5588/e9722e4a18df1cdf579316e24ffd999e7f56f27c738340a5a997377453d4320c.png" width="692" height="479">
</p>
**远程传感器节点安装**
在通用计算机上像往常一样安装 FISSURE。在远程计算机上安装 FISSURE 时,应将其放在与本地计算机相同的目录位置(在进一步通知前),以避免某些操作因文件路径错误而出问题。要配置传感器节点进行远程操作,请编辑 `./YAML/Sensor_Node_Config/` 目录下的 "default.yaml" 文件,并修改以下字段:
- nickname:(任意名称,但不要设为 "Local Sensor Node")
- hiprfisr_ip_address:(传感器节点连接的 HIPRFISR/集线器 IP 地址)
- hardware:(填入您的硬件详细信息)
将 "autorun" 字段从 `false` 改为 `true`,可在启动时运行默认的自动运行播放列表并放弃远程操作。新的自动运行播放列表可从仪表板自动运行选项卡生成并保存。
远程传感器节点作为服务器运行,必须拥有一组有效的证书(安装时生成),这些证书必须与客户端(本地计算机)匹配。服务器需要 "server.key_secret" 和 "client.key" 文件,而客户端需要 "client.key_secret" 和 "server.key" 文件。如果证书文件夹是在服务器计算机上生成的,则必须手动将客户端文件传输到另一台计算机。
**本地仪表板使用**
安装后打开一个新终端并输入:```
fissure
启动FISSURE Dashboard的预期方法是通过终端且不使用sudo。终端为某些操作提供重要的状态和反馈。有关更多详细信息,请参阅FISSURE文档。
可以通过FISSURE Dashboard顶部的按钮启动本地传感器节点,这有助于在独立工作站上保持所有原有的FISSURE功能。目前仅支持一个本地节点和四个远程传感器节点(或五个远程节点)。
如果任何程序在关闭时冻结或挂起,可以使用以下命令检测问题或强制关闭:``` sudo ps -aux | grep fissure sudo pkill python3 sudo kill -9 sudo pkill python3 && sudo pkill -9 -f fissure
**Headless Hub**
可以在没有 Dashboard GUI 的情况下启动 HIPRFISR,以使 TAK 测试和操作部署更高效。安装后打开一个新的终端并输入:```
fissure-hiprfisr
集线器会自动连接到TAK服务器,远程节点无需交互即可加入。
远程传感器节点使用
配置传感器节点配置文件(见上文)后,可通过以下命令在终端中运行传感器节点代码:``` fissure-sensor-node
传感器节点的代码将持续运行,直到按下 `ctrl+c`。连接到远程传感器节点通过 FISSURE Dashboard 顶部的按钮执行。右键点击顶部按钮可选择活动传感器节点以执行操作。未来需要同时使用多个节点的操作,将在各个标签页中根据具体情况处理。
**Windows 11 WSL2 说明**
FISSURE 可以在 Windows 11 上通过 WSL2 运行支持的操作系统。以下说明帮助安装 WSL2、安装 Linux 操作系统、设置 USB 直通以及在 Linux 操作系统中安装 FISSURE。
安装 WSL2:
1. 以管理员身份打开 PowerShell
2. `wsl --install`
3. 在 BIOS 中启用虚拟化,检查方法:任务管理器>性能>CPU>虚拟化
4. `wsl --set-default-version 2`
5. `wsl --list --online`
6. 安装特定版本(普通 Ubuntu 应为列表中的最新版本):`wsl --install -d Ubuntu-22.04`
7. 打开开始菜单,搜索 Ubuntu 并启动
8. 卸载发行版:`wsl --unregister Ubuntu-22.04`
以管理员身份在 PowerShell 中启用 USB 直通:
1. `winget install usbipd`
2. 将 usbipd 添加到系统路径:开始菜单>环境变量>编辑系统环境变量>系统属性>环境变量>系统变量>Path>编辑>新建:`C:\Program Files\usbipd-win`
3. 关闭并重新以管理员身份打开 PowerShell
4. `usbipd wsl list`
5. `usbipd wsl attach --busid <BUS_ID>` 或 `usbipd wsl attach --busid <BUS_ID> --wsl <DistributionName>`(将 <BUS_ID> 替换为设备的实际总线 ID)
6. 分离:`usbipd wsl detach --busid <BUS_ID>`
在 Linux 终端中安装 FISSURE:
1. `sudo apt-get install git`
2. 克隆 FISSURE 并按照上述详细步骤安装
**TAK 设置**
安装并运行本地 TAK 服务器:
1. 从网站注册并下载 TAK 服务器 Docker zip:https://tak.gov/products/tak-server
2. 如果 `~/Installed_by_FISSURE` 目录不存在则创建
3. 将下载的 .zip 文件放入 `~/Installed_by_FISSURE`
4. 在 FISSURE 安装程序中运行 TAK 服务器项
5. 对于本地 WebTAK,将 `~/Installed_by_FISSURE/taskerver-docker-#.#-RELEASE-##/tak/certs/files/webadmin.p12` 文件加载到浏览器中(设置>证书)
6. 在 `/FISSURE/YAML/User Configs/default.yaml` 中将 `"tak_on_startup"` 字段设置为 True,或从 FISSURE Dashboard 的 TAK 菜单中选择“启动 Docker 容器”
7. 从 FISSURE TAK 菜单打开 WebTAK,验证地图在连接互联网时是否加载
8. 在 `/FISSURE/YAML/User Configs/default.yaml` 中设置 `"connect_mode"`(auto/manual/disabled)字段。如果设置为 manual,则在 FISSURE Dashboard 的 TAK 菜单中连接到 TAK 服务器。
9. 运行一个创建 TAK 警报的 FISSURE 效果(示例即将推出)
连接到远程 TAK 服务器:
1. 更新 `/FISSURE/YAML/User Configs/default.yaml` 中的证书文件路径
2. 在 `/FISSURE/YAML/User Configs/default.yaml` 中设置 `"connect_mode"`(auto/manual/disabled)字段。如果设置为 manual,则在 FISSURE Dashboard 的 TAK 菜单中连接到 TAK 服务器。
3. 运行一个创建 TAK 警报的 FISSURE 效果(示例即将推出)
**Apptainer 设置**
Apptainer 用于容器化大部分 FISSURE 安装,简化跨系统的部署和测试。虽然 FISSURE 的大部分功能运行在 Apptainer 环境内,但仍有几个组件需要在**宿主机**上设置:
- **Docker 容器**(如 PostgreSQL 数据库和 TAK 服务器)运行在**宿主机**上,而非 Apptainer 内部。
- **udev 规则、USB 驱动程序和硬件接口**也必须在宿主机上安装,以便 SDR、Wi-Fi 适配器和其他外围设备正常工作。
未来版本将提供预构建的 Apptainer 容器和 ISO 镜像以简化设置。以下说明适用于希望**从源代码构建 Apptainer 容器**或自定义安装的用户。
1. **克隆 FISSURE 仓库**
2. **配置安装程序**
- 在文本编辑器中打开 `FISSURE/install_apptainer.sh`。
- 查看并调整脚本顶部的变量。
根据您希望包含的内容(例如 `UHD`、`HackRF`、`Wi-Fi` 等)将每个选项设置为 `true` / `false`。
- 选择所需的 FISSURE 安装模式:
- `full` - 包含所有 SDR 软件、网络工具和实用程序
- `base` - 仅核心 FISSURE + GUI 依赖项(用于加速未来的容器构建)
- `Dashboard` - 仅 GUI 容器(不含 SDR 工具)
- `HIPRFISR` - 无头 HIPRFISR 服务器构建
- `SensorNode` - 仅传感器节点构建
3. **运行安装程序** ```bash
cd FISSURE/Installer
./install_apptainer.sh
This builds a writable Apptainer sandbox in your home directory and installs all selected software inside the container and on the host (where applicable).
This command opens a terminal inside the FISSURE container with USB ports, audio devices, and graphics automatically bound for hardware and GUI access.
Run FISSURE Once inside the container, run FISSURE just as you would on a normal system: 该命令会在 FISSURE 容器内打开一个终端,并自动绑定 USB 端口、音频设备和图形设备,以便访问硬件和 GUI。
运行 FISSURE 进入容器后,像在正常系统上一样运行 FISSURE: ```bash fissure fissure-sensor-node
环境运行起来就像标准安装,但更隔离于宿主机。如果你在Apptainer内部使用FISSURE时遇到问题,请告诉我们哪些程序、硬件或功能无法正常工作。
FISSURE附带了几个有用的指南,帮助你熟悉不同的技术和技巧。许多指南包含使用集成到FISSURE中的各种工具的步骤。我们旨在不断提高质量并随时间添加新内容。
FISSURE挑战赛 是一项围绕FISSURE框架构建的持续式夺旗竞赛。它被设计成一个开放式学习工具,任何人都可以在此练习RF逆向工程、探索新功能并攻克以协议为重点的挑战。
访问挑战页面:FISSURE挑战赛
我们强烈欢迎改进FISSURE的建议。良好的贡献领域包括新功能、安装修复、RF协议、硬件/SDR支持、第三方工具、GNU Radio流程图、Python分析脚本、插件动作、教程、文档修正等。
最佳起点是讨论页面、Discord服务器、电子邮件或针对性的问题报告。
代码贡献非常受欢迎:
git checkout -b feature/AmazingFeature)git commit -m '添加一些神奇特性')git push origin feature/AmazingFeature)需要更具体的想法?请查看我们的路线图和潜在待办事项列表。
FISSURE非常适合毕业设计、本科生研究、研究生研究、RF/网络安全课程以及开源软件作业。学生团队可以从事SDR硬件集成、RF协议分析、信号检测、IQ分析、插件、教程、可视化、TAK集成或文档工作。
有意使用FISSURE进行RF和逆向工程项目实践的学生、教师、研究小组和组织欢迎联系我们。
请联系Assured Information Security, Inc. (AIS) 业务发展部门,商讨FISSURE与Fracture的合作机会。AIS可协助将FISSURE集成到现有平台和工作流中,开发自定义插件和功能,扩展对新硬件和传感器的支持,以及构建特定任务的RF解决方案。
对可部署Fracture系统感兴趣的组织,可以与AIS合作,开发和集成适用于固定站点、车辆、背负式、小型无人机和固定翼应用的战术节点配置。AIS还能支持TAK集成、分布式传感器架构、RF感知与地理定位工作流、自定义电子战能力、操作员培训以及长期系统维护。
无论您的目标是研究、教育、原型开发、实际部署还是集成到更大的系统之系统架构中,AIS都能帮助加速开发与部署,同时保持底层FISSURE框架的灵活性。
GPL-3.0
许可详情请参见LICENSE文件。
加入Discord服务器:https://discord.gg/JZDs5sgxcG
关注Twitter/X:@FissureRF, @AinfoSec
关注Bluesky:@fissurerf.bsky.social
连接LinkedIn:FISSURE – RF框架
Chris Poore – Assured Information Security, Inc. – [email protected]
业务发展 – Assured Information Security, Inc. – [email protected]
"FISSURE是一个强大且多功能的RF软件平台,适用于教育和实际应用。它支持多种常用硬件,并提供直观的IQ数据分析工具。这些功能使我们能够在项目中可视化、解释并直接修改RF信号消息。"
– Dylan R.
"我们在工程项目中非常享受使用FISSURE。这个软件汇集了极其全面的射频操控工具,对我们涉及无线通信的研究提供了巨大帮助。"
– 大学毕业设计团队
特别感谢Samuel Mantravadi博士和Joseph Reith对本项目的贡献。
查看我们的其他开源项目:https://ainfosec.dev/
喜欢处理信号、逆向工程或其他网络安全领域的工作?浏览我们当前的职位空缺或加入我们的人才社区以备未来考虑。
如果您对黑客技术感兴趣,请查看我们的Can You Hack It?®挑战,测试您的技能!提交您的成绩,向我们展示您的实力。AIS拥有全国范围内的员工,在美国各地设有办公室和远程员工。我们提供有竞争力的薪资和优厚的福利。加入一个不仅致力于网络空间未来,也致力于员工成功的团队。
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
![]() | ![]() | ![]() | ![]() |
| 操作系统 | FISSURE 分支 | 默认 GNU Radio 版本 |
|---|
| DragonOS Noble (24.04) | Python3 | maint-3.10 |
| Kali | Python3 | maint-3.10 |
| Raspberry Pi OS | Python3 | maint-3.10 |
| Ubuntu 18.04 | Python2_maint-3.7 | maint-3.7 |
| Ubuntu 20.04 | Python3 | maint-3.8 |
| Ubuntu 22.04 | Python3 | maint-3.10 |
| Ubuntu 22.04 | Python3 | maint-3.10 |
| Ubuntu 24.04 / Ubuntu ARM (Orange Pi) / Ubuntu for Raspberry Pi | Python3 | maint-3.10 |
| Windows 11 WSL2 | 见对应的支持 Linux 版本 | 见对应的支持 Linux 版本 |
| Python3 |
| maint-3.10 |
| KDE neon | Python3 | maint-3.10 |
| Parrot Security 6.1 | Python3 | maint-3.10 |