模糊测试面面观 | 模糊测试是如何发现异常情况的?

协议模糊测试是一种用于评估通信协议、文件格式和API实现系统安全性和稳定性的关键技术。在模糊测试过程中,监视器扮演着关键角色,它们能够捕获异常情况、错误响应、资源利用等,为测试人员提供有价值的信息,有助于发现潜在漏洞和问题。本文将通过展开探讨监视器常见的监视方法和流程,来解读SFuzz是如何发现系统异常情况的。

监视器常见的监视方法

异常检测

在模糊协议测试中,异常情况常常出现,如协议解析错误、长度不匹配等。监视器能够捕获这些异常,帮助测试人员识别系统在处理异常协议数据时的表现。

错误响应分析

监视器可以捕获系统对不良协议输入的响应,包括错误码、错误消息等。这有助于测试人员分析协议实现在错误情况下的反应。

崩溃检测

模糊协议测试可能导致系统崩溃,监视器能够及时发现程序的崩溃情况,并记录下导致崩溃的测试用例,以便进一步分析和修复。

资源利用情况

监视器可以跟踪目标系统的资源利用情况,如内存使用、CPU利用率等。这有助于评估系统在处理异常协议数据时的性能影响,并发现可能的资源泄漏问题。

漏洞定位

监视器的报告可以帮助测试人员定位潜在的漏洞和安全问题。它们提供了有关异常情况和错误的详细信息,有助于开发人员更准确地识别和修复问题。

监视器的监视流程

准备阶段

确定测试目标:选择需要进行模糊测试的目标,如协议实现、应用程序等。

选择监视器:根据测试目标和需求,选择适当类型的监视器,如TCP监视器、console监视器、CPU监视器等。

测试用例生成

模糊测试工具生成测试用例:使用模糊测试工具生成异常、随机或变异的测试用例。

监视器集成

将选定的监视器与测试环境集成:确保监视器可以在测试环境中捕获和记录关键信息。

测试执行

模糊测试工具发送测试用例:将生成的测试用例发送给目标系统进行测试。

监视器实时监测:监视器在测试过程中实时捕获系统的响应、控制台输出、性能数据等。

异常检测与记录

监视器捕获异常:检测到目标系统的异常响应、错误消息、崩溃情况等。

记录异常信息:监视器将捕获的异常信息记录下来,包括时间戳、错误类型、相关数据等。

性能监测

监视器捕获性能指标:CPU监视器捕获CPU利用率、内存使用情况等;TCP监视器捕获连接状态、流量数据等。

实时反馈:监视器提供实时性能数据,帮助测试人员了解系统在处理异常数据时的性能状况。

协议交互分析

监视器分析协议交互:TCP监视器分析捕获的TCP数据包、连接状态,蓝牙监视器分析蓝牙通信的协议交互过程。

发现协议异常:监视器能够识别协议错误、格式问题等异常情况。

报告生成

生成监视报告:监视器根据捕获的信息生成监视报告,包括异常情况、错误响应、性能数据等。

报告分析:测试人员可以分析监视报告,定位潜在的漏洞、异常行为和性能问题。

修复和优化:

开发人员根据监视报告中的信息,修复系统中的漏洞、错误和异常。

优化系统性能:基于性能数据,开发人员可以优化系统以处理异常情况的性能影响。

迭代测试

循环测试:通过多次迭代,不断优化测试用例、监视器和系统,以发现更多潜在问题。

SFuzz是如何监视系统异常的

TCP监视器

TCP监视器在模糊测试中起着关键作用,它可以捕获、记录和分析TCP通信流量,帮助测试人员了解测试效果、发现漏洞和优化测试策略。TCP监视器能够捕获通信流量、分析数据包、追踪连接状态和监测性能指标。

Console监视器

Console监视器用于捕获和记录程序的控制台输出、日志和错误信息。通过监视控制台输出,可以捕获程序在处理模糊测试输入时可能引发的异常、错误信息,有助于分析程序的行为、异常情况和潜在漏洞。

CPU监视器

CPU监视器用于监视和分析模糊测试期间目标系统的CPU使用情况。通过监控CPU利用率,可以分析模糊测试对系统性能的影响,检测性能瓶颈,优化测试过程。

蓝牙监视器

蓝牙监视器在蓝牙协议测试中具有重要作用,能够捕获通信数据、分析协议错误、检测安全问题等。它可以帮助测试人员了解蓝牙设备之间的交互过程,发现潜在的漏洞和异常情况。

监视器在协议模糊测试中扮演着至关重要的角色,能够捕获关键信息、分析异常情况、帮助定位漏洞和优化测试策略。不同类型的监视器在不同方面发挥作用,协同工作可以提高模糊测试的效果,帮助开发人员构建更安全和稳定的协议实现。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/99034.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL----索引

一、索引的概念 索引是一个排序的列表,在这个列表中存储着索引的值和包含这个值的数据所在行的物理地址(类似于c语言的链表通过指针指向数据记录的内存地址)。使用索引后可以不用扫描全表来定位某行的数据,而是先通过索引表找到该…

Kubernetes对象深入学习之五:TypeMeta无效之谜

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 本篇概览 本文是《Kubernetes对象深入学习之五》系列的第五篇,从前文的分析也能看出,代表对象类型的schema.ObjectKind,于…

Shell编程之流程控制

目录 if判断 case语句 for循环 while循环 if判断 语法: if [ 条件判断表达式 ] then 程序 elif [ 条件判断表达式 ] then 程序 else 程序 fi 注意: [ 条件判断表达式 ],中括号和条件判断表达式之间必须有空格。if,elif…

无涯教程-机器学习 - 矩阵图函数

