LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 行情分析 > 暴露出来的只是冰山一角:深度挖掘ColonialPipeline事件背后隐藏的故事(中)

暴露出来的只是冰山一角:深度挖掘ColonialPipeline事件背后隐藏的故事(中)

2021-09-14 BlockSec 来源:区块链网络

接着上篇的内容,本文首先为DarkSide的赎金操纵行为建立一个简易模型。借助这个模型,我们来理解赎金流动过程中各地址和交易扮演的角色和承担的任务。接下来本文将基于上述模型对已知的25个DarkSide地址进行分析,尝试识别未知的勒索事件。我们在实例分析中得到了一些有意思的结论,这些结论反过来补充和优化了模型,并为下篇中的挖掘工作提供了思路。

0x4. 厉兵秣马:建立赎金流动模型

虽然我们前面已经亲眼目睹了一次勒索事件中赎金的流动过程,但如何去理解这个过程中各个交易和地址所扮演的角色仍然是一个困扰。为此,参考已知事件中的赎金流动,再结合自身的理解,我们为DarkSide的赎金操纵行为建立了一个简易的模型。模型描述的是一次勒索事件中,赎金从受害者支付到流出DarkSide控制范围的全过程:以赎金拆分过程为中心,赎金在拆分前的流动被统称为赎金支付过程,拆分后则进入赎金转移过程。这三个过程的具体定义如下:

赎金支付过程。从受害者支付赎金到赎金被拆分,可以理解为赎金拆分前的预处理过程。以赎金支付交易 TXp (payment transaction) 为起点,赎金经 TXp 流入了DarkSide提供的支付地址 Pin ?(payment input address),随后经过一系列转移进入地址 Pout (payment output address), Pout 后续会作为赎金拆分过程的输入地址。

赎金拆分过程。即赎金按照预设策略进行拆分的过程。该过程以地址 Pout (中的赎金) 作为输入,赎金经拆分交易 TXs (separation transaction) 被分为两笔,属于攻击者的份额流入地址 Sa (the address to receive the affiliate's share),属于DarkSide的份额流入地址 Sd (the address to receive DarkSide's share)。

赎金转移过程。即赎金被拆分后各自进行转移的过程。理论上,属于攻击者的份额将被转移至攻击者的地址,属于DarkSide的份额或停留在原地址、或转移至DarkSide的其它地址、或被DarkSide使用 (例如流入交易所或暗网)。相应地,赎金转移过程主要包含两条线,一条是攻击者的份额以交易 TXta (transition for the affiliate's share) 为起点进行转移,一条是DarkSide的份额以 TXtd (transition for DarkSide's share) 为起点进行转移。

需要补充的是,我们之所以持有赎金一开始是由DarkSide控制,经过拆分后部分流入攻击者地址这一观点,主要有如下两个原因:1)Colonial Pipeline和Brenntag这两起事件中的赎金,经拆分后无论是DarkSide的份额还是攻击者的份额都流入了DarkSide的钱包,这意味着经过拆分的赎金仍暂时由DarkSide控制,需要一个转移过程将部分赎金转入攻击者的地址;2)在DarkSide的payment server被控制后,部分攻击者在相关论坛上声讨久未到账的赎金,这证实了攻击者在赎金流动过程中完全处于被动的状态,只能等待着赎金流入自己的地址。虽然理论上存在支付过程由第三方控制的可能性,但我们认为寻找一个第三方来接收赎金的风险过大。因此总的来说,我们认为模型中的赎金流动都是由DarkSide控制的

DarkSide参与勒索事件中赎金的流动模型

当然,模型不一定能完全贴合现实中的赎金流动。例如Colonial Pipeline的赎金支付过程拥有多个 TXp、 ?Pin 与 Pout 之间存在两个交易和一个地址;另一边也有实例的 Pin 与 Pout 是同一地址,这意味着赎金在支付后直接进行了拆分。又比如下面这个实例,属于DarkSide的份额在转移时被分为4个批次,也就是说这个案例中存在多个 TXtd。还有一点很有意思,一个赎金拆分过程是可能包含多个拆分交易 (TXs) 的,我们会在后面详细阐述这一部分。

现实中的赎金流动可能与模型存在出入。例如在这个实例中,赎金经拆分后属于DarkSide的份额被分为4个批次进行转移,依次是1.0 BTC、2.0 BTC、3.65 BTC以及 4.0 BTC。

