据 SAP 称,当今85%的安全攻击针对的是软件应用程序,因此一些列应用程序安全测试工具也应运而生。为了避免这些恶意攻击,企业通常使用应用程序安全测试工具来去缓解和解决安全风险,而不同的工具对应的使用方法和覆盖范围各不相同。本期文章,我们将会讨论 SAST 和 SCA 这两种类型的应用程序安全解决方案如何帮助企业应对不同的风险。

软件世界的风险与挑战

在这个依靠软件运行的世界中,企业面临一个挑战:开发好的软件很难。随着软件变得越来越复杂,确保其可靠性和安全性变得更加困难 。无论是购买的软件、专有软件还是作为服务交付的软件,都无法避免漏洞问题,而开源软件更是如此。但开源的优势相较于传统开发模式更加突出,即更快的上市时间、更多的创新机会、更低的开发成本以及与全球开发人员社区更密切的联系。然而企业有时会忽略与开源使用相关的安全和风险管理挑战。

专有代码中的问题

在开发过程中,开发人员难免会将一些安全问题(例如OWASP Top 10 和 2019 CWE Top 25中列出的问题)误引入专有代码中。最著名的安全问题包括 SQL 注入、破坏的身份验证和会话管理以及跨站点脚本。而静态应用程序安全测试 (SAST) 可以在开发人员编写代码时,或在提交、构建或测试阶段,通过检查代码本身来检测常见类型的问题。

开源组件中的漏洞

开源漏洞,例如美国国家漏洞数据库(NVD) 中列出的漏洞,是通过在代码库中使用开源组件引入的。其实开源软件并意味着不比商业软件更安全或更不安全,只是缺乏对其使用的开源可见性的企业无法有效缓解和修复开源漏洞。同时开源漏洞的数量正在增长,NVD 仅在 2018 年就报告了超过 16,000 个新的开源漏洞。软件成分分析(SCA) 侧重于识别代码库中的开源成分,以便开发团队可以更好地缓解管理他们面临的安全和许可合规风险和问题。

与攻击者的较量

企业通常会采用数种方式来缓解和解决漏洞风险和问题,但如何更高效地管理漏洞是企业都十分关注的地方。虽然修复漏洞可能仅仅需要花费几天或几分钟的时间,但企业往往需要花费数月时间来发现可被利用的漏洞。

此外,开源漏洞还会带来额外的安全风险。因为开源在任何地方都可以访问和使用,恶意攻击者则会利用这一点,来访问有关已知开源漏洞的公开信息以及有关如何利用漏洞的详细信息。比如,当漏洞被报告出来时,开源社区通常也会相应发布该漏洞的利用方式说明。因此,开源的存在虽然让软件开发变得更加便捷高效,但同时也给恶意攻击者提供了同样信息源和便利。

SAST vs SCA: 差异一览

应用程序安全挑战多种多样,那么解决这些挑战的最佳方法是什么?解决软件漏洞的有效方法当然包括安全测试工具,使用 SAST 来发现专有代码中的问题,以及使用 SCA 来发现开源代码中的漏洞。

同时包含 SAST 和 SCA 的软件安全程序会更加全面,而企业也会获得以下的效果:

  • 通过早期识别和选择安全组件提高了产品质量

  • 跨专有代码和开源组件的更高的安全风险可见性

  • 降低在开发过程早期发现和修复的漏洞的补救成本

  • 针对已知开源漏洞的攻击将安全漏洞风险降至最低

  • 优化的安全测试,有效与敏捷开发工具和实践兼容

让我们分别来看看这两个安全测试工具的特点及其优势。

静态应用安全测试 SAST

SAST 通过检查应用程序的源代码来查明可能的安全问题,有时称为白盒测试(因为源代码可用且透明)。SAST 在软件开发生命周期(SDLC)的早期发挥了巨大的作用,而在软件开发早期修复问题相对容易且成本更低。SAST 可以有效地发现上文提到的许多常见安全问题,例如跨站点脚本、SQL 注入和缓冲区溢出。

SAST 优势

  • 查明专有代码中的缺陷和问题

  • 在 SDLC 早期发现问题,此时修复成本远比在软件开发中后期要低得多!

  • 在代码投入生产之前检测问题(也就是在这些问题成为漏洞之前解决掉!)

软件成分分析 SCA

SCA 识别代码库中的所有开源并将该清单映射在当前已知漏洞的列表。入门级解决方案只是收集有关已声明的开源(例如库)的信息并将其与 NVD 进行比较,而更高级的解决方案则会使用复杂的源代码和二进制文件扫描,来确保其更全面地识别所有开源代码,包括从已知来源复制的代码片段。除此之外,还使用其他漏洞信息来扩充 NVD 数据,以提供更完整、更及时的报告。先进的 SCA 解决方案会针对应用程序部署后报告的漏洞提供持续监控和警报。

SCA 优势

  • 可靠地检测和映射其他方法无法发现的已知开源漏洞

  • 提供对正在使用的开源代码的完整说明

  • 持续监控发现的新漏洞

总 结

应用程序安全这个领域正在迅速地发展,而这在很大程度上要归功于开源代码的广泛运用。开源凭借其明显的优势,逐渐成为现代应用程序开发的基础。但是仅包含 SAST,且只关注专有代码的应用程序安全测试方法可能会留下重大的漏洞识别和管理漏洞。在这个时候,SCA 对剩余的部分做了很好的补充。SCA 提供了开源软件的自动识别和清单,将组件映射到已知漏洞,并简化和保护CI/CD活动。因此,合理地结合使用 SAST 和 SCA ,能够对整个应用程序环境的安全性进行全面且深入的评估。

