当前位置:首页 > 报告详情

测试之美_从内核到用户-全方位驱动程序安全性测试.pdf

上传人: 2*** 编号:148933 2023-12-08 33页 1.92MB

1、从内核到用户:全方位驱动程序安全性测试分享人:杨霄个人简介姓名:杨霄所在组织:技术中台-质量工程部专业领域:windows客户端安全测试目录010203驱动程序简介常见安全漏洞和案例分析驱动安全测试引言-驱动初印象驱动是一个用于让操作系统和硬件设备通信的软件组件引言-驱动初印象应用程序操作系统驱动硬件设备假设一个应用程序需要从硬件设备读取一些数据引言-驱动的扩展 并不是所有的驱动都必须由生产真实设备的厂商所写一般情况下设备都会按照已发布的硬件标准生产,所以按照标准的协议来开发即可。并不是所有的驱动程序都会直接与真实的设备进行通信在和真实硬件设备通信的过程中是一系列驱动配合完成的,中间层的一些驱

2、动并不会直接和硬件通信,只是做了一些数据的处理和传递。驱动程序是观察或参与操作系统和设备之间通信的任何软件组件引言-驱动的扩展应用程序软件驱动程序Kernel modeUser mode受保护的数据软件驱动程序始终在内核模式下运行。编写软件驱动程序的主要原因是要获取对仅在内核模式下可用的受保护数据的访问权限。但是,设备驱动程序并不总是需要访问内核模式数据和资源。因此某些设备驱动程序在用户模式下运行。驱动程序简介驱动程序简介-用户模式VS内核模式权限受限的执行环境,通常用于运行应用程序,不能直接访问操作系统内核和硬件。用户模式具有高权限和直接硬件访问能力的执行环境,通常用于运行操作系统内核和驱动

3、程序。内核模式驱动程序简介 驱动分类上层驱动中间层驱动底层驱动文件系统驱动网络协议驱动过滤驱动WFP设备驱动总线驱动驱动程序简介 驱动安全驱动在安全领域的应用 弹窗和拦截 HOOK 绑定与过滤 注册回调来监控驱动的安全隐患 权限滥用 内存安全 任意读,利用信息泄漏 任意写,污染关键数据结构驱动程序简介 驱动安全示例CVE-2021-3437|HP OMEN Gaming Hub 权限升级漏洞影响数百万台游戏设备漏洞本身源于名为“OMEN命令中心”中的一个组件,该组件预装载惠普 OMEN 品牌的笔记本电脑和台式电脑中,用于控制和优化设备 GPU、风扇速度、CPU 超频、内存等设置。惠普的OMEN

4、命令中心包含一个驱动存在漏洞,可以被攻击者利用,在不需要管理员权限的情况下实现权限升级到内核模式。HpPortIox64.sysWinRing0.sys驱动程序简介 驱动安全大事件01030402勒索软件利用Windows驱动程序漏洞关闭杀软Meltdown&Spectre,CPU暴露内存泄漏风险NVIDIA Windows GPU显示驱动中漏洞,导致信息泄露或权限提升HP OMEN驱动程序软件存在漏洞,可以进行提权利用不安全的驱动程序,可能会被利用作为攻击整个系统的跳板。常见安全漏洞和案例分析用户层R3与内核层R0通信通过DeviceIoControl函数来使应用程序与驱动程序通信:驱动程序

5、和应用程序自定义一种IO控制码,然后应用程序调用DeviceIoControl函数,DeviceIoControl函数会产生此控制码的IRP请求,系统就调用相应的处理该IRP请求的分发函数,在分发函数中判断,如果是自定义的控制码就进行相应的处理。传入控制码打开符号链接创建符号链接创建驱动对象创建驱动设备执行分发函数R0R3IRP请求内核漏洞案例分析缓冲区溢出-漏洞说明程序向栈中某个变量中写入的字节数超过了这个变量本身所申请的字节数,因而导致与其相邻的栈中的变量的值被改变。示例:RtlCopyMemory函数没有对KernelBuffer大小进行验证,直接将size大小的userbuffer传入

6、缓冲区,没有进行大小的限制缓冲区溢出-利用方式利用驱动与R3通信,能够直接读取R3地址,改写缓冲区地址,直接将程序跳转到预先设定的目标程序代码上来执行。内核漏洞案例分析空指针漏洞-漏洞说明空指针Null Pointer指向0地址空间,如果不加判断就对其进行引用,会造成不可预知的后果。攻击者可以在0地址写入shellcode,调用空指针来执行。示例:清空指针(NullPointerDereference=NULL;)之后,未对NullPointerDereference进行检查判断,直接调用callback。内核漏洞案例分析空指针漏洞-利用方式利用NtAllocateVirtualMemory函

word格式文档无特别注明外均可编辑修改,预览文件经过压缩,下载原文更清晰!
三个皮匠报告文库所有资源均是客户上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作商用。
本文主要介绍了驱动程序的安全性测试。作者杨霄,来自技术中台-质量工程部,专业领域为Windows客户端安全测试。文章首先概述了驱动程序的作用和分类,然后详细讲解了驱动程序中常见的安全漏洞和案例分析,包括用户模式与内核模式、驱动程序与硬件设备的通信等。文章还提到了内核驱动漏洞的案例分析,如缓冲区溢出、空指针漏洞等。最后,作者分享了对驱动程序进行安全性测试的方法,包括安全清单、静态测试、动态测试、WHQL签名测试等,并强调了测试用例覆盖、权限设计最小化、安全更新等关键点。
"驱动程序安全性的挑战是什么?" "如何有效地进行驱动安全测试?" "WHQL签名测试对驱动安全的重要性是什么?"
客服
商务合作
小程序
服务号
折叠