51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

查看: 2409|回复: 1
打印 上一主题 下一主题

[讨论] 代码安全缺陷分析

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2018-4-2 16:57:47 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
安全缺陷种类

本次测试涵盖各类常见安全缺陷。根据缺陷形成的原因、被利用的可能性、造成的危害程度和解决的难度等因
素进行综合考虑,可以将常见的安全缺陷分为八类:

1、输入验证与表示(Input Validation and Representation)

输入验证与表示问题通常是由特殊字符、编码和数字表示所引起的,这类问题的发生是由于对输入的信任所造
成的。这些问题包括:缓冲区溢出、跨站脚本、SQL注入、命令注入等。

2、API误用(API Abuse)

API是调用者与被调用者之间的一个约定,大多数的API误用是由于调用者没有理解约定的目的所造成的。当使
用API不当时,也会引发安全问题。

3、安全特性(Security Features)

该类别主要包含认证、访问控制、机密性、密码使用和特权管理等方面的缺陷。

4、时间和状态(Time and State)

分布式计算与时间和状态有关。线程和进程之间的交互及执行任务的时间顺序往往由共享的状态决定,如信号
量、变量、文件系统等。与分布式计算相关的缺陷包括竞态条件、阻塞误用等。

5、错误和异常处理缺陷(Errors)

这类缺陷与错误和异常处理有关,最常见的一种缺陷是没有恰当的处理错误(或者没有处理错误)从而导致程
序运行意外终止,另一种缺陷是产生的错误给潜在的攻击者提供了过多信息。

6、代码质量问题(Code Quality)

低劣的代码质量会导致不可预测的行为。对于攻击者而言,低劣的代码使他们可以以意想不到的方式威胁系统。
常见的该类别缺陷包括死代码、空指针解引用、资源泄漏等。

7、封装和隐藏缺陷(Encapsulation)

合理的封装意味着区分校验过和未经检验的数据,区分不同用户的数据,或区分用户能看到和不能看到的数据
等。常见的缺陷包括隐藏域、信息泄漏、跨站请求伪造等。

8、代码运行环境的缺陷(Environment)

该类缺陷是源代码之外的问题,例如运行环境配置问题、敏感信息管理问题等,它们对产品的安全仍然是至关
重要的。

前七类缺陷与源代码中的安全缺陷相关,它们可以成为恶意攻击的目标,一旦被利用会造成信息泄露、权限提
升、命令执行等严重后果。最后一类缺陷描述实际代码之外的安全问题,它们容易造成软件的运行异常、数据
丢失等严重问题。

安全缺陷级别

我们将源代码的安全问题分为三种级别:高危(High)、中等(Medium)和低(Low)。衡量级别的标准包括
两个维度,置信程度(confidence)和严重程度(severity)。置信程度是指发现的问题是否准确的可能性,比
如将每个strcpy函数调用都标记成缓冲区溢出缺陷的可信程度很低。严重程度是指假设测试技术真实可信的情
况下检出问题的严重性,比如缓冲区溢出通常是比变量未初始化更严重的安全问题。将这两个因素综合起来可
以准确的为安全问题划分级别

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-4-24 03:37 , Processed in 0.068093 second(s), 22 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表