主页 > imtoken官网钱包app > 比特币恶意软件分析指南

比特币恶意软件分析指南

imtoken官网钱包app 2023-02-26 05:12:20

犯罪分子正在使用比特币和其他加密货币作为支付渠道来出售被盗数据、DDoS 等黑客服务以及支付勒索软件费用。 如果你想更多地了解这个黑色产业,你需要对比特币有深入的了解,以及如何分析交易。

跟上犯罪分子使用的技术非常重要,这样您才能更好地了解新的变化和趋势。 此外,随着越来越多的人分析比特币和区块链,开发新工具和技术来抵御犯罪分子的机会也越来越多。

传统上,犯罪分子是新技术的早期采用者,因为创新往往首先以相互冲突和有动机的方式使用。 犯罪分子是最先发现汽车(与此同时大多数警察使用自行车或马)、手机和蜂鸣器的创造性用途的人。 如今,他们已成为攻击互联网、利用洋葱网络、使用加密以及现在流行的比特币的先锋。 如果犯罪首先使用了一种技术,那么那些试图了解和阻止罪犯的人应该需要深入了解罪犯所使用的技术。

比特币术语介绍

在开始比特币恶意软件分析之前,我想确保您熟悉比特币中的一些术语和基本概念。 如果您已经熟悉公钥加密和散列等常见信息安全概念,那么理解比特币就相当容易。 本节只是一个概述。 如果你想更深入地了解这方面,我鼓励你阅读原始比特币论文(论文只有 9 页!)。

比特币本质上是一个公共账本。 分类帐本身称为区块链。 区块链的特殊之处在于,与公开共享的电子表格不同,您只有遵守规则才能向其中添加内容。 这些规则是基于对博弈论的理解而制定的,这些博弈论在数学上被严格执行以确保公平。 此外,它是去中心化的,这意味着没有中央机构控制网络,也不可能通过强制单个实体来破坏网络。 区块链使用公钥的哈希值而不是人名来记录所有权。 通过这种方式,它保持匿名,尽管存在关联地址的方法和一些将地址映射到实际身份的有限方法。

矿业

新比特币的创造被称为“挖矿”。 这往往是最有趣、最神秘的过程。 毕竟,矿工开采一个区块可获得 25 个比特币的奖励。 按照目前的市场价格,这价值超过 25,000 美元。 这个价格通常会引起很多关注。

一个区块是比特币交易(谁发送比特币的记录)、前一个区块的散列和一个随机数(随机数)的集合,该随机数在散列时产生一个用 0 位初始化的值。 例如,假设您有一个如下所示的块:

caleb sends joe 1.2 btc
udi sends joe 0.3 btc
joe sends aidan 1.5 btc

比特币怎么比特币钱包_警察可以追踪比特币么_比特币追踪ip

nonce: 0

如果您要将其保存到一个文件(末尾没有换行符),然后计算 SHA256 哈希值,则该哈希值将是:b5b6ee30fae42aa131a84f705e5d7cf59133b3954e53c79b05c13a328b8d6f8a。 您可以在自己的计算机上(在 Mac 上)使用 shasum -a 256 block.txt 检查它。 此示例块的第一个字节是 0xb5 二进制中的 0b10110101。 这具有零前导 0​​ 位。 如果 nonce 增加到 4,则块的哈希值变为:01bdf748aeb6443595d1d29fc348418f4b4b2bbe5287c53e892735f467702308 并且第一个字节 00000001 有 7 个前导 0 位。

如果零的数量非常多,比如说 50,那么您就无法知道随机数是多少! 您必须散列许多具有递增随机数的块,直到找到具有 50 个前导零的随机数。 当比特币矿工产生一个有效的区块(哈希中有足够多的前导零)时,他们会向网络宣布该区块,从而证明矿工们正在非常努力地工作。 这就是为什么挖矿被称为使用“工作量证明”,因为它需要大量的散列来找到一个有效的块,如果你有一个有效的散列,那么它就证明你做了一些工作。

一旦交易包含在有效区块中,它就成为区块链的一部分。 在任何给定时刻比特币追踪ip,都有数以千计的未确认交易等待包含在新开采的区块中。 您可以在此处查看此列表:未确认的交易。 比特币协议自动调整目标难度,平均每 10 分钟可以产生一个新区块。

如果你想亲身体验挖矿过程,这里有一个模拟挖矿的Python脚本。 您可以通过增加 TARGET 值来调整挖矿难度。

#!/usr/bin/env python
import sys
import hashlib
# Difficulty target (number of leading 0 bits)
TARGET = 16
def generate_blocks(transactions):
  block_base = '\n'.join(transactions)

比特币追踪ip_比特币怎么比特币钱包_警察可以追踪比特币么

  nonce = 0   while nonce < sys.maxint:     yield '{}\nnonce: {}'.format(block_base, nonce)     nonce += 1 def hash_block(block):   h = hashlib.sha256()   h.update(block)   return h.digest() def digest_to_binstr(digest):   return ''.join(map(lambda o: format(o, '08b'), map(ord, digest))) transactions = [   'caleb sends joe 1.2 btc',

比特币追踪ip_警察可以追踪比特币么_比特币怎么比特币钱包

  'udi sends joe 0.3 btc',   'joe sends aidan 1.5 btc', ] target_str = '0' * TARGET attempts = 0 for block in generate_blocks(transactions):   attempts += 1   digest = hash_block(block)   binstr = digest_to_binstr(digest)   if binstr[0:TARGET] == target_str:     print("Mined block with {} difficulty after {} attempts!\n{}\nHash: {}".format(TARGET, attempts, block, binstr, binstr))     break

