CWE-676: Use of Potentially Dangerous Function(使用不安全函数)

 ID: 676

类型:基础
结构:简单

状态:草稿

描述

该程序调用一个潜在的危险函数,如果使用不当,可能会引入一个漏洞,但该函数也可以安全使用。

相关视图

与“研究层面”视图(CWE-1000)相关

与“开发层面”视图(CWE-699)相关

引入模式

阶段

说明

架构与设计

 

实现

 

应用平台

语言

C (出现的可能性不确定)

C++ (出现的可能性不确定)

后果

范围

冲击

可能性

其它

技术冲击: 根据上下文而变; 质量下降; 意外状态

如果功能使用不正确,则可能导致安全问题。

 

被利用的可能性:

示例

例1

以下代码尝试创建缓冲区的本地副本,以对数据执行一些操作。

(问题代码)

Example Language:

void manipulate_string(char * string){

char buf[24];
strcpy(buf, string);
...

}

但是,程序员不能确保字符串指向的数据的大小适合本地缓冲区,并且盲目地使用潜在危险的strcpy()函数复制数据。如果攻击者可以影响字符串参数的内容,这可能会导致缓冲区溢出。

应对措施

阶段: 编译及链接; 实现

确定禁止的API函数列表,并禁止开发人员使用这些函数,提供更安全的替代方法。在某些情况下,可以指示自动代码分析工具或编译器发现禁止使用的函数,例如来自Microsoft SDL的“banked.h”include文件。[REF-554] [REF-7]

种属

关系

类型

ID

名称

属于

738

CERT C Secure Coding Standard (2008) Chapter 5 - Integers (INT)

属于

743

CERT C Secure Coding Standard (2008) Chapter 10 - Input Output (FIO)

属于

746

CERT C Secure Coding Standard (2008) Chapter 13 - Error Handling (ERR)

属于

865

2011 Top 25 - Risky Resource Management

属于

872

CERT C++ Secure Coding Section 04 - Integers (INT)

属于

877

CERT C++ Secure Coding Section 09 - Input Output (FIO)

属于

884

CWE Cross-section

属于

1001

SFP Secondary Cluster: Use of an Improper API

属于

1161

SEI CERT C Coding Standard - Guidelines 07. Characters and Strings (STR)

属于

1165

SEI CERT C Coding Standard - Guidelines 10. Environment (ENV)

属于

1167

SEI CERT C Coding Standard - Guidelines 12. Error Handling (ERR)

属于

1169

SEI CERT C Coding Standard - Guidelines 14. Concurrency (CON)

属于

1170

SEI CERT C Coding Standard - Guidelines 48. Miscellaneous (MSC)

说明

相关弱点

这种弱点不同于CWE-242(使用固有的危险函数)。CWE-242涵盖了具有如此严重的安全问题的功能,它们永远无法保证安全。某些函数如果使用得当,不会直接带来安全风险,但如果调用不正确,则可能会导致弱点。这些都被认为是潜在的危险。一个众所周知的例子是strcpy()函数。当提供的目标缓冲区大于其源缓冲区时,strcpy()不会溢出。然而,它经常被误用,以至于一些开发人员完全禁止strcpy()。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值