​格林威治时间,2009-01-03 18:15:05。
比特币创始人中本聪挖出了比特币的首个区块——创世区块(Genesis Block)。
从此,拉开了十年来轰轰烈烈的数字货币、区块链浪潮的序幕。
密码朋克也开始了他们最深刻的一次社会实验。

虽然大家每天使用 HTTPS 协议浏览网页,用 HASH 算法保证下载资源的完整,插着 U 盾使用网上银行,但背后的密码学一直都是小透明的存在,大众对密码学的认知基本还停留在上世纪的谍战电台中。

直到比特币横空出世,携带「重新发明货币」之威势,第一次让密码学知识走进普通人的视野。同时,也带来了大量关于政治和经济的思考。

故而,我更愿意把比特币看作一次社会实验,而非经济现象。要讨论这样一次伟大的社会实验,技术反倒成了次要,我想从货币和社会谈起。

密码朋克的社会实验(一):开灯看暗网

密码学幼稚园丨密码朋克的社会实验(二)

货币的演化史

既然把比特币看成货币,那么首先要找到它的历史定位。纵观人类货币的演化过程,大概有下面几个阶段:

1596181447.png!small

  • 自然货币时代

    这个阶段,货币基于一般等价物的稀有性或者实用性,货币不可能出现人为操纵的超发。

  • 信用货币时代

    当交易量越来越大,自然货币太不方便了,而且大家发现货币本身有多少价值并不重要,在意的只是货币能不能交换到足够的商品,于是纸 币这种信用货币逐步诞生,并且发行方由钱庄、地方政府逐步到中央银行。

    而近年来,由于技术进步,近一步过渡到v2.5版本,纸 币数字化,催生了更多经济形式,但相较纸 币,其中蕴含的国家信用本质并没有改变。

  • 未来?

    下一代货币是什么样子,我们还不知道,而比特币展示了一种可能性。但也可能,并没有下一代。

货币发行和社会形态

经济活动作为人类群体生活最重要的行为之一,深刻影响了人类的社会形态。从货币发行这件事上也可以发现许多相关性。

  • 在自然货币时代,货币的实际发行者是——大自然
  • 在信用货币时代,货币的实际发行者是——人类

在这里,货币发行第一定律出现了:

「货币发行第一定律」:谁负责发行,就要用那个世界的规则限制发行量。

  • 大自然的限制规则是:产量
  • 而人类的限制规则是:中央集权

再来看另一个现象:

自然货币时代,由于货币本身的稀缺性,基本没有办法随意增发货币。而信用货币时代的轨迹,会发现货币本身的价值在不断降低,换个说法就是货币增发的成本越来越低。这表明,对信用和中央集权的依赖程度就必须增高,于是货币发行方从私人钱庄、地方政府逐渐到中央银行。

可见,货币的形态和社会的形态是直接关系的,货币成本不断降低的同时人类从松散社会逐渐演变为现在的高度中央集权社会。

所以,货币发行第二定律也出现了:

「货币发行第二定律」:谁降低货币发行成本,就必须同时加强那个世界的规则。

这意味着,随着货币的信用化,中央集权的社会模式必须逐渐壮大。

就这样,货币在人类的权力规则下正常运行了数千年。为何人类对权力越来越贪婪,就是因为货币价值越来越依赖权力。

重新发明货币

而当货币模式演进到v2.5时代,也就是移动支付时代时候。由于计算机网络的发展,增发货币的难度变成只需要修改央行的数据库,成本几乎变为零了!

根据我们总结的「货币发行第二定律」,这意味着人类负责发行的信用货币体系可能走到了某个节点上,人类的中央集权模式也到了某个节点。

货币要继续向前发展,需要寻找另一个维度。

社会上后来出现了两种思潮:一种是建立超主 权货币;一种是比特币为代表的互联网去中心化模式。

但超主 权货币的可能性很低,因为货币不仅仅代表了价值交换的工具,同时还要承担秩序的输出功能,与所有国家主 权脱钩的货币难以承担这种角色。更不用说某些国家还需要利用自己的货币玩金融剪刀游戏。

于是回到「货币发行第一定律」,我们发现,其实这时候有自然和人类之外的第三个势力参与到货币发行上来了,就是计算机网络。它改变了信用货币时代人类单纯依靠增强中央集权来降低货币发行成本的模式。按照货币世界的规则,新的势力应该担负起建立新规则的任务。

计算机世界限制发行量的规则是什么?那显然就是计算难度

然而要让计算机网络独立于人类来建立规则,这本身就是一个极富挑战的难题。但中本聪在2019年创造性的发明了区块链的概念,来解决这个问题,给货币的发展带来了新维度的可能性。

1596181610.jpg!small

什么是区块链

高级的东西往往很简单,区块链也是一样。

用个成语接龙到游戏来说明:

当多个小朋友一起玩成语接龙游戏时,往往大家都能第一时间想到答案,但大家一起抢答就会混乱掉,该从谁的成语往后接呢?

传统的方法是选择一个主持人,想到的小朋友先举手,由主持人来判断谁举手最快,再决定由谁接龙。这样能保证接龙结果是一条没有分叉的链条。这就叫中心化方案。

现在如果不能有主持人,该怎么保证秩序呢?于是中本聪大神发明了一个方法:

我们来扔骰子吧,每人拿6个骰子,谁先扔出至少5个1,谁就有资格接龙。

于是这个游戏,就在没有主持人的情况下,能正常玩下去。当有更多小朋友参与的时候,可能经常同时有人能扔出5个1,那么简单,就把规则改成7个骰子扔六个1,随着人增多,骰子个数也不断增加以增加难度。

1596181626.jpg!small

这就是区块链的去中心化方案。通过扔骰子的难度,提高接龙的门槛,保证接龙结果是没有分叉的链条。