SAST + SCA: 结合使用安全升级的更多相关文章

  1. WEBLOGIC 11G (10.3.6) windows PSU 升级10.3.6.0.171017(Java 反序列化漏洞升级)

    10.3.6版本的weblogic需要补丁到10.3.6.0.171017(2017年10月份的补丁,Java 反序列化漏洞升级),oracle官方建议至少打上2017年10月份补丁. 一.查看版本 ...

  2. weblogic安装升级配置

    本次操作是主要围绕如何搭建weblogic服务器升级weblogic软件及配置服务,总共有三大步骤,可划分为六个小步骤: 选取已有环境,准备weblogic压缩包,java包等 准备操作系统环境用户目 ...

  3. 应用安全测试技术DAST、SAST、IAST对比分析【转】

    转自:https://blog.csdn.net/qq_29277155/article/details/92411079 一.全球面临软件安全危机 2010年,大型社交网站rockyou.com被曝 ...

  4. weblogic补丁升级详细步骤,18.7.17补丁更新

    weblogic打补丁 到weblogic官网下载补丁包 对应的补丁包  如: p22248372_1036012_Generic.zip 一  安装补丁步骤 1.登录linux的weblogic用户 ...

  5. 软件成分分析(SCA)完全指南

    上一篇文章中,我们讨论了 DAST 的概念.重要性及其工作原理.那在开发过程中如何查找开源软件包中的漏洞并学习如何修复?本指南带你一起了解 SCA 工具及其最佳实践. 如今,绝大多数代码驱动的应用程序 ...

  6. Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级

    Linux平台 Oracle 10gR2(10.2.0.5)RAC安装 Part3:db安装和升级 环境:OEL 5.7 + Oracle 10.2.0.5 RAC 5.安装Database软件 5. ...

  7. 看完SQL Server 2014 Q/A答疑集锦:想不升级都难!

    看完SQL Server 2014 Q/A答疑集锦:想不升级都难! 转载自:http://mp.weixin.qq.com/s/5rZCgnMKmJqeC7hbe4CZ_g 本期嘉宾为微软技术中心技术 ...

  8. Entity Framework Core 1.1 升级通告

    原文地址:https://blogs.msdn.microsoft.com/dotnet/2016/11/16/announcing-entity-framework-core-1-1/ 翻译:杨晓东 ...

  9. ASP.NET 5 RC1 升级 ASP.NET Core 1.0 RC2 记录

    升级文档: Migrating from DNX to .NET Core Migrating from ASP.NET 5 RC1 to ASP.NET Core 1.0 RC2 Migrating ...

  10. SQL Server2016升级前几点自检

    SQL Server2016已经出来一段时间了,而且最新的SP1包也于2016年11月18日正式发布,各种新的特性推出让我们跃跃欲试.那么对于我们真实的业务环境,特别是生产环境要不要"跟风& ...

随机推荐

  1. codeforce 827div4

    第一次在codeforce上打题,补一下题记录成长 D题 分析:求数组中两个互质的数的最大下标和: 思路:观察到数据范围n是2e5暴力做n^2会超时,再观察数据a[i]最大为1000,所以这2e5个数 ...

  2. 【scipy 基础】--插值

    插值运算是一种数据处理方法,主要用来填补数据之间的空白或缺失值.因为在实际应用中,数据往往不是完整的,而是存在着空白或缺失值,这些空白或缺失值可能是由于数据采集困难.数据丢失或数据处理错误等原因造成的 ...

  3. AcWing 168. 生日蛋糕

    原题链接:AcWing 168. 生日蛋糕 设当前体积是\(v,h.r\)分别记录每层的高度和半径,由于整个蛋糕的上表面面积等于最大蛋糕的圆面积,所以枚举到最大一层的时候直接加上即可. 优化搜索顺序: ...

  4. 查看API官方文档

    盛年不重来,一日难再晨.及时宜自勉,岁月不待人.   学习一门语言, 了解其开发文档必不可少.开发文档就是我们在编程开发.维护.升级过程中的参考最全面.最权威的资料.我认为就是开发者为后人方便理解留下 ...

  5. python之range()、arange()和linspace()

    目录 range() arange() linspace() range() range()格式如:range(start, stop, step) start:开始的数值,默认从0开始 stop:结 ...

  6. 聊聊卷积神经网络CNN

    卷积神经网络(Convolutional Neural Network,CNN)是一种被广泛应用于图像识别.语音识别和自然语言处理等领域的深度学习模型.与RNN.Transformer模型组成AI的三 ...

  7. [cnn][julia]Flux实现卷积神经网络cnn预测手写MNIST

    julia_Flux 1.导入Flux.jl和其他所需工具包 using Flux, MLDatasets, Statistics using Flux: onehotbatch, onecold, ...

  8. 在 Sealos 中使用区块链技术实现统一支付系统

    拿着区块链技术不一定是去发币,很多业务系统也适合用这些技术,比如做个统一支付系统,积分系统等,可以做为一家公司的金融基础设施,或支付中台.拿链的技术去做有很多好处: 高可用,自带多区域高一致性的能力, ...

  9. 终结篇:==和equals有什么区别?

    == 和 equals 有什么区别?这个问题本身不难,但是被问到的频率很高,且大部分人的回答都不够全面,让人听了有种"恨铁不成钢"的感觉,所以今天咱们就来好好聊聊这个问题. 1.典 ...

  10. Json Schema简介和Json Schema的.net实现库 LateApexEarlySpeed.Json.Schema

    什么是Json Schema ? Json Schema是一种声明式语言,它可以用来标识Json的结构,数据类型和数据的具体限制,它提供了描述期望Json结构的标准化方法. 利用Json Schema ...