ShreeVakthi18/Self-healing-file-system-layer
GitHub: ShreeVakthi18/Self-healing-file-system-layer
Stars: 0 | Forks: 0
# SHFSL 2.0 — 自愈文件系统层
**拦截. 检测. 回滚. 零延迟文件保护,带实时 Streamlit 可视化。**
   
### 文件完整性保护中的未解问题: 现代数据保护系统旨在检测和记录安全事件,而不是逆转其影响。一旦攻击到达文件系统,无论是勒索软件还是恶意内部人员活动,损害往往已经在进行中或完成。 现有系统的核心限制: **检测但无动作:** 防病毒软件、EDR 系统和防火墙等安全工具能够有效识别入侵并生成告警,但它们通常不提供在妥协后恢复受影响数据状态的机制。 **备份延迟缺口:** 传统备份系统按计划间隔运行。如果破坏性事件发生在备份周期之间,则在此窗口内所做的任何更改都无法恢复。 **被动文件系统行为:** 常规文件系统在执行文件操作时缺乏上下文感知,对所有写入和删除操作同等对待,这使得恶意进程可以在无干预的情况下覆盖或销毁有效数据。 **内部威胁限制:** 授权用户可以使用有效凭证执行破坏性操作。这类操作往往绕过传统检测系统,直到数据丢失已经发生。 ### 解决方案概述: 自愈文件系统层(SHFSL 2.0)是一个主动的、用户空间的安全守护进程,旨在将被动文件系统转变为主动自防御基础设施。与传统的反应式安全不同,该系统专注于在威胁被识别的瞬间立即恢复数据完整性。 系统通过四个核心技术支柱运行: **实时事件拦截:** 利用高性能监控机制,以零延迟开销监视受保护目录中的每一个文件事件——创建、修改、移动或删除。 **智能签名分析:** 不依赖广泛的启发式扫描,每个事件都会通过专用逻辑引擎进行过滤,以识别特定恶意行为: **勒索软件指纹识别:** 检测未经授权的文件扩展名更改和快速加密模式。 **诱饵/蜜罐触发:** 监控“陷阱”文件,一旦触碰即提供入侵或内部威胁的确凿证据。 **敏感资产保护:** 识别关键系统与项目文件的 targeted 移除或篡改。 **不可变版本控制与回滚:** 系统维护一个安全的隔离快照目录。一旦检测到威胁,受损文件会被立即清除并替换为其最新的“干净”版本,确保数据丢失窗口接近零。 **实时可视化与告警:** 集中式仪表板提供文件系统健康的实时热图,同时自动化管理模块分发高优先级 SMTP 告警,确保安全团队在系统自愈的同时完全知情。 ### 整体系统架构
该系统使用高速 Watchdog 监控器拦截实时 I/O 事件,并通过智能核心识别勒索软件和内部威胁。
检测到的异常会触发回滚引擎,该引擎立即使用来自受保护的不可变保护库的时间戳快照恢复受损数据。
集中的 Streamlit 命令中心提供实时威胁遥测和风险评分,而 SMTP 模块确保即时的管理升级。
### 系统模块
## 1. 文件系统监控器 — “观察者”
**核心功能:**
观察者是 SHFSL 2.0 的第一层,旨在观察文件系统活动而非事后补救。它持续运行在所有被监控目录之上,实时捕获每一个文件操作。创建、修改、删除和移动事件会被立即拦截并转发进行分析,使系统能够无延迟地响应可疑行为,包括勒索软件风格的活动。
**操作流程**
**步骤 1:持续事件监听**
观察者作为文件系统事件流的持久监听器运行。它不是主动扫描文件,而是在文件操作发生时被动接收操作系统级通知。
**步骤 2:事件捕获**
在每次文件交互时,观察者提取结构化元数据,包括:
文件路径
操作类型(创建、修改、删除、移动)
时间戳
源与目标(如适用)
**步骤 3:噪声过滤**
过滤层移除非关键系统活动,例如临时文件、缓存更新和后台应用工件。这确保只有有意义的事件被下游处理。
**步骤 4:回滚状态感知**
在主动恢复操作期间,系统标志(`is_rolling_back`)会暂时禁用事件传播。这可防止恢复操作被误解释为新的文件系统攻击。
**步骤 5:事件转发**
经过验证的事件会立即转发到逻辑引擎进行威胁分类和响应执行。此交接设计为极低延迟,以实现近乎即时的反应。
**示例场景**
如果勒索软件进程将 `Financial_Records.xlsx` 重命名为 `Financial_Records.xlsx.enc`:
观察者实时检测到文件移动事件
`.enc` 扩展名被标记为高危模式
事件元数据转发至逻辑引擎
系统使用最新的不可变快照触发回滚,在加密传播前恢复原始文件
**架构:**
## 2. 模式检测与回滚引擎(“逻辑”)
**核心功能:**
逻辑引擎是 SHFSL 2.0 的大脑。它读取来自观察者的实时事件流,以区分正常用户活动与真实攻击。一旦确认威胁,它会立即采取行动——中和损害并恢复文件,无需等待人工介入。
**操作:**
**1. 诱饵监控(蜜罐陷阱)**
**模式识别**
对蜜罐文件的任何修改或删除会被立即归类为 `HIGH_DECOY_ALERT`。
由于合法用户没有任何理由触碰这些文件,因此每一次触发都确认为一次违规,零误报。
**回滚引擎**
被篡改的诱饵会立即被删除。
干净原始版本会从最新的不可变快照中恢复。
高优先级告警邮件会实时分发给管理员。
恢复完成后监控自动恢复。
**示例**
一个脚本扫描所有文件夹时偶然碰到隐藏的诱饵文件。引擎会捕获触碰行为,移除威胁并立即替换诱饵——在脚本进一步行动之前。
**2. 勒索软件检测(模式匹配)**
**模式识别**
任何创建或修改时携带已知勒索软件扩展名(`.lock`、`.encrypted`、`.ransom`、`.crypted`)的文件会被立即归类为 `HIGH_RANSOMWARE_ROLLBACK`。
引擎还会检测中间注入的名称,如 `report.lock.xlsx`,而不仅仅是尾部扩展名。
**回滚引擎**
带有勒索软件扩展名的文件会立即被删除。
原始文件名通过剥离恶意扩展名来恢复——`report.xlsx.lock` 恢复为 `report.xlsx`。
从最新快照恢复干净版本到恢复后的路径。
在恢复期间,特殊标志会暂时静默观察者,以防止级联假事件循环。
**示例**
勒索软件将文件重命名为 `Final_Thesis.pdf.crypt`。引擎识别扩展名,删除加密版本,并在毫秒级恢复原始 PDF——在攻击触及下一个文件之前。
**3. 高敏感删除防护(资产保护)**
**模式识别**
对保护列表中文件的任何删除会被立即归类为 `HIGH_SENSITIVE_DELETION`。
由于删除可能是故意的,引擎会谨慎处理而非自动执行。
**回滚引擎**
不会触发自动回滚,以避免干扰合法用户操作。
会立即向管理员分发 `HIGH_SENSITIVE_DELETION` 告警。
干净的分版本快照在存储中保留,等待管理员批准后手动恢复。
**示例**
用户意外删除核心数据库文件。系统不会强制立即恢复,但立即向管理员发出紧急告警,管理员可从快照库一键恢复。
**架构:**
## 3. 版本控制系统(“快照”)
**核心功能**
快照系统是 SHFSL 2.0 的记忆。每次被监控文件被修改时,其干净状态的精确副本会被捕获并锁定在完全隔离的目录中——与正在被监视的文件完全分离。与每天运行一次的调度备份不同,快照在干净版本存在的精确时刻持续捕获。
**操作:稳定性与效率**
**诱饵文件**
每次诱饵被修改时都会写入一个新快照,确保保险库中始终备有最新的干净诱饵版本。
由于没有合法进程会触碰诱饵文件,快照池保持精简且无杂乱——其中每个版本都是已验证的干净状态。
达到版本限制后,旧诱饵快照会自动修剪,无需人工干预。
**勒索软件文件**
在每次干净修改时都会捕获一个带时间戳的快照,确保保险库中始终保存加密尝试之前最新的安全版本。
在勒索软件活动期间生成的临时文件和锁定文件会被显式过滤,只有真正的干净状态才会进入快照池。
达到版本限制后,最旧的快照会在后台线程中轮换;实时管道在清理期间不会被阻塞或减速。
**敏感文件**
每次修改都会产生一个新的版本化快照,构建文件随时间推移的干净状态完整历史记录。
会保留多个版本以适应配置的最大值,为管理员提供一系列干净恢复点,而不仅限于最新一个。
修剪在后台静默运行,自动归档旧版本以优化存储,无需管理员介入。
**示例**
`Server_Inventory.xlsx` 被合法用户修改三次,每次更改都会静默生成一个带时间戳的新快照存档在保险库中。当勒索软件将其重命名为 `Server_Inventory.xlsx.lock` 时,回滚引擎提取最新的干净副本,删除恶意文件,并在毫秒级恢复原始文件——仿佛攻击从未发生。
**架构:**
## 4. 诱饵文件系统(“蜜罐”)
**核心功能**
诱饵文件系统是 SHFSL 2.0 的绊线。植入名称模仿真实关键资产的蜜罐文件——如 `CEO_Contract.docx`、`API_Keys_Internal.json`、`Finance_Report_Q3.xlsx`——它们没有任何操作用途,唯一的工作就是被触碰,因为任何触碰都立即确认为威胁。
**操作**
**零模糊性**
由于没有合法用户或授权进程有理由与蜜罐文件交互,因此任何修改或删除都视为已确认违规——无需进一步验证。
**即时分类**
蜜罐被触碰的瞬间,事件会被立即归类为 `HIGH_DECOY_ALERT`——系统中最高置信度的威胁分类。
**自动恢复**
自动回滚会立即触发,将诱饵恢复到原始状态并重置陷阱以备下次尝试。
**示例**
**场景**
一名拥有有效凭证的内部人员开始扫描被监控目录,寻找要外泄的敏感文档。
**触发**
他们打开并修改了 `CEO_Contract.docx`——一个专门设计用来捕捉此类行为的蜜罐文件。
**检测**
观察者立即拦截修改并将其分类为 `HIGH_DECOY_ALERT`,零模糊性。
**响应**
被篡改的文件被删除,干净原始版本从最新快照恢复,并向管理员发出高优先级告警——全部在毫秒级完成,防止内部人员接触其他文件。
**架构:**
## 5. 管理员模块
**核心功能**
管理员模块是 SHFSL 2.0 的通信枢纽。虽然系统其余部分自主运行,但该模块确保关键事件发生时立即通知相关人员——以精确、可操作的告警确保管理员始终掌握情况,无论身在何处。
**操作**
**即时告警**
每个高严重性事件——勒索软件检测、诱饵篡改或敏感文件删除——都会触发立即路由到配置管理员的告警。
**非阻塞投递**
告警在后台线程中分发,确保邮件发送不会阻塞或减慢实时事件管道。
**集中配置**
整个系统通过单个 `config.json` 文件控制,涵盖快照存储路径、日志文件路径以及所有邮件路由参数。
**示例**
**场景**
勒索软件在夜间开始加密被监控目录中的文件,此时终端无人值守。
**触发**
`Server_Inventory.xlsx` 被重命名为 `Server_Inventory.xlsx.lock`——立即被归类为 `HIGH_RANSOMWARE_ROLLBACK`。
**响应**
回滚引擎删除恶意文件并从快照库恢复干净原始文件。同时,格式化的 HTML 告警发送至管理员邮箱——包含文件名、威胁类型、系统操作及时间戳,确保管理员收件箱打开即可验证恢复。
**架构**
## 6. 可视化与仪表板层
**核心功能**
仪表板是 SHFSL 2.0 的控制室。引擎背后每一次检测、回滚和告警都会在此实时呈现——为管理员提供系统正在执行操作的实时可视化视图。黑暗中的操作不复存在。
**操作**
**实时自动刷新**
基于 Streamlit 的界面每两秒自动刷新,从观察者日志和活动日志拉取最新事件数据,无需人工输入。
**实时事件追踪**
每一个文件事件——创建、修改或删除——都会以实时网格形式显示,附带其分类、风险结果和当前风险评分。
**动态严重性感知**
仪表板根据最新日志条目读取严重性,并相应调整页面顶部的告警条——从全清状态的稳定绿色到已确认违规的闪烁红色。
**示例**
**场景**
勒索软件在非办公时间开始重命名被监控目录中的文件,此时终端无人值守。
**触发**
`Server_Inventory.xlsx` 被重命名为 `Server_Inventory.xlsx.lock`——立即被归类为 `HIGH_RANSOMWARE_ROLLBACK`。
**响应**
告警条切换为闪烁红色,实时网格更新并将恶意文件名以深红色高亮,活动日志前置一条已确认的回滚记录,系统指标中的勒索软件计数器递增——在下一个两秒刷新周期内,管理员即可完整了解发生了什么以及系统如何处理。
### 工作流程
## 观察者初始化
### 启动时发生了什么
| 步骤 | 操作 |
|------|------|
| **注册表加载** | 所有分类的文件层级——`DECOY`、`SENSITIVE` 和 `REAL`——加载到事件注册表 |
| **观察者注册** | Watchdog 观察者递归注册在整个被监控根目录之上 |
| **标志初始化** | `is_rolling_back` 标志设为 `False`——系统就绪,无活动回滚 |
| **实时拦截** | 实时事件捕获激活——从此无轮询延迟 |
### 场景 1 — 诱饵文件被篡改
#### 模式识别
**触发了什么**
| 事件 | 详情 |
|------|------|
| **目标文件** | `CEO_Contract.docx` — 分类为 `DECOY` |
| **触发** | 观察者拦截 `FileModifiedEvent` |
| **分类** | `HIGH_DECOY_ALERT` — 最高置信度威胁级别 |
| **告警** | 实时 HTML 邮件发送至 `vakthishree@gmail.com` |
**为何这是零模糊性检测**
没有合法进程有理由触碰诱饵文件。无需行为分析——分类即时且最终。
#### 回滚引擎
**执行了什么**
| 步骤 | 操作 |
|------|------|
| **静默** | 设置 `is_rolling_back` 标志为 `True` — 观察者静默 |
| **清除** | 删除被篡改的 `CEO_Contract.docx` |
| **恢复** | 从最新快照原子化恢复干净版本 |
| **恢复** | 重置 `is_rolling_back` 标志为 `False` — 观察者恢复 |
| **速度** | 完整序列在毫秒级完成 |
### 场景 2 — 勒索软件攻击
#### 模式识别
**触发了什么**
| 事件 | 详情 |
|------|------|
| **目标文件** | `Server_Inventory.xlsx` 重命名为 `Server_Inventory.lock.xlsx` |
| **触发** | 观察者拦截 `FileCreatedEvent` 在重命名文件上 |
| **签名匹配** | `.lock` 扩展名匹配已知勒索软件签名 |
| **分类** | `HIGH_RANSOMWARE_ROLLBACK` — 系统中最高严重级别 |
| **风险评分** | 累计风险评分飙升至 `100/100` |
| **告警** | 立即分发现场告警 |
#### 回滚引擎
**执行了什么**
| 步骤 | 操作 |
|------|------|
| **静默** | 设置 `is_rolling_back` 标志为 `True` — 观察者静默 |
| **清除** | 删除恶意文件 `Server_Inventory.lock.xlsx` |
| **恢复** | 通过剥离勒索软件扩展名恢复原始文件名 `Server_Inventory.xlsx` |
| **恢复** | 从最新快照原子化恢复干净版本到恢复路径 |
| **恢复** | 重置 `is_rolling_back` 标志为 `False` — 观察者恢复 |
| **包含** | 加密在传播到相邻文件前被阻止 |
### 场景 3 — 高敏感文件删除
#### 模式识别
**触发了什么**
| 事件 | 详情 |
|------|------|
| **目标文件** | `Roadmap_2025.docx` — 预分类为 `SENSITIVE` |
| **触发** | 观察者拦截 `FileDeletedEvent` |
| **分类** | `HIGH_SENSITIVE_DELETION` |
| **风险评分** | 累计风险评分升级至 `85/100` |
| **判断** | 不自动回滚 — 删除可能是合法授权操作,人工判断保留 |
#### 回滚引擎
**执行了什么**
| 步骤 | 操作 |
|------|------|
| **无自动恢复** | 刻意不执行自动化文件恢复 |
| **告警** | 立即向管理员分发 `HIGH_SENSITIVE_DELETION` 告警 |
| **快照** | `Roadmap_2025.docx` 的干净版本化副本在快照存储中保留 |
| **升级** | 事件标记为需要管理员审查和手动恢复批准 |
## 版本控制系统 — 快照证据
### 诱饵文件恢复
**快照目录确认的证据**
| 证据 | 详情 |
|------|------|
| **版本** | 多个不可变版本化的 `CEO_Contract.docx` 副本存在于受保护的存储中 |
| **时间戳** | 每个副本都带有毫秒级时间戳 |
| **恢复来源** | 最新干净快照确认为回滚所用版本 |
| **完整性** | 证明回滚正确执行至最后信任状态 |
### 勒索软件文件恢复
**快照目录确认的证据**
| 证据 | 详情 |
|------|------|
| **捕获** | 勒索软件重命名的 `Server_Inventory.lock.xlsx` 存在于快照序列中 |
| **恢复** | 紧接着是两个干净版本化的 `Server_Inventory.xlsx` |
| **文件名** | 确认正确恢复文件名 — 恶意扩展名已成功剥离 |
| **流水线** | 按时间顺序验证完整的检测至恢复序列 |
### 敏感文件恢复
**快照目录确认的证据**
| 证据 | 详情 |
|------|------|
| **版本** | 两个干净不可变的 `Roadmap_2025.docx` 版本副本保存在快照存储中 |
| **待处理** | 两者均可用于管理员批准后的手动恢复 |
| **时间戳** | 毫秒级时间戳确认捕获发生在删除事件之前 |
## 管理员模块 — 实时告警
### 每个高严重性事件的告警内容
| 字段 | 详情 |
|------|------|
| **文件** | 涉及事件的文件名 |
| **分类** | 事件类型与严重性分类 |
| **操作** | 系统采取的操作 |
| **时间戳** | 精确到毫秒的时间戳 |
### 诱饵篡改告警
| 确认 | 详情 |
|------|------|
| **目标** | 被触碰的蜜罐文件 |
| **分类** | `HIGH_DECOY_ALERT` 已确认 |
| **操作** | 自动回滚已在告警到达前执行 |
### 勒索软件检测告警
| 确认 | 详情 |
|------|------|
| **目标** | 检测到的勒索软件命名文件 |
| **分类** | `HIGH_RANSOMWARE_ROLLBACK` 已确认 |
| **操作** | 成功恢复文件至原始干净状态 |
### 敏感文件删除告警
| 确认 | 详情 |
|------|------|
| **目标** | 被删除的 `SENSITIVE` 文件 |
| **分类** | `HIGH_SENSITIVE_DELETION` 已确认 |
| **下一步** | 提示管理员进行手动审查和恢复批准 |
## 可视化与仪表板
### 实时活动流
| 功能 | 详情 |
|------|------|
| **事件日志** | 所有系统事件的旋转式时间顺序日志 |
| **实时性** | 每个文件事件、威胁分类、风险评分更新和回滚确认即时显示 |
| **颜色编码** | 高可见性配色方案 — 关键事件使用亮粉色和黄色 |
### 诱饵事件
| 功能 | 详情 |
|------|------|
| **记录** | 每个蜜罐触碰事件即时记录 |
| **分类** | `HIGH_DECOY_ALERT` 显示并附带自动回滚确认 |
| **可见性** | 以最大可见性配色突出显示 |
### 勒索软件检测
| 功能 | 详情 |
|------|------|
| **实时性** | 恶意文件扩展名被拦截的瞬间显示 |
| **恢复** | 恢复后的原始文件名显示在勒索软件命名文件旁边 |
| **确认** | `AUTOMATIC ROLLBACK SUCCESSFUL` 显著显示 |
### 敏感文件告警
| 功能 | 详情 |
|------|------|
| **标记** | `HIGH_SENSITIVE_DELETION` 事件标记为需要人工审查 |
| **日志** | 完整的事故事件流保留 |
| **升级** | 升级状态清晰呈现给管理员 |
## 威胁响应参考
| 威胁 | 检测方法 | 自动响应 | 管理员告警 |
|------|----------|----------|------------|
| **勒索软件** | `.lock` `.encrypted` `.ransom` `.crypted` 扩展名检测 | 恶意文件删除,原始文件名恢复,最新的干净快照原子化恢复 | 是 — 附带回滚确认 |
| **诱饵篡改** | 任何与 `DECOY` 分类文件的交互 | 诱饵删除,立即从快照恢复 | 是 — 最高优先级 |
| **敏感文件删除** | 删除 `SENSITIVE` 分类资产 | 不自动回滚,快照保留供手动恢复 | 是 — 提示人工审查 |
## 自适应风险评分 每个被监控文件都携带一个累计风险评分,会随事件累积。 高严重性检测会导致评分飙升 — `HIGH_RANSOMWARE_ROLLBACK` 推至 100,`HIGH_SENSITIVE_DELETION` 推至 85。 硬上限为 100。 跨会话持续存在,作为每个文件的逐行为信号,有助于识别被反复针对的文件和目录。
## 技术栈 | 层 | 技术 | |----|------| | **文件事件监控** | Python watchdog 库 | | **模式检测引擎** | 自定义基于规则的分类器 | | **快照与版本控制** | Python 文件系统操作,毫秒级时间戳 | | **邮件告警** | 通过 Gmail 应用密码认证的 SMTP | | **实时仪表板** | Streamlit,附带高对比度严重性配色 | | **系统配置** | 单一 `config.json` 文件 |
## 后续增强 - **基于 ML 的威胁检测** 用训练好的模型替换固定规则逻辑,以识别新型和零日攻击模式。 - **区块链快照存储** 将回滚历史存储在不可变的区块链账本中,确保可审计性和取证完整性。 - **云集成** 扩展快照存储支持至 AWS S3、Azure Blob Storage 和 Google Cloud Platform,适用于可扩展的分布式环境。 - **跨平台支持** 将兼容性从 Linux 扩展到 Windows(NTFS)和 macOS(HFS+)文件系统。 - **用户行为分析(UBA)** 跟踪每个用户的文件访问模式,通过行为偏差和异常检测识别内部威胁。 - **自动化事件响应** 启用自动遏制操作,如目录隔离和进程终止,无需人工批准。 ## 快速开始 ``` # 克隆仓库 git clone https://github.com/ShreeVakthi18/Self-healing-file-system-layer.git cd Self-healing-file-system-layer # 安装依赖 pip install watchdog streamlit # 配置系统 # 打开 config.json 并设置您的凭据 { "ADMIN_CONFIG": { "SENDER_EMAIL": "admin.security@shfsl.com", "RECEIVER_EMAIL": "vakthishree@gmail.com", "SENDER_PASSWORD": "your-gmail-app-password", "EMAIL_SERVER": "smtp.gmail.com" } } # 启动监视器 python watcher.py # 在第二个终端启动实时仪表板 streamlit run dashboard.py ``` ## 作者 由 **Shree vakthi** 构建,作为一项安全研究项目。
   