警察可以追踪比特币么_比特币追踪ip_比特币怎么比特币钱包

执行后的输出如下:

$ ./fake-mine.py
Successfully mined block with 16 difficulty after 78169 attempts!
caleb sends joe 1.2 btc
udi sends joe 0.3 btc
joe sends aidan 1.5 btc
nonce: 78168
Hash: 0000000000000000000100011000110010001011110101011000101000011000101000101101001000100010110110000011010001000110101101110111110100110001100100011001000111001011111100111110111100101110010001110101100000000110001101101111101001101110011000000001101100110000

在目标难度为 16 时,尝试了 78,000 次才找到具有指定随机数的有效区块。

贸易

比特币都归于公钥地址。 发送比特币实际上只是意味着将它们重新分配给另一个公钥,这是通过交易广播完成的。 交易包括目标公钥和您拥有的一个或多个比特币(先前的交易)的哈希值。 这两项将使用您的私钥进行签名和加密,证明您拥有这些比特币。

安全研究人员需要注意的一个重要细节是交易是通过互联网广播的。 如果你想将身份映射到用于花费虚拟货币的公钥,那么拥有发送虚拟货币的客户端的 IP 地址可能会提供很多信息。 Blockchain.info 等网站包含在对等网络中中继交易的 IP 地址,但这只是实际客户 IP 的粗略代理,甚至可能与客户所在的国家或地区无关。 有关实际获取 IP 地址的研究,请查看比特币 P2P 网络中客户端的匿名化。

比特币怎么比特币钱包_比特币追踪ip_警察可以追踪比特币么

矿池

单独挖比特币很困难,因为除非你在设备上投入大量资金,否则你可能永远不会挖到比特币,你所有的努力都会付诸东流。 矿池已经发展到结合较小的去中心化矿工的散列能力。 如果一个区块被挖出,比特币通常作为奖励按每个矿工的贡献比例分配。 每个矿工的贡献是通过记录每个矿工解决目标难度比比特币更小的区块的次数来计算的。

挖掘比特币的恶意软件通常通过为矿池提供资金来运作。 然而,开采比特币远不如开采一些其他加密货币(如门罗币)普遍,因为比特币开采难度太大,难以盈利。 此外,Monero 的优势在于它比比特币更匿名。

如果恶意软件连接到矿池,您应该能够识别矿池的网址和工作人员凭据。 矿池使用工作人员凭证来了解哪个地址应该接收支付。 每个矿池都略有不同,但有些会使用工人的用户名作为支付地址。 . 如果可能,您应该获取恶意软件正在使用的地址,因为您可以对该地址进行一些额外的分析。

分析比特币地址

如果您可以获得与恶意软件活动关联的比特币地址,则可以观看其中的活动。 如果恶意软件有新的活动,那么您就知道仍有机器被感染。 如果一个地址长时间处于非活动状态然后又开始活动,则意味着有新的恶意软件活动,您应该开始根据您的资源寻找新的样本。 地址上的活动量还可以让您了解恶意软件攻击的成功程度以及有多少台计算机被感染。

在我们的 CryptXXX:发现新的 CryptXXX 变体分析报告中,描述了勒索软件相关地址的真实案例。 勒索软件支付地址为18e372GNwjGG5SYeHucuD1yLEWh7a6dWf1。 根据恶意软件的赎金记录,付款必须是 1.2 比特币或 1.2 的倍数,具体取决于受害者付款的时间。 知道了这一点,我们就可以查看赎金地址的交易比特币追踪ip,并查看向该地址支付的次数和金额。 如果我们一直在监控交易的 IP 地址,我们还可以了解受害者的地理分布,这可以让您深入了解谁是目标。 通过更好地了解攻击者的目标和原因,然后配置和部署蜜罐将使收集新样本变得更加容易。

由于该地址的所有支付记录都发生在大约两个月内,因此可以假设该地址适用于单个活动,并且在该活动前后一定有其他关联的地址。 如果您监控区块链并对相关地址进行集群,您可能会在找到样本之前找到新的支付地址。 这将帮助您缩小搜索范围并收集新样本进行分析并确保检测到。 没有任何免费的地址聚类工具,但这应该成为一个活跃的研究领域。 有关详细信息,请参阅地址聚合和 BitSniffer 的不合理有效性。

通过使用滚筒,追踪比特币的移动变得更加困难。 这些服务从许多用户那里获取比特币,将它们多次放入许多不同的地址,然后将它们重新分配给原始所有者。 同样,目前还没有解决由翻转器造成的混淆的工具,尽管已经有一些关于这个主题的研究。 有关更多信息,请阅读比特币混合服务调查:跟踪匿名比特币。

我个人发现了一些有趣的与比特币相关的恶意软件,只需搜索看起来像挖矿地址或矿池连接字符串的关键字即可。 当这些类型的搜索结果与其他类型的静态分析相结合时,结果可能是潜在恶意软件的来源。 这个演示文稿有一些搜索比特币相关字符串和特征的好例子,甚至还有 Yara 规则:在磁盘和内存中跟踪比特币。

总结

希望在阅读本文后,您对比特币的工作原理有了更好的了解,并且您可以对您发现的下一个勒索软件或与加密货币相关的恶意软件使用一些新的分析技术。 我也希望本文能启发您创建一些新的分析工具和技术,以帮助业内人士跟上犯罪分子的步伐。