安全攻防技能 30 讲
何为舟
前微博安全研发负责人
34681 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 41 讲
开篇词 (1讲)
安全攻防技能 30 讲
15
15
1.0x
00:00/00:00
登录|注册

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

思考题
总结
如何建立插件漏洞的防护体系?
为什么要重视插件漏洞?
插件漏洞防护体系

该思维导图由 AI 生成,仅供参考

你好,我是何为舟。
在讲反序列化漏洞的时候,我们说过,这个漏洞其实就存在于 Fastjson、Jackson 等知名的 JSON 解析库中,跟你自己写的代码没有太多关系,所以极难掌控。也就是说,在开发应用的过程中,尽管你的代码很安全了,黑客还是能够通过插件漏洞对应用发起攻击(我文中提到的插件,是第三方的插件、依赖库、工具和框架等的统称)。
说到这儿,想不想测试一下你的插件是否安全?在这里,我准备了几个问题,你可以看看自己是否对所用的插件了如指掌。
你所使用的所有插件的版本是什么?(包括前端和后端,直接引用和间接引用)
你所使用的这些插件,是否存在漏洞,是否不被维护了,是否被废弃了?
你所使用的这些插件,会在哪些地方发布更新信息和漏洞信息?
你所使用的这些插件,是否会定期更新?你是否会对更新插件进行完整的测试?
你所使用的这些插件,在安全方面,有哪些配置需要关注?
对于这些问题,如果你还没办法很快回答上来,那你的应用很有可能要受到插件漏洞的威胁了。所以,我接下来要讲的内容,你要认真听了。

为什么要重视插件漏洞?

在谈论安全漏洞的时候,你应该经常会听到“0 day”(中文译为“零日”)这个词。到底什么是“0 day”呢?“0 day”,即在插件发布修复漏洞的安全补丁之前,黑客就已经知道漏洞细节的漏洞。换一句话说,“0 day”就是只有黑客知晓的未公开漏洞。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