而真正实现的时候,使用的扔骰子方案就是之前上一篇密码学中介绍过的 SHA256 Hash 算法。只有找出一个数和最近的转账数据算出足够小的 Hash 值,才拥有记账权,也就是给整个链加入一个新的区块。

最简单的区块链实现

「Talk is cheap. Show me the code!」—— Linus Torvalds

这里用 python 实现一个不到50行代码的区块链 demo,其实原理非常简单。

import hashlib
import datetime

class Block:
   def __init__(self, index, timestamp, data, last_hash):
       self.index = index
       self.timestamp = timestamp
       self.data = data
       self.last_hash = last_hash
       self.hash = self.hash_block()

   def hash_block(self):
       sha = hashlib.sha1()
       info = str(self.index) + str(self.timestamp) + str(self.data) + str(self.last_hash)
       sha.update(info.encode("utf8"))
       return sha.hexdigest()

def genesis_block():
   # 创建创世区块
   return Block(0, datetime.datetime.now(), "GenesisBlock", "0")

def next_block(last_block):
   # 生成下一个区块
   this_index = last_block.index + 1
   this_timestamp = datetime.datetime.now()
   this_data = "I'm block " + str(this_index)
   last_hash = last_block.hash
   return Block(this_index, this_timestamp, this_data, last_hash)

if __name__ == '__main__':
   # 初始化区块链
   blockchain = [genesis_block()]
   last_block = blockchain[0]
   print("Block #{} created!".format(last_block.index))
   print("Hash: {}\n".format(last_block.hash))

   num_of_blocks = 5

   # 生成区块链
   for i in range(0, num_of_blocks):
       new_block = next_block(last_block)
       blockchain.append(new_block)
       last_block = new_block

       print("Block #{} has been added!".format(new_block.index))
       print("Hash: {}\n".format(new_block.hash))

不过,没有带挖矿和交易的功能,执行下来的结果:

Block #0 was created!
Hash: 4b3eb7f7bbe233bc362d8db7c21623468b6f8ff1

Block #1 has been added!
Hash: a5c1683226254eef0cddf62bc1ce2034bc2cc9da

Block #2 has been added!
Hash: 55db159cbc62455f45c82f4b69b102c0c78f55b2

Block #3 has been added!
Hash: e9cafa8d8eaa86a9a709ef115dfa2570dff4f383

Block #4 has been added!
Hash: 032dfccebeaa7bc5fb4b27849e410c7f56e6111d

Block #5 has been added!
Hash: 68feb74d92b322881f0ba97cfd25ceff93552e5f

很显然,我们已经创造了一条区块链,在这个基础上再进行一些深入的开发,就能赋予它货币的能力,仿佛看到了毛爷爷在亲切地招手。

比特币解决了什么

曾经,通过网络只可以进行信息的匿名传递。
现在,通过比特币还能进行价值的匿名传递。

然而,比特币是否能如前面所说,肩负起货币v3.0版本的重任呢?曾经我是对此报以期待的。在过去几年里,比特币甚至带起了整个暗网的非法交易,展现了良好的局部货币属性。但看一个事物,不但要从技术、现实等基本面分析,还应该看到背后的思想博弈。

社会形态的博弈

密码朋克,一直是自由、加密、无政府主义的支持者。

因此,比特币的本质其实是纯粹的民主思想。以去中心化、少数服从多数、自由竞争为特征。

货币的形态,其实是社会组织形态的外化。货币是中心化还是去中心化,背后其实是中央集权和民主思想的博弈。

比特币刚出现时,恰好是国内整体舆论环境对美式民主最向往的时期,人们热衷于讨论民主和中央集权的优劣。

但近年来空气币、割韭菜等事情会令人思考,在一个相对自由的框架下,任由丛林法则和马太效应发酵,是否能自发导致系统的稳定运行,答案可能是否定的。

未来货币是什么形态,也许还是要看未来若干年的社会形态走向。

网络空间已经成为继陆地、海洋、天空、太空之后的“第五空间”。来自网络空间的威胁已不再像二十世纪一样只与个人或企业相关,而是直接关系到社会安全、经济安全、基础设施安全乃至国家安全的重大问题。

每年发生在网络空间上的攻击屡见不鲜,在过去一年多,各种 APT 攻击事件、勒索挖矿事件、数据泄露事件、漏洞攻击事件更是不绝于耳。

  • 从 ATT&CK 模型框架的兴起到实战化攻防环境的建立

          从反序列化漏洞的攻防博弈到 VPN 漏洞的异军突起

          从不断“APT”化发展的勒索攻击到广撒网的挖矿活动

          从不断受地缘政治影响的 APT 攻击到新冠疫情引发的花式攻击

  • 从 MaaS 模式的逐渐成熟到恶意软件家族间“合作”案例的逐渐增多
  • ……

层出不穷的网络安全事件时刻提醒着我们越来越严峻的网络安全态势,同时不断鞭策着网络安全从业者在技术上的精进。

因此,启明星辰集团发布《2019~2020网络安全态势观察报告》,以观察者的视角剖析 2019 年全年至 2020 年上半年网络安全形势及其变化,希望以此为各行业以及相关企事业单位提供网络安全战略和决策的参考。

今年的报告共有漏洞攻击态势观察、僵尸网络及木马态势观察、Web 攻击态势观察、Office 攻击态势观察、APT 组织攻击态势观察、勒索挖矿攻击态势观察、IoT 攻击态势观察、“新冠疫情”热点攻击事件态势观察八个板块,覆盖面广泛、分析角度深入。其中ATT&CK、反序列化、新冠病毒疫情实战化攻防均是此次报告的亮点。

  • ATT&CK

是一套由攻击者经常会使用的多种战术和攻击技术组成的知识库,它基于攻防视角让安全行业用户采用一种通用的语言去交流,描述和分类攻击者的行动。ATT&CK 的相关分析和运用方法的流行,为安全攻防行业的理论探索和进步做出了重大贡献。

  • 反序列化

