外表下,现代Web只要经过不断增加的技能规范才干完成。规范旨在办理技能和数据的互操作性。Web规范是最广泛选用和快速开展的规范之一,其改变也常常引起阅读器供货商,Web开发人员和用户之间的剧烈争辩。
在这篇博文中,咱们将具体阐明盲目遵照清晰界说且遍及选用的Web规范所带来的损害。咱们将对一个闻名的数字钱银服务建议长途进犯,并”盗取其间一切的钱银“以此来证明咱们观念的可靠性。
演示视频
Localhost Services(本地服务)
许多现代应用程序开始运用localhost “api-servers”作为将程序逻辑与用户界面别离的规划形式。这些服务会在127.0.0.1(localhost)上静静监听,并将应用程序的中心逻辑作为一个与渠道无关的长途编程接口(RPC)进行无头封装。
C:WINDOWSsystem32>netstat -a -b
Active Connections
Proto Local Address Foreign Address State
TCP 0.0.0.0:443 DESKTOP:0 LISTENING
[vmware-hostd.exe]
TCP 0.0.0.0:912 DESKTOP:0 LISTENING
[vmware-authd.exe]
TCP 0.0.0.0:5900 DESKTOP:0 LISTENING
[siad.exe]
TCP 0.0.0.0:49664 DESKTOP:0 LISTENING
[Spotify.exe]
TCP 0.0.0.0:57621 DESKTOP:0 LISTENING
[Discord.exe]
TCP 127.0.0.1:8307 DESKTOP:0 LISTENING
[siad.exe]
TCP 127.0.0.1:18171 DESKTOP:0 LISTENING
[Battle.net.exe]
TCP 127.0.0.1:27015 DESKTOP:0 LISTENING
[AppleMobileDeviceProcess.exe]
TCP 127.0.0.1:27060 DESKTOP:0 LISTENING
[Steam.exe]
TCP 127.0.0.1:52094 DESKTOP:0 LISTENING
[NVIDIA Web Helper.exe]
在曩昔的几年里,对这些localhost API服务的研讨已发现了许多可长途运用的问题。其间来自Google Project Zero的Tavis Ormandy的调查结果引人重视:
一切暴雪游戏(魔兽国际,守望前锋,暗黑破坏神III,星际争霸II等)都易遭到DNS重绑定缝隙的进犯,答应恣意网站运转恣意代码。https://t.co/ssKyxfkuZo
— Tavis Ormandy (@taviso) 2019年1月22日
以下是一系列uTorrent DNS重绑定缝隙(现已修正),从长途代码履行到查询和仿制下载文件等等。https://t.co/JEvhq1IHGJ
— Tavis Ormandy (@taviso) 2019年2月20日
最近的研讨提醒了盛行的视频会议应用程序Zoom中的一些可运用的问题
在加密钱银范畴,这种相同的“api-server”规划形式十分遍及。很多的区块链项目在他们的钱银看护进程中运用这种架构。这些看护进程担任办理用户的加密钱包,履行业务以及与区块链坚持同步。
一般,面向用户的GUI应用程序将衔接到此本地服务,并将“high-level”概念(例如创立业务)转换为看护进程经过其揭露的API供给的“low-level”区块链操作。此模型还答应高档用户或第三方开发人员轻松编写驱动,扩展或展现看护进程中心功用的代码。
Localhost 仅仅相对安全
将这些api-servers绑定且仅在127.0.0.1上运转,看上去似乎是一种安全且简略的 *** 来避免应用程序(例如钱银/钱包看护进程)露出于互联网和长途进犯。但惋惜的是,这并不总是一个安全的假定,特别是当与一般web阅读器共存时。
阅读网页时,你的阅读器会下载并运转很多“‘untrusted(不受信赖)”的数据,以便在屏幕上为你出现你喜欢的网站。经过扩展,在给定网站上发布的任何JavaScript都由本地核算机上的Web阅读器履行。这意味着长途建议和歹意编写的JavaScript或许会被用于在本地主机服务上进行勘探。
将目光转向 Siacoin
让咱们理论上的“预见”是,在阅读器内部履行的代码应该(原则上)可以与本地服务进行交互,而且只需运转它。在接下来的部分,咱们将进犯Siacoin:一个闻名的加密钱银项目,旨在经过区块链技能供给廉价,高效和去中心化的文件存储。[1][2][3]黑客接单网