在当前页:
介绍
为了检测用户输入安全缺陷,CAST提供了一个可选的分析功能,该功能实现了一个数据流算法,以检测从用户流向关键资源的变量,而无需事先进行清理,从而允许黑客向他们发送会损害IT应用程序的数据(安全漏洞)。
正如通用缺陷列表(CWE)、SANS研究所和OWASP中所提到的,不正确的输入验证是导致安全漏洞的web编程错误顶级组。
不正确的输入验证由CWE定义如下:
“当软件无法正确验证输入时,攻击者能够以应用程序其余部分无法预期的形式处理输入。 这将导致系统的某些部分接收到非预期输入,这可能导致控制流更改、资源的任意控制或任意代码执行。”
CAST Management Studio中的用户输入安全功能使用户能够检测到应用程序源代码中不正确的用户输入验证,这可能导致以下安全漏洞:
- SQL注入 (CWE-89)
- 跨站点脚本语言(CWE-79)
- LDAP注入(CWE-90)
- 操作系统指令注入 (CWE-78)
- XPath注入 (CWE-91)
- 路径操作(CWE-99)
- 避免日志伪造漏洞(CWE-117)
- 避免不受控制的格式字符串 (CWE-134)
- 违反信用边界规则(CWE-501)
- 在没有“安全”属性的HTTPS会话中的敏感Cookie(CWE-614)
- 硬编码凭证的使用 (java, C#,VB.Net语言) (CWE-798)
一旦源代码分析完成,结果(即安全漏洞)可以在CAST工程仪表盘中作为标准质量规则查看。作为基于数据流的质量规则,用户输入流可以在CAST工程仪表盘中用书签源代码跟踪。
CAST当前支持以下技术的用户输入安全检查:
- JEE (使用JEE Analyzer extension)
- .NET (使用 .NET Analyzer extension)
启用用户输入安全检查
要使用CAST Management Studio在应用程序分析中启用用户输入安全检查,必须在应用程序编辑器的“用户输入安全性”选项卡中激活该功能 - 选择想要的目标技术。这是在分析结束时为了获得结果所需的全部内容。 这是由于框外支持的 预定义方法和使用的 自动黑盒 生成的:
预定义方法
一些众所周知的输入方法/目标方法已经预先定义,并且CAST应用智能平台已经为用户安全输入功能考虑了这些方法。 更多信息,请参阅用户输入安全 — 预定义方法。
观察结果
用户输入安全性分析的最终结果在工程仪表盘 中显示为质量规则违规,并构成安全(60016)健康度量和称为安全编码 - 输入验证(66062)的技术标准的一部分。 但是为了快速查看,结果也会在一个名为BuildAgent.flaw的XML文件中生成,该文件可以加载到FlawExplorer - 想了解更多信息,请参阅用户输入安全性-使用 FlawExplorer加速结果检查和户输入安全 — 如何运作。
其他功能
黑盒法
分析应用程序时,此应用程序具有定义的分析范围 — 即一些代码被分析了,一些没有被分析且被当作外部代码处理。任何外部代码都是“未知”的,无法被分析器访问,因此用户输入安全功能不能以正常方式考虑到这一点。 因此,通常不会检测到这个外部源代码中的安全问题。
为了解决这个问题,CAST使用了”黑盒方法“的概念。黑盒有两种用法:
自动黑盒
用户输入安全功能将在分析过程中为所有没有主体的方法(即被视为应用程序边界“外部”的所有代码)自动快速生成黑盒方法。这包括大多数找不到源代码的程序集(框架程序集、第三方JAR/程序集、没有源代码的内部框架等)。 根据统计模型,从方法签名(在分析过程中)推导出一类实现方法。 因此,方法可分为以下几类:
- 用户输入方式:网络读取、控制台输入等
- 目标方法:网络写入、文件打开等
- 传递法:类似于“集合”黑盒
手动黑盒
如果自动黑盒功能不能以正确的方式处理外部代码,建议您手动创建一个黑盒 ,以更改自动过程的工作方式。 一旦创建了黑盒,就应该生成一个新的快照,以确保将手动黑盒考虑在内。
添加特定于应用程序的输入或目标方法
当您不知道应用程序实际上是否使用了清理方法时,可以添加特定于应用程序的输入或目标方法:不添加消毒方法的初始分析允许您检查CAST工程仪表盘中的漏洞路径(安全编码-输入验证(66062)技术标准),以找出消毒方法的名称和完整限定名。一旦拥有了这些,就可以在为应用程序生成新快照之前将它们输入到CAST Management Studio的GUI中。 有关详细信息,请参见添加特定于应用程序的输入或目标方法。