### 文件完整性保护中的未解问题: 现代数据保护系统旨在检测和记录安全事件,而不是逆转其影响。一旦攻击到达文件系统,无论是勒索软件还是恶意内部人员活动,损害往往已经在进行中或完成。 现有系统的核心限制: **检测但无动作:** 防病毒软件、EDR 系统和防火墙等安全工具能够有效识别入侵并生成告警,但它们通常不提供在妥协后恢复受影响数据状态的机制。 **备份延迟缺口:** 传统备份系统按计划间隔运行。如果破坏性事件发生在备份周期之间,则在此窗口内所做的任何更改都无法恢复。 **被动文件系统行为:** 常规文件系统在执行文件操作时缺乏上下文感知,对所有写入和删除操作同等对待,这使得恶意进程可以在无干预的情况下覆盖或销毁有效数据。 **内部威胁限制:** 授权用户可以使用有效凭证执行破坏性操作。这类操作往往绕过传统检测系统,直到数据丢失已经发生。 ### 解决方案概述: 自愈文件系统层(SHFSL 2.0)是一个主动的、用户空间的安全守护进程,旨在将被动文件系统转变为主动自防御基础设施。与传统的反应式安全不同,该系统专注于在威胁被识别的瞬间立即恢复数据完整性。 系统通过四个核心技术支柱运行: **实时事件拦截:** 利用高性能监控机制,以零延迟开销监视受保护目录中的每一个文件事件——创建、修改、移动或删除。 **智能签名分析:** 不依赖广泛的启发式扫描,每个事件都会通过专用逻辑引擎进行过滤,以识别特定恶意行为: **勒索软件指纹识别:** 检测未经授权的文件扩展名更改和快速加密模式。 **诱饵/蜜罐触发:** 监控“陷阱”文件,一旦触碰即提供入侵或内部威胁的确凿证据。 **敏感资产保护:** 识别关键系统与项目文件的 targeted 移除或篡改。 **不可变版本控制与回滚:** 系统维护一个安全的隔离快照目录。一旦检测到威胁,受损文件会被立即清除并替换为其最新的“干净”版本,确保数据丢失窗口接近零。 **实时可视化与告警:** 集中式仪表板提供文件系统健康的实时热图,同时自动化管理模块分发高优先级 SMTP 告警,确保安全团队在系统自愈的同时完全知情。 ### 整体系统架构
该系统使用高速 Watchdog 监控器拦截实时 I/O 事件,并通过智能核心识别勒索软件和内部威胁。
检测到的异常会触发回滚引擎,该引擎立即使用来自受保护的不可变保护库的时间戳快照恢复受损数据。
集中的 Streamlit 命令中心提供实时威胁遥测和风险评分,而 SMTP 模块确保即时的管理升级。
### 系统模块
## 1. 文件系统监控器 — “观察者”
**核心功能:**
观察者是 SHFSL 2.0 的第一层,旨在观察文件系统活动而非事后补救。它持续运行在所有被监控目录之上,实时捕获每一个文件操作。创建、修改、删除和移动事件会被立即拦截并转发进行分析,使系统能够无延迟地响应可疑行为,包括勒索软件风格的活动。
**操作流程**
**步骤 1:持续事件监听**
观察者作为文件系统事件流的持久监听器运行。它不是主动扫描文件,而是在文件操作发生时被动接收操作系统级通知。
**步骤 2:事件捕获**
在每次文件交互时,观察者提取结构化元数据,包括:
文件路径
操作类型(创建、修改、删除、移动)
时间戳
源与目标(如适用)
**步骤 3:噪声过滤**
过滤层移除非关键系统活动,例如临时文件、缓存更新和后台应用工件。这确保只有有意义的事件被下游处理。
**步骤 4:回滚状态感知**
在主动恢复操作期间,系统标志(`is_rolling_back`)会暂时禁用事件传播。这可防止恢复操作被误解释为新的文件系统攻击。
**步骤 5:事件转发**
经过验证的事件会立即转发到逻辑引擎进行威胁分类和响应执行。此交接设计为极低延迟,以实现近乎即时的反应。
**示例场景**
如果勒索软件进程将 `Financial_Records.xlsx` 重命名为 `Financial_Records.xlsx.enc`:
观察者实时检测到文件移动事件
`.enc` 扩展名被标记为高危模式
事件元数据转发至逻辑引擎
系统使用最新的不可变快照触发回滚,在加密传播前恢复原始文件
**架构:**
## 2. 模式检测与回滚引擎(“逻辑”)
**核心功能:**
逻辑引擎是 SHFSL 2.0 的大脑。它读取来自观察者的实时事件流,以区分正常用户活动与真实攻击。一旦确认威胁,它会立即采取行动——中和损害并恢复文件,无需等待人工介入。
**操作:**
**1. 诱饵监控(蜜罐陷阱)**
**模式识别**
对蜜罐文件的任何修改或删除会被立即归类为 `HIGH_DECOY_ALERT`。
由于合法用户没有任何理由触碰这些文件,因此每一次触发都确认为一次违规,零误报。
**回滚引擎**
被篡改的诱饵会立即被删除。
干净原始版本会从最新的不可变快照中恢复。
高优先级告警邮件会实时分发给管理员。
恢复完成后监控自动恢复。
**示例**
一个脚本扫描所有文件夹时偶然碰到隐藏的诱饵文件。引擎会捕获触碰行为,移除威胁并立即替换诱饵——在脚本进一步行动之前。
**2. 勒索软件检测(模式匹配)**
**模式识别**
任何创建或修改时携带已知勒索软件扩展名(`.lock`、`.encrypted`、`.ransom`、`.crypted`)的文件会被立即归类为 `HIGH_RANSOMWARE_ROLLBACK`。
引擎还会检测中间注入的名称,如 `report.lock.xlsx`,而不仅仅是尾部扩展名。
**回滚引擎**
带有勒索软件扩展名的文件会立即被删除。
原始文件名通过剥离恶意扩展名来恢复——`report.xlsx.lock` 恢复为 `report.xlsx`。
从最新快照恢复干净版本到恢复后的路径。
在恢复期间,特殊标志会暂时静默观察者,以防止级联假事件循环。
**示例**
勒索软件将文件重命名为 `Final_Thesis.pdf.crypt`。引擎识别扩展名,删除加密版本,并在毫秒级恢复原始 PDF——在攻击触及下一个文件之前。
**3. 高敏感删除防护(资产保护)**
**模式识别**
对保护列表中文件的任何删除会被立即归类为 `HIGH_SENSITIVE_DELETION`。
由于删除可能是故意的,引擎会谨慎处理而非自动执行。
**回滚引擎**
不会触发自动回滚,以避免干扰合法用户操作。
会立即向管理员分发 `HIGH_SENSITIVE_DELETION` 告警。
干净的分版本快照在存储中保留,等待管理员批准后手动恢复。
**示例**
用户意外删除核心数据库文件。系统不会强制立即恢复,但立即向管理员发出紧急告警,管理员可从快照库一键恢复。
**架构:**
## 3. 版本控制系统(“快照”)
**核心功能**
快照系统是 SHFSL 2.0 的记忆。每次被监控文件被修改时,其干净状态的精确副本会被捕获并锁定在完全隔离的目录中——与正在被监视的文件完全分离。与每天运行一次的调度备份不同,快照在干净版本存在的精确时刻持续捕获。
**操作:稳定性与效率**
**诱饵文件**
每次诱饵被修改时都会写入一个新快照,确保保险库中始终备有最新的干净诱饵版本。
由于没有合法进程会触碰诱饵文件,快照池保持精简且无杂乱——其中每个版本都是已验证的干净状态。
达到版本限制后,旧诱饵快照会自动修剪,无需人工干预。
**勒索软件文件**
在每次干净修改时都会捕获一个带时间戳的快照,确保保险库中始终保存加密尝试之前最新的安全版本。
在勒索软件活动期间生成的临时文件和锁定文件会被显式过滤,只有真正的干净状态才会进入快照池。
达到版本限制后,最旧的快照会在后台线程中轮换;实时管道在清理期间不会被阻塞或减速。
**敏感文件**
每次修改都会产生一个新的版本化快照,构建文件随时间推移的干净状态完整历史记录。
会保留多个版本以适应配置的最大值,为管理员提供一系列干净恢复点,而不仅限于最新一个。
修剪在后台静默运行,自动归档旧版本以优化存储,无需管理员介入。
**示例**
`Server_Inventory.xlsx` 被合法用户修改三次,每次更改都会静默生成一个带时间戳的新快照存档在保险库中。当勒索软件将其重命名为 `Server_Inventory.xlsx.lock` 时,回滚引擎提取最新的干净副本,删除恶意文件,并在毫秒级恢复原始文件——仿佛攻击从未发生。
**架构:**
## 4. 诱饵文件系统(“蜜罐”)
**核心功能**
诱饵文件系统是 SHFSL 2.0 的绊线。植入名称模仿真实关键资产的蜜罐文件——如 `CEO_Contract.docx`、`API_Keys_Internal.json`、`Finance_Report_Q3.xlsx`——它们没有任何操作用途,唯一的工作就是被触碰,因为任何触碰都立即确认为威胁。
**操作**
**零模糊性**
由于没有合法用户或授权进程有理由与蜜罐文件交互,因此任何修改或删除都视为已确认违规——无需进一步验证。
**即时分类**
蜜罐被触碰的瞬间,事件会被立即归类为 `HIGH_DECOY_ALERT`——系统中最高置信度的威胁分类。
**自动恢复**
自动回滚会立即触发,将诱饵恢复到原始状态并重置陷阱以备下次尝试。
**示例**
**场景**
一名拥有有效凭证的内部人员开始扫描被监控目录,寻找要外泄的敏感文档。
**触发**
他们打开并修改了 `CEO_Contract.docx`——一个专门设计用来捕捉此类行为的蜜罐文件。
**检测**
观察者立即拦截修改并将其分类为 `HIGH_DECOY_ALERT`,零模糊性。
**响应**
被篡改的文件被删除,干净原始版本从最新快照恢复,并向管理员发出高优先级告警——全部在毫秒级完成,防止内部人员接触其他文件。
**架构:**
## 5. 管理员模块
**核心功能**
管理员模块是 SHFSL 2.0 的通信枢纽。虽然系统其余部分自主运行,但该模块确保关键事件发生时立即通知相关人员——以精确、可操作的告警确保管理员始终掌握情况,无论身在何处。
**操作**
**即时告警**
每个高严重性事件——勒索软件检测、诱饵篡改或敏感文件删除——都会触发立即路由到配置管理员的告警。
**非阻塞投递**
告警在后台线程中分发,确保邮件发送不会阻塞或减慢实时事件管道。
**集中配置**
整个系统通过单个 `config.json` 文件控制,涵盖快照存储路径、日志文件路径以及所有邮件路由参数。
**示例**
**场景**
勒索软件在夜间开始加密被监控目录中的文件,此时终端无人值守。
**触发**
`Server_Inventory.xlsx` 被重命名为 `Server_Inventory.xlsx.lock`——立即被归类为 `HIGH_RANSOMWARE_ROLLBACK`。
**响应**
回滚引擎删除恶意文件并从快照库恢复干净原始文件。同时,格式化的 HTML 告警发送至管理员邮箱——包含文件名、威胁类型、系统操作及时间戳,确保管理员收件箱打开即可验证恢复。
**架构**
## 6. 可视化与仪表板层
**核心功能**
仪表板是 SHFSL 2.0 的控制室。引擎背后每一次检测、回滚和告警都会在此实时呈现——为管理员提供系统正在执行操作的实时可视化视图。黑暗中的操作不复存在。
**操作**
**实时自动刷新**
基于 Streamlit 的界面每两秒自动刷新,从观察者日志和活动日志拉取最新事件数据,无需人工输入。
**实时事件追踪**
每一个文件事件——创建、修改或删除——都会以实时网格形式显示,附带其分类、风险结果和当前风险评分。
**动态严重性感知**
仪表板根据最新日志条目读取严重性,并相应调整页面顶部的告警条——从全清状态的稳定绿色到已确认违规的闪烁红色。
**示例**
**场景**
勒索软件在非办公时间开始重命名被监控目录中的文件,此时终端无人值守。
**触发**
`Server_Inventory.xlsx` 被重命名为 `Server_Inventory.xlsx.lock`——立即被归类为 `HIGH_RANSOMWARE_ROLLBACK`。
**响应**
告警条切换为闪烁红色,实时网格更新并将恶意文件名以深红色高亮,活动日志前置一条已确认的回滚记录,系统指标中的勒索软件计数器递增——在下一个两秒刷新周期内,管理员即可完整了解发生了什么以及系统如何处理。
### 工作流程
## 观察者初始化
### 启动时发生了什么
| 步骤 | 操作 |
|------|------|
| **注册表加载** | 所有分类的文件层级——`DECOY`、`SENSITIVE` 和 `REAL`——加载到事件注册表 |
| **观察者注册** | Watchdog 观察者递归注册在整个被监控根目录之上 |
| **标志初始化** | `is_rolling_back` 标志设为 `False`——系统就绪,无活动回滚 |
| **实时拦截** | 实时事件捕获激活——从此无轮询延迟 |
### 场景 1 — 诱饵文件被篡改
#### 模式识别
**触发了什么**
| 事件 | 详情 |
|------|------|
| **目标文件** | `CEO_Contract.docx` — 分类为 `DECOY` |
| **触发** | 观察者拦截 `FileModifiedEvent` |
| **分类** | `HIGH_DECOY_ALERT` — 最高置信度威胁级别 |
| **告警** | 实时 HTML 邮件发送至 `vakthishree@gmail.com` |
**为何这是零模糊性检测**
没有合法进程有理由触碰诱饵文件。无需行为分析——分类即时且最终。
#### 回滚引擎
**执行了什么**
| 步骤 | 操作 |
|------|------|
| **静默** | 设置 `is_rolling_back` 标志为 `True` — 观察者静默 |
| **清除** | 删除被篡改的 `CEO_Contract.docx` |
| **恢复** | 从最新快照原子化恢复干净版本 |
| **恢复** | 重置 `is_rolling_back` 标志为 `False` — 观察者恢复 |
| **速度** | 完整序列在毫秒级完成 |
### 场景 2 — 勒索软件攻击
#### 模式识别
**触发了什么**
| 事件 | 详情 |
|------|------|
| **目标文件** | `Server_Inventory.xlsx` 重命名为 `Server_Inventory.lock.xlsx` |
| **触发** | 观察者拦截 `FileCreatedEvent` 在重命名文件上 |
| **签名匹配** | `.lock` 扩展名匹配已知勒索软件签名 |
| **分类** | `HIGH_RANSOMWARE_ROLLBACK` — 系统中最高严重级别 |
| **风险评分** | 累计风险评分飙升至 `100/100` |
| **告警** | 立即分发现场告警 |
#### 回滚引擎
**执行了什么**
| 步骤 | 操作 |
|------|------|
| **静默** | 设置 `is_rolling_back` 标志为 `True` — 观察者静默 |
| **清除** | 删除恶意文件 `Server_Inventory.lock.xlsx` |
| **恢复** | 通过剥离勒索软件扩展名恢复原始文件名 `Server_Inventory.xlsx` |
| **恢复** | 从最新快照原子化恢复干净版本到恢复路径 |
| **恢复** | 重置 `is_rolling_back` 标志为 `False` — 观察者恢复 |
| **包含** | 加密在传播到相邻文件前被阻止 |
### 场景 3 — 高敏感文件删除
#### 模式识别
**触发了什么**
| 事件 | 详情 |
|------|------|
| **目标文件** | `Roadmap_2025.docx` — 预分类为 `SENSITIVE` |
| **触发** | 观察者拦截 `FileDeletedEvent` |
| **分类** | `HIGH_SENSITIVE_DELETION` |
| **风险评分** | 累计风险评分升级至 `85/100` |
| **判断** | 不自动回滚 — 删除可能是合法授权操作,人工判断保留 |
#### 回滚引擎
**执行了什么**
| 步骤 | 操作 |
|------|------|
| **无自动恢复** | 刻意不执行自动化文件恢复 |
| **告警** | 立即向管理员分发 `HIGH_SENSITIVE_DELETION` 告警 |
| **快照** | `Roadmap_2025.docx` 的干净版本化副本在快照存储中保留 |
| **升级** | 事件标记为需要管理员审查和手动恢复批准 |
## 版本控制系统 — 快照证据
### 诱饵文件恢复
**快照目录确认的证据**
| 证据 | 详情 |
|------|------|
| **版本** | 多个不可变版本化的 `CEO_Contract.docx` 副本存在于受保护的存储中 |
| **时间戳** | 每个副本都带有毫秒级时间戳 |
| **恢复来源** | 最新干净快照确认为回滚所用版本 |
| **完整性** | 证明回滚正确执行至最后信任状态 |
### 勒索软件文件恢复
**快照目录确认的证据**
| 证据 | 详情 |
|------|------|
| **捕获** | 勒索软件重命名的 `Server_Inventory.lock.xlsx` 存在于快照序列中 |
| **恢复** | 紧接着是两个干净版本化的 `Server_Inventory.xlsx` |
| **文件名** | 确认正确恢复文件名 — 恶意扩展名已成功剥离 |
| **流水线** | 按时间顺序验证完整的检测至恢复序列 |
### 敏感文件恢复
**快照目录确认的证据**
| 证据 | 详情 |
|------|------|
| **版本** | 两个干净不可变的 `Roadmap_2025.docx` 版本副本保存在快照存储中 |
| **待处理** | 两者均可用于管理员批准后的手动恢复 |
| **时间戳** | 毫秒级时间戳确认捕获发生在删除事件之前 |
## 管理员模块 — 实时告警
### 每个高严重性事件的告警内容
| 字段 | 详情 |
|------|------|
| **文件** | 涉及事件的文件名 |
| **分类** | 事件类型与严重性分类 |
| **操作** | 系统采取的操作 |
| **时间戳** | 精确到毫秒的时间戳 |
### 诱饵篡改告警
| 确认 | 详情 |
|------|------|
| **目标** | 被触碰的蜜罐文件 |
| **分类** | `HIGH_DECOY_ALERT` 已确认 |
| **操作** | 自动回滚已在告警到达前执行 |
### 勒索软件检测告警
| 确认 | 详情 |
|------|------|
| **目标** | 检测到的勒索软件命名文件 |
| **分类** | `HIGH_RANSOMWARE_ROLLBACK` 已确认 |
| **操作** | 成功恢复文件至原始干净状态 |
### 敏感文件删除告警
| 确认 | 详情 |
|------|------|
| **目标** | 被删除的 `SENSITIVE` 文件 |
| **分类** | `HIGH_SENSITIVE_DELETION` 已确认 |
| **下一步** | 提示管理员进行手动审查和恢复批准 |
## 可视化与仪表板
### 实时活动流
| 功能 | 详情 |
|------|------|
| **事件日志** | 所有系统事件的旋转式时间顺序日志 |
| **实时性** | 每个文件事件、威胁分类、风险评分更新和回滚确认即时显示 |
| **颜色编码** | 高可见性配色方案 — 关键事件使用亮粉色和黄色 |
### 诱饵事件
| 功能 | 详情 |
|------|------|
| **记录** | 每个蜜罐触碰事件即时记录 |
| **分类** | `HIGH_DECOY_ALERT` 显示并附带自动回滚确认 |
| **可见性** | 以最大可见性配色突出显示 |
### 勒索软件检测
| 功能 | 详情 |
|------|------|
| **实时性** | 恶意文件扩展名被拦截的瞬间显示 |
| **恢复** | 恢复后的原始文件名显示在勒索软件命名文件旁边 |
| **确认** | `AUTOMATIC ROLLBACK SUCCESSFUL` 显著显示 |
### 敏感文件告警
| 功能 | 详情 |
|------|------|
| **标记** | `HIGH_SENSITIVE_DELETION` 事件标记为需要人工审查 |
| **日志** | 完整的事故事件流保留 |
| **升级** | 升级状态清晰呈现给管理员 |
## 威胁响应参考
| 威胁 | 检测方法 | 自动响应 | 管理员告警 |
|------|----------|----------|------------|
| **勒索软件** | `.lock` `.encrypted` `.ransom` `.crypted` 扩展名检测 | 恶意文件删除,原始文件名恢复,最新的干净快照原子化恢复 | 是 — 附带回滚确认 |
| **诱饵篡改** | 任何与 `DECOY` 分类文件的交互 | 诱饵删除,立即从快照恢复 | 是 — 最高优先级 |
| **敏感文件删除** | 删除 `SENSITIVE` 分类资产 | 不自动回滚,快照保留供手动恢复 | 是 — 提示人工审查 |
## 自适应风险评分 每个被监控文件都携带一个累计风险评分,会随事件累积。 高严重性检测会导致评分飙升 — `HIGH_RANSOMWARE_ROLLBACK` 推至 100,`HIGH_SENSITIVE_DELETION` 推至 85。 硬上限为 100。 跨会话持续存在,作为每个文件的逐行为信号,有助于识别被反复针对的文件和目录。
## 技术栈 | 层 | 技术 | |----|------| | **文件事件监控** | Python watchdog 库 | | **模式检测引擎** | 自定义基于规则的分类器 | | **快照与版本控制** | Python 文件系统操作,毫秒级时间戳 | | **邮件告警** | 通过 Gmail 应用密码认证的 SMTP | | **实时仪表板** | Streamlit,附带高对比度严重性配色 | | **系统配置** | 单一 `config.json` 文件 |
## 后续增强 - **基于 ML 的威胁检测** 用训练好的模型替换固定规则逻辑,以识别新型和零日攻击模式。 - **区块链快照存储** 将回滚历史存储在不可变的区块链账本中,确保可审计性和取证完整性。 - **云集成** 扩展快照存储支持至 AWS S3、Azure Blob Storage 和 Google Cloud Platform,适用于可扩展的分布式环境。 - **跨平台支持** 将兼容性从 Linux 扩展到 Windows(NTFS)和 macOS(HFS+)文件系统。 - **用户行为分析(UBA)** 跟踪每个用户的文件访问模式,通过行为偏差和异常检测识别内部威胁。 - **自动化事件响应** 启用自动遏制操作,如目录隔离和进程终止,无需人工批准。 ## 快速开始 ``` # 克隆仓库 git clone https://github.com/ShreeVakthi18/Self-healing-file-system-layer.git cd Self-healing-file-system-layer # 安装依赖 pip install watchdog streamlit # 配置系统 # 打开 config.json 并设置您的凭据 { "ADMIN_CONFIG": { "SENDER_EMAIL": "admin.security@shfsl.com", "RECEIVER_EMAIL": "vakthishree@gmail.com", "SENDER_PASSWORD": "your-gmail-app-password", "EMAIL_SERVER": "smtp.gmail.com" } } # 启动监视器 python watcher.py # 在第二个终端启动实时仪表板 streamlit run dashboard.py ``` ## 作者 由 **Shree vakthi** 构建,作为一项安全研究项目。
标签:C2日志可视化, Python, Streamlit仪表盘, Watchdog, Zenmap, 不可变快照, 事件拦截, 内部威胁, 勒索软件检测, 安全可视化, 实时文件监控, 指纹识别, 数据完整性, 文件回滚, 无后门, 用户态HIDS, 自主恢复, 自愈文件系统, 自适应风险评分, 蜜罐触发器, 行为模式分析, 零延迟保护