在过去十年的云迁移中,针对 Java 应用程序的威胁模型以及我们需要保护它们的方式已经发生了变化。OpenJDK已经在这一领域做出了一个积极的变化,弃用了旧的SecurityManager,这是一个保护过去AOL CD和纸质地图时代的遗物。安全性的下一个积极变化是加强软件组件的供应链,了解正在运行的和易受攻击的,并与数据面临风险的非技术专家沟通这些信息。
这种威胁模型的一部分是由易受攻击的库驱动的,比如去年的Log4j。尽管 Log4j 是一个很棒的日志库,并且在修补方面很活跃,但许多团队争先恐后地确定他们需要在哪里应用这些补丁。对于了解其代码并可以部署的单个 Java 开发人员或团队来说,补丁很简单 — 您更新了一个库,仅此而已。但现实情况是,软件发展得又快又远,通常将这些技术专家的控制点留给没有专业知识来管理此级别问题的利益相关者。在一场混乱中,不了解Java细节的团队到处寻找,包括.NET软件和Python论坛。魁北克政府关闭了服务,直到他们知道Log4j在哪里。这种加扰无效,也不能保护我们的数据。
Java 应用程序威胁模型的一个主要部分现在涉及跟踪组件的能力,并了解我们的应用程序在何处包含已知易受攻击的组件,例如 Log4j。
查看供应链的一个简单方法是,大多数参与者是生产者和/或消费者。企业架构师可能已经熟悉这个类比,因为供应链像队列一样移动,因此可以使用类似的术语。此供应链的示例包括:
最终目标是将应用程序移动到生产环境并运行它们 — 此生产环境只是一个使用者,因为它不会产生新的工件(在 DevOps 周期中,生产的输出是反馈)。
评估“软件供应链”背后的主要驱动力是快速检索三个问题的答案:
目前有许多方法用于清点应用程序。自定义软件通常在 CI/CD 管道期间使用工具创建 SBOM;Maven通过其依赖:tree插件提供此功能。另一种方法涉及容器扫描,以分析运行软件的包装环境。另一种方法涉及将代理集成到软件中。但是,每种方法都需要一个团队在供应链的某个步骤中采取行动,并且不会捕获通常在这些步骤之外部署的生产漂移或下载的项目。JVM拥有的独特优势之一是,它必须存在于任何地方才能运行软件,并且JVM已经拥有必要的信息,因为它负责加载代码。
标签:java,函数,学习,系统,语言,平台,方法,安装,,传递,引用 来源:
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。