文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

四个常见的软件安全开发问题及其解决方法

2024-12-02 15:34

关注
[[437416]]

管理和维护安全软件的过程可能会给寻求尽快交付功能的开发人员带来意想不到的障碍。研究表明,59% 的公司现在每天多次、每天一次或每隔几天部署一次代码。然而,随着软件成为现代企业的支柱,网络攻击已成为一种永远存在的威胁,这使得应用程序安全成为确保业务连续性的必要条件。

左移运动——在开发过程的早期进行安全测试和修复缺陷——增加了开发人员在应用程序安全方面发挥作用的需求,但经过安全培训的开发人员仍然存在很大的技能差距。有兴趣提高安全知识的开发人员可以从了解一些常见的 DevSec 问题开始。

挑战一:漏洞修复时间缓慢

对于开发人员和安全团队来说,最常见的挑战之一是安全债务——代码中存在很长时间的安全漏洞,如旧的信用卡余额,现在解决起来比引入时要昂贵得多。为避免增加安全债务,开发人员可以实施自动化扫描和测试。

自动化程度越高越好:在一次年度软件安全状况 (SoSS) 报告中,我们发现将动态分析 (DAST) 与静态分析 (SAST) 结合使用的组织修复 50% 的安全漏洞平均快 24.5 天。

更快地查找和修复新缺陷的另一种方法是更频繁地扫描。更频繁的扫描使组织能够以 22.5 天的速度到达中间点,并且通过 API 运行 SAST 扫描将修复 50% 的缺陷的时间缩短了 17.5 天。

研究还表明,稳定的扫描节奏可以帮助您的团队看到缺陷类型比例的有意义的变化,并随着时间的推移减少安全债务。将安全测试视为马拉松,而不是短跑:在赛事前一周只跑 50 英里并不能为马拉松做好准备。

挑战二:常见代码安全漏洞的引入

了解哪些缺陷对您的应用程序构成最大风险以及它们是如何引入的,对于防止这些常见缺陷导致的破坏性网络攻击至关重要。我们的 SoSS 报告发现,信息泄露 (65.9%)、CRLF 注入 (65.4%)、密码问题 (63.7%) 和代码质量 (60.4%) 是应用程序中最常见的缺陷。为了解决这些常见的缺陷,开发人员应该考虑以下几点:

对于信息泄露,在编写代码时依靠安全编码最佳实践并实施安全测试程序。

为防止 CRLF 注入,不要相信用户输入,使用正确的验证和编码清理用户提供的数据,并确保在 HTTP 标头中正确编码输出。

可以通过良好的安全编码实践来防止加密漏洞。此外,大多数主要语言本质上都支持良好的加密实践,并且对不正确实现的担忧通常只会在个案的基础上出现。

通过使用一致的编码模式、在您的 SDLC 中自动进行安全测试并通过有效的培训保持最新状态,来防止代码质量不佳问题。

值得注意的是,这四个缺陷年复一年地一直排在报告的前 10 名,表明开发人员在意识和培训方面存在差距。事实上,对开发人员的安全培训可能是最大的挑战。大学不仅没有定期教授安全编码,而且在职培训也同样难以获得,因为大多数应用程序安全都由安全团队负责。为了使开发人员能够预防、查找和修复代码中的缺陷,组织需要提供可操作的、真实的培训,开发人员可以立即应用这些培训来加强他们所学的知识,并使其成为日常工作的一部分。

挑战三:依赖开源库,但只扫描内部编写的应用程序代码

开源代码几乎无处不在。当您考虑到许多开源库不是由开发人员直接选择时——应用程序中 46.6% 的不安全开源库是可传递的,由另一个正在使用的库引入应用程序——很容易理解开源代码如何扩展攻击面在应用程序中。事实上,我们的研究发现,71% 的应用程序在初始扫描时在开源库中存在缺陷。

集成软件组合分析 (SCA) 等扫描工具可以帮助更准确地检测开源漏洞。由于 74% 的开源缺陷可以通过补丁、修订或主要/次要版本更新来修复,因此该过程可以有效缓解。

使用正确的工具来掌握代码是降低风险和确保您可以自信地使用开源库的关键。

挑战四:代码中高危和非常高严重性缺陷的过剩

无论您喜欢哪种软件语言,了解对它们影响最大的缺陷都将帮助您在错误成为更大问题之前防止错误。我们的数据显示,某些语言比其他语言具有更多的高风险缺陷,这意味着应该仔细设计和测试用特定语言编写的代码。一些例子包括:

通过检查各种常见语言的缺陷频率趋势,开发人员可以更好地了解他们在编码时面临的日常风险,并可以使用这些知识在这些缺陷成为问题之前提前解决。

实施安全编码实践并利用实践培训来增加专业知识将有助于确保应用程序的安全性能够跟上现代开发需求。当开发人员不仅能够发现,而且能够修复他们的代码中的缺陷时,他们将在成为更精通安全的开发人员的道路上走得很好。

 

来源:ITPUB内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