首页 > 其他分享 >如何对加密货币交易所进行渗透测试

如何对加密货币交易所进行渗透测试

时间:2024-08-22 19:17:43浏览次数:7  
标签:加密 渗透 代码 身份验证 用户 订单 API 测试

原创 KK安全说

近期,我个人突然对了货币交易所的渗透产生了兴趣,又看到最近Wazir-X 多重签名钱包遭受网络攻击,2.3 亿美元被盗,就在这里和大家讨论加密货币交换的安全性,我们将了解加密货币交换的组成部分以及如何对其进行渗透测试。

1.用户界面(网络和移动应用程序):这是在网站或移动应用程序中向用户呈现的屏幕,用于注册/登录、下订单以及存款和取款。

在这里我们将检查注册和 KYC 流程,绕过或伪造身份验证。用户身份验证和恢复、2FA oAuth、网络钓鱼和污损相关检查。

授权检查和足够的安全措施检查。输入-输出清理、上传-下载验证测试、PII、源代码和其他敏感信息披露。存款和取款功能检查,如参数操纵/污染、业务逻辑错误、舍入错误。

前端和后端技术 CVE 以及 Web 和移动应用程序渗透测试。

2.交易引擎:这是交易所最重要的部分,负责订单匹配和执行、订单类型和交易结算。它主要是中心化交易所的后端软件和与去中心化和混合交易所的链下数据馈送相连的智能合约。

在这里我们将检查所有厚客户端漏洞(SQL 注入、DLL 劫持等),并执行代码审查和代码静态分析。

逻辑错误、安全配置错误、价格反馈(汇率)问题、基于时间的执行攻击(基于时间的 SQL 和竞争条件)、不正确的余额更新和舍入、订单泛滥/溢出。

3.钱包系统:钱包系统管理交易所内加密货币的存储和转移,在交易所中它主要是托管钱包,其他两种类型是热钱包和冷钱包。

图片

在钱包的安全测试中,我们将检查加密问题和攻击、私钥泄漏、身份验证和多因素身份验证问题、种子短语的安全备份和安全存储。网络钓鱼预防还执行代码审查和代码静态分析

4.订单簿:订单簿是一个数字账本,列出了交易所所有未结的买卖订单。它通过显示市场深度来提供透明度和流动性。订单簿通常包括:

买单:用户下达的买单。
卖单:用户下达的卖单。
市场深度:市场深度显示人们愿意以不同价格买入或卖出多少资产。

我们需要对胖客户端 Owasp 胖客户端和智能合约 owasp 智能合约等测试用例进行代码审查和代码静态分析。

实时馈送攻击(基于时间的 SQL 和竞争条件)、网络嗅探和加密攻击、数据操纵和 DDOS 测试、Oracle 操纵攻击。回合错误。不正确的身份验证和授权。对资源的访问配置错误。

5.匹配引擎:匹配引擎根据预定义的规则和算法来匹配买卖订单。

我们需要对胖客户端 Owasp 胖客户端和智能合约 owasp 智能合约等测试用例进行代码审查和代码静态分析。安全配置错误和缺乏足够的安全措施。

重放攻击、抢先交易、夹层攻击、不当订单过滤、缺失率限制和 DDOS 或订单下单功能。

6. API 和 Oracles: API(应用程序编程接口)层允许外部应用程序和服务与交易所交互。它包括:

公共 API:提供对市场数据、订单簿信息和交易对的访问。
私有 API:使用户能够管理其帐户、下订单和访问交易历史记录。
预言机:预言机提供加密资产和法定货币的实时价格。

我们需要进行代码审查和代码静态分析。测试OWASP API TOP 10攻击和Oracle操纵攻击。敏感数据暴露和注入攻击。公共API不暴露私有数据或路径。

7.支付网关:促进法定货币的存入和提取,与银行和支付处理商整合。(这可能超出了某些范围,因为它可能是第三方)

我们需要检查支付网关是否接受负值或 0。竞争条件、响应和参数操纵以及不正确的访问控制。错误消息中的敏感信息。

8. 数据库:数据库管理系统存储与用户帐户、交易、订单簿等相关的所有数据。

我们需要检查访问控制、身份验证和 SQL/No Sql 注入。足够的安全控制和安全错误配置。

这是加密交换的关键组件,我们还有一些其他组件,如下所示。

1.监控和分析:持续监控和分析对于维护交易所的性能和安全至关重要。这包括:

实时监控:跟踪系统性能、用户活动和潜在的安全威胁。

分析:分析交易模式、用户行为和市场趋势以做出明智的决策。

  1. 客户支持:客户支持帮助客户,并帮助解决系统中的任何问题、故障或错误配置。

服务台:为用户咨询和问题提供支持票务系统。
实时聊天:为遇到问题的用户提供实时帮助。

