借用习大大的一句话:安全是发展的保障,发展是安全的目的。 这句话不仅仅适用于实体经济,也适用于互联网。
事情是这样的,最近在做开源软件供应链安全相关的项目,之前没了解这方面知识的时候感觉服务器被黑,数据库被删,网站被攻,这些东西都离我们太遥远了,因为感觉好像都轮不到我们,直到我开始做这个项目,才发现网络安全,软件安全问题真的是无处不在。今天我们来聊聊删库跑路和代码投毒。我们从可操作性及易发现性还有后果及预防策略上来探讨一下。
删库跑路
在计算机行业,“删库跑路”流传已久,对,就是删完库,跑在监狱的路上,这个对于安全来说简直是小儿科。
可操作性
1. 权限控制
像数据这么敏感的权限会控制的比较严格,比如人员的权限控制及防范:
- 运维人员需进行双因素认证;
- 防火墙或其他安全设备进行网络限制,仅允许从堡垒机才可访问至核心资产;
- 数据库等系统资源账号密码托管在堡垒机中,堡垒机定期自动改密,运维人员无需知道数据库等系统资源的账号密码;
- 严格控制后台资源的访问权限,做到访问权限最小化原则,给不同运维人员分配最小访问权限;
- 设置数据库等高危操作命令的金库模式,执行高危命令时可触发阻断、二次审批等操作;
- 根据实际情况设置更高级别安全限制,比如登录堡垒机时的IP地址、MAC地址限制,登录堡垒机的时间限制等等。
看到了没,首先第一步你让007来也不一定能搞定。就算侥幸跨过了第一步。。。然后就被警察抓走了。。。猪角卒。。
2. 数据备份
- 数据定期备份。
- 云厂商数据防护。
- 异地多活。
就算删了也能快速恢复。
综上:你能删库的概率基本为0了,只要地球还在数据就还在。
易发现性
这个不用多讲,即使能删库,有这个权限的人一根指头都能数清,那就是你了。。
影响后果
删库跑路一般是只会影响自己的公司,对其他企业或者人员没啥影响。但对于你。。。
相信你已经做出了你的选择。
代码投毒
代码投毒,是指攻击者在合法软件的开发、传播和升级过程中进行劫持或篡改,从而达到非法目的的攻击类型。鉴于当前超过99%的商业软件包含开源软件,一旦具有大规模用户基础的开源软件存在安全漏洞,势必会影响整个软件产业、甚至其他重要行业的供应链安全。
最近的案例
node-ipc 包的作者 RIAEvangelist 在以反战名义代码投毒投毒
他提交的是一段恶意攻击代码:如果主机的 IP 地址来自俄罗斯或白俄罗斯,该代码将对其文件进行攻击,将文件全部替换成 ❤。该作者是个反战人士,还特意新建了一个 peacenotwar 仓库来宣传他的反战理念。据悉,该 package 每周下载量达到了百万。另外,使用 Yarn 的开发者也受到了影响。
PyPI 官方仓库遭遇150 恶意包疯狂投毒
攻击者mega707通过模仿agoric,datadog等知名软件包进行钓鱼,当用户安装攻击者的恶意包时,攻击者可窃取用户信息,环境地址等敏感信息上传至指定服务器。
Fastjson官方披露高危漏洞,包括rocketmq、jeecg-boot等近15%的github开源项目受影响
2022年5月23日,fastjson 官方发布安全通报,fastjson <= 1.2.80 存在反序列化任意代码执行漏洞,在特定条件下可绕过默认autoType关闭限制,可能会导致远程服务器被攻击,风险影响较大。建议使用了 fastjson 的用户尽快采取安全措施保障系统安全。
可操作性
- 包抢注攻击
攻击者通过向主流的软件包管理员(PyPI、Node.js npm、Maven、RubyGems、Docker Hub)投放大量「相似拼写名称」谐音的软件包或镜像,仿冒正规项目,从而让有恶意代码的代码包被安装到开发或生产环境。
- 依赖库注入恶意代码
攻击者通过自身的攻击能力与掌握的漏洞,入侵软件、硬件供应商的办公与开发环境,直接向产品代码内植入后门,在设备上预安装的恶意软件 (相机、USB、电话等),实现恶意代码与后门的分发,最终进入被攻击目标的网络。
预防策略
1)企业内部维护可信软件仓库,尽量减少企业人员从各种未知渠道下载软件。
2)监测服务器和PC运行软件的异常操作和流量,甚至提前对软件进行沙盒检测,主动发现潜在隐患。
3)全面梳理和维护企业在用软硬件信息,在供应链攻击曝光时做到快速止损定损。
4)使用官方渠道下载的IDE;软件分发及升级采用HTTPS等加密传输;避免内置远程控制能力;定期自检官网代码和执行程序是否存在恶意篡改。
对于企业级的,可以引入DevSecOps ,把安全扫描引入到DevOps流程当中,做好预警通知的能力,第一时间发现并修复软件漏洞。
最后
不管是删库跑路还是代码投毒,这些都是法律的红线,调侃归调侃,玩笑归玩笑,笑过以后,希望每个开发者都应该有敬畏之心,不然就只能到包吃包住的地方摸鱼了。