CSA GCR 区块链安全工作组交易所安全小组,对于过去几年交易所发生的安全事件进行了分析,按照安全事件的发生频率和资金损失程度总结了主要的十个安全风险。
1. 高级长期威胁(APT)
风险描述:高级长期威胁(Advanced Persistent Threat,APT),又称高级持续性威胁、先进持续性威胁等,是指隐匿而持久的电脑入侵过程,通常由某些人员精心策划,针对特定的目标。其通常是出于商业或政治动机,针对特定组织或国家,并要求在长时间内保持高隐蔽性。
高级长期威胁包含三个要素:高级、长期、威胁。高级强调的是使用复杂精密的恶意软件及技术以利用系统中的漏洞。长期暗指某个外部力量会持续监控特定目标,并从其获取数据。威胁则指人为参与策划的攻击。
数字货币交易所的高级长期威胁一般是黑客在攻击之前对攻击对象的业务流程和目标系统进行精确的收集。在此收集的过程中,此攻击会主动挖掘被攻击对象身份管理系统和应用程序的漏洞,并利用电子邮件和其他钓鱼手段安装恶意软件潜伏等待成熟时机会,再利用0 day 漏洞或者交易所流程方面的漏洞进行攻击。
比较著名的针对数字货币交易所的 APT 黑客团队包括 CryptoCore(也被称呼为“Crypto-gang”、“Dangerous Password”、“Leery Turtle”,大概成功盗取2亿美金)和 Lazarus(大概盗取5亿美金)。
2. 分布式拒绝服务(DDOS)
风险描述:分布式拒绝服务攻击DDoS是一种基于拒绝服务攻击(DoS)的特殊形式。是一种分布的、协同的大规模攻击方式。单一的DoS攻击一般是采用一对一方式的,它利用网络协议和操作系统的一些缺陷,采用欺骗和伪装的策略来进行网络攻击,使网站服务器充斥大量要求回复的信息,消耗网络带宽或系统资源,导致网络或系统不胜负荷以至于瘫痪而停止提供正常的网络服务。与DoS攻击由单台主机发起攻击相比较,分布式拒绝服务攻击DDoS是借助数百、甚至数千台被入侵后安装了攻击进程的主机同时发起的集团行为。数字货币交易所经常受到DDOS攻击。
3. 内鬼监守自盗(Insider Attack)
风险描述:交易所内部人员利用公司内部安全流程的漏洞,监守自盗;或者在离开交易所以后利用流程和安全控制方面的漏洞发起攻击。
4. API 安全风险问题
风险描述:交易所一般都会公开订单查询、余额查询、市场价格交易、限价交易等 API。API 的安全如果没有管理好,黑客可以利用 API 安全漏洞盗取资金。一般可能的 API 安全漏洞如下:
(1)没有身份验证的 API
API 必须有身份验证和授权机制。符合行业标准的身份验证和授权机制(例如 OAuth / OpenID Connect),以及传输层安全性(TLS)至关重要。
(2)代码注入
这种威胁有多种形式,但最典型的是 SQL、RegEx 和 XML 注入。在设计 API 时应了解这些威胁并为避免这些威胁而做出了努力,部署 API 后应进行持续的监控,以确认没有对生产环境造成任何漏洞。
(3)未加密的数据
仅仅依靠HTTPS或者TLS对于API的数据参数进行加密可能不够。对于个人隐私数据和资金有关的数据,有必要增加其他在应用层面的安全,比如 Data Masking、Data Tokenization、XML Encryption,等等。
(4)URI 中的数据
如果 API 密钥作为 URI 的一部分进行传输,则可能会受到黑客攻击。当 URI 详细信息出现在浏览器或系统日志中时,攻击者可能会访问包括 API 密钥和用户的敏感数据。最佳实践是将 API 密钥作为消息授权标头(Message Authorization Header)发送,因为这样做可以避免网关进行日志记录。
(5)API Token 和 API Secret 没有保护好
如果黑客能够获得客户甚至超级用户的 API Token 和 API Secret ,资金的安全就成为问题。没有对于 API 的使用进行有效的检测,黑客可能利用 API 进行多账户、多笔的转账。API 的实时安全检测如果不能判断这种攻击,就会有损失。
5. 假充值问题(False Top-up)
风险描述:假充值是指链上逻辑错误或交易所链上链下对接的时候,对交易的检验不够严谨导致的错误入账的问题。
6. 交易所热钱包存储过多资金,成为黑客目标
风险描述:交易所热钱包存储过多资金,成为黑客目标,这个风险与交易所热钱包有关的IT系统的漏洞、采用不安全的存储方式对私钥进行存储、安全意识较低有关。
黑客采用包括但不限于以下的方式进行攻击: 恶意链接钓鱼收集用户信息。黑客投放恶意链接引导用户点击,借此收集用户的登陆凭据。数据库被攻击导致私钥泄露。交易所数据库中存放其热钱包私钥,黑客对数据库进行攻击,获取到数据库数据后通过数据库存放的私钥进行转账。
IT 系统漏洞。交易所自身系统存在漏洞,黑客通过其自由漏洞获取IT系统控制权后,直接通过IT系统进行转账。 员工监守自盗 。前雇员在离职后通过在职时留下的后门进行资产转移。
7. 51%攻击 (也可以称为硬分叉攻击,或者双花攻击)
风险描述:51%攻击,又被称为 Majority attack。这种攻击是通过控制网络算力实现双花。如果攻击者控制了网络中50%以上的算力,那么在他控制算力的这段时间,他可以将区块逆转,进行反向交易,实现双花。对同一笔交易进行双重花费甚至回滚以往的历史交易。
8. 不安全的文件处理
风险描述:这种风险与文件的不安全处理有关系。包括下载外部电子邮件的链接或者附件,也就是传统意义上的钓鱼攻击;也包括对于交易所用户上载的 KYC(实名验证)文件没有经过安全处理。
恶意代码隐藏图像中,这种方式也称呼为隐写术(Steganography),攻击者将恶意代码与指令隐藏在看似无害的图像之中伺机执行,这种风险与 APT 风险有一定的关系。
一般来说,单单一封邮件无法对你实施攻击,一定要以邮件为基础,在此之上产生别的交互才可以,比如说点击链接后输入内容,运行/打开文件,当需要以上动作时,便存在风险。
9. DNS 域名劫持(DNS domain name hijacking)
风险描述:DNS 服务是互联网的基础服务,在 DNS 查询中,需要有多个服务器之间交互,所有的交互的过程依赖于服务器得到正确的信息,在这个过程中可能导致访问需求被劫持。
劫持访问需求有多种方式:利用路由协议漏洞,在网络上进行 DNS 域名劫持。如 BGP 协议漏洞(BGP 协议对于两个已经成功建立 BGP 连接的 AS 来说,基本会无条件的相信对方 AS 所传来的信息,包括对方声称所拥有的IP地址范围),将受害者的流量截获,并返回错误的 DNS 地址和证书。
劫持者控制域名的一台或多台权威服务器,并返回错误信息。递归服务器缓存投毒,将大量有毒数据注入递归服务器,导致域名对应信息被篡改。入侵域名注册系统,篡改域名数据,误导用户的访问。
上述的攻击行为都会将用户的访问重定向至劫持者控制的一个地址。使用一个假冒的证书让不明真相的用户登陆,如果用户无视浏览器的证书无效风险警告,继续开始交易,就会导致钱包里的资金被盗。
10. 第三方安全
风险描述:使用第三方服务的时候:因为交易所使用第三方服务自行配置错误导致被黑;因为第三方服务自身漏洞导致交易所被黑;因为第三方服务被利用来钓鱼投毒投马导致交易所被黑;因为第三方服务被黑导致交易所被黑。