你以为看到了软件的源码,就意味着没有后门吗?关于开发环境安全那点儿事儿

版权声明:转载请注明原链接 https://blog.csdn.net/cowcomic/article/details/85058153

废话不多说,先看两个新闻

吃瓜群众带你了解 NMP 包 event-stream 被植入比特币后门的来龙去脉

“微信勒索病毒”全纪实:打扰了,我只是病毒界的杨超越

第二篇挺长的,先帮总结一下,各位看官有时间可以再慢慢看,挺有意思,可以当看小说打法时间

第一篇
在这里插入图片描述

Nodejs生态圈中一个重要的项目event-stream由于作者精力有限,就把开发维护的工作转让给了另一个人
结果这个人在这个项目里偷偷植入了恶意代码,会将使用者比特币钱包里的比特币偷走
由于Nodejs使用的包管理工具NPM是鼓励大家升级版本,因此这个带恶意代码的版本迅速的被升级到了各个使用它的地方,影响面很广

第二篇
在这里插入图片描述

撇开离奇曲折的破案过程不说,纯就结果来说其实很简单
一个通过易语言制作外挂的小伙,在易语言的一个插件中植入一段恶意代码
凡是使用了这个插件的开发工具开发出来的易语言程序,都会带着一个后门,可以激活一个勒索病毒
由于易语言本身用来开发外挂等灰色产业的东西居多,大家对于杀毒软件报警时信任都变成日常操作了
导致这次这个勒索病毒的爆发

是不是感觉都很离奇,正常的开发代码都没问题,单一旦开发环境或者依赖的环境出了问题,我们依然难逃劫难

这其实并不新鲜

在15年的时候,就出现过苹果的开发软件XCode如果不从官方渠道下载,很容易下载到被植入了恶意代码的开发包,用这个开发出来的app都会带有窃取苹果账号以及可以被远程控制的的功能,当时也是影响了一大批有名的app

再往前回顾,其实很早就有人提醒过这样的事儿

在这里插入图片描述
Ken Thompson(UNIX的发明者)在1984(比我都大)图领奖的获奖演讲上问了一个问题 “看到了软件的源码,就意味着没有后门吗?编译器是否可能存在能自我复制的后门?”

我们看到的源码距离真正的执行还差着很远,以JAVA为例,些java代码需要IDE(使用记事本的大神不在讨论范围内),代码写完要经过编译器编译成字节码,字节码的执行需要JAVA虚拟机,同时还需要java自带的类库,使用的第三方类库等等,经历了非常多的环节,而我们写的代码仅仅是最外面的那一点儿而已

就其中一种来说,还可以想办法化解,我们要尽可能在官方环境下载相关软件,说起来简单,单这其实对版权意识不强的中国人来说也是需要长时间的适应的。可能有些人不同意这种说法,举个例子,现在有多少使用IDEA的人是买的正版,估计很少,大部分破解IDEA使用的手段都是在启动环境中配置一个crack的jar包,这个jar包谁能保证安全呢,如果有人给这个jar包里面注入了恶意代码,那么我们编译出来的字节码是不是都会有危险呢?
在这里插入图片描述

同理,我们在maven上依赖的那些第三方扩展,哪些是能保证真正安全的呢?fastjson里面有没有问题?spring里面有没有可能被注入了?jdbc会不会泄漏我们配置的数据库配置呢?这些现在都很难找到答案

程序界一直都在强调“我们不要重复造轮子”,但已经造好的轮子怎么才能让我们放心的用?

这些问题是需要全球开发者共同努力来回答的,我们也许能有一些标准,有一些手段。也许到最后,我们还是要依靠人性的善良

最后又想起来个事儿,其实前几年出过一次有人网一个js的库里面植入恶意代码,结果被NPM的小组审出来了,封杀掉了,这次为啥就没发现呢,这次的知名度更高使用更广泛,是因为没钱没人了吗?说到这儿再结合近期的redis闭源,neo4j商业版闭源,为大众服务做贡献的组织怎么能正确的在价值链上找到自己的位置真的是个难题

最最后夸夸老罗,回馈开源社区这事儿咋就没人抄你呢?

猜你喜欢

转载自blog.csdn.net/cowcomic/article/details/85058153