这次跟大家聊一下我近几年一直在研究的方向,供应链攻击方向。供应链攻击近年来在业内一直非常火,很多公司也以供应链安全为噱头宣传产品。不管是国内、国外,到处充斥着供应链安全相关的内容。有的产品以软件成分分析为切入点,有的以供应商管理为切入点,有的以攻击面管理为切入点。不同的切入点对应不同的供应链威胁。本文侧重供应链攻击面搜索,将会从目标与目的、工作生命周期、攻击面更新等几个维度来展开讨论。
很多时候,当我们决定入侵某一个目标,都会使用一些信息收集的方法。
不管是收集域名信息、还是收集员工信息,当我们到足够多的信息,就可以进行下一步操作。
但是有时候你会发现,信息收集到的内容并不是很多,并且很多内容好像是没有用的,这时候你就会开始想,如果客户/目标给了你资产该多好。有了确定的资产,开展渗透工作就很轻松。
但是当我们退回来看,我们可能在最开始的时候就偏离了本质。
我们的目标是什么,我们到底要做什么,思考好这些问题,再进行信息收集才会万无一失。
首先我们要确定一下进攻的目标,这里我们要对目标进行具象化。按照安全服务场景来讲,你的目标可能就是销售给你的一句话:“小王,这个客户很重要,域名是kehu.customer,你看一下能搞进去不”。
现在我们就知道了,本次目标的域名是kehu.customer。对于一般人来说,可能就会要使用扫描器开始工作了。如果是那些0防护的目标,这么做可能还是会有一些成果的。但是对于大一点的目标,基本上只会帮助他们的防守方多加几个封禁的ip地址。
所以我们在拿到目标以后,要去思考一个问题:如何具象化这些目标、明确目的。
1. 目的是拿到权限还是窃取数据。
2. 还是证明可以被入侵。
3. 是可以访问到特定目标的特定系统。
4. 还是证明可以窃取某个特殊文件,或是要拿到某个人的聊天记录等等。
当我们了解到具体的目的与目标以后,我们就可以对他们进行攻击面挖掘。我平时用到最多的方法是对目标进行工作生命周期判断。
首先先明确目标的构成情况(权限、数据等)。这里举一个简单的例子,我们目标是拿到某公司的A产品设计图纸。图纸现在看属于数据范畴,记录下来。紧接着,我们就要分析一下涉及到图纸可能出现的工作生命周期。这里提到的分析方法大概有信息收集、实地探究等一系列社工手段(本文不讲述相关技巧,如果感兴趣可以阅读《调查记者手册》、《像间谍一样思考》等书寻找灵感)。
一、信息侧写
试着去想一个问题,如果我们是他们,我们要怎么做。我们会在什么地方使用这些图纸?在专利编写的时候会查看这个图纸吗?在产品制造的过程中会使用这个图纸吗?这也如同在我们对企业进行进攻时,我时常会问自己,如果我是这家公司的运维,我会做什么,我如何运维我的服务,我如何购买我的服务。
1. 什么地方会存放这个图纸(设计软件、备份、员工电脑等)
2. 有谁能接触到图纸(外包、合作单位、生产人员、员工等)
二、搜索生命周期
搜索工作生命周期是一件很有意思的事情,比如搜索黑产工作生命周期,现在试着去思考,如果你要做,你都会做什么。
1. 推广 2. 开发 3. 服务运维 4. 投放 6. 分发 7. 支付 8. 客服沟通。
1. 推广使用什么,找谁?
2. 开发使用什么,找谁?
3. 运维使用什么,找谁?
4. 投放使用什么,找谁?
这里提到的所有环节都有对应的服务、产品、人员,以权限和数据为目标,我们就可以尝试去攻击这些目标。如果黑产的工作流程对你来讲有一些陌生,那我们举另外一个例子来探究工作生命周期。
例如,我们拿研发工作生命周期来举例。对于一个普通的产品研发,大致会有这些流程:
1. 需求 2. 设计 3. 产品 4. 开发 5. 测试 6. 运维。
对应着这些流程,一般都会有相应的载体。如下所示,这是一般研发生命周期可能用到的载体和流程对应的图表。
流程
|
载体
|
需求
|
邮件
|
项目管理
|
会议系统
|
设计
|
效果图
|
设计工具
|
产品
|
PRD
|
开发
|
开发环境
|
开发工具
|
开发库
|
测试
|
测试环境
|
测试工具
|
运维
|
监控
|
部署
|
持续更新攻击面
那我们如何持续了解这些攻击面那?例如,如果是大公司一般都会有供应商管理,正规一些都会进行正常的招标和供应商信息披露,我们可以通过这些内容发现他们使用了什么供应商。如果供应商没有披露,我们也可以使用搜索引擎“最佳实践”+“目标” or “成功案例”+“目标”发现这些成功案例。
新时代新的供应链形态
近些年来伴随着互联网toB业务发展和疫情导致远程办公激增,SaaS、IaaS、PaaS服务越来越多被大众所接受和使用。原来一些公司可能排斥使用Saas、IaaS、PaaS服务,但是现在他们也开始会使用这些新事物。
在之前的探究中,通常都是我们知道了目标的员工会有一个习惯,会请某个公司的人来做相关图纸的业务数据维护,那么我们发现的攻击面就是这家外包公司或者外包公司的人员。
但是到了现在情况可能就会变了,当我们知道了目标的员工设计图纸的过程中会使用某款SaaS平台,我们发现的攻击面就变成了某款SaaS设计平台。这时我们就要开始关注一些使用率比较高的SaaS、IaaS、PaaS服务。例如代码管理,原有的架构可能使用的是私有部署的Gitlab。而现在,可能使用的就是Github、xxxx公有版、xxxx.xxx、xxxx.com等平台。
如果目标将自己的一些子域名解析到这些SaaS、IaaS、PaaS平台的子域名,我们还可以在常规的子域名环节发现这些目标。或者搜索引擎抓取到了一些可以关联到目标的SaaS、IaaS、PaaS页面的信息。
根据以上信息,我们又可以得出一个研发工作生命周期的供应链攻击面表格。
流程
|
载体
|
SaaS
|
IaaS
|
PaaS
|
需求
|
邮件
|
|
|
|
项目管理
|
|
|
|
会议系统
|
|
|
|
设计
|
效果图
|
|
|
|
设计工具
|
|
|
|
产品
|
PRD
|
|
|
|
开发
|
开发环境
|
|
|
|
开发工具
|
|
|
|
开发库
|
|
|
|
测试
|
测试环境
|
|
|
|
测试工具
|
|
|
|
运维
|
监控
|
|
|
|
部署
|
|
|
|
不同的工作生命周期会有巨大的差距,在梳理这里工作周期的时候可能会感到挫败感,这都是正常的。
接下来简单介绍一些供应链攻击思路(没有攻击过程,没有攻击过程,没有攻击过程)。
案例分析1
生命周期:1. 会使用外包公司 2. 源码存储国内某平台 3. 会交给某三方测评。
案例分析2
生命周期:1. 数据存放在某平台 2. 某平台使用化名登录 3. 某公司使用某薪酬管理软件,同时记录了花名。
案例分析3
生命周期 :1. 某人参加了某协会 2. 某协会某人的好朋友很多 3. 某协会需要赞助。
切记,漏洞利用也仅仅是我们的一种攻击手段。我们除了入侵,还可以购买乃至于成为供应链。
为什么会有成为供应链这种想法?在一次实战中我们攻击了某应用使用的SaaS平台,想通过这个路径调查某位用户的真实信息,但是发现这个SaaS日志记录的不对。没办法使用这个信息定位。
现在我们的情况就比较尴尬,我们要不要通知这个平台把日志记录修改一下?还是重新编写一个后门程序,记录这些日志信息。
当时有人就嘀咕了一句,要是这家SaaS平台是我们的就好了,想改就改。
案例分析1
生命周期 :1. 黑客有时候会使用dnslog平台。
案例分析2
生命周期 :1. 黑产的APP不能上架官方渠道 2. 黑产会使用第三方测试APP分发渠道。
案例分析3
总结
综上,这些是本次分享的供应链攻击面搜索之路的全部内容。里边具体的案例因为篇幅的问题不在这里展开,有时间可能会写一些行动指南放出来(我是说有时间)。
供应链安全任重道远,还有很多我们不了解、不清楚的技术点。网络安全领域新技术日新月异,稍不留神就可能被时代淘汰。我们时刻都要以一种初学者的心态去了解新事物,不能固步自封。
如果大家有什么新思路,欢迎来公众号留言,我们一起讨论。
原文始发于微信公众号(DeadEye安全团队):供应链攻击面搜索之路