反序列化漏洞渐成 Web 攻击首要威胁 VPN 等网关型漏洞成新攻击入口。

  • 新冠病毒疫情实战化攻防

2020 年年初爆发的“新冠病毒疫情”已经蔓延到全世界几乎每一个角落,严重影响了全球经济社会发展。疫情的爆发使得大多数人不得不在家开启远程办公模式,大量远程控制工具的使用和端口的开放加大了网络被攻击的安全风险。一些黑客趁此机会利用热点信息发起攻击,疫情的不确定性和人们的恐惧性心理给攻击者创造了千载难逢的好机会。

ATT&CK 在Google Trends 上过去一年多的趋势变化

 

现在这份诚意满满,含金量十足的

《2019~2020网络安全态势观察报告》

即将震撼来袭!!!

敬请期待~

 

 

大数据时代,在充分挖掘和发挥大数据价值的同时,解决好数据安全与个人信息保护等问题刻不容缓,合规是企业发展的第一考虑因素。个人信息保护既包括了传统信息安全的知识体系,也包含了法律法规及标准的知识内容。作为新一代的信息技术、信息安全或法务人员,需要需要全面学习了解对个人信息保护及合规的知识,以便迎接即将到来的个人信息保护与合规时代。根据GDPR要求,核心活动涉及处理或存储大量的欧盟公民数据、处理或存储特殊类别的个人数据(健康记录、犯罪记录)的组织必须指定数据保护官DPO。DPO主要负责就GDPR规定提供咨询意见,向最高管理层报告。未来设立DPO职位也将会在国际化企业和政府部门内成为趋势。

 

DPO发展前景

欧美国家早在2000年开始,已有至少数百家公司设有DPO的职位,如花旗集团、美国运通、惠普、微软、脸书等。安永的一份调查数据显示,欧盟GDPR根本性地改变了全球范围内隐私保护的管理模式。

 

75%的欧盟公司以及50%的美国公司声称GDPR合规要求是驱动其隐私工作的主要原因。在培训方面的投入、隐私岗位聘用人数都在近几年大幅增长。

 

如何获取DPO证书

当你成为EXIN认证的数据保护官DPO时,这不仅意味着你成功通过了对欧盟法规的全面考察,更加意味着你拥有了在组织中担任实施与维护GDPR这一角色的能力。DPO不是一门单独的考试,而是EXIN为已经获得相关认证的专业从业者提供的一种集成认证。即当一位从业者考取以下三门认证后(PDPF+PDPP+ISO27001):1、 EXIN Privacy and Data Protection Foundation认证,是一门验证专业人员如何保护个人数据,以及对数据保护相关欧盟法规了解程度的认证。2、 EXIN Privacy and Data Protection Practitioner认证,首先主要验证专业人员对欧盟隐私法规和其 国际关联性的理解程度;更会进一步考察从业者在专业领域的实践中应用其知识的能力。3、EXIN Information Security Foundation based on ISO/IEC 27001 基于ISO27001的信息安全管理精要课程。

 

就DPO证书申请涉及到的ISO27001证书的特别说明:

1 .考完PDPF和PDPP后,拥有2019年1月1日之前考的其他国外认证机构颁发的的ISO27001 Foundation或ISO27000的Auditor的认证均视为有效的ISO27001证书,例如,BSI,DNV和SGS;中文认证机构发的ISO27001证书需要有英文翻译件。申请 DPO证书时必须提交这些证书的电子版。2.目前没有ISO27001证书的想申请DPO证书的,考完PDPF和PDPP后还必须通过EXIN的ISO27001考试才能申请。

 

DPO合适人群

所有GDPR中定义的需要了解数据保护和欧洲相关法律要求的组织成员/机构代表/企业员工。目标群体包括(不限于):

  • 组织内的数据保护官(Data Protection Officer,简称DPO*)
  • 组织内的数据隐私官Privacy Officer· 组织内的法务人员/ 合规人员Legal Officer / Compliance Officer
  • 组织内的安全负责人Security Officer
  • 组织内的业务连续性经理Business Continuity Manager
  • 组织内的数据管控专家Data Controller· 组织的数据保护审核员(包括内审员和外审员)Data Protection Auditors
  • 人力资源经理HR Manager

GDPR法规实施后,欧盟要求欧盟境内的政府部门和大规模处理和监控个人数据的企业内均应设立有DPO职位;未来设立DPO职位也将会在国际化企业和政府部门内成为趋势。

 

DPO认证受益

 

1. 充分了解欧盟GDPR法律法规条例,构建个人数据保护的知识体系和实施能力,梳理企业数据合规和安全需求,设定制度流程,进行数据安全体系建设。2. 提升企业的数据安全和隐私保护能力,组织建设数据安全治理团队,规避企业违规成本。3. 考试通过可获得国际EXIN DPO证书,提升个人竞争力,对个人岗位提升、未来转型均有帮助。

谷安学院&安全牛课堂将于9月开设DPO课程(PDPF、PDPP、ISO27001)具体情况可以扫码咨询,领取课程大纲

目前谷安学院开设学院开设信息安全认证课程30余门,涉及DPO、CISP、CISSP、CISA、CRISC、Security+、CCSK、CISM、DevOps Master、DevOps Professional、DevOps Foundation、ISO27001、CCSP、PDPF、COBIT、PRINCE2、ITIL4、CISP-BDSA、CISP-DSG、CISP-ICSSE、CISP-CSE、NISP、国家软考、CISP-PTE、CISP-A、CISP-IRE、SCSA、SCSP、CISP-PTS、CISP-F等。谷安学院经过13年的积累,积攒了丰富的优秀讲师资源,实施经验,完善的课程设置,贴心的一站式服务,专业保障考不过重听,免费证书维持指导,无后顾之忧!

