作者 | 宋林飞

就在刚刚过去的2021年,技术圈传出了一个爆炸性的新闻,Log4j安全漏洞影响了上亿家公司,造成了无法计量的损失,使无数的程序员度过了一个难熬的不眠夜。不了解的人可能会不禁好奇,这到底是哪个供应商的产品,能够有如此大的影响力?在了解后才发现,原来这是一个开源技术。

那为什么它的漏洞能引发如此的轩然大波?其实,这都要归结于开源技术的特点。因为在遵循项目开源许可的情况下,企业和个人可以自由且免费的使用这些开源技术,获取这些项目的源代码,甚至基于这些项目的代码进行二次开发。因此,好的开源项目自然会被很多的企业、用户使用,并且在很多的软件和服务里面都能看到它们的影子。但正是因为开源技术“开放”和“自由”的特点,它也更容易成为居心叵测之人下手的目标。黑客们有机会对项目的源代码进行分析、修改,并使用各种方法来遮盖对开源项目做出的恶意更改。再加上代码审查的严格程度因项目而异, 如果没有严格的审查措施来检测这些恶意更改,它们很容易就会被忽视,直到它们扩散开来,被使用在众多公司的软件中。

开源,不可忽视的安全隐患

比如刚刚提到的Log4j项目,它是一个基于Java的日志记录工具,被70%以上的公司使用。里面的一个功能由于存在漏洞,导致攻击者可以任意执行命令。这就给了很多黑客可乘之机,他们可以远程在包含Log4j的程序中执行恶意代码,植入病毒等等,几乎等同于为所欲为,如此产生后果的严重性是不可估量的。

然而,与Log4j类似的情况比比皆是。EspoCRM,Pimcore,Akaunting作为三个被数千家公司使用的开源软件,在企业的用户关系管理、客户数据管理、数字资产管理以及财会方面发挥着至关重要的作用。它们也曾被爆出致命漏洞,成功利用这些漏洞可以使绕过身份验证的攻击者执行任意JavaScript代码,控制底层操作系统并发起额外的恶意攻击,还可以通过特制的HTTP请求触发拒绝服务,甚至更改与用户账户关联的公司,且无需任何授权。

还有在2014年席卷整个互联网世界的OpenSSL Heartbleed(心脏出血)漏洞,不仅让整个中国互联网为之一颤,而且导致全球超过三分之二的网站“心脏出血”,使全球互联网大量私钥和其他加密信息处于暴露危险下,受影响严重的系统甚至可以从服务器中直接获取用户密码。这一起起的开源安全事故,无不在印证着开源技术的安全风险。

那不用开源行不行?

在看完上面开源安全事故的回顾,有人可能会有这样的疑问,“既然开源技术有这么大的风险,我们不用它不就行了?”。 其实这个问题的答案也很明显,还真不行!因为开源技术都是由开源社区的小伙伴们共同建设的,其中不乏很多成熟且高质量的项目。直接把这些项目拿来使用,可以避免重复造轮子,为企业节省大量的时间和人力成本。让企业摒弃开源项目,自己再把现成的功能重新开发一遍,浪费成本不说,自研的程序从功能性的角度可能还不如开源。所以,让企业杜绝使用开源技术是不现实的。

真的没有办法了吗?

虽然开源技术确实很容易成为黑客们攻击的目标,但是我们还是可以通过一些手段,来中和使用开源技术带来的安全风险,把可能的损失降到最低。

测试和制度
首先,完善的测试和应急响应制度可以让企业更早的发现开源技术中的漏洞,更快的对其进行响应。 这主要分为三个部分:代码扫描和测试,建立一个明确的流程来解决和修复出现的漏洞、将解决安全问题的规则包含在公司策略中bing。

在使用工具测试开源环境时,静态代码分析是很好的第一步。 静态分析是指在实际软件应用程序或程序上线之前分析源代码并解决任何发现的漏洞。 但是,静态分析无法检测到所有可能嵌入到开源代码中的恶意威胁。 因此,很关键的下一步是在沙盒环境中进行额外测试。 严格的代码审查、动态代码分析和单元测试都是我们可以利用的方法。

在对代码进行了测试后,企业必须有一个明确的流程来解决测试中发现的漏洞。 因为程序员的排期通常会很满。该流程应该明确任务的优先级以及后续操作步骤,让技术人员的每一步操作都有依据可循。

开源技术安全需要行业共同努力
其实,目前包括Linux,Apache这样的顶级开源基金会都在呼吁大家重视开源技术的安全,并也付出了努力。包括资金的支持、开发安全工具、培训、研究和最佳实践。

除了全行业努力保护基于开源代码构建的软件免受威胁外,企业也要对其防御战略有一个积极的态度。包括积极的为他们所依赖的开源代码实施测试并将数据积极向上游反馈。企业也应该制定合理的内部政策和指南,来识别使用开源软件的风险。如此做可以让企业继续利用开源代码的优势,同时也能创建一个能够预防可能威胁的环境。

总的来说,尽管开源技术漏洞导致的安全事故比比皆是,但是我们目前也已经有了一些应对这些危险的经验和方案。那么,你是如何看待这些安源安全事故的?你认为使用开源技术是收益大于风险还是得不偿失?请在评论区留下你的观点。

