首页 > 其他分享 >11 | 插件漏洞:我的代码看起来很安全,为什么还会出现漏洞?

11 | 插件漏洞:我的代码看起来很安全,为什么还会出现漏洞?

时间:2023-09-28 11:36:06浏览次数:49  
标签:11 插件 Dependency 补丁 更新 漏洞 使用

了解插件

你所使用的所有插件的版本是什么?(包括前端和后端,直接引用和间接引用)

你所使用的这些插件,是否存在漏洞,是否不被维护了,是否被废弃了?

你所使用的这些插件,会在哪些地方发布更新信息和漏洞信息?

你所使用的这些插件,是否会定期更新?

你是否会对更新插件进行完整的测试?

你所使用的这些插件,在安全方面,有哪些配置需要关注?

 

为什么要重视插件漏洞?

0day漏洞,即在插件发布修复漏洞的安全补丁之前,黑客就已经知道漏洞,也就是只有黑客知晓的未公开漏洞

 

例如脏牛漏洞

心脏滴血漏洞。加解密插件OpenSSL中的漏洞,OpenSSL曾为所有HTTPS网站提供数据加密保护。

 

总之,对于应用来说,不止代码本身会产生漏洞,除了代码之外的一切都有可能出现漏洞。

 

如何建立插件漏洞的防护体系?

整理插件,剔除无用插件

如果使用 Maven 作为插件管理工具的话,你一定会先通过 POM 文件去找到自己所使用的插件(即所有的 Dependency)。但是,Dependency 只是你的应用中直接使用的插件,这些插件本身也会引用很多其他插件。所以大部分应用的插件依赖树十分复杂,那你该如何整理全部的插件呢? 首先,你可以通过Maven Dependency Plugin帮助自己自动分析插件依赖树。除了展示出当前 Maven 工程中所有的使用插件,Maven Dependency Plugin 还会对插件的使用情况做进一步的分析,帮你找出在 POM 中却没在代码中使用的插件。这样,你就可以对这一类无用的插件引用及时剔除,自然也就能够减少插件漏洞出现的可能性。

管理插件补丁更新

一旦某个插件出现漏洞,通常插件的运维方都会尽快推出补丁。有的公司还会设立专门的部门和人员进行补丁管理的工作。一旦出现漏洞和补丁,公司会先评估漏洞的严重性,然后设定打补丁的优先级,推动研发人员进行更新操作。 所以,建立插件防护体系的第二步,就是要知道你有哪些插件需要更新。但是,在实际工作中一个应用随便就依赖几十个插件,你当然没办法一个一个去查询插件的更新状态了。那Version Maven Plugin就是用来帮你检查版本更新的一个工具。你可以看到,在下面的分析结果中,通过mvn version:display-dependency-updates这个命令,我们就能发现 JUnit 有一个新的 4.11 版本。

 

那使用了补丁管理工具之后,我们就可以完全放心了吗?当然不是。补丁管理中依旧存在一些问题,我这里从 3 个方面帮你梳理了一下,你可以作为了解。

补丁可用性:并不是所有的插件漏洞,都能有最新的补丁进行及时的更新和维护。很多时候,运维人员会面临一个已知的漏洞,但无补丁“可打”的窘迫局面。

覆盖面不全:实际上,并不是所有语言都能够很好地进行插件分析工作,这也就导致运维人员无法掌控公司内所使用的所有插件。这个时候,必然会产生一定的漏洞疏忽。

更新时间延迟:为了提高打补丁的效率,补丁管理一般会按月或者按季度进行集中的打补丁工作。而在这个期间,公司的应用就会处于无保护的状态。

 

为了解决这些问题,虚拟补丁的概念就被提出了。所谓虚拟补丁,就是在不对应用插件进行升级的情况下,有效阻止攻击流量。实现的原理也很简单,即在前置的网络或系统中,对针对插件漏洞的攻击流量进行检测和拦截即可,大部分防火墙、IPS 等安全防御工具,都会提供虚拟补丁的功能。比如,2017 年,永恒之蓝肆虐的时候,防火墙会直接封禁 445 端口请求,就相当于给所有的 Windows 系统,打上了虚拟补丁。然后,只需要等到所有 Windows 都真正更新补丁之后,再放开对 445 端口的限制即可。

 

使用公开漏洞库

每当漏洞库中新曝出一个漏洞时,你需要分析这个漏洞所涉及的插件:是否在公司中有被使用;公司中使用的,是否是受影响的版本;这个漏洞会产生哪些危害等等。这样,你才能够尽快地修复各类已知的插件漏洞,降低应用被黑客攻击的可能。

那实际工作中,我们其实也可以借助工具,自动化地完成匹配公开漏洞库的工作。OWASP Dependency-Check是一款专门进行插件漏洞检测的工具。它会将工程内的插件和公开的漏洞库进行比对。最终,会生成一个网页形式的报告,使你对工程中的插件漏洞一目了然了。下图就展示了,如何通过 OWASP Dependency-Check 发现一个 3.2.1 版本的 Commons-Collections 的高危漏洞。