美创安全速递图:美创安全速递

 

勒索病毒

1、Nefilim勒索软件操控者泄露Dussmann集团数据

Nefilim勒索软件操控者攻击了德国最大的私人多服务提供商Dussmann集团并在暗网泄露该公司数据。泄露的第一批数据为15.7GB,其中包括公司的索赔和解文件、强制担保抵押文件、法律合同、合作和项目协议等。Nefilim勒索软件操控者共泄露了16805个该集团文件。

Nefilim勒索软件操控者泄露Dussmann集团数据

2、REvil勒索软件攻击西班牙国有铁路管理机构

REvil勒索软件犯罪团伙攻击了基础设施管理局(ADIF)。ADIF是西班牙的国有铁路基础设施管理机构,管理着大量的轨道、车站、货运站以及最重要的铁路交通。该团伙已经针对ADIF进行了两次攻击,发布包括合同、通讯、文件、财产记录等记录以示警告,并表示如果不支付赎金,将发起第三次攻击。

REvil勒索软件攻击西班牙国有铁路管理机构

 

3、研究人员发现具有勒索软件功能的PHP Webshell

Ensiko是具有勒索软件功能的PHP Webshell,可针对多平台,例如Linux、Windows、macOS或安装了PHP的任何其他平台。该恶意软件具有远程控制系统并接收命令以在受感染机器上执行恶意活动。它还可以在受感染的系统上执行shell命令,并通过PHP反向shell将结果发送回攻击者。

研究人员发现具有勒索软件功能的PHP Webshell

挖矿病毒

1、Clipper活动投送Supreme僵尸网络挖矿

研究人员最近发现Clipper恶意软件活动投送Supreme僵尸网络挖矿程序和Poullight信息窃取程序。该Clipper下载器使用Microsoft .NET编写,首次启动时,它将获取系统时间,获取用户的临时文件夹位置,然后向域发出出站HTTP GET请求。建立HTTP连接后,将下载恶意可执行文件到目录下,其分别为受Enigma Protector工具保护的Supreme僵尸网络挖矿程序和Poullight信息窃取程序。

Clipper活动投送Supreme僵尸网络挖矿

本文转自杭州美创科技有限公司公众号,如需二次转载,请咨询[email protected]

一、漏洞概要

2020年7月29日,Eclypsium研究人员在GRUB2引导程序中发现了一个漏洞并将其命名为“BootHole”(CVE-2020-10713),利用该漏洞可在启动进程中执行任意代码。攻击者可利用该漏洞安装持久且隐秘的bootkit或恶意引导程序来控制设备。目前绝大多数linux发行版系统受影响。深信服安全研究团队依据漏洞重要性和影响力进行评估,作出漏洞通告。

漏洞名称

GRUB2本地代码执行漏洞(CVE-2020-10713)

威胁等级

高危

影响范围

GRUB 1.99, 2.00, 2.02, 2.04

漏洞类型

代码执行

利用难度

中等

 

 

二、漏洞分析

2.1 GRUB2介绍

GRUB2全称GRand Unified Bootloader 2,统一引导加载程序,是来自GNU项目的操作系统启动程序。用于加载操作系统内核,然后将控制权转移到该内核。还可在计算机启动时选择希望运行的操作系统,解决同一台计算机上安装的多个操作系统的问题。

2.2 漏洞描述

Eclypsium研究人员在GRUB2引导程序中发现了一个漏洞并将其命名为“BootHole”(CVE-2020-10713),可在启动进程中执行任意代码。攻击者可利用该漏洞安装持久且隐秘的bootkit或恶意引导程序来控制设备。目前绝大多数linux发行版系统受影响。

2.3 漏洞详情

GRUB2配置文件是一个文本文件,解析异常的grub.cfg文件时在GRUB2中可发生缓冲区溢出。此配置文件是通常位于EFI系统分区中的外部文件,因此可以由具有管理员特权的攻击者修改。攻击者可以在UEFI执行环境中获得任意代码执行权限,该代码可以用于运行恶意软件,更改启动过程,直接篡改OS内核数据或执行许多其他恶意操作。

为了处理来自外部配置文件的命令,GRUB2使用flex和bison从语言描述文件和辅助程序函数生成针对特定域的语言解析引擎。Flex生成的语法引擎包括了处理token的代码如下:

如果处理的token过长,则调用YY_FATAL_ERROR,该函数的实现为:

其中并没有停止执行或退出程序的代码,只将错误输出到控制台并返回到调用的函数,这使得yy_flex_strncpy()被调用,并将配置文件中的源字符串从复制到一个过小的缓冲区中。

除该路径外,flex生成的代码中还有很多其他地方,一旦YY_FATAL_ERROR()执行非预期操作将不会正确返回,并执行不安全的操作。最终,由于配置文件写入的token长度过大无法被解析器正常处理,将造成缓冲区溢出覆盖堆中的关键结构。这些覆盖的字段包括解析器内的结构元素等,可造成任意代码执行。

三、影响范围

【影响版本】

GRUB 1.99, 2.00, 2.02, 2.04

四、解决方案

4.1检测方案

输入以下命令查看grub2版本

grub-install –version

4.2 修复方案

厂商目前还未发布安全更新,请及时关注官网以获得最新版本。

https://www.gnu.org/software/grub/

4.3 临时修复方案

1.升级检查并修复 grub.cfg 文件

2.暂时替换引导程序为rEFInd/sysline/systemd-boot/clover

五、时间轴

2020/7/29  Eclypsium发布关于CVE-2020-10713的详细信息

2020/7/31 深信服千里目安全实验室发布漏洞分析文章。

六、参考链接

1.https://eclypsium.com/2020/07/29/theres-a-hole-in-the-boot/