最后我们还要着重介绍下赎金拆分过程。正如一开始提到的,这个模型以“赎金拆分过程”为中心。除了位置因素,还因为它相对于另外两个过程具有更稳定和显著的特征。支付过程和转移过程中都存在不定长资金流,且其中的交易不具有明显的特征;而另一边,赎金拆分过程的结构简单稳定,结合DarkSide公开的赎金分配策略以及Colonial Pipeline和Brenntag这两个案例,其中的拆分交易还具有以下特征:

仅有一个输入地址(可以有多个输入,但这些输入须来自同一个地址,例如Colonial Pipeline这个案例);

有且仅有两个输出,且两个输出分别输出至不同的地址;

两个输出与输入之间的比例符合DarkSide的赎金拆分策略;

输出地址中不包含输入地址。

因此某种意义上,赎金拆分交易可以视作赎金流动过程这个不稳定结构的锚点。如果我们可以找到赎金拆分交易,就有机会还原出赎金的流动过程。

0x5. 投石问路:模型的应用和修正

对DarkSide的赎金操纵行为有了初步了解后,我们来尝试挖掘已知DarkSide地址参与的未知勒索事件。根据模型,如果一个地址参与了一个赎金流动过程,那么它可能参与支付/拆分/转移之中的任一过程。也就说,以该地址为中心的一定资金流动范围内,可能存在赎金流动过程。由于赎金流动过程具有不稳定结构,导致很难直接对其进行识别,我们最终决定通过识别赎金拆分交易来定位赎金流动过程。识别一个DarkSide地址所参与赎金流动过程中拆分交易的方法我们会在3.3小节给出,这里我们先只考虑“DarkSide地址自身参与赎金拆分交易”这一类情况。

要识别一个DarkSide地址参与的赎金拆分交易,只需要在该地址作为输入地址或输出地址的交易中查找符合拆分交易特征的交易即可。考虑到DarkSide的赎金拆分策略十分灵活 (参见背景介绍),我们为特征3设置了一个宽松的筛选策略来避免遗漏——两个输出中的较大份额 (即攻击者份额) 与交易输入 (赎金) 的比例位于0.75~0.9之间 (误差0.001)。经过分析,向已知25个DarkSide地址转入资金的交易共有57笔,其中有25笔符合上述筛选条件。假设这25笔交易的确是赎金拆分交易,那么赎金的金额和拆分情况将如下图所示。

25笔疑似赎金拆分交易的交易金额和赎金分配情况。注意,赎金分配比例的计算方式是每个输出与总输入的比值,因此会出现分配比例之和不为1的情况——这部分“消失”的输入作为交易手续费被消耗了。

25笔交易中有21笔的输出几乎是按80:20分配,有2笔按85:15分配 (即5月8日的Colonial Pipeline和5月11日的Brenntag)。鉴于这些交易具有十分清晰的分配比例,我们认为它们有极大概率是赎金拆分交易。相较之下,3月4日以及5月13日发生的两笔交易则不那么“典型”。

对3月4日发生的交易,其输入只有约107美元,且两个输出与输入的比值分别为0.1和0.79 (11%输入作为交易手续费被消耗)。对这笔交易的资金进行前后向追踪后发现,它极有可能参与了某起勒索事件的赎金转移过程——3月3日发生了一笔疑似赎金拆分交易 (按80:20分配),其中属于DarkSide的份额在转移过程中于3月4日通过目标交易进入已知的DarkSide钱包。

3月4日发生的交易疑似参与了一起勒索事件的赎金转移过程

对于5月13日发生的交易 (记作 TX1 ),其作为赎金拆分交易存在两个异常。首先是它的输入约为100万美元,但DarkSide却仅收取了12%作为分成。其次是它发生在2021-05-13 16:58:47,而DarkSide的payment server被执法机构控制是在2021-05-13 18:03:26,如果 TX1 是赎金拆分交易,那么这起事件的受害者未免过于不幸。此外,我们同样对TX1的资金进行了前后向追踪,发现 TX1 的输入地址 A1 疑似在更早的时候参与了另一起勒索事件——2021年2月9日左右,赎金从GEMINI交易所流入地址 A1,随后在 TX2 处进行拆分。在这个赎金流动过程中,地址 A1 极有可能扮演了支付地址的角色。如果赎金支付地址不会被复用于不同的勒索事件,那么同样以 A1 作为输入地址的 TX1 就不应该是一个赎金拆分交易。

5月13日发生的交易可能不是赎金拆分交易

总的来说,这25个已知的DarkSide地址极有可能参与了23笔赎金拆分交易。但这意味着23起勒索事件吗?其实不然,拆分交易是赎金流动过程的锚点,却不等价于勒索事件——因为一个拆分过程中可能包含多笔拆分交易。

