客户案例
小溪畅流6年的时间服务了大中小企业数百家,为企业开发了个性化的信息化管理平台和基于微信生态的…
首页 > 行业资讯 > 软件开发

小溪畅流浅谈几种常见的软件漏洞,以及避免方法

所属类型:软件开发 时间: 2020-02-20 13:02:07 访问量:65

今天小溪畅流简单为大家说下一些最为常见的软件漏洞,以及如何避免它们的方法

一、缓冲区溢出

当您的程序试图读取或写入超出范围的缓冲区时,就会发生缓冲区溢出的错误。其直接的危害是:可能导致数据覆盖,或是在现有的代码中附加不该出现的数据。因此,缓冲区溢出可以使得攻击者通过执行代码,来更改程序流,进而读取某种敏感数据,或造成系统的崩溃。

缓冲区溢出漏洞的典型示例包括:接受各种长度不受限制的输入允许从无效的索引处对数组进行读取操作缓冲区溢出漏洞通常潜藏在软、硬件体系架构的设计、实施、以及操作阶段。这些漏洞最常见于CC++Assembly程序中。当然,它也可能出现在缺乏对内存管理提供支持的任何一种编程语言里。

预防措施应当尽量选择诸如:JavaPerl等具有防范,或降低此类漏洞风险机制的语言。而在C#之类的编程语言中,我们千万不要禁用溢出保护的选项。即便如此,那些具有“免疫”功能的编程语言,也可能会在运行环境中的易受攻击的、原生代码交互时,产生不可预期的错误。

另外,请创建代码时确保正确地分配缓冲区空间,并使用各种方法和功能来限制输入的大小。

二、不当的输入验证

如果我们不能够在接收端对用户的输入采取验证,或验证不足,那么就会产生所谓的“输入验证不当”。而不当的验证则会使得攻击者通过执行恶意代码,来更改程序流,访问敏感数据,以及滥用现有的资源分配。

预防措施我们应该对任何用户采取“零信任”的原则,并假设所有的输入都是可疑的,直到它们被证明是安全的为止。同时,我们可以使用白名单机制,来确保输入的内容仅包含了可接受的格式与信息。

此外,我们应当确保在客户端和服务器端都执行相应的检查。为了避免出现客户端验证被绕过的情况,我们需要重点在服务器端捕获各项输入,以识别攻击者的潜在操纵。同时,在程序代码进行任何必要的组合或转换后,也请您再次验证其输入。

三、信息泄露

数据被有意或无意地提供给潜在攻击者,被称为信息泄露。除了泄露敏感的数据信息,向攻击者提供可能被利用的软、硬件环境信息也是一种泄露。

预防措施为防止信息的泄露,您应当在设计程序架构时,针对明确的信任边界区域,来保护敏感的信息;通过使用访问控制,来保护和限制“安全”区域与各个端点之间的连接。

为了最大程度地避免该漏洞,请在程序中验证各类错误的提示消息,以及用户警告信息中是否包含有不必要暴露的内容。同时,您还应该限制在URL和通信包的头部(header)出现的敏感信息。例如:您可以隐藏完整的路径名称,以及API密钥。

四、特权或认证不当

如果未能正确地分配,跟踪,修改或验证用户的相关权限和凭据,那么就可能发生特权或身份验证不当的情况。此类漏洞可以让攻击者滥用特权,执行受限的任务,以及访问受限的数据。

预防措施您应当将“最小特权原则”,应用于与目标软件和系统交互的所有用户和服务之中。只给真正需要某些资源和操作的用户或服务,完成所需任务的最少权限。我们需要通过在整个程序和环境中使用访问控制,来限制用户和实体的权限。

如有可能,我们也可以将高级特权分给多个角色。通过分离,我们可以有效地削弱“高级用户”,并降低攻击者滥用其访问权限的能力。此外,您还可以运用多因素身份验证的方法,来防止攻击者绕过系统的检查机制,轻松地获得访问权限。

软件漏洞可谓层出不穷,我们能做的只有通过了解漏洞的原理和防范的措施,来及时地调整自己的实现方式,并开展全面的测试,在产品发布之前,尽可能多地发现并解决潜在的漏洞与问题。


上一篇 : 小程序的出现为何能给用户带来不一样的体验?

下一篇: 学会利用软件才能快速提升销售业绩

推荐案例
0531-82963489
周一至周五 8:30-17:30
©2019 小溪畅流网络科技 版权所有 | 备案号:鲁ICP备14035376号