2021-05-25 14:38:5213175人阅读
CyberNews研究人员发现,网络犯罪分子能够滥用加密货币交换API密钥并且在没有被授予提款权利的情况下从受害者的帐户中窃取加密货币。与此同时,超过1000000美元的加密货币被存放在API密钥暴露在公共代码存储库中的账户中。
在过去几年中,随着加密货币市场的爆炸式增长,各大公司开始提供应用程序和服务来帮助交易者简化交易流程。
要使用这些服务,交易者可以通过API密钥在加密货币交易中授予第三方程序访问其个人帐户的权限,API密钥允许这些程序代表他们执行操作,包括在不登录交易所的情况下打开和执行自动交易订单。
每组API密钥都包含两个重要元素:公共密钥和私有密钥,通常称为公钥和私钥。第三方应用程序使用该密钥来签署操作请求,并告知加密货币交换该应用程序有权访问交易者的帐户并执行API密钥支持的操作。
一旦您的API密钥被网络犯罪分子泄露或窃取将会导致灾难性的后果。不过,话虽如此,即使其他人窃取了您的API秘密密钥,他们也不能简单地将您的加密货币余额转移到自己的钱包中,因为默认情况下,加密货币交易所会禁用API提取权限。
但是,在进行威胁情报操作时,我们的研究人员发现,最近几周,在整个黑客论坛中,被盗的加密货币交换API密钥的交易要约似乎一直在稳定增长。
显然,这是一种新兴的犯罪商业模式,“经验丰富的交易者”团队提供了通过利用被盗的API密钥来“清空”加密货币交易帐户的功能。
毫无疑问,这一现象引起了我们的注意。为了帮助加密货币交易用户保护其辛苦赚来的硬币,我们决定对这一新兴趋势展开,并尽可能多地了解威胁参与者如何利用这些API密钥。
我们的发现令人难以置信:犯罪分子似乎正在使用加密货币交易应用程序的被盗API密钥轻松地在所有主要的加密货币交易所上清空受害者的帐户。
更糟糕的是,犯罪分子可以轻易绕过API密钥上的“仅交易”设置,即使没有获得他们的帐户凭据或提款权,也可以从交易者的账户中窃取资金。
通常,加密货币交易所向交易者提供三种类型的API权限:
· 数据权限,允许API可以读取您的exchange帐户数据,包括未结订单,余额和交易历史记录,而无需对帐户进行任何更改。
· 交易权限,允许API代表您执行交易,下达未结订单和已结束订单。
· 提款许可,允许API从您的交换帐户中提取加密货币并将其转移到另一个位置。启用此权限后,应用程序可以将您的资金转移到另一个钱包,而无需您的许可。
出于安全原因,默认情况下,加密货币交易所禁用取款权限。话虽如此,在网络犯罪论坛上发布的大多数广告都声称,其所有者最多可以提取受害者的加密货币余额的80%,然后将其与被盗的API密钥的所有者进行分割。
(黑客论坛上API密钥攻击服务广告的一个例子:“有经验的交易者”根据交易所的不同,可以从被盗用的交易帐户中提取多达80%的资金。)
这会让您认为,这些广告背后的犯罪服务提供商将需要已被授予撤回权限的被盗API密钥。但是,在进行了一系列测试之后,我们甚至找不到一个启用了撤回权的待售的被盗API密钥。
不幸的是,为了从交易账户中窃取资金,威胁行为者甚至不需要直接提取资金:通过在适当权限下代表受害者进行交易,他们只需通过与罪犯自己建立的机器人进行无利可图的交易,就可以将余额卖掉。
在对网络犯罪分子使用的被盗交易所API密钥滥用技术进行调查期间,我们了解到,威胁行为者主要采用两种API密钥利用方法从交易商那里窃取资金:“sell walls”买断和提价。
注意:我们已经在Binance加密货币交易所上的自己的帐户上成功地测试了这些方法,似乎所有流行的加密货币交易所上的帐户都可能以这种方式被利用。
购买“sell walls”
“sell walls”是在股票和加密货币市场中都采用的一种常见的市场操纵技术。在加密货币世界中,这些是市场操纵者人为创造的大规模市场卖出指令,目的是降低加密货币价格或将其保持在最大阈值以下以便宜的价格购买大量硬币。
在许多情况下,这些巨大的订单一次只会出现几分钟甚至几秒钟,然后被完全删除。
我们的调查发现,网络犯罪分子使用相似的“sell walls”技术,但也略微有所不同。在这种情况下,“sell walls”是由威胁参与者使用泄露的交易者帐户创建的,这些帐户是使用他们窃取的API密钥设置的。
根据CyberNews研究人员Martynas Vareikis的说法,为了引发价格波动,犯罪分子设置了交易机器人,以开立许多低于市场价值的小型卖出订单,如果受害者的账户余额足够大,则开立一个大型卖出订单。与此同时,同一机器人就为受害者被迫“出售”的硬币打开了自动购买订单。
“这在加密货币交易所的买/卖定单图表中创建了一个可见的'sell wall',合法交易机器人通常只能在交易余额耗尽之前买入约20%的'sell wall',剩下的80%则留给犯罪分子设立的交易机器人。”Vareikis说。
在以令人难以置信的低价完成一个销售订单后,另一个订单立即被设置为销售更多硬币,这将给受害者造成更大的损失。这个过程不断的重复,最终将受害者的全部账户余额以压低的价格逐步出售给威胁参与者的交易机器人。
这样,受害人的资金可以在几毫秒内完全蒸发,这是执行这种自动交易订单所需要的全部时间。
提价
价格上涨是罪犯分子常用的第二种利用被盗API密钥的技术。这种方法涉及购买交易量非常少的廉价硬币,短暂地提高其价格,然后以勒索的价格将其卖回给受害者。
犯罪分子在利用受害者的帐户之前,先在自己的中间人帐户中存储一种非常便宜、不怎么流行的加密货币,以此展开他们的行动。
受害者的帐户中约有80%钱用于针对同一加密货币发起大笔购买订单。低交易量使网络犯罪分子可以通过发起大量购买订单来大幅提高货币的价格。
同时,犯罪分子利用中间人账户以较高的价格向受害者出售价格膨胀的硬币。订单执行后,交易量和价格恢复正常,给受害者留下了一堆几乎一文不值的硬币,而这些都是他们被迫以离谱的价格从威胁行为者那里购买的。
网络犯罪分子可以通过多种方式获取他人的API密钥,而无需在其设备上安装恶意软件或间谍软件。这包括扫描可公开访问的Web应用程序环境文件和公共代码存储库以查找泄漏的私钥。
大多数Web应用程序都使用环境(ENV)文件来存储框架设置,这些设置对于应用程序的工作是至关重要的,并且在某些情况下可能包含API密钥。在大多数情况下,这些文件是被加密的。但是,有时它们不受保护,这意味着包括网络犯罪分子在内的任何人都可以访问其内容并提取其中发现的任何有用信息。
与ENV文件类似,存储在公共代码存储库中的文件可能包含公开的身份验证token。诸如GitHub之类的公共存储库因其成为网络犯罪分子的金矿而臭名昭著,其中一些存储了成千上万个泄漏的凭证文件以及API密钥。
University of Advanced Technology的首席网络讲师Aaron Jones说,API密钥很有价值,这使它们备受网络犯罪分子的追捧。“永远不要将API密钥推送到Github或Gitlab之类的网站上,您应该将它从您的应用程序中抽象出来,放在一个已添加到gitignore文件中的文件中,” Jones补充说。
“犯罪分子通常会以一种简单的方式来获取API密钥,比如通过易受攻击的S3 Bucket,硬编码到github发布的源代码,甚至是网络钓鱼。你会惊讶地发现这种事情经常发生。根据定义,API访问是一个网络事件。记录并分析您的活动。”onShore Security的创始人兼首席执行官Stel Valavani说,“对于API密钥之类的顶级产品来说尤其如此。”
我们在调查期间进行的测试表明,平均而言,在公共存储库中找到的交易API密钥属于持有价值约5,000美元加密货币的帐户,其中最高的帐户余额为154,000美元,它启用了交易权。
在公共代码存储库中公开了API密钥的交易账户的总净资产超过1,000,000美元的加密货币。
(加密货币交易机器人公开提交的源代码示例,每个人都可以看到二进制API密钥)
尽管我们在调查中没有发现暴露的API密钥启用了提款权,但仍有超过90%的用户授予了交易权限,这将使网络犯罪分子可以轻松清空受害者的交易帐户。
如果您是加密货币交易者,则可以采取一些简单的步骤来保护自己的API密钥,以免被那些在黑客论坛上宣传其服务的“经验丰富的交易者”滥用:
· 为您的IP地址列出白名单。主要的加密货币交易所允许将IP地址列入白名单以用于API密钥使用。启用此功能将阻止大多数犯罪分子利用您的余额进行交易,只要他们无法访问您的交易机器人控制面板即可。
· 将您的API密钥视为加密货币钱包的私钥。即,不要将它们存储在硬盘上,也不要将其透露给任何人。如果您的API密钥掌握在别人的手中,您的钱就等于被偷了。
Cyberlands的总经理Alex Bodryk补充说,每季度轮换您的API密钥和密码将有助于防止利用原先的数据泄漏来访问您的交换帐户的网络犯罪分子。“保持警惕,不要回复来自加密交易的任何通信。相反,您可以通过官方渠道与他们联系。安装和更新知名供应商的防病毒软件。使用密码管理器来保护您的秘密。切勿以明文形式存储任何API密钥或密码。”Brodyk说。
根据Troy Gill、GPEN、threat hunter和Zix安全研究经理的说法,由于通过API进行交易具有风险性,因此最好使用专用于此目的的专用个人计算机。“避免连接到任何公共网络,请勿使用该机器进行浏览、发送电子邮件或其他与网络相关的活动。如果您怀疑自己可能已经暴露了API数据,请立即在交易所中删除密钥。”Gill总结道。
本文翻译自:https://securityaffairs.co/wordpress/118155/hacking/api-keys.html