使用开源 = 富贵险中求?你怎么看?相关推荐

  1. 从来富贵险中求 为何低学历的人能成为亿万富翁

     从来富贵险中求 为何低学历的人能成为亿万富翁 第1页 :一.低学历者或拥有更多时间成本和机会成本 第1页 :一.低学历者或拥有更多时间成本和机会成本 第2页 :二.能力与学历不是一个概念,企业更 ...

  2. 富贵险中求?回顾AMD历次决策之是非对错(AMD授权中国生产x86之后)

    origin: http://diy.pconline.com.cn/784/7845641.html [PConline 杂谈]人的一生总会面对影响自己一生的抉择,比如小编挥之不去的高考回忆,简直一 ...

  3. IT互联网公司—富贵险中求的职业,千万别去

    最近网上看到一条段子"爬虫玩的好,监狱进的早:爬虫爬得欢,监狱要坐穿:数据玩的溜,牢饭吃个够."讲诉的是北京朝阳区公安抓获的一起互联网公司利用爬虫技术手段,窃取某个电商网站客户资料 ...

  4. OSChina 周二乱弹 —— 富贵舔中求

    2019独角兽企业重金招聘Python工程师标准>>> Osc乱弹歌单(2019)请戳(这里) [今日歌曲] @-冰冰棒- :#今日歌曲推荐# Queen<Bohemian R ...

  5. Bug 险中求: 作为新手,我怎样才能快速找到不和别人重复的第一个 bug?

     聚焦源代码安全,网罗国内外最新资讯! 编译:奇安信代码卫士团队 当 Katie Paxton-Fear (@InsiderPhD) 第一次受邀参加在伦敦举办的 HackerOne 现场活动时,她未曾 ...

  6. 发力区块链,百度险中求胜 |链捕手

    在BAT的长期竞争中,百度的落伍已然是不争的事实.在错过移动互联网的船票后,百度正在尽可能地去把握未来科技竞争的制高点,人工智能是百度关键技术之一,区块链同样也是. 长期以来,百度在区块链方向的投入都 ...

  7. kinmall分析百度亮剑区块链能否险中求胜?

    在BAT的长期竞争中,百度的落伍已然是不争的事实.在错过移动互联网的船票后,百度正在尽可能地去把握未来科技竞争的制高点,人工智能是百度关键技术之一,区块链同样也是. 长期以来,百度在区块链方向的投入都 ...

  8. 如何应对开源组件⻛险?软件成分安全分析(SCA)能力的建设与演进

    随着 DevSecOps 概念的推广,以及云原生安全概念的快速普及,研发安全和操作环境安全现在已经变成了近几年非常热的词汇.目前,在系统研发的过程中,开源组件引入的比例越来越高,所以在开源软件治理层面 ...

  9. 夹缝中求生存——华为在被谷歌断后路的抉择

    在近期国际经济和贸易背景下,并且因为先进制造2025计划.华为被列入了黑名单.涉及到系统,硬件等诸多层面.而华为也早早就做了准备,B计划"备胎"将要开始启用应对紧张的局面. Tru ...

最新文章

  1. 特征选择--文本分类: 信息增益
  2. Git 最佳实践:分支管理
  3. HR面 - 十大经典提问
  4. [vue] vue性能的优化的方法有哪些?
  5. 虚拟机Centos系统下hadoop集群中静态IP配置
  6. bzoj 3517: 翻硬币
  7. 实战爬虫:python爬虫学习笔记之爬取大前端网站
  8. ubuntu MySQL数据库输入中文乱码 解决方案
  9. js JavaScript 求100以内的质数(素数)和合数 以及奇数和偶数
  10. stardic字典文件
  11. t检验自由度的意义_统计学常用概念:T检验、F检验、卡方检验、P值、自由度...
  12. csrf 与 samesite
  13. 网站使用QQ互联接入第三方登录,实现qq快捷登录网站的功能
  14. 【华为OD机试真题 JAVA】竖直四子棋
  15. Android界面隐藏软键盘的探索(兼findViewById返回null解决办法)
  16. 网速由100M变成10M的原因与解决方法
  17. 第二季:9.生产环境服务器变慢,诊断思路和性能评估谈谈?【Java面试题】
  18. OpenCV-趣味小游戏-手掌击球
  19. 全国计算机等级三级网络技术试卷详解(二)
  20. 2019新税率计算器

热门文章

  1. 运行dxp.exe运行时,软件出现:应用程序发生异常 未知的软件异常 (0x0eedfade),位置为 0x7c812afb的处理方法
  2. B. Merge it!
  3. 桥牌笔记:不利的将牌分布该如何找到成功的希望?
  4. 通俗易懂讲解什么是《数字签名和数字摘要》
  5. Android根据经纬度获取地址,眼前一亮
  6. ball.style.marginLeft = marginLeft+'px';
  7. Java枚举类、注解和反射
  8. 数据建模分析power pivot
  9. HTTPS原理介绍以及证书签名的申请配置
  10. 产品-如何评价“抬杠”-来自知乎