同理,在其他语言中,也会存在类似的插件管理工具。比如对于 JavaScript 中的插件,我们可以使用Retire.js进行整理。

 

总结

我们在建立插件漏洞的防护体系时,会使用这些自动化管理工具完成这样三件事情:

统计你的应用中引用了哪些插件

管理这些插件中是否有版本更新

检测这些插件是否存在已知的漏洞

 

提高版本更新的效率、避免插件漏洞,主要可以分三个步骤:首先我们可以使用插件分析工具,来了解应用中包括了哪些插件;然后,可以通过补丁管理制度和虚拟补丁,来推进对插件漏洞的管理和修复工作;最后,我们可以对比公开漏洞库(比如 CVE 等)中的最新漏洞,及时修复漏洞,降低被黑客攻击的可能。

 

标签:11,插件,Dependency,补丁,更新,漏洞,使用
From: https://www.cnblogs.com/Adam-Ye/p/17735294.html

相关文章

  • 力扣-2011-执行操作后的变量值
    存在一种仅支持4种操作和1个变量X的编程语言:++X和X++使变量X的值加1--X和X--使变量X的值减1最初,X的值是0给你一个字符串数组operations,这是由操作组成的一个列表,返回执行所有操作后,X的最终值。 示例1:输入:operations=["--X","X++","X++"]输出......
  • NOJ[1143] 字母转换
    描述:通过栈交换字母顺序。给定两个字符串,要求所有的进栈和出栈序列(i表示进栈,o表示出栈),使得字符串2在求得的进出栈序列的操作下,变成字符串1。输出结果需满足字典序。例如TROT到TORT:[iiiiooooioiiooio]输入:给定两个字符串,第一个字符串是源字符串,第二个字符......
  • 【CVE-2019-0708】远程桌面服务远程执行代码漏洞复现
    【CVE-2019-0708】远程桌面服务远程执行代码漏洞当未经身份验证的攻击者使用RDP连接到目标系统并发送经特殊设计的请求时,远程桌面服务中存在远程执行代码漏洞。此漏洞是预身份验证,无需用户交互。成功利用此漏洞的攻击者可以在目标系统上执行任意代码。靶机:windows7IP:192......
  • 【230927-7】若▲ABC的三个内角满足SinA:SinB:SinC=5:11:13,则▲ABC为(锐角/直角/钝角)
    ......
  • CF1011 Codeforces Round 499 (Div. 2)
    CF1011AStages每次记下上一个选的位置,贪心能填就填。#include<iostream>#include<cstdio>usingnamespacestd;constintN=55;intn,k;chars[N];intcnt[27];intmain(){ scanf("%d%d",&n,&k); scanf("%s",s+1); for(inti=1;i<=n......
  • CF1162 Codeforces Round 557 (Div. 2) [based on Forethought Future Cup - Final Ro
    CF1162AZoningRestrictionsAgain每个位置越高越好,暴力模拟即可。#include<iostream>#include<cstdio>usingnamespacestd;constintN=55;intn,h,m;inta[N];intmain(){ scanf("%d%d%d",&n,&h,&m); for(inti=1;i<=n;i++) a[i]=h;......
  • 每日一练 | 华为认证真题练习Day115
    1、FEC(ForwardingEquivalenceClass)转发等价类,是一组具有某些共性的数据流的集合;FEC可以根据地址进行划分,但是不能根据业务类型、QoS等要素进行划分。A.对B.错2、关于OSI参考模型中网络层的功能说法正确的是?A.OSI参考模型中最靠近用户的一层,为应用程序提供网络服务B.在设备......
  • 日常记录--day11--2023-9月27日--周三
    日程:今天只有上午有节英语课,睡过头了,9点20才起床,怕赶不上就没有吃早饭。中午小睡半个小时,下午没课,起来学习了一下Javaweb,预习了数据结构,锻炼了一下,晚上7-9点继续javaweb。学了什么:可恶的Javaweb,继续学习Javaweb。PS:不想学习,想要成为餐巾纸;......
  • 「SDOI2011」 黑白棋
    绷不住了,洛谷上的dp没一个表述清楚了,一怒之下写一篇题解。注意本题解只讲dp部分。首先转化不合法的充要条件就是:设相邻两个棋子中间间隔数量为\(b\),那么对于任意非负整数\(i\)都有\((d+1)|\sum(b\&2^i)\)。其中\(\&\)是按位与运算。所以我们要计数一个有序的并且包含......
  • 外汇110讯:台湾破获一起重大投资诈骗案
    台湾刑事调查局(CIB)周六(9月23日)表示,台湾一个涉嫌在网上诈骗投资者1.5亿新台币(合467万美元)的犯罪团伙已被破获。该犯罪组织的成员声称是一家名为“Fasonla”的香港公司的顾问,该公司并不存在。据报道,他们在Facebook上刊登广告招揽受害者,受害者被要求加入一个LINE小组,并在一个虚假网......