北京网络安全大会是立足北京、辐射全球的国际化网络安全产业盛会,将于8月7日到16日召开,本届大会邀请了网络安全领域极具洞见的多位院士,10多位部级领导,全国11所双一流网空学院学科建设带头人,以及来自中国,美国,加拿大,英国,德国,荷兰,荷兰,以色列,日本,维多利亚,马来西亚,新加坡等11个国家及联合国等国际组织的500多位国内外安全领袖,产业精英,安全界大咖。BCS 2020还设立16档超100场特色栏目与活动,同时依托虎符网络安全大学,进行25场安全实战培训,打造顶级网络安攻防实训平台。

届时,易念科技将出席大会,携手共同打造业界顶级的网络安全大会,助力推动网络安全行业高速、健康的发展,作为中国网络安全意识教育领导企业,提升网民网络安全防范意识、减少人为因素引发的网络安全事件是易念科技的工作重心。易念科技始终秉承“教育改变认知,意识决定安全”的核心理念,聚焦以人为本的安全行为与教育方法研究,致力于“打造网络空间安全人脑防火墙。截至目前,易念科技已经服务过众多头部和大型企业,且近百万人参与由易念科技携手组织开展的安全意识宣贯,并获得了客户高度称赞。 除此之外,易念科技将在虎符网络安全大学开设CSAO注册信息安全意识官课程。针对国内安全意识行业人才缺失的情况,易念科技于去年推出的CSAO课程是在中国网络空间安全教育人才联盟指导下,由网安意识培养提高工作组专家开发完成的全新网络安全职业认证课程。课程以安全意识教育理论为基础,综合心理学、行为学、管理学和营销学等多门学科,并结合国内外先进理念与案例实践,标准的课程内容与专业的知识体系,加上专家讲师深入浅出的讲解,学员不仅可以掌握安全意识相关的知识要点,还能收获整套安全意识教育工作开展的方法论。

CSAO课程属于国家试点认证课程,学员通过参加中国网络空间安全人才教育联盟统一组织的培训和考试,成绩合格且符合认证条件,即可获得中国网络空间安全人才教育联盟统一颁发的认证证书。目前在虎符训练营参与课程报名,还可享受“早鸟特惠”价。

新型挖矿木马来了!近日,腾讯安全威胁情报中心检测到针对MSSQL服务器攻击的挖矿木马,该挖矿木马主要针对MSSQL服务进行爆破弱口令攻击,爆破成功后会植入门罗币挖矿木马进行挖矿。据腾讯安全评估,截止目前已有上万台服务器沦为门罗币矿机。对此,腾讯安全专家提醒企业应避免使用弱口令。同时,腾讯安全终端安全管理系统已可拦截查杀该挖矿木马。

 
据腾讯安全专家介绍,该黑产团伙对MSSQL服务器进行爆破成功后,会下载执行HFS服务器上的恶意文件。从挖矿木马的HFS服务器计数估计,已有上万台MSSQL服务器被植入挖矿木马,另有数十台服务器被安装后门。挖矿木马HFS文件列表如下。

 
需要注意的是,攻击者在失陷服务器上下载frpc内网穿透工具安装后门,并添加用户以方便入侵者远程登录该服务器的行为,会进一步增加黑客入侵风险,使企业数据库服务器沦陷而导致严重信息泄露事件发生。其中,Dllhost.exe是一款开源的内网穿透工具Frpc,Bat负责生成frpc配置文件,以及设置服务启动项,目的是将本机的3389端口暴露给黑客服务器,黑客可直接通过RDP连接到受害服务器,进而控制企业内网。

 
面对日益猖獗的黑产团伙,腾讯安全专家建议企业从多方面采取措施,保障服务器安全。首先,企业应加强网络安全意识,努力提高安全防范能力。其次,企业应在所有服务器上避免使用弱口令,爆破攻击通常是黑客试水的第一步,使用弱口令非常容易导致企业资产被入侵。此外,为避免遭遇该挖矿木马迫害,腾讯安全建议政企机构部署专业防护软件。
 
值得一提的是,目前腾讯安全旗下安全产品已针对该挖矿木马的入侵行为进行检测和拦截。其中,腾讯安全主机安全支持MSSQL弱密码检测,支持查杀该挖矿木马。此外,腾讯安全主机安全还提供云上终端的防毒杀毒、防入侵、漏洞管理、基线管理等。腾讯安全终端安全管理系统能够提供企业终端的防毒杀毒、防入侵、漏洞管理、基线管理等能力,帮助查杀该团伙入侵释放的挖矿程序,内网端口映射工具。

漏洞简介: 

极光无限维阵专家团队在对Python最新版Python 3.8.5的分析中发现了一个空指针引用漏洞,漏洞发生在Python对.pyc文件进行处理时。

下面是崩溃信息:

$ Python-3.8.5/python 00-SEGV-on-unknown-address-Python-3.8.5.pyc    Could not find platform dependent libraries <exec_prefix>    Consider setting $PYTHONHOME to <prefix>[:<exec_prefix>]    AddressSanitizer:DEADLYSIGNAL    =================================================================    ==8079==ERROR: AddressSanitizer: SEGV on unknown address 0x000000000018 (pc 0x0000008aa86b bp 0x000000000000 sp 0x7ffe2a3f5bf0 T0)    ==8079==The signal is caused by a READ memory access.    ==8079==Hint: address points to the zero page.        #0 0x8aa86a in _PyEval_EvalCodeWithName /home/test/Python-3.8.5/Python/ceval.c:4266:23        #1 0x866d0f in PyEval_EvalCodeEx /home/test/Python-3.8.5/Python/ceval.c:4327:12        #2 0x866d0f in PyEval_EvalCode /home/test/Python-3.8.5/Python/ceval.c:718:12        #3 0x9f7355 in run_eval_code_obj /home/test/Python-3.8.5/Python/pythonrun.c:1125:9        #4 0x9e682d in run_pyc_file /home/test/Python-3.8.5/Python/pythonrun.c:1184:9        #5 0x9e682d in PyRun_SimpleFileExFlags /home/test/Python-3.8.5/Python/pythonrun.c:419:13        #6 0x9e4ca5 in PyRun_AnyFileExFlags /home/test/Python-3.8.5/Python/pythonrun.c:86:16        #7 0x5108db in pymain_run_file /home/test/Python-3.8.5/Modules/main.c:381:15        #8 0x5108db in pymain_run_python /home/test/Python-3.8.5/Modules/main.c:606:21        #9 0x5108db in Py_RunMain /home/test/Python-3.8.5/Modules/main.c:685:5        #10 0x5129d6 in pymain_main /home/test/Python-3.8.5/Modules/main.c:715:12        #11 0x512dd7 in Py_BytesMain /home/test/Python-3.8.5/Modules/main.c:739:12        #12 0x7f8316d4b82f in __libc_start_main /build/glibc-LK5gWL/glibc-2.23/csu/../csu/libc-start.c:291        #13 0x438888 in _start (/home/test/Python-3.8.5-Fuzz/python+0x438888)    AddressSanitizer can not provide additional info.    SUMMARY: AddressSanitizer: SEGV /home/test/Python-3.8.5/Python/ceval.c:4266:23 in _PyEval_EvalCodeWithName    ==8079==ABORTING

漏洞分析: 

在函数PyEval_EvalCode(Python-3.8.5/Python/ceval.c)中调用PyEval_EvalCodeEx函数。

 PyObject *    PyEval_EvalCode(PyObject *co, PyObject *globals, PyObject *locals){        return PyEval_EvalCodeEx(co,                        globals, locals,                        (PyObject **)NULL, 0,                        (PyObject **)NULL, 0,                        (PyObject **)NULL, 0,                        NULL, NULL);    }

传递给PyEval_EvalCodeEx函数的参数中closure设置为NULL。

    PyObject *    PyEval_EvalCodeEx(PyObject *_co, PyObject *globals, PyObject *locals,                    PyObject *const *args, int argcount,                    PyObject *const *kws, int kwcount,                    PyObject *const *defs, int defcount,                    PyObject *kwdefs, PyObject *closure){        return _PyEval_EvalCodeWithName(_co, globals, locals,                                        args, argcount,                                        kws, kws != NULL ? kws + 1 : NULL,                                        kwcount, 2,                                        defs, defcount,                                        kwdefs, closure,                                        NULL, NULL);    }

PyEval_EvalCodeEx函数继续调用_PyEval_EvalCodeWithName函数,closure值不变依旧为NULL。

    PyObject *    _PyEval_EvalCodeWithName(PyObject *_co, PyObject *globals, PyObject *locals,            PyObject *const *args, Py_ssize_t argcount,            PyObject *const *kwnames, PyObject *const *kwargs,            Py_ssize_t kwcount, int kwstep,            PyObject *const *defs, Py_ssize_t defcount,            PyObject *kwdefs, PyObject *closure,            PyObject *name, PyObject *qualname)    {        ******        /* Copy closure variables to free variables */        for (i = 0; i < PyTuple_GET_SIZE(co->co_freevars); ++i) {            PyObject *o = PyTuple_GET_ITEM(closure, i);   <----------------------------- crash            Py_INCREF(o);            freevars[PyTuple_GET_SIZE(co->co_cellvars) + i] = o;        }        ******    }

修复建议: 

在 _PyEval_EvalCodeWithName函数中引用closure前,对closure的值进行判断。

        基于真实通用云环境,展示全路径攻击与防御、开赛38秒提交正确答案……一年前,GeekPwn2019云安全比赛的精彩画面记忆犹新,而即将开始的由GeekPwn携手腾讯安全云鼎实验室联合举办的第二届云靶场挑战赛热身赛将在7月11、12日再度拉开战幕,为中外信息安全高手提供在云安全研究领域PK的舞台。

加速培养云安全生力军,第二届云安全比赛硬核来袭

        万物上云时代,云安全也从基础设施向业务应用扩展,渗透至虚拟化、容器、数据、边界、管道、终端、代码……云计算架构的复杂性、运营模式的独特性、承载业务的多样性都对云计算安全提出了巨大挑战。在此背景之下,腾讯安全云鼎实验室携手GeekPwn联合发起第二届云靶场挑战赛,鼓励参赛选手积极探索云安全领域的前沿技术。

        此次比赛,除了激励选手发现网络安全攻防演练中的云安全漏洞,同时也希望可以通过公开的赛事平台去寻找云安全领域的技术先锋,以及培养云安全生力军,为创造云安全的未来价值而储备人才,守护企业安全上云。作为GeekPwn的生态合作伙伴,腾讯安全希望借助与极棒的合作,为加速云安全技术创新、共享技术成果搭建一个长期、持续的沟通交流平台,推动云计算产业健康有序发展。

        本届云安全比赛项目包括“云靶场挑战赛”“云安全开放赛”两部分。

        其中,“云靶场挑战赛”设立线上热身赛(初赛)线下决赛两阶段,模式分为解题和攻防对抗两种形式。选手可自由选择报名参赛。

        同时,为鼓励参赛选手对云计算设施的安全研究、提高云计算基础安全性,本届比赛还设置“云安全开放赛”,选手可以在公布典型云计算环境配置中任选研究目标,赢取百万奖金。

       整个赛制既考察选手的云安全攻防能力又鼓励选手突破研究边界,充分发挥安全潜力。

让安全对抗发生在靶场,让有效防御发生在安全问题之前。」

        本次线上热身赛还为选手准备了丰厚的奖金,除了前 20 名的团队均可获得奖金之外,大赛还针对云环境的安全技术特色首度设置“极限逃逸”单项奖,给予额外激励。此外,腾讯安全还将为优秀选手提供进入腾讯实习的绿色通道,选手可以凭借在比赛中的出色表现通过绿色通道加入腾讯。