细心的读者可能已经发现,我们在筛选赎金拆分交易时并没有限制它的交易金额。虽然有情报[12]表明DarkSide参与的攻击事件中赎金通常位于20万到200万美元之间,但考虑到Colonial Pipeline和Brenntag支付的赎金已经远超200万美元,我们便决定放宽限制。而这一“放水”带来了十分有意思的结果——5月4日有9笔赎金拆分交易的交易金额不超过5万美元,5月1日更是有一笔仅价值2870美元的拆分交易。虽然金额不足20万,这些交易却具有“完美”的80:20拆分比例,那么他们是不是拆分交易呢?

对于5月4日连续发生的9笔拆分交易,打印相关资金转移后可以发现这些交易高度关联:它们具有相同的输入地址和输出地址,并且拆分后的攻击者份额后续被汇总统一进行转移。

5月4日发生的9笔疑似赎金拆分交易

类似地,5月1日价值2870美元的交易与4月30日的交易也拥有相同的输入地址和输出地址。

4月30日与5月1日发生的2笔疑似赎金拆分交易

不同的拆分交易,却具有完全相同的 Pout (拆分交易的输入地址),Sa (攻击者份额的输出地址),Sd (DarkSide份额的输出地址)。此外,一致的拆分比例紧连的交易时间拆分后资金合并转移,这些事实让我们很难不做出这样的推测:这些赎金拆分交易属于同一勒索事件,受害者分多笔交易支付赎金,进而导致了多笔拆分交易。那么反过来,这是否意味着我们可以通过 Pout/Sa/Sd 来将同一事件中的多笔赎金拆分交易关联起来?又或者说, Pout/Sa/Sd 在勒索事件中的重用情况到底如何?为了回答这些问题,我们将前面找到的23笔赎金拆分交易中 Pout 、Sa、以及 Sd 之间的关系整理如下。

23笔赎金拆分交易以及参与地址之间的关联

图中黑色节点代表拆分交易,绿色、红色、蓝色节点分别代表 Pout (拆分交易的输入地址)、Sa (攻击者份额的输出地址)、 Sd (DarkSide份额的输出地址),节点之间的边代表资金流动。图中每个节点都是唯一的,每个节点的颜色也是唯一的 (没有节点同时扮演多个角色)。根据资金流关系,这些节点被聚为8个簇,分别对应(a)-(h)。可以看到,有的赎金拆分交易是独立存在的,例如图(f)-(h);有的赎金拆分交易则是通过一些地址被关联在了一起,例如(a)-(e)。下图中给出了不同拆分交易之间的两种关联方式。

赎金拆分交易间的两种关联方式

R1: 多笔赎金拆分交易由相同的 Sa 连接,每个拆分交易拥有各自的 Pout 和 Sd 。我们的推测是,由同一攻击者实施的多起事件,属于攻击者的份额可能会被转入相同的 Sa 地址。具体来讲,攻击者拥有在RaaS系统中申请 Sa 地址并为他实施的勒索事件指定 Sa 地址的权利。如果推测正确,那么Cononial Pipeline和Brenntag这两起勒索事件是由同一个攻击者发起的,因为它们的赎金拆分交易拥有相同的 Sa 。

R2: 多笔赎金拆分交易拥有相同的 Pout 、Sa、以及 Sd 。其原理可能是受害者分多笔交易支付赎金,这些赎金在相同的 Pout 汇合,经拆分后又流入相同的 Sa/Sd ,方便统一转移。

总结一下,1)地址 Sa 可能被复用于多起事件,如果这些事件是由同一攻击者实施的;2)一对 Pout 和 Sd 只被用于一起勒索事件,如果该事件拥有多笔拆分交易,那么这些交易拥有相同的 Pout 、Sa、以及 Sd 。基于第二点,我们不仅可以将属于同一事件的不同赎金拆分交易关联起来,并且可以在仅知道一个赎金拆分交易的情况下,通过它找到同一事件中的其他拆分交易,进而补全事件信息。

最后,我们来回答问题——这25个已知DarkSide地址参与的23笔赎金拆分交易共涉及了多少起事件?答案是14起:图(a)中只有1起事件,图(b)中有4起事件,(c)-(e)每图各2起,(f)-(e)每图各1起,累计14起。

在系列文暴露出来的只是冰山一角:深度挖掘Colonial Pipeline事件背后隐藏的故事的最终篇,我们会基于本文获得的所有信息来挖掘更多的未知勒索事件。

查看更多

—-

编译者/作者:BlockSec

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...