插件漏洞对应用安全构成了严重威胁,即使代码本身看起来很安全,也可能存在漏洞。这些漏洞可能存在于常用的JSON解析库等知名插件中,而不是由开发者自己编写的代码引起的。因此,开发者需要重视插件漏洞,并建立相应的防护体系。文章提到了“0 day”漏洞,即黑客在插件发布修复漏洞的安全补丁之前就已经知道漏洞细节的漏洞,这种漏洞具有极高的攻击有效性。文章还列举了一些知名的插件漏洞案例,如心脏滴血漏洞和Structs 2的漏洞,强调了插件漏洞的危害性。 为了建立插件漏洞的防护体系,文章提出了三个步骤。首先是整理插件,剔除无用插件,以减少插件漏洞出现的可能性。其次是了解自己所使用的插件的版本、是否存在漏洞、是否被维护或废弃,以及在哪些地方发布更新信息和漏洞信息。最后是定期更新插件,并对更新的插件进行完整的测试,同时关注插件在安全方面的配置。 总之,插件漏洞可能对应用安全造成严重威胁,开发者需要重视插件漏洞,并建立相应的防护体系,以保障应用的安全性。文章还提到了补丁管理工具和公开漏洞库的使用,以及虚拟补丁的概念,为了解决补丁管理中存在的问题。这些内容为读者提供了更多关于插件漏洞防护的方法和工具。 总的来说,本文通过介绍插件漏洞的危害性和防护方法,为开发者提供了重要的安全意识和实用建议。读者可以通过本文了解到插件漏洞的严重性,以及如何建立防护体系,从而提高应用的安全性。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《安全攻防技能 30 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(16)

  • 最新
  • 精选
  • leslie
    "插件分析和外部依赖以及补丁管理“:这其实就是安全中最典型的问题同时又是我们最容易处在处理与不处理之间的事情。 ”永恒之蓝“印象非常深:但是事后查过,这个补丁的出现远远早于国内爆发时期,这其实就涉及到了一个现象-安全意识。自己作为一个从事运维十余载的老兵同样不可能层层意识到这么多问题,毕竟精力有限且主业不在此-不过这种意识我又觉得确实必须有。 今天的东西很实际且非常实用:“发现问题、控制问题、分析问题、解决问题”。无乱是运维还是安全这都是必须的。 感谢老师的分享,学习中提升自己。今天是元旦、学习中新的一年开始了、祝老师新年快乐,谢谢一直以来的辛勤付出。

    作者回复: 谢谢~

    2020-01-01
    7
  • Cy23
    公司很少会主动弥补漏洞,都是等检查未通过后弥补

    作者回复: 对于大部分公司都是这个情况,所以需要有人做好向上教育,并自上而下推动整改。。

    2020-01-01
    3
  • Geek_e95920
    gradle项目怎么检查是否存在未使用的插件依赖?

    作者回复: 我没有用过gradle,不过可以尝试一下OWASP的gardle检查工具。https://jeremylong.github.io/DependencyCheck/dependency-check-gradle/index.html

    2020-02-12
    2
  • Roy Liang
    执行mvn org.owasp:dependency-check-maven:check会以当前时间下载最新的CVE漏洞库,现在新年刚过,会报“Unable to download meta file: https://nvd.nist.gov/feeds/json/cve/1.1/nvdcve-1.1-2020.meta; received 404 -- resource not found”错误。解决办法:1. 调整当前日期为2019年12月31日,2. 等待网站的新漏洞文件发布

    作者回复: 赞

    2020-01-02
    2
  • 小晏子
    试着去安装了这个OWASP dependency check,可是这个工具用不了了,有个“new year bug”。 记得之前用其他工具扫描过android的漏洞,扫描到好多依赖包的CVE 问题,都是通过升级这些依赖包解决的。 对于第二个问题,有个疑问,比如现在数据库用的是mysql 5.7.18,os用的是ubuntu 16.04,可是这些组件都是用的公有云提供的现成的,比如数据库是阿里云的rds,os也是直接安装在ECS上,这样的话,这些CVE的漏洞威胁是不是就不那么大了?因为阿里云已经做了一层安全隔离?

    作者回复: 对于第二个问题,是的。阿里云会提供一些安全检测的能力,随意问题不是那么严重。我在用阿里云的安骑士的时候,它也会经常提醒我去更新各种插件。

    2020-01-01
    2
  • hello
    老师,新年快乐

    作者回复: 新年快乐

    2020-01-01
    1
  • 二马
    插件属于资产的一部分,每套系统在架构设计的时候就会明确使用什么插件,什么版本,即在架构评审阶段就获取到这个信息,后续版本更新在变更发布系统中审批,这两个阶段的信息同步到cmdb中,这样是否能从源头对插件有个全面统一试图的管理,再辅助相关工具定期检查对比,实现数据准确性。

    作者回复: 个人感觉比较理想。对于开发来说,在maven中加一个依赖是很简单的。如果还强制要求增加一个审核的流程,尽管安全性更高,但对开发来说,额外的负担确实太大了。

    2020-01-10
  • 小老鼠
    安全工作由开发工程师、测试工程师还是安全工程师来防范?

    作者回复: 这就得由公司领导来定义了。大公司一般有专门的安全部门,因此会由安全工程师来防范。

    2020-01-02
  • qinsi
    node项目可通过depcheck检查未使用的依赖项,通过npm audit检查依赖项中的已知漏洞
    2020-01-01
    1
    8
  • Geek_David
    每天看一课 第一遍,音频加文字阅读 第二遍,逐字阅读并详细理解事例代码 第三遍,结合理解的内容输出笔记 基本上三遍下来1个小时 后面还需要找实例进行实践,这个最花功夫 所以学完课程估计要2个月,再加上实践掌握,没有半年下不来,但是半年后将会是另外一个人。 老师的课程总结很好,作为引路者受益匪浅
    2020-04-11
    3
收起评论
显示
设置
留言
16
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部