cwe_checker初识别
一、cwe_checker是什么?
1.1、介绍
cwe_checker是一套用于检测常见错误类的检查,例如空指针引用和缓冲区溢出。这些错误类正式称为通用弱点枚举(CWE)。
这些检查基于各种分析技术,从简单的启发式到基于抽象解释的数据流分析。 它的主要目标是帮助分析师快速找到潜在的易受攻击的代码路径。
它的主要关注点是在Linux和Unix操作系统上常见的ELF二进制文件。cwe_checker 使用 Ghidra 将二进制文件反汇编为一种通用的中间表示,并在此 IR 上实现自己的分析。因此,分析可以在大多数CPU架构(Ghidra 可以反汇编)上运行,这使得 cwe_checker 成为固件分析的宝贵工具。
1.2、特点
设置非常简单,只需构建 Docker 容器!
它分析了几种 CPU 架构的 ELF 二进制文件,包括 x86、ARM、MIPS 和 PPC
由于其基于插件的架构,它是可扩展的
它是可配置的,例如 将分析应用于新 API查看在 Ghidra 中注释的结果
cwe_checker 可以作为插件集成到 FACT 中
1.3、已分析的CWE 警告列表
cwe_checker 将二进制文件作为输入,基于二进制文件的静态分析运行多项检查,然后输出在分析期间发现的 CWE 警告列表。
到目前为止,实施了以下分析:
CWE-78: OS Command Injection (currently disabled on standard runs) 操作系统命令注入
CWE-119 and its variants CWE-125 and CWE-787: Buffer Overflow 缓冲区溢出
CWE-134: Use of Externally-Controlled Format String 使用外部控制的格式字符串
CWE-190: Integer Overflow or Wraparound 整数溢出或环绕
CWE-215: Information Exposure Through Debug Information 通过Debug信息导致的信息暴露
CWE-243: Creation of chroot Jail Without Changing Working Directory 未改变工作目录时创建chroot Jail
CWE-332: Insufficient Entropy in PRNG PRNG中信息熵不充分
CWE-367: Time-of-check Time-of-use (TOCTOU) Race Condition 检查时间与使用时间(TOCTOU)的竞争条件
CWE-416: Use After Free and its variant CWE-415: Double Free 释放后使用
CWE-426: Untrusted Search Path 不受信任的搜索路径
CWE-467: Use of sizeof() on a Pointer Type 在指针类型上使用sizeof()
CWE-476: NULL Pointer Dereference 空指针引用
CWE-560: Use of umask() with chmod-style Argument 在chmod类型参数中使用umask()
CWE-676: Use of Potentially Dangerous Function 潜在危险函数的使用
CWE-782: Exposed IOCTL with Insufficient Access Control 无充分访问控制条件下暴露IOCTL
二、基本使用
1、拉取镜像
docker pull fkiecad/cwe_checker:stable
2、使用下面这个命令即可用这个镜像里的工具去测试二进制
docker run -v /PATH/TO/BINARY:/input fkiecad/cwe_checker:stable /input --json --quiet
参数:
PATH/TO/BINARY:二进制的路径
/input:二进制的名字
3、运行成功,出现如下页面
3.1、有cwe漏洞样本
root@node1:~# docker run -it -v /data/.../squashfs-root/usr/sbin/IGD:/input fkiecad/cwe_checker:stable /input --json --quiet
[{"name": "CWE467","version": "0.2","addresses": ["0000aa7c"],"tids": ["instr_0000aa7c_1"],"symbols": [],"other": [],"description": "(Use of sizeof on a Pointer Type) sizeof on pointer at 0000aa7c (strncpy)."},{"name": "CWE676","version": "0.1","addresses": ["00009b20"],"tids": ["instr_00009b20_1"],"symbols": ["FUN_00009adc"],"other": [["dangerous_function","strlen"]],"description": "(Use of Potentially Dangerous Function) FUN_00009adc (00009b20) -> strlen"},{"name": "CWE676","version": "0.1","addresses": ["00009b3c"],"tids": ["instr_00009b3c_1"],"symbols": ["FUN_00009adc"],"other": [["dangerous_function","strncpy"]],"description": "(Use of Potentially Dangerous Function) FUN_00009adc (00009b3c) -> strncpy"}
]
3.2、无cwe漏洞样本
root@node1:~# docker run -it -v /nas/podding_unpack/e3471988-9afb-41ef-9357-661890181cbf/9c1daf21b640f463f097c12d82a8dadcb608433b3bb8415ae30b76259b8ba906/_升级帮助.doc.extracted/151A:/input fkiecad/cwe_checker:stable /input --json --quiet
Execution of Ghidra plugin failed: Process was terminated.
ERROR REPORT: Import failed for file: /input (HeadlessAnalyzer)
ERROR The AutoImporter could not successfully load /input with the provided import parameters. Please ensure that any specified processor/cspec arguments are compatible with the loader that is used during import and try again. (HeadlessAnalyzer)
cwe_checker初识别相关推荐
- Python -TkinterGUI初识别
GUI初识别 组件对象,事件 from tkinter import * from tkinter import messageboxroot = TK()#创建窗口btn01 = Button(ro ...
- mysql数据库的增删改查命令_MySQL 初识别语句,数据库、表、行的增删改查
一.MySQL 开场语句 1.登陆 mysql -u root -p ; #回车然后输入密码 2.退出 eixt | quit #二者选其一 3.查看数据文件路径(配置文件中学习的) show glo ...
- 9月14日学习内容整理:初识别面向对象
1.面向过程和面向对象: (1)面向过程:针对结果编程,流水线式思维,得出固定的结果.优点是好想,但是扩展性差,容易引起安全问题 (2)面向对象:对象就是一个实实在在的,可以准确描述出来的实体 2.定 ...
- PSIM软件学习---01初识别PSIM软件
PSIM是趋向于电力电子领域以及电机控制领域的仿真应用包软件.PSIM全称Power Simulation.PSIM是由SIMCAD 和SIMVIEM两个软件来组成的. PSIM软件最大的特点 ...
- 【单片机学习笔记】(31):串口调试技巧、TFT触摸屏初识别、stm32F4与F1对比使用(全系列初始化概览)、YSF4的光耦隔离保护、外部中断与定时器消抖相结合的按键检
串口调试技巧 可以将调试时会用到,但实际演示是不需要用到的代码用 #if xxx //这里放调试代码 #endif xxx是 一个宏定义,如果等于0则不编译相关代码,如果为1则编译相关代码 TFT ...
- 分布式基础--初识别分布式与CAP
- 学会用python识别图像
用 Python 进行 OCR 图像识别 Python中文社区 全球Python中文开发者的精神部落 数据采集就怕遇到图片,只能看不能复制怎么办.手动将文字提取出来,要耗费很大的工作量. 例如下图,某 ...
- 微信旧岛小程序章节目录
索引 第一章 申请appkey ## 标题##我是 标题 第二章 准备工作 小程序开发工具介绍和第三方开发工具介绍 第三章 小程序基础知识 与新特性 1.小程序的4种文件类型 2.小程序的组织结构 3 ...
- [C语言]static关键字--#define 定义常量和宏--初识指针--初识C语言(四)
文章目录 前言 一,static关键字 二,#define 定义常量和宏 三,初识指针 总结 前言 本节主要记录初识C语言第四节内容. 内容包括:static关键字------#define 定义常量 ...
- 消失的“金九银十” 互联网的下一个五年在哪里?
互联网发展到现在,经历了PC时代,移动端时代.而今传统互联网的红利也已基本结束,消费互联网已进入尾声,在接下来5年,将是产业互联网时代!也就是互联网+硬件,软件融合硬件的模式 在这样的背景下我们And ...
最新文章
- windows10中git 远程仓库使用
- 科学家利用BCI技术来缓解幻肢疼痛
- Linux下用 lsof 命令查找指定端口被哪个进程占用
- 图文详解远程部署ASP.NET MVC 5项目
- 道指mt4代码_剑指offer算法题052:正则表达式匹配
- 前端学习(1400):多人管理20代码优化
- 实例13:python
- WebForm与MVC模式优缺点
- shell应用之简单计算器
- 210页的《pandas官方文档中文版》.pdf
- android广告平台哪个好用,最新!59个信息流广告平台数据榜单!
- Matlab曲线拟合工具箱CFTOOL实例解析
- 微信小程序入门9-微信开放平台unionId机制介绍
- Tasker 一个配置实现微信朗读,微信消息播报+基础版的防撤回
- 海内外弟子追思百岁国医大师邓铁涛
- Angular4学习笔记(一):准备和环境搭建
- 【基础算法】Gossip协议
- WIN_DOS经典大全
- csgo调出参数_CSGO参数设置
- 《java编程思想》第七章 复用类
热门文章
- 胡泳滨maya python
- 什么软件测试显卡故障,Win7电脑显卡故障怎样检测软件的方法
- 一流科技登上开源供应商名录
- 僵尸进程以及如何处理僵尸进程
- rpg学院 unity_使用Unity开发RPG游戏完整指南(中)
- pyhton matplotlib可视化图像基础(二维函数图、柱状图、饼图、直方图以及折线图)...
- 再起风云的社交电商,到底是穷途末路还是柳暗花明?
- 【PCIe】【翻译】AER 内核驱动 《pcieaer-howto》PCI Express高级错误报告驱动程序指南
- FASS分布式全闪存储技术白皮书
- 威伦触摸屏入门布局提升题