基于频率无关的 SDR 信号理解和逆向工程
FISSURE 是一个开源射频和逆向工程框架,专为所有技能水平而设计,具有信号检测和分类、协议发现、攻击执行、IQ 操作、漏洞分析、自动化和 AI/ML 的挂钩。该框架的构建是为了促进软件模块、无线电、协议、信号数据、脚本、流程图、参考材料和第三方工具的快速集成。 FISSURE 是一种工作流程推动者,可将软件保留在一个位置,并允许团队轻松加快速度,同时为特定 Linux 发行版共享相同的经过验证的基线配置。
FISSURE 包含的框架和工具旨在检测射频能量的存在、了解信号的特征、收集和分析样本、开发传输和/或注入技术以及制作自定义有效负载或消息。 FISSURE 包含不断增长的协议和信号信息库,以协助识别、数据包制作和模糊测试。在线存档功能可以下载信号文件并构建播放列表来模拟流量和测试系统。
友好的 Python 代码库和用户界面使初学者能够快速了解涉及射频和逆向工程的流行工具和技术。网络安全和工程教育工作者可以利用内置材料或利用该框架来演示他们自己的实际应用程序。开发人员和研究人员可以使用 FISSURE 完成日常任务或向更广泛的受众展示他们的尖端解决方案。随着社区对 FISSURE 的认识和使用不断增长,其功能范围和所包含技术的广度也会随之增加。
调用安装程序设置使用“导出”和“导入”按钮导出和导入 FISSURE 安装程序中选中的软件项目。仅快速安装您需要的程序。
IQ 数据选项卡和菜单中的本地 IQEngine 支持,只需单击“/IQ Recordings”文件夹中的文件即可加载 SigMF 文件。使用“工具”>“数据”>“IQEngine”菜单停止 IQEngine 泊坞窗容器。
适用于通用计算机(SBC、迷你 PC、笔记本电脑、台式机)的可部署远程传感器节点,支持可由计算机控制的任何类型的外围设备。这些远程传感器节点运行一小部分代码,可以通过 FISSURE 仪表板 GUI 通过网络进行控制,以执行传统的 FISSURE 操作,还可以执行新型脚本操作,这些操作可以在启动时自主运行或通过用户交互半自主运行(自动运行播放列表)。
在同一网络上部署多个传感器节点为 FISSURE 的未来发展解锁了许多地理空间应用。此类应用包括测向、跟踪、入侵检测、移动部署和周界防御。小巧的外形和自主功能为隐形部署和封装到现有平台提供了独特的机会。这些更新还可以为远程工作人员提供一种低成本机制,以进行射频网络安全组合测试并访问专门的射频环境,例如国际感兴趣的地点、实验室和测试站点。
自动运行播放列表、单阶段攻击、多阶段攻击和存档重放的触发功能。包括 20 多个用于启动电磁效应的声学、环境、文件系统、网络、射频、时间和视觉触发器示例。请参阅用户手册中的触发器列表部分了解当前列表,并参阅创建触发器部分了解如何添加您自己的触发器。
信号分类器选项卡用于仅基于从 IQ 数据中提取的统计特征来训练决策树和 DNN 模型。此选项卡用于将真实信息分配给从隔离信号文件(由 Signal Conditioner 生成)收集的特征集(由特征提取器生成),以使用 TensorFlow 和 scikit-learn 开发机器学习模型。未知信号可以通过所有可用模型来比较结果并建立信心。信号调理器、特征提取器和信号分类器选项卡充当开发新算法的测试台,最终结果(隔离的 IQ 信号、统计特征、分类置信度)将作为感兴趣的信号编入 FISSURE 库中,以供进一步分析或用于触发自动操作。
IQ 数据选项卡中的开关键控信号发生器可用于快速查看和测试信号/设备。自定义信号可以保存为 IQ 文件以供重放,以对目标执行操作或模拟 RF 设备。
星期六。 2024 年 8 月 10 日:DEF CON 32 - RF 村 - 1400-1500 PST。预录视频、现场录制
周四。 2024 年 9 月 5 日:宾厄姆顿大学 STEM 工作和实习博览会 - 1100-1530 EST
周二。 2024 年 9 月 17 日:GNU 无线电会议 2024 - 1605-1635 EST 描述/幻灯片、现场录音
2024 年 12 月(最终日期即将到来!) :2024 年 FISSURE 挑战赛。链接(即将推出)
以下是具有不同集成级别的“受支持”硬件的列表:
支持
FISSURE 中现在有两个分支:Python3 分支和 Python2_maint-3.7 分支。 Python3 分支包含最新代码,并支持 PyQt5 和 GNU Radio 版本 3.8 和 3.10。 Python2_maint-3.7 分支已被弃用,并且仅在特定第三方工具需要 GNU Radio 3.7 版或更旧的操作系统时才会更新。仅支持安装最新的次要版本操作系统,我们将尽力跟上。
操作系统 | 裂隙分支 | 默认 GNU 无线电版本 |
---|---|---|
BackBox Linux 8 (amd64) | Python3 | 维护-3.10 |
DragonOS FocalX (x86_64) | Python3 | 维护-3.10 |
卡利 23.1 (x64) | Python3 | 维护-3.10 |
KDE neon 5.25 (x64)(6.0 未测试) | Python3 | 维护-3.8 |
鹦鹉安全 6.1 (amd64) | Python3 | 维护-3.10 |
Raspberry Pi 操作系统(书呆子) | Python3 | 维护-3.10 |
Ubuntu 18.04 (x64) | Python2_maint-3.7 | 维护-3.7 |
Ubuntu 20.04 (x64) | Python3 | 维护-3.8 |
Ubuntu 22.04 (x64) | Python3 | 维护-3.10 |
Ubuntu 22.04(ARM/Orange Pi) | Python3 | 维护-3.10 |
Ubuntu 24.04 (x86) | Python3 | 维护-3.10 |
进行中(测试版)
这些操作系统仍处于测试状态。它们正在开发中,已知缺少一些功能。安装程序中的项目可能与现有程序冲突或无法安装,直到状态被删除。
操作系统 | 裂隙分支 | 默认 GNU 无线电版本 |
---|---|---|
没有任何 |
注意:某些软件工具并不适用于所有操作系统。请参阅已知冲突和第三方软件
安装
要将 SSH 密钥添加到 GitHub:
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
git clone https://github.com/ainfosec/FISSURE.git
cd FISSURE
git checkout Python3 # or Python2_maint-3.7
git submodule update --init
./install
笔记:
建议在干净的操作系统上安装 FISSURE,以避免与现有软件发生冲突。将继续进一步努力实现虚拟化和依赖管理。安装程序注意事项:
~/Installed_by_FISSURE
目录下载并安装。 FISSURE 安装程序有助于暂存计算机或安装选定的感兴趣的软件程序。可以快速修改代码以允许自定义软件安装。程序的大小估计是在完整安装之前和之后读取的。每个程序的大小并不准确,因为之前检查的项目中安装了一些依赖项。随着程序的更新,大小也可能会随着时间而变化。
远程传感器节点安装
在通用计算机上照常安装 FISSURE。在远程计算机上与本地计算机相同的目录位置中安装 FISSURE(直至另行通知),以避免某些操作出现文件路径错误。要配置传感器节点以进行远程操作,请编辑./fissure/Sensor_Node/Sensor_Node_Config/
目录中的“default.yaml”文件。编辑以下字段以从本地操作更改为远程操作:
将“autorun”字段从false
更改为true
以在启动时运行默认的自动运行播放列表文件并放弃远程操作。可以从仪表板自动运行选项卡生成并保存新的自动运行播放列表。
远程传感器节点充当服务器,并且必须具有一组与客户端(本地计算机)匹配的有效证书(在安装过程中生成)。服务器需要“server.key_secret”和“client.key”文件,而客户端需要“client.key_secret”和“server.key”文件。如果证书文件夹是在服务器计算机上生成的,则必须手动将客户端文件传输到另一台计算机。
本地仪表板使用情况
打开终端并输入:
fissure
启动 FISSURE 仪表板的预期方法是通过终端,无需 sudo。终端提供某些操作的重要状态和反馈。有关更多详细信息,请参阅 FISSURE 文档。
本地传感器节点可以通过 FISSURE 仪表板的顶部按钮启动,并帮助维护独立工作站上所有预先存在的 FISSURE 功能。目前仅支持 1 个本地传感器节点和 4 个远程传感器节点(或 5 个远程传感器节点)。
如果任何程序冻结或在关闭时挂起,可以使用以下命令来检测问题或强制关闭:
sudo ps -aux | grep python3
sudo pkill python3
sudo kill -9
远程传感器节点使用
配置传感器节点配置文件(见上文)后,可以使用以下命令从根目录运行代码:
python3 ./fissure/Sensor_Node/SensorNode.py
传感器节点代码将保持活动状态,直到应用 ctrl+c。通过 FISSURE 仪表板的顶部按钮连接到远程传感器节点。右键单击顶部按钮将选择一个活动传感器节点来执行操作。未来一次使用多个节点的操作将在各个选项卡中根据具体情况进行处理。
FISSURE 附带了一些有用的指南,可帮助您熟悉不同的技术和技巧。许多包括使用集成到 FISSURE 中的各种工具的步骤。我们的目标是随着时间的推移提高质量并添加新内容。
每年 12 月都会举办一年一度的“FISSURE 挑战”夺旗比赛,展示 FISSURE 的新功能。过去的挑战已存档,全年都可以解决!获得实践经验并查看解决方案:FISSURE Challenge。
强烈鼓励提出改进 FISSURE 的建议。如果您对以下问题有任何想法,请在讨论页面或 Discord 服务器中发表评论:
为改进 FISSURE 做出贡献对于加快其发展至关重要。我们非常感谢您所做的任何贡献。如果您希望通过代码开发做出贡献,请分叉存储库并创建拉取请求:
git checkout -b feature/AmazingFeature
)git commit -m 'Add some AmazingFeature'
)git push origin feature/AmazingFeature
)也欢迎创建问题来引起人们对错误的关注。
需要更具体的想法吗?还有很多话题我们还有待研究。查看我们的潜在待办事项列表。任何帮助表示赞赏。选择一个简单的,并在简历中写下您对 FISSURE 的贡献。
您是一名学生、希望了解有关 RF 和编程的更多信息,还是希望让学生接触开源世界的组织?请立即联系我们并参考 2023 年项目构想清单。
联系 Assured Information Security, Inc. (AIS) 业务开发,提出并正式确定任何 FISSURE 合作机会 - 无论是通过投入时间集成您的软件、让 AIS 的人才为您的技术挑战开发解决方案,还是将 FISSURE 集成到其他领域平台/应用程序。
GPL-3.0
有关许可证详细信息,请参阅许可证文件。
加入 Discord 服务器:https://discord.gg/JZDs5sgxcG
在 Twitter/X 上关注:@FissureRF、@AinfoSec
在 LinkedIn 上连接:FISSURE - RF 框架
Chris Poore - Assured Information Security, Inc. - [email protected]
业务发展 - Assured Information Security, Inc. - [email protected]
特别感谢 Samuel Mantravadi 博士和 Joseph Reith 对此项目的贡献。
就像处理信号、逆向工程或网络安全的其他领域一样?浏览我们当前的空缺职位或加入我们的人才社区以供将来考虑。
如果您对黑客攻击感兴趣,请查看我们的 Can You Hack It?® 挑战并测试您的技能!提交您的分数,向我们展示您的成绩。 AIS 的业务遍及全国,在美国各地设有办事处和远程员工。我们提供有竞争力的薪酬和出色的福利。加入一个不仅致力于网络空间的未来,而且还致力于我们员工的成功的团队。