线上热身赛报名正式开启,赛事规则抢先知

「云靶场挑战赛线上热身赛」

报名时间:即日起至 2020 年 7 月 6 日。

报名方式:通过 GeekPwn 大赛报名通道(wj.qq.com/s2/5737453/91e0)填写报名信息,主办方审核通过后即报名成功。

比赛时间:2020 年 7 月 11 日至 12 日。

云靶场挑战赛线上初赛奖金:

  • 第一名奖金 10000 元***;

  • 第二名 8000 元***;

  • 第三名 5000 元***;

  • 其余排名前 20 名的战队,每队奖金 1000 元***。

       最先正确提交答案奖金,每题 1000 元***,单项奖奖金 3000 元***。

比赛规则:线上初赛采用线上比赛方式,比赛为解题模式,即选手通过寻找并破解主办方预设的赛题,获得对应题目的分数。赛题涉及 PWN、逆向、Web 等题型,覆盖云平台基础组件,如内核、Qemu 等组件的提权、逃逸等。选手可以单独参赛也可以团队参赛,每支参赛团队需提供唯一联系人信息。

“云靶场挑战赛”线下决赛

        线下决赛将于 2020 年 10 月 24 日 GeekPwn 大赛现场举行,采用多队云计算环境下安全攻防对抗的赛制。主办方评委将根据线上初赛的排名成绩、参赛队安全研究的背景资料等确定决赛团队。

“云安全开放赛”

        主办方将公布典型云计算环境配置信息,包含云基础架构、上层应用等,选手可以在配置列表中选择研究目标进行弱点分析、挖掘未公开漏洞,报名参赛。开放赛具体比赛信息、环境配置信息请留意 GeekPwn 官网。

        在此欢迎脑洞无边、技术精湛,热衷云安全的团队及个人积极踊跃报名。你与百万奖金的距离,仅一步之遥!

作者简介.jpg

格林威治时间,2009-01-03 18:15:05。
比特币创始人中本聪挖出了比特币的首个区块——创世区块(Genesis Block)。
从此,拉开了十年来轰轰烈烈的数字货币、区块链浪潮的序幕。
密码朋克也开始了他们最深刻的一次社会实验。

虽然大家每天使用 HTTPS 协议浏览网页,用 HASH 算法保证下载资源的完整,插着 U 盾使用网上银行,但背后的密码学一直都是小透明的存在,大众对密码学的认知基本还停留在上世纪的谍战电台中。

直到比特币横空出世,携带「重新发明货币」之威势,第一次让密码学知识走进普通人的视野。同时,也带来了大量关于政治和经济的思考。

故而,我更愿意把比特币看作一次社会实验,而非经济现象。要讨论这样一次伟大的社会实验,技术反倒成了次要,我想从货币和社会谈起。

货币的演化史

既然把比特币看成货币,那么首先要找到它的历史定位。纵观人类货币的演化过程,大概有下面几个阶段:

huobi.png

· 自然货币时代

这个阶段,货币基于一般等价物的稀有性或者实用性,货币不可能出现人为操纵的超发。

· 信用货币时代

当交易量越来越大,自然货币太不方便了,而且大家发现货币本身有多少价值并不重要,在意的只是货币能不能交换到足够的商品,于是纸币这种信用货币逐步诞生,并且发行方由钱庄、地方政府逐步到中央银行。

而近年来,由于技术进步,近一步过渡到v2.5版本,纸币数字化,催生了更多经济形式,但相较纸币,其中蕴含的国家信用本质并没有改变。

· 未来?

下一代货币是什么样子,我们还不知道,而比特币展示了一种可能性。但也可能,并没有下一代。

货币发行和社会形态

经济活动作为人类群体生活最重要的行为之一,深刻影响了人类的社会形态。从货币发行这件事上也可以发现许多相关性。

· 在自然货币时代,货币的实际发行者是——大自然。
· 在信用货币时代,货币的实际发行者是——人类。

在这里,货币发行第一定律出现了:

「货币发行第一定律」:谁负责发行,就要用那个世界的规则限制发行量。

· 大自然的限制规则是:产量。
· 而人类的限制规则是:中央集权。

再来看另一个现象:

自然货币时代,由于货币本身的稀缺性,基本没有办法随意增发货币。而信用货币时代的轨迹,会发现货币本身的价值在不断降低,换个说法就是货币增发的成本越来越低。这表明,对信用和中央集权的依赖程度就必须增高,于是货币发行方从私人钱庄、地方政府逐渐到中央银行。

可见,货币的形态和社会的形态是直接关系的,货币成本不断降低的同时人类从松散社会逐渐演变为现在的高度中央集权社会。

所以,货币发行第二定律也出现了:

「货币发行第二定律」:谁降低货币发行成本,就必须同时加强那个世界的规则。

这意味着,随着货币的信用化,中央集权的社会模式必须逐渐壮大。

就这样,货币在人类的权力规则下正常运行了数千年。为何人类对权力越来越贪婪,就是因为货币价值越来越依赖权力。

重新发明货币

而当货币模式演进到v2.5时代,也就是移动支付时代时候。由于计算机网络的发展,增发货币的难度变成只需要修改央行的数据库,成本几乎变为零了!

根据我们总结的「货币发行第二定律」,这意味着人类负责发行的信用货币体系可能走到了某个节点上,人类的中央集权模式也到了某个节点。

货币要继续向前发展,需要寻找另一个维度。

社会上后来出现了两种思潮:一种是建立超主权货币;一种是比特币为代表的互联网去中心化模式。

但超主权货币的可能性很低,因为货币不仅仅代表了价值交换的工具,同时还要承担秩序的输出功能,与所有国家主权脱钩的货币难以承担这种角色。更不用说某些国家还需要利用自己的货币玩金融剪刀游戏。