相关性是有关两个变量之间变化的指示,在前面的章节中,无涯教程讨论了Pearson的相关系数以及相关的重要性,可以绘制相关矩阵以显示哪个变量相对于另一个变量具有较高或较低的相关性。 在以下示例中,Python脚本将为Pima印度糖尿病数…

Servlet学习总结(Request请求与转发,Response响应,Servlet生命周期、体系结构、执行流程等...)

Override 是Java中的注解(Annotation),它用于告诉编译器该方法是覆盖(重写)父类中的方法。当我们使用Override注解时,编译器会检查当前方法是否正确地覆盖了父类中的方法,如果没有覆盖成功&…

Elasticsearch 集成---Spark Streaming 框架集成

一.Spark Streaming 框架介绍 Spark Streaming 是 Spark core API 的扩展,支持实时数据流的处理,并且具有可扩展, 高吞吐量,容错的特点。 数据可以从许多来源获取,如 Kafka , Flume , Kin…

Scala集合继承体系图

Scala集合简介 1) Scala 的集合有三大类:序列 Seq、集Set、映射 Map,所有的集合都扩展自 Iterable特质。 2) 对于几乎所有的集合类,Scala 都同时提供了可变和不可变的版本,分别位于以下两个包 不可变集合…

[C++网络协议] I/O复用

具有代表性的并发服务器端实现模型和方法: 多进程服务器:通过创建多个进程提供服务。 多路复用服务器:通过捆绑并统一管理I/O对象提供服务。✔ 多线程服务器:通过生成与客户端等量的线程提供服务。 目录 1. I/O复用 2. select函…

Vue:关于声明式导航中的 跳转、高亮、以及两个类名的定制

声明式导航-导航链接 文章目录 声明式导航-导航链接router-link的两大特点(能跳转、能高亮)声明式导航-两个类名定制两个高亮类名 实现导航高亮,实现方式其实,css,JavaScript , Vue ,都可以实现。其实关于路由导航&…

Android Studio 的github 工程克隆

上文介绍了Android Studio 里的"Git 建立和简单操作。本文介绍从github 上的工程fork 和clone到本地,然后学习和改进。 本文参考 https://learntodroid.com/how-to-use-git-and-github-in-android-studio/ 克隆clone Github 仓库: 先 Fork 你选择…

stm32之25.FLASH闪存

打开标准库 源码--- int main(void) {uint32_t d;Led_init();key_init();/* 初始化串口1波特率为115200bps,若发送/接收数据有乱码,请检查PLL */usart1_init(115200);printf("this is flash test\r\n");/* 解锁FLASH(闪存&#xf…

跨境做独立站,如何低成本引流?你的流量密码在这

大家都知道,海外的消费习惯与国内不同,独立站一向是海外消费者的最喜欢的购物方式之一,这也吸引了许多跨境商家开设独立站。 独立站不同于其他的第三方平台,其他平台可以靠平台自身流量来获得转化,而独立站本身没有流…

java八股文面试[多线程]——ThreadLocal底层原理和使用场景

源码分析: ThreadLocal中定义了ThreadLocalMap静态内部类,该内部类中又定义了Entry内部类。 ThreadLocalMap定了 Entry数组。 Set方法: Get方法: Thread中定义了两个ThreaLocalMap成员变量: Spring使用ThreadLocal解…

虚拟机Ubuntu20.04 网络连接器图标开机不显示怎么办

执行以下指令: sudo service network-manager stop sudo rm /var/lib/NetworkManager/NetworkManager.state sudo service network-manager start

nginx压缩ttf文件 mine.types的作用

最近在运维过程中,前端提到发现在linux上下载某ttl文件(字体文件)太大,传输过程比较慢,于是就想着使用nginx的gzip进行压缩,经过不断尝试,终于发现在nginx的配置目录/etc/nginx/mine.types 文件…

【UIPickerView-UIDatePicker-应用程序对象 Objective-C语言】

一、今天我们来学习三个东西 1.UIPickerView-UIDatePicker-应用程序对象 1.首先,来看数据选择控件 数据选择控件, 大家对这个数据选择控件,是怎么理解的, 1)数据选择控件,首先,是不是得有数据, 2)然后呢,你还得让用户能够选择, 3)最后,你还得是一个控件儿 那…

国产ETLCloud VS 开源Kettle ETL对比分析

ETLCloud VS Kettle ETLCloud和kettle是目前国内使用最广泛的两款免费ETL工具,本文将从多个角色对ETLCloud和kettle进行对比,方便用户快速了解到两款产品的差异并根据自已的需求选择相应的工具。 ETLCloud提供了对kettle流程的迁移功能,所以…

文件上传漏洞-upload靶场5-12关

文件上传漏洞-upload靶场5-12关通关笔记(windows环境漏洞) 简介 ​ 在前两篇文章中,已经说了分析上传漏的思路,在本篇文章中,将带领大家熟悉winodws系统存在的一些上传漏洞。 upload 第五关 (大小写绕过…

gRPC-Gateway 快速实战

今天来分享一波 gRPC-Gateway , 之前咱们有分享过什么是 gRPC 及其使用方式,可以看看这些关于 gRPC 的历史文章: gRPC介绍 gRPC 客户端调用服务端需要连接池吗? gRPC的拦截器 gRPC的认证 分享一下 gRPC- HTTP网关 I 今天主要是分…

AI:05 - 基于深度学习的道路交通信号灯的检测与识别

随着人工智能的快速发展,基于深度学习的视觉算法在道路交通领域中起到了重要作用。本文将探讨如何利用深度学习技术实现道路交通信号灯的检测与识别,通过多处代码实例展示技术深度。 道路交通信号灯是指示交通参与者行驶和停止的重要信号。准确地检测和识别交通信号灯对于智…