CWE Checker通常会扫描二进制文件,查找与CWE中描述的已知软件弱点相关的迹象。它可以帮助开发人员发现潜在的安全问题,并提供建议或建议修复方案,以改进软件的安全性。 项目地址: https://github.com/fkie-cad/cwe_checker BLACK_HAT_2022 **CWE Checker 研究与分析** CWE (Common Weakness Enumeration) Checker 是一个工具,专注于扫描二进制文件,以识别与CWE数据库中列出的已知软件弱点相关的问题。CWE是一个广泛认可的公开列表,包含了各种软件安全漏洞的分类。通过使用CWE Checker,开发人员能够及早发现潜在的安全隐患,并根据工具提供的建议来实施修复措施,从而提高软件的安全性。 **CWE Checker 原理** CWE Checker 的核心在于静态分析技术。静态分析是在不执行代码的情况下对程序进行分析,以便识别潜在的问题。该工具主要关注控制流图(Control Flow Graph, CFG)的构建和分析。 **控制流图** 控制流图是一种表示程序控制流的图形模型,其中节点代表程序执行的点,边则表示控制流的转移。CWE Checker 的实现假设每个程序块的结尾可能包含零、一或两个跳转指令,包括条件跳转和无条件跳转。不支持条件调用,且缺少跳转指令可能表示控制流重构失败。在构建控制流图时,基本块、跳转和调用都会被转换为相应的节点和边,便于理解和分析程序的控制流。 **跨函数调用处理** CWE Checker 对跨函数调用进行了特殊处理。例如,`handle_generic_extern_symbol`函数处理外部符号调用,标记访问的输入ID,并为每个返回寄存器分配可能指向输入ID的值。`handle_unknown_function_stub`函数则处理未知函数的调用,假设每个输入寄存器都是输入,每个整数返回寄存器都是输出。同时,`collect_input_ids_of_call`收集参数列表的抽象标识符,`clear_non_callee_saved_register`清除非被调用者保存的寄存器内容,而`generate_return_values_for_call`则生成调用返回时的返回值。 **漏洞检测** CWE Checker 针对多种类型的漏洞进行检测,如: 1. CWE-78:操作系统命令注入(当前未启用) 2. CWE-119及其变种:缓冲区溢出 3. CWE-134:使用外部控制的格式字符串 4. CWE-190:整数溢出或环绕 5. CWE-215:通过调试信息泄露信息 6. CWE-243:在不更改工作目录的情况下创建chroot监狱 7. CWE-332:PRNG中熵不足 8. CWE-367:时检时间使用(TOCTOU)竞争条件 9. CWE-416:在释放后使用 10. CWE-415:双重释放 11. CWE-426:不受信任的搜索路径 12. CWE-467:对指针类型使用sizeof() 13. CWE-476:空指针解引用 14. CWE-560:在chmod-style参数中使用umask() 15. CWE-676:使用潜在危险的函数 16. CWE-782:具有不足访问控制的暴露的I/O流 这些漏洞的检测有助于识别并预防软件中的安全漏洞,确保代码质量。 **总结** CWE Checker 是一个强大的工具,利用静态分析技术对二进制文件进行深度检查,以检测与CWE相关的软件弱点。通过理解其工作原理,开发人员可以更有效地提升软件安全性,防止因常见的编程错误导致的安全问题。项目地址(https://github.com/fkie-cad/cwe_checkerBLACK_HAT_2022)提供了更多的资源和信息,供开发人员深入了解和使用该工具。
剩余22页未读,继续阅读
- 粉丝: 21
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 15-Flink from YARN to Kubernetes: 资源优化和容器化实践
- (源码)基于PyTorch的BERT情感二分类系统.zip
- 14-Flink Kubernetes Operator 从1.4.0 升级到1.6.0的技术手册
- (源码)基于RTThread实时操作系统的g1632设备控制项目.zip
- 13-Flink Kubernetes Operator 高级特性详解 - 自动伸缩与高可用机制
- (源码)基于SpringBoot和Vue的家庭云系统.zip
- 12-Flink Kubernetes Operator部署与管理Flink应用实践
- 11-Flink kubernetes operator 常用的命令
- (源码)基于Python和ApacheJena的医药知识图谱智能问答系统.zip
- (源码)基于Arduino的vastara穿戴设备系统.zip