于是回到「货币发行第一定律」,我们发现,其实这时候有自然和人类之外的第三个势力参与到货币发行上来了,就是计算机网络。它改变了信用货币时代人类单纯依靠增强中央集权来降低货币发行成本的模式。按照货币世界的规则,新的势力应该担负起建立新规则的任务。

计算机世界限制发行量的规则是什么?那显然就是计算难度。

然而要让计算机网络独立于人类来建立规则,这本身就是一个极富挑战的难题。但中本聪在2019年创造性的发明了区块链的概念,来解决这个问题,给货币的发展带来了新维度的可能性。

chain.jpg

什么是区块链

高级的东西往往很简单,区块链也是一样。

用个成语接龙到游戏来说明:

当多个小朋友一起玩成语接龙游戏时,往往大家都能第一时间想到答案,但大家一起抢答就会混乱掉,该从谁的成语往后接呢?

传统的方法是选择一个主持人,想到的小朋友先举手,由主持人来判断谁举手最快,再决定由谁接龙。这样能保证接龙结果是一条没有分叉的链条。这就叫中心化方案。

现在如果不能有主持人,该怎么保证秩序呢?于是中本聪大神发明了一个方法:

我们来扔骰子吧,每人拿6个骰子,谁先扔出至少5个1,谁就有资格接龙。

于是这个游戏,就在没有主持人的情况下,能正常玩下去。当有更多小朋友参与的时候,可能经常同时有人能扔出5个1,那么简单,就把规则改成7个骰子扔六个1,随着人增多,骰子个数也不断增加以增加难度。

saizi.jpg

这就是区块链的去中心化方案。通过扔骰子的难度,提高接龙的门槛,保证接龙结果是没有分叉的链条。

而真正实现的时候,使用的扔骰子方案就是之前上一篇密码学中介绍过的 SHA256 Hash 算法。只有找出一个数和最近的转账数据算出足够小的 Hash 值,才拥有记账权,也就是给整个链加入一个新的区块。

最简单的区块链实现

「Talk is cheap. Show me the code!」—— Linus Torvalds

这里用 python 实现一个不到50行代码的区块链 demo,其实原理非常简单。

import hashlib
import datetime

class Block:
    def __init__(self, index, timestamp, data, last_hash):
        self.index = index
        self.timestamp = timestamp
        self.data = data
        self.last_hash = last_hash
        self.hash = self.hash_block()

    def hash_block(self):
        sha = hashlib.sha1()
        info = str(self.index) + str(self.timestamp) + str(self.data) + str(self.last_hash)
        sha.update(info.encode("utf8"))
        return sha.hexdigest()

def genesis_block():
    # 创建创世区块
    return Block(0, datetime.datetime.now(), "GenesisBlock", "0")

def next_block(last_block):
    # 生成下一个区块
    this_index = last_block.index + 1
    this_timestamp = datetime.datetime.now()
    this_data = "I'm block " + str(this_index)
    last_hash = last_block.hash
    return Block(this_index, this_timestamp, this_data, last_hash)

if __name__ == '__main__':
    # 初始化区块链
    blockchain = [genesis_block()]
    last_block = blockchain[0]
    print("Block #{} created!".format(last_block.index))
    print("Hash: {}\n".format(last_block.hash))

    num_of_blocks = 5

    # 生成区块链
    for i in range(0, num_of_blocks):
        new_block = next_block(last_block)
        blockchain.append(new_block)
        last_block = new_block

        print("Block #{} has been added!".format(new_block.index))
        print("Hash: {}\n".format(new_block.hash))

不过,没有带挖矿和交易的功能,执行下来的结果:

Block #0 was created!
Hash: 4b3eb7f7bbe233bc362d8db7c21623468b6f8ff1

Block #1 has been added!
Hash: a5c1683226254eef0cddf62bc1ce2034bc2cc9da

Block #2 has been added!
Hash: 55db159cbc62455f45c82f4b69b102c0c78f55b2

Block #3 has been added!
Hash: e9cafa8d8eaa86a9a709ef115dfa2570dff4f383

Block #4 has been added!
Hash: 032dfccebeaa7bc5fb4b27849e410c7f56e6111d

Block #5 has been added!
Hash: 68feb74d92b322881f0ba97cfd25ceff93552e5f

很显然,我们已经创造了一条区块链,在这个基础上再进行一些深入的开发,就能赋予它货币的能力,仿佛看到了毛爷爷在亲切地招手。

比特币解决了什么

曾经,通过网络只可以进行信息的匿名传递。
现在,通过比特币还能进行价值的匿名传递。
然而,比特币是否能如前面所说,肩负起货币v3.0版本的重任呢?曾经我是对此报以期待的。
在过去几年里,比特币甚至带起了整个暗网的非法交易,展现了良好的局部货币属性。

但看一个事物,不但要从技术、现实等基本面分析,还应该看到背后的思想博弈。

社会形态的博弈

密码朋克,一直是自由、加密、无政府主义的支持者。

因此,比特币的本质其实是纯粹的民主思想。以去中心化、少数服从多数、自由竞争为特征。

货币的形态,其实是社会组织形态的外化。货币是中心化还是去中心化,背后其实是中央集权和民主思想的博弈。

比特币刚出现时,恰好是国内整体舆论环境对美式民主最向往的时期,人们热衷于讨论民主和中央集权的优劣。

但近年来空气币、割韭菜等事情会令人思考,在一个相对自由的框架下,任由丛林法则和马太效应发酵,是否能自发导致系统的稳定运行,答案可能是否定的。

未来货币是什么形态,也许还是要看未来若干年的社会形态走向。

往期精彩

密码朋克的社会实验(一):开灯看暗网

密码学幼稚园 丨 密码朋克的社会实验(二)