【安全科普】挖矿技术,从一个理工男的爱情故事讲起
挖矿技术,要从一个理工男的爱情故事讲起……
理工男的爱情故事
小蓝是一个理工男,他喜欢上了小红。奈何小红追求者众,小蓝苦于不能脱颖而出。
到底选择哪个男生呢?公平起见,小红决定考察每个男生的诚意。
谁第一个解出方程,小红就选择谁。因为解高次方程没有固定公式,需要花费一定的时间、进行大量的计算,才能得出正确结果。愿意解方程的男生,自然最有诚意。而小红可以把结果带入方程式,简单地验证其是否正确。
那么问题来了:如果有人作弊,偷看了小蓝的答案,并且抢答怎么办?
要解决这个问题也容易,小红可以给每个男生编号,把编号作为方程第一项的系数。这样,每个人收到的方程式都是不同的,小蓝的答案对于其他人来说是错误的。
而且,小红可以通过结果验证,直接从方程第一项的系数得知,究竟是谁解出了方程。因此,作弊是没有用的。
从爱情故事到挖矿原理
从小蓝的爱情故事中我们可以知道,要想达成目标,就得付出一定的工作量。通过工作量证明,可以有效验证每个人是否花时间做了计算。
有效的工作量证明:计算过程复杂,需要消耗一定时间;验证过程相对简单,甚至可以瞬间完成。
在比特币网络中,矿工挖矿也是一种工作量证明。当然,不能通过解高次方程来实现,因为这对人来说很难,对计算机来说却非常容易,可以在1秒内完成。
要对计算机进行工作量证明,必须找到一种工作量算法,让计算机无法在短时间内计算出来,这种算法就是哈希算法。
通过改变区块头部Nonce字段的值,计算机可以计算出不同的区块哈希值,直到计算出某个特定的哈希值时,计算结束。特定哈希和其他哈希的区别是,它的数值前面有多个“0”。
比特币挖矿的工作量证明:不断计算区块哈希,直到计算出一个特定的哈希值,它小于难度值。
比特币使用的SHA-256算法,可以看作对随机输入产生随机输出。例如,对字符串Hello再加上一个数字计算两次SHA-256,根据数字的不同,得到的哈希是完全无规律的256位随机数。
大约计算16次,可以在得到的哈希中找到首位是0的哈希值,因为首位是0的出现概率为1/16 。
如果要找到前两位是0的哈希值,理论上需要计算16^2=256次,实际计算44次。
如果要找到前三位是0的哈希值,理论上需要计算16^3=4096次,实际计算6591次。
如果要找到前四位是0的哈希值,理论上需要计算16^4即超过65000次,实际计算67000多次。
对于给定难度的SHA-256,假设我们用难度1表示必须算出首位1个0,难度2表示必须算出首位2个0,难度N表示必须算出首位N个0,那么每增加1个难度,计算量将增加16倍。
比特币挖矿,就是先给定一个难度值,然后不断变换Nonce,计算Block Hash,直到找到一个比给定难度值低的Block Hash,就算挖矿成功。
简单举例,如果要计算出连续17个0开头的哈希值,矿工首先应确定Prev Hash、Merkle Hash、Timestamp、Bits等参数,然后不断变化Nonce来计算哈希,大约需要16^17即2.9万亿亿次计算。
实际难度值是根据Bits值由公式计算而来的,比特币协议要求计算出的区块哈希值比难度值小,这个区块才算有效。
注意,Difficulty的值越小,说明哈希值前面的0越多,计算难度越大。
比特币网络的难度是不断变化的,它的难度保证大约每10分钟产生一个区块,难度值每2015个区块调整一次。如果区块平均生成时间小于10分钟,说明全网算力增加,难度也会增加;如果大于10分钟,说明全网算力减少,难度也会减少,难度随着全网算力的增减动态调整。
挖矿木马的危害
黑客会使用各种手段将挖矿木马植入受害者的计算机中,在其不知情的情况下,利用计算机的算力挖矿,从而获得非法收益。目前有多个威胁组织(如H2Miner)进行挖矿木马的传播,致使大量受害者的系统资源被恶意占用,硬件寿命缩短,严重影响生产生活。
· 大量消耗计算机资源:挖矿木马普遍消耗大量计算机资源,使系统及其服务、应用运行缓慢,甚至可能使正常服务崩溃,造成数据丢失。
· 降低设备性能和寿命:被植入挖矿木马的计算机普遍寿命较短,且性能严重下降。
· 留置后门衍生僵尸网络:挖矿木马普遍会添加SSH免密登录后门、安装RPC后门、安装Rootkit后门、接收远程IRC服务器指令等。
· 作为跳板攻击其他目标:挖矿木马可以控制受害者计算机进行DDoS攻击,以此作为跳板攻击其他计算机,或者释放勒索软件索要赎金等。
· 碳排放造成环境污染:挖矿会消耗大量的电,造成巨大能源损耗,现阶段电能的主要来源是煤炭,加剧碳排放污染。
挖矿木马家族的特征
2021年,大部分挖矿组织倾向于门罗币。门罗币是一种无法追踪的强匿名性货币,它的挖矿算法对CPU的利用效率更高,一般僵尸网络掌握的“肉鸡”性能不高(即缺少高性能显卡),挖取门罗币可以获得更多挖矿收益。同时,在比特币挖取难度日益增大的背景下,门罗币的价格在虚拟货币市场始终保持稳定,对应的挖矿收益相较比特币更加稳定,因此成为了攻击者的首选。
· 竞争性:通过检测并结束其他挖矿木马的进程,独占目标的计算资源。
· 持久性:通过添加计划任务、创建服务、设置自启动、RootKit等手段,长期驻留目标。
· 隐蔽性和对抗性:通过进程隐藏、命令替换、进程互锁等方式,实现对抗排查和处置。
· 针对性:针对云服务器提供商在云主机上运行的安全检测程序,在脚本文件中添加能够将其结束并卸载的恶意代码,以此规避云主机的安全检测。除此之外,部分挖矿木马可以利用扫描工具,对云服务提供商的IP地址进行探测,如云铲、H2Miner等。
· 集成性:挖矿木马除核心的挖矿模块外,还集成了端口扫描、漏洞利用、留置后门等组件,可以实现横向传播、广泛传播、构建僵尸网络,如Outlaw等。
· 跨平台性:利用Web组件漏洞,结合恶意PowerShell、Shell等脚本,以及Python、Go语言编写的恶意程序,实现跨平台运行挖矿木马,如Sysrv-Hello、Satan DDoS等。
如何防御挖矿木马?
方法一:安装杀毒软件,防御挖矿木马攻击。
方法二:及时为计算机的操作系统打补丁,避免漏洞攻击。
方法三:安博通下一代防火墙产品,具备防护挖矿木马的对应规则,可提供防护能力。
方法四:安博通“鹰眼”全流量取证系统具备相关检测规则,可精准识别挖矿流量。