前言¶
本文是 浅析软件供应链攻击之包抢注低成本钓鱼 这篇文章的阅读笔记。
软件供应链攻击方法¶
产品开发阶段¶
- 源代码编译遭攻击污染:IDE 污染、日常开发和运维工具被入侵置入病毒和后门
- 供应商预留后门:vpn、笔记本、chrome 插件等日常工具预置后门
产品分发阶段¶
- 捆绑下载,正常软件被捆绑了恶意代码
- 下载劫持,包括官网下载链接遭替换、HTTP流量/域名劫持等中间人劫持、P2P缓存毒化劫持等
- 依赖包抢注:抢注相似包名、抢注企业内部包名
- 开发者没有及时到官方源注册包名,造成攻击者可以抢先注册
- 开发者生成依赖配置文件引用了官方源不存在的包
- 开发者包命名不够规范,造成使用者容易被误导
- 使用者安装知名软件时,根据直觉直接敲打广为人知的名称,但实际上官方包另有其名
- 使用者在使用命令行手敲安装包名时,漏敲或多敲或错敲个别字符,或不经意粘贴其他内容,造成安装恶意软件包
- 开发者错误指引或使用者错误使用不安全的安装选项
- 攻击者抢注包名的一些手段:
- 分析官方源库全部包名称
- 分析软件包的引用方式
- 分析GitHub开源项目的名称、README.md、依赖关系文件
- 挖掘网站泄露信息
- 直接抢注知名软件名称、常见名词
- 物流链劫持,硬件产品(比如服务器、笔记本、U盘等)在物理运输过程中被调包或加料植入木马后门
产品使用阶段¶
- 升级更新劫持,包括官网升级程序被替换,HTTP流量/域名劫持等中间人劫持
- 官方云控作恶,官方下发命令操控用户主机
软件供应链攻击应对防范措施¶
安全人员¶
- 企业内部维护可信软件仓库,尽量减少企业人员从各种未知渠道下载软件。
- 监测服务器和PC运行软件的异常操作和流量,甚至提前对软件进行沙盒检测,主动发现潜在隐患。
- 全面梳理和维护企业在用软硬件信息,在供应链攻击曝光时做到快速止损定损。
开发人员¶
- 使用官方渠道下载的IDE;软件分发及升级采用HTTPS等加密传输;避免内置远程控制能力;定期自检官网代码和执行程序是否存在恶意篡改。
- 关于防范包抢注攻击:对于企业内部包,可以及时到PyPI/NPM/RubyGems等官方源注册包名(可以上传空包占位以免内部代码泄露),防止企业自身遭遇抢注攻击;对于开源包,也及时到官方源注册并上传最新代码,既方便用户也能防止用户遭遇攻击。
使用人员¶
- 始终保持任何外来软件都不是完全安全可信的态度,优先选择知名有口碑有安全意识的软件。
- 关于防范包抢注攻击:安装软件时务必谨慎,按照官方指引确保安装方式正确,如命令行手敲命令时注意拼写准确,以防一不小心机器就成肉鸡。
Comments