CWE-782: Exposed IOCTL with Insufficient Access Control(对IOCTL功能的访问控制不充分)

 ID: 782

类型:变量
结构:简单

状态:草稿

描述

软件实现了应该限制使用的IOCTL,但是却没有恰当的强化对IOCTL的访问。

扩展描述

当ioctl包含特权功能并且不必要地暴露时,攻击者可以通过调用ioctl来访问此功能。即使功能是良性的,如果程序员假定IOCTL只能由受信任的进程访问,那么可能很少或根本没有对传入数据的验证,从而暴露出如果攻击者不能直接调用IOCTL就无法访问的弱点。

IOCTL的实现在操作系统类型和版本上会有所不同,因此攻击和预防的方法可能会有很大的不同。

相关视图

 "研究概念"视图 (CWE-1000)

Nature

Type

ID

Name

ChildOf

749

暴露危险方法或函数

CanPrecede

781

使用METHOD_NEITHER I/O控制代码的IOCTL中的的不当地址验证

 "体系结构概念"视图 (CWE-1008)

Nature

Type

ID

Name

MemberOf

1011

验证角色

 "开发概念"视图 (CWE-699)

Nature

Type

ID

Name

ChildOf

284

不当的访问控制

ChildOf

   

引入模式

阶段

说明

架构与设计

 

实现

实现:这个弱点是在实现架构安全策略的过程中造成的。

应用平台

 

语言

C (经常出现)

C++ (经常出现)

操作系统

Class: Unix (出现的可能性不确定)

Class: Windows (出现的可能性不确定)

后果

范围

冲击

可能性

完整性
可利用性
保密性

技术冲击:

攻击者可以调用ioctl提供的任何功能。根据功能的不同,后果可能包括代码执行、拒绝服务和数据盗窃。

 

应对措施

阶段: 架构与设计

在Windows环境中,对关联的设备或设备命名空间使用适当的访问控制。参阅参考文献。

说明

应用平台

由于ioctl功能通常执行低级操作,并与操作系统紧密交互,因此这种弱点可能只出现在用低级语言编写的代码中。

关联弱点

当程序员假定IOCTL只能由受信任方访问时,这可能是许多其他弱点的主要原因。例如,在windows环境中, 程序或驱动程序可能无法验证方法中的通过METHOD_NEITHER IOCTL传入的地址。这可能导致缓冲区溢出和类似的攻击,即使攻击者根本无法访问ioctl。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值