A EOS-BP security proposal,which is conducted by Qihu360 and OracleChain.(A more practical version for all bps would be detailed and coming soon...)
- Background 背景介绍
- Brief Intro 方案简述
- Security Topology 网络拓扑
- Modules 模块分类
- BP configuration BP配置
- P2P node P2P节点配置
- API node API节点配置
- P2P interface API节点配置
- API interface API节点配置
- SPECIAL TANKS 特别鸣谢
区块链技术通过 2008 年诞生的比特币货币得以被认知,自从那之后企业家和开发者就不断的尝试推广这一技术,以便在单一的区块链平台上支持更为广泛的应用程序。EOSIO为区块链奇才 BM (Daniel Larimer)领导开发的类似操作系统的区块链架构平台,旨在实现去中心化分布式应用的性能扩展。它提供帐户,权限验证,数据存储,异步通信,实现了跨CPU核心和集群的应用程序调度。该技术的最终形式是一个区块链体系架构,该公链由全球社区运营,每秒可以支持数百万个交易,同时普通用户无需支付使用费用。在EOS的生态中,区块由21名生产者轮流产生,这些生产者就是EOSIO-BP节点,他们在整个生态中至关重要。
随着EOSIO主网上线日益临近,全球的EOSIO社区在激烈地讨论着主网启动和启动后的节点运营策略。其中最主要的问题集中在如何在保证出块节点的安全性,同时为用户提供稳定可靠的链上服务。本文由奇虎360集团和欧链科技共同发布,分析了以上BP节点运营中可能会遇到的安全性问题,并提出一个综合解决方案。
奇虎360集团作为中国最大的信息安全企业,拥有东半球最权威的安全研究团队,拥有对各类攻击威胁的深入分析能力及多年的安全大数据积累,同时为上百万家国家机关和企事业单位提供包括安全咨询、安全运维、安全培训等全方位安全服务,自主研发的全球网络攻击实时监测预警系统,运用新技术构建了一个强健有力的“安全大脑”,建立“上帝视角”,绘制出大安全全景图,把“安全大脑”打造成安全领域的核心技术和“国之重器”,起到掌控安全全局、为经济发展保驾护航的作用。
欧链科技作为全球最早all in EOS智能合约生态的技术团队,将区块链技术服务和现实生活中的多种需求场景直接高效对接,在提交的近39项区块链发明专利中形成了近10个专利技术包,并参加了工信部发布的《可信区块链》、《区块链 参考架构》等系列技术标准的编制,同时也是贵州省区块链标准工作小组成员单位。
依托“安全大脑”和对EOSIO生态的持续投入,我们致力于为EOS生态构建一个系统全面的安全保障体系,为EOSIO的广大用户提供更安全、更可靠、更稳定的基础服务。
按照EOSIO目前的设计,每半秒出1个块,每个块会容纳成百上千个交易,基于BTF-DPOS的高并发设计对我们的集群架构和安全策略构成了一个挑战:如何尽量减少各个区块的同步时间,在保障出块节点安全的情况下尽量加速区块的同步;同时,为用户提供高效的合约调用服务,针对恶意流量要能进行针对性识别,不同场景使用不同的安全防护策略。
EOSIO节点网络可以主要分为两个部分:P2P网络部分、HTTP服务部分。
通过P2P网络,全球的EOSIO节点构成一个共识网络。P2P网络是交易同步、区块产生共识的基础。这个网络里传输的是二进制数据,可能有的威胁就是恶意节点的接入,TCP FLOOD攻击等,因此在边界部署入侵防御系统(IPS)等安全设备,定制策略并进行TCP流量清洗。
HTTP服务部分则为用户提供交易的状态查询和合约接口服务,这里提供的服务也是最常见的被攻击的地方,常见的攻击手段有SQL注入、XSS、命令执行、DDoS攻击等,因此在网络边界部署了WAF进行流量清洗。
另外,EOSIO节点还能通过原生插件,将不可逆的交易历史数据同步到外部数据库中。外联数据库数据为我们提供了便利性的同时,也提出了相关基础设施的安全性和可用性问题。
为了同时解决以上问题,本文将节点需要的服务分离出若干部分模块。针对不同模块的需求和特性,在可用性和安全性上提供了一些解决思路供大家参考。
在本方案中,我们将出块节点放在了P2P和HTTP节点集群之后以保障出块节点的安全。出块节点的前端,我们会严格限制访问策略,只有信任的节点才可以接入到出块节点。在出块节点的后端,部署专门的安全管理堡垒机,对出块节点的私钥进行管理。
依托360安全大脑的积累,分别在物理安全、平台安全、网络安全、系统安全、应用安全和数据安全六方面进行防御部署,并将安全设备以及日志等信息发送到EOS超级节点智能感知系统,本系统作为360安全大脑数据采集的重要环节,将与云端的360安全大脑进行联动,用人工智能的方法进行分析和计算,来实时感知网络安全运行状况和安全态势,预测可能要发生的攻击,监测和发现正在发生的攻击,发现攻击后就自动响应,协同分布在网络中的网络安全设备和软件对攻击进行处置,支撑应急指挥。
系统接入层(http/p2p service interface)
系统接入层为整个系统提供流量入口,清洗流量,LB,服务failover机制。
出块节点集群(block producer)
出块节点是只能在内网访问的eosio节点,它与其他node在内网直连,管理员可以通过堡垒机(security administration模块)连接,除此无其它对外暴露的通信接口。此节点存放着节点私钥,所以所有操作都需要安全审计,并且私钥会由key admin定期维护更新。
P2P节点集群(nodes for P2P service)
全节点与内网的出块节点同步后,组成一个全节点网络,通过P2P端口为外提供区块同步功能。我们需要对外界TCP流量进行合理分流,对被攻击的机器进行有效隔离,避免影响其他节点同步。
HTTP节点集群(nodes for HTTP service)
合约服务节点可以与内网的出块节点、或全节点同步,同步后的合约服务节点,通过http端口为普通用户提供服务。http端口可以使用业内现有的成熟的IDS、IPS、WAF方案进行防护。
数据中心(block transaction data center)
数据中心保存着区块的不可逆历史交易数据,我们可以通过数据中心对特定业务进行分流和加速,而且全节点重启时也需要历史数据进行初始化。除此,数据中心还保存着各节点保存在区块链之外的数据,比如我们采用IPFS提供的附加服务。数据中心为业务可用性提供了保障,所以数据中心的安全性也尤为重要。
堡垒机(secure administrative host)
我们使用ELK系统来统计全节点、出块节点、安全审计系统数据中心的系统状态和日志。当系统任何部分发生异常,会引发通知事件(电话和邮件),实时发送给相关工作人员进行处理,做到24*7小时的故障响应。通过这个系统,运营和运维人员可以快速跟进异常情况,并进行及时跟踪解决问题。
EOSIO超级节点智能感知系统(EOSIO BP Intelligent Perception System)
EOSIO超级节点智能感知系统是基于 360 威胁情报和本地大数据技术的对节点的安全数据进行快速、自动化的关联分析,及时发现本地的威胁和异常, 同时通过图形化、可视化的技术将这些威胁和异常的总体安全态势展现给节点系统。EOSIO超级节点智能感知系统一方面可基于 360 自有的多维度海量互联 网安全数据,进行情报挖掘与云端关联分析,提前洞悉各种安全威胁,并将威 胁情报以可机读格式推送到本地系统,供本地威胁检测和分析时使用,另一方面,EOSIO超级节点智能感知系统可对本地全量数据进行采集和存储,利用大数据技术在本地进行安全数据分析和威胁溯源。整个设计将遵循发现、阻断、取 证、溯源、研判、拓展的安全业务闭环设计,使得节点能通过产品各个功能模块完成威胁处置的全过程。
360安全大脑(360 Brain of Security )
360安全大脑是一个分布式智能系统,综合利用ABCI(大数据、人工智能、云计算、IoT智能感知、区块链)等新技术,保护国家、国防、关键基础设施、社会及个人的网络安全。
安全大脑采集一切与安全有关的数据,用人工智能的方法进行分析和计算,来实时感知网络安全运行状况和安全态势,预测可能要发生的攻击,监测和发现正在发生的攻击,发现攻击后就自动响应,协同分布在网络中的网络安全设备和软件对攻击进行处置,支撑应急指挥。因此,可以说“安全大脑”是智能经济时代的网络安全中枢。
“安全大脑”由几个部分组成:
-
1、智能感知系统:由数以亿计的PC及智能手机终端、网络设备、IoT设备等构成,采集与网络安全相关的数据和信息,相当于人类的感官系统。就像眼睛、耳朵、鼻子,源源不断的把脱敏后的安全数据传输到“安全大脑”,由“安全大脑”进行智能的分析和决策,EOSIO超级节点智能感知系统就是其中重要的一个组成部分。
-
2、大数据存储系统:存储网络安全大数据的平台,相当于人的记忆中枢。
-
3、知识系统:由网络安全大数据经过智能分析、计算和挖掘所形成的,是用于检测、识别、分析、溯源各类网络安全威胁的知识库。
-
4、智能分析系统:采用人工智能、数据挖掘、可视化计算等一系列分析技术,实现对安全威胁的分析判断和处置。
-
5、智能学习系统:具备自我学习、自我演进的能力,实现对新的网络安全威胁、攻击方法等的识别能力的系统。
-
6、人机智能交互辅助决策系统:利用安全专家经验,通过智能人机交互方式,实现对安全威胁检测、分析、溯源等的辅助决策。