berryk6490/embedded-ics-vulnerability-research

GitHub: berryk6490/embedded-ics-vulnerability-research

一份结构化的个人学习日志,追踪从原生 C 到嵌入式与 ICS 漏洞研究的渐进式学习路径,强调严谨的证据标准与研究方法论。

Stars: 0 | Forks: 0

# 嵌入式与 ICS 漏洞研究日志 本仓库记录了我在嵌入式、固件和工业控制系统漏洞研究方面的结构化进展。 它保留了我的原始技术工作、证据、解释、修正以及随着技能提升而产生的验证结果。这是一份积极的学习日志,而不是复制来的操作指南集合,也不是对专业精通程度的声明。 ## 当前状态 - **当前阶段:** 原生 C 基础 - **已完成:** 模块 1 — 原生 C 构建 pipeline - **下一步:** 模块 2 — 变量、整数类型、值与存储 - **主要环境:** x86-64 Ubuntu Linux - **仓库状态:** 积极更新的学习日志 ## 进度 | 模块 | 主题 | 状态 | 证据 | |---|---|---|---| | 01 | 原生 C 构建 pipeline | 完成 | [概述](module-01/README.md) · [完整研究笔记](module-01/MODULE_1_BUILD_PIPELINE_NOTE.md) | | 02 | 变量、整数类型、值与存储 | 下一步 | 未开始 | ## 已完成的工作 ### 模块 1 — 原生 C 构建 Pipeline 模块 1 通过以下步骤跟踪一个原始的 C 程序: ``` Source ↓ Preprocessing ↓ Compilation proper ↓ Assembly ↓ Linking ↓ Runtime loading ↓ Running process ``` 收集的证据包括: - 源码与环境识别 - SHA-256 源码验证 - 显式的中间构建阶段 - 使用 `file` 进行产物分类 - 使用 `nm` 检查未定义的 symbol - 使用 `readelf` 检查 ELF 头部 - 动态库依赖项检查 - 运行时验证 - 原创机制解释 - 客观的局限性说明与遗留疑问 从 [模块 1 概述](module-01/README.md) 开始阅读。 ## 研究方法 实验遵循以下循环: 1. **预测** — 陈述预期结果。 2. **观察** — 收集直接证据。 3. **解释** — 将观察与解释分开。 4. **修改** — 更改一个相关条件。 5. **证明** — 测试提出的机制。 6. **修复** — 纠正问题并验证修正结果。 ## 证据标准 仅仅命令执行成功或程序崩溃本身不足以构成充分的证据。 根据任务的不同,证据可能包括: - 带注释的源码 - 编译器诊断信息 - 调试器记录 - 寄存器和内存观察结果 - 反汇编 - Sanitizer 输出 - 最小化测试用例 - 覆盖率证据 - Packet 捕获 - 堆栈跟踪 - 补丁 - 回归测试 - 原创机制解释 安全发现将明确区分: - 症状与机制 - 崩溃位置与首次无效操作 - 首次无效操作与根本原因 - 已证实的实际影响与推测性影响 - 拒绝服务与代码执行 ## 安全与授权 研究仅限于: - 原创软件 - 开源软件 - 教育目标 - 个人拥有的硬件 - 受明确书面授权涵盖的系统 雇主系统、客户系统、生产系统以及随机的公共目标均不在授权范围内。 请参阅 [AUTHORIZATION.md](AUTHORIZATION.md)。 ## 计划方向 后续工作将逐步涵盖: - C 数据表示与内存安全 - 编译器诊断与未定义行为 - Linux 进程与可执行文件内部机制 - 调试与崩溃分类 - 逆向工程 - 覆盖率引导的模糊测试 - 固件提取与分析 - 嵌入式 Linux 攻击面 - 工业协议实现 - 安全的 Modbus TCP、EtherNet/IP、CIP、DNP3 和 OPC UA 研究 这些是计划的学习领域,并非宣称已具备的能力。 ## 仓库导航 - [模块 1 概述](module-01/README.md) - [模块 1 完整研究笔记](module-01/MODULE_1_BUILD_PIPELINE_NOTE.md) - [授权边界](AUTHORIZATION.md) - [研究笔记模板](templates/research-note.md) - [崩溃报告模板](templates/crash-report.md)
标签:固件, 学习笔记, 嵌入式系统, 工控系统, 情报收集, 漏洞研究