它们大多由第三方处理和实施,因此超出了我们的范围。

应该始终检查一些最佳实践,所使用的加密协议是否最新、是否强大,应该启用多因素身份验证,应该实施 DDOS、勒索软件和网络钓鱼保护。

应该对员工进行社会工程攻击和网络攻击基础知识的教育,用户应该有安全实践,开发人员应该实施安全编码实践和 SSDLC。

应实施持续监控和漏洞管理。应进行定期安全审计和渗透测试。

标签:加密,渗透,代码,身份验证,用户,订单,API,测试
From: https://www.cnblogs.com/o-O-oO/p/18374543

相关文章

  • 【PHP安全】demo3:最简单的php代码加密方法
    当我们说"PHP代码加密",我理解的是将PHP代码进行混淆或加密,以防止源代码被他人轻易阅读或修改。这种需求通常用于保护商业秘密或加强代码安全性。常见的工具是使用专业的编译器和加密工具。然而,请注意,完全保护代码是不可能的,因为最终服务器仍然需要能够执行解密后的代码。以......
  • 南京理工大学C++程序设计基础期末考试上机测试题组3答案详细解析
    角谷步数(100分)任意的正整数,比如5,我们从它开始,如下规则计算:如果是偶数,则除以2,如果是奇数,则乘以3再加1。如此循环,最终必会得到“1”!比如5的处理过程是:5168421一个正整数经过多少步才能变成1,称为角谷步数。对于5而言,步数也是5;对于1,步数为0。输入一个整数n(1<n<300)......
  • 两个店铺组中进行价格测试时的统计学分析
    商业活动中,有时会选择两个或者若干店铺组对商品价格进行测试,那么如何检验测试前后销售变化(影响)的差异呢。在这种情况下,我们需要针对每个组分别比较测试前后的销售数据,并确定这种变化是否在统计上显著。方法概述在这种情况下,可以使用以下方法:配对t检验(Pairedt-test):用于比......
  • 【逆向】打开页面403,加密值如何有其它页面内正则提取并更新
    一、问题出现#importrequests#url='https://www.regulations.gov/search?sortBy=postedDate&sortDirection=desc'#response=requests.get(url)#print(response.text)正常页面打开没有自己看到的内容。F12找到新的地址importrequests#headers={#'a......
  • CANoe_UDS-boorloader 自动化测试系列(六)基本功能:CAPL实现bin文件数据解析
    CANoe_UDS-booroader自动化测试系列(一)创建一个CANoe测试工程(测试节点的选选择)CANoe_UDS-booroader自动化测试系列(二)基本刷写流程CANoe_UDS-booroader自动化测试系列(三)基本功能:CAPL实现UDS协议下的CAN报文接收#解析#发送CANoe_UDS-booroader自动化测试系列(四)基本功能:CAPL实......
  • 6D位姿检测FoundationPose demo测试
    Papertitle:FoundationPose:Unified6DPoseEstimationandTrackingofNovelObjectsPaperlink:https://arxiv.org/abs/2312.08344Codelink:GitHub-NVlabs/FoundationPose:[CVPR2024Highlight]FoundationPose:Unified6DPoseEstimationandTrackingof......
  • 数据结构链表入门指南 链表基本代码实现以及测试步骤
    链表介绍链表是一种数据结构,它由一系列节点组成,每个节点包含数据部分和指向下一个节点的指针。链表的基本特性包括:动态大小:链表的大小可以根据需要动态调整,不像数组那样需要事先定义固定大小。节点连接:每个节点通过指针连接到下一个节点,从而形成一个链状结构。灵活插入和......
  • 智商测试原理探微:心理学、统计学与测试科学的交融
    简介智力测试就是对智力的科学测试,它主要测验一个人的思维能力、学习能力和适应环境的能力。现代心理学界对智力有不同的看法。所谓智力就是指人类学习和适应环境的能力。智力包括观察能力、记忆能力、想象能力、思维能力等等。智商测试的原理心理学理论:智商测试的设计和......
  • 【待做】【整理】【域渗透系列】跨森林:Extra SID攻击
    本文选自《内网安全攻防:红队之路》由于微软将森林信任设计为安全边界,在默认情况下,即使我们完全控制了当前森林,也可能无法入侵其他受信任的森林(trustedforest)。下面介绍在非默认条件下(但也比较常见),如何入侵一个受信任的森林。在《内网安全攻防:渗透测试实战指南》(第1版)里面介绍......
  • 对称加密和非对称加密
    对称加密和非对称加密是两种常用的加密技术,用于保护数据的安全。它们在加密和解密数据时使用不同的方法和密钥。对称加密对称加密使用相同的密钥进行数据的加密和解密。也就是说,发送者和接收者使用同一个密钥来加密和解密消息。适用于大规模数据加密,如文件加密、数据传输......