移动安全 安全管理 应用案例 网络威胁系统安全 应用安全 数据安全 云安全
当前位置: 主页 > 信息安全 > 系统安全 >

软件安然:缝隙和缺点的辨别

时间:2013-10-06 14:40来源:TuZhiJiaMi企业信息安全专家 点击:
导致安然标题问题标软件缺点首要有两种:摆设中的缝隙和设计中的缺点。此刻软件安然市场中的大年夜部门重点都放在发现和修复缝隙上,这主如果因为主动代码审查东西让这个过程变得很
Tags漏洞(188)系统安全(735)软件安全(2)  

  导致安然标题问题标软件缺点首要有两种:摆设中的缝隙和设计中的缺点。此刻软件安然市场中的大年夜部门重点都放在发现和修复缝隙上,这主如果因为主动代码审查东西让这个过程变得很简单。但其实软件设计和架构中的缺点标题问题也据有很大年夜比率,它占所有安然标题问题标50%。

  在这篇文章中,我们将切磋缝隙和缺点之间的差别。更首要的是,我们将介绍架构风险阐发(ARA)法度,经证实,该法度可以或许很好地发现和修复缝隙。

  那么,缝隙和缺点的辨别是甚么?或许我们可以从一些例子中得出结论。

  缝隙

  缝隙存在于软件代码(源代码或二进制)中。一个最经典的缝隙是缓冲区溢出漏洞,这个缝隙底子上触及滥用C中某些字符串措置函数功能。此中最臭名昭著的函数功能是gets(),这是一个系统调用,它从用户获得输进直到用户决定点击答复。我们把一个固定大年夜小的缓冲区想象成一个空水杯,然后想像一下,你设置了编制来从杯中取水以避免满杯(报复打击者则在不竭“倒水”)。假定倒太多水到杯子里,水溢出来,就回洒在台面上。在C中的缓冲区溢出的环境下,太多输进会笼盖堆,或乃至笼盖仓库,从而粉碎法度的仓库,造成法度解体或使法度转而履行其它指令以进行报复打击。简单的缝隙,可骇的后果。面对gets()的标题问题,我们出格等闲在源代码中找到缝隙。

  C中稀有以百计的系统调用,假定利用不当的话,它们可能会导致安然缝隙,包含从字符串措置功能到整数溢出和整数下溢等标题问题。当然,在Java和其他说话中也有一样多的弊端。别的,在Web利用法度(例如跨站脚本或跨站要求捏造)中也有常见缝隙和与数据库相干的缝隙(例如SQL注进缝隙)。

  面对这么多可能存在的缝隙,我们有需要摆设和利用一些东西来查找它们。此刻市道上有良多商业源代码审查东西,好比惠普的Fortify、IBM的AppScan Source、Coverity公司的Quality Advisor,和Klocwork的Clocwork Insight。今朝源代码审查的最新冲破是直接整合缝隙查找到每个开辟人员的集成开辟环境(IDE)中,如许我们就可以尽可能在最开端发现缝隙。好比,Cigital的SecureAssist就是这类道理。

  缺点

  除缝隙以外,我们还会看到缺点标题问题。缺点存在于软件架构和设计中。这里有一个很是简单的缺点的例子:健忘验证用户。这类弊端凡是没法在代码审查中被发现,但这是一个极其严重的标题问题。你的过程是以root身份运行吗?最好肯定谁在利用它!

  其它关于缺点的例子包含“中间报复打击人”标题问题,它使得报复打击者能在组件、收集层、机械或收集之间进行窜改或***;别的,还有与糟和谈有关的“重放报复打击”标题问题。

  为了更好地申明缺点,我们在这里列出了一些常见的与Java相干的缺点标题问题:弊端利用暗码系统、设计中的分区标题问题、特权块呵护故障(DoPrivilege)、灾害性安然故障(脆弱性)、类别安然混合弊端、不服安的审计、破坏或不合逻辑的拜候节制(收集层上的RBAC)、编制笼盖标题问题(子类标题问题)、对不该信赖的组件赐与太多信赖(客户端)。(关于这些标题问题标更多信息,请参阅McGraw的《呵护Java》一书)。

  缺点标题问题与缝隙一样常见。事实上,大年夜大都研究表白,缝隙和缺点各占50%。当然,本文中我们会商的是这二者的统一体。还有一些毒手的环境可能被同时回类为缝隙和缺点,这就取决于你若何对待它。可是,在一般环境下,进修辨别缝隙和缺点对你很成心义。

------分隔线----------------------------

推荐内容