dhaloashan/Secure-Programming-Lab-Reports

GitHub: dhaloashan/Secure-Programming-Lab-Reports

这是一个通过实验室项目深入分析C程序安全漏洞并提供缓解方案的报告集合。

Stars: 0 | Forks: 0

安全编程漏洞分析

二进制利用、安全编码与漏洞缓解实验室

本仓库包含一系列作为 **M1 CSSE / M1 CYBERUS 安全编程** 课程组成部分的 安全编程实验室项目。这些项目由 **Assan** 和 **Rena** 完成, 专注于 C 程序中的漏洞分析、逆向工程、二进制利用、安全编码实践和缓解技术。


📘 概述

这些实验室探讨了如何分析、利用、修补和加固不安全的 C 应用程序以抵御现实世界的攻击。项目涉及使用 Ghidra、GDB、Valgrind 和 Linux 调试工具等进行静态和动态分析技术。

在所有报告中,我们研究了基于栈的缓冲区溢出、堆溢出、竞态条件、不安全的输入处理、TOCTOU 漏洞、不安全的编译器配置、LD_PRELOAD 利用以及易受攻击的 Linux 二进制文件中的权限提升风险。


🔬 包含的项目

项目实验报告 1 – 门锁二进制文件分析

  • 使用 Ghidra 进行逆向工程
  • 缓冲区溢出分析
  • LD_PRELOAD 利用
  • 威胁建模
  • 内存损坏漏洞
  • 安全编译缓解措施

项目实验报告 2 – 安全编程分析

  • 静态代码审查
  • 不安全输入处理分析
  • 遗留编译器标志分析
  • 栈金丝雀保护
  • 可执行栈漏洞
  • 代码修补与缓解

项目实验报告 3 – 安全文件工具

  • 堆溢出分析
  • TOCTOU 竞态条件利用
  • 符号链接攻击
  • Valgrind 动态分析
  • 权限提升风险
  • 安全文件处理设计

🛠 工具与技术

  • Ghidra
  • GDB
  • Valgrind
  • Linux ELF 二进制文件
  • C 语言编程
  • gcc / Makefiles
  • LD_PRELOAD
  • 静态分析
  • 动态分析
  • 安全编译标志

⚠ 研究的漏洞类型

  • 基于栈的缓冲区溢出
  • 堆缓冲区溢出
  • TOCTOU 竞态条件
  • 不安全使用 scanf() 和 gets()
  • 可执行栈漏洞
  • RELRO 绕过风险
  • ASLR 绕过考量
  • 未检查的返回值
  • 不当的输入验证
  • 权限提升向量
  • 符号链接攻击

🛡 探讨的安全缓解措施

  • 栈金丝雀
  • RELRO
  • PIE / ASLR
  • FORTIFY_SOURCE
  • 非可执行栈
  • 使用 fgets() 进行更安全的输入处理
  • 抗竞态条件的文件处理
  • 防御性错误处理
  • 安全编译器加固标志

🚀 关键学习成果

  • 理解现实世界的内存损坏漏洞
  • 学习逆向工程技术
  • 探索二进制利用工作流程
  • 在 C 语言中应用安全编码实践
  • 理解 Linux 二进制保护机制
  • 分析竞态条件和权限提升路径
  • 使用动态分析工具发现漏洞

📄 课程信息

课程 M1 CSSE / M1 CYBERUS – 安全编程
项目类型 安全实验室报告
重点 二进制安全、利用与缓解


🎯 结论

这些项目提供了在识别、利用、修补和缓解不安全 Linux 二进制文件中漏洞方面的实践经验。这些实验室加强了对安全系统编程、防御性编码、内存安全以及网络安全与软件安全工程中使用的现代二进制加固技术的理解。


🏷 标签

secure-programming binary-exploitation ghidra valgrind buffer-overflow memory-corruption linux-security reverse-engineering cybersecurity secure-coding

标签:API密钥检测, API接口, C语言安全, Ghidra分析, Golang, LD_PRELOAD攻击, TLS抓取, TOCTOU竞争条件, Valgrind调试, 二进制利用, 云安全监控, 云资产清单, 内存损坏, 协议分析, 合规性检查, 堆溢出, 威胁建模, 安全编码实践, 安全编程, 实验室项目, 教育课程, 权限提升, 栈保护, 漏洞分析, 竞争条件, 符号链接攻击, 缓冲区溢出, 缓解技术, 编译器安全, 网络安全, 路径探测, 软件安全, 输入验证, 逆向工程, 隐私保护, 静态分析