点击劫持攻击:谨防社交媒体识别
人们很难抗拒点击提供免费iPhone 的链接。但要小心:您的点击很容易被拦截,结果可能是灾难性的。
内容 隐藏
1 什么是点击劫持?
2 Twitter 上的点击劫持
3 Facebook 上的点击劫持
4 其他社交网络上的点击劫持
5 跨站请求伪造
6 防止帧攻击
7 如何保护自己免受点击劫持
7.1 相关出版物:
什么是点击劫持?
点击劫持是一种攻击技术,也称为UI纠正,阿尔及利亚电话号码库
因为它是通过使用覆盖层来伪装(或纠正)链接来诱骗用户做与他们想象不同的事情。大多数社交网络用户都喜欢他们经常使用社交网络。攻击者可以很容易地利用这种习惯来诱骗用户在他们不注意的情况下喜欢或关注某些内容。
为此,网络犯罪分子可以在自己的网页上放置一个诱人的按钮(例如,带有“免费 iPhone - 限时优惠”等有吸引力的文字),并在社交网络页面上覆盖一个不可见的框架,以便“点赞”或“共享”按钮”位于“免费 iPhone”按钮的顶部。
这个简单的技巧可以诱骗Facebook用户在他们不知情的情况下点赞群组或粉丝页面。所描述的场景是相当无辜的,因为受害者的唯一后果就是被添加到社交网络群组中。但只要付出一点额外的努力,同样的技术就可以用来检测用户是否登录了他们的银行账户,并且他们可以被迫点击一个按钮,而不是喜欢或分享一些社交媒体项目,例如,会将资金转移到攻击者的帐户。
最糟糕的是,由于用户合法登录其银行账户并自愿点击资金转账按钮,因此无法追踪恶意行为。由于大多数点击劫持技术都需要社会工程,因此社交媒体成为理想的攻击媒介。让我们看看它们是如何使用的。
Twitter 上的点击劫持
大约十年前,社交网络 Twitter遭受了大规模攻击,该攻击迅速传播了一条消息,迫使用户利用他们天生的好奇心点击链接。
带有“请勿点击”文字和链接的推文迅速在数千个 Twitter 帐户中传播。当用户点击该链接,然后点击登陆页面上看似无辜的按钮时,他们的帐户就会发送一条推文。这条推文包含“请勿点击”文本,后跟一个恶意链接。 Twitter 工程师在点击劫持攻击开始后不久就修复了该攻击。这次攻击本身是无害的,但它是一个危险信号,警告 Twitter 的点击劫持活动存在潜在风险。恶意链接将用户带到带有隐藏框架的网页。框架内有一个隐形按钮,可以从受害者的帐户发送恶意推文。
Facebook 上的点击劫持
Facebook移动应用程序用户很容易受到一个漏洞的影响,该漏洞允许垃圾邮件发送者在未经用户同意的情况下将可点击的内容发布到他们的新闻源中。该错误是由一位安全专家在分析垃圾邮件活动时发现的。这位专家注意到他的许多朋友发布了一个包含有趣图片的页面链接。在查看图片之前,用户被要求点击有关达到成年年龄的公告。但他们并不知道,这份宣言是在一个无形的框架下进行的。
当用户接受广告时,他们会被带到一个带有有趣图片的页面。但与此同时,该链接已发布在 Facebook 用户的动态中。这是可能的,因为 Facebook Android应用程序中的 Web 浏览器组件与框架选项标头不兼容(我们将在下面解释什么),因此允许恶意框架覆盖。 Facebook 不认为此问题是一个错误,因为它不会影响用户帐户的完整性。因此,尚不清楚它是否会被修复。
其他社交网络上的点击劫持
这不仅仅适用于 Twitter 和 Facebook。其他不太受欢迎的社交网络和博客平台也存在点击劫持漏洞。例如,LinkedIn中发现的一个缺陷允许攻击者诱骗用户在未经用户同意的情况下代表他们共享和发布链接。在修复之前,该缺陷允许攻击者在隐藏框架中加载 LinkedIn ShareArticle 页面,并将该框架覆盖在带有看似无辜且有吸引力的链接或按钮的页面上。
另一个案例是 Tumblr,一个可公开访问的在线博客平台。该网站使用JavaScript代码 来防止点击劫持。但这种保护方法变得无效,因为页面可以被隔离在 HTML5 框架中,这会阻止它们执行 JavaScript 代码。为了窃取密码,可以使用一种复杂的技术,将上述缺陷与密码帮助器浏览器插件相结合:通过欺骗用户输入虚假的验证码文本,他们可以无意中将密码发送到攻击者的站点。
跨站请求伪造
点击劫持攻击的一种类型称为跨站点请求伪造,简称CSRF。网络犯罪分子利用社会工程,通过CSRF 攻击瞄准最终用户,迫使他们执行不需要的操作。攻击媒介可能是通过电子邮件或聊天发送的链接。
CSRF 攻击的目的并不是窃取用户数据,因为攻击者无法看到对虚假请求的响应。相反,攻击的目标是更改状态的请求,例如更改密码或转移资金。如果受害者拥有管理权限,则攻击可能会损害整个Web 应用程序。 CSRF 攻击可能会持续存在于易受攻击的站点上,尤其是具有所谓“持久性 CSRF 缺陷”的站点。这可以通过在随后显示在页面上的输入字段中输入 IMG 或 IFRAME标签来实现,例如评论或搜索结果页面。
防止帧攻击
现代浏览器可以被告知是否在框架中加载特定资源。他们还可以选择仅当请求来自用户所在的同一站点时才在框架中加载资源。这样,用户就不会被欺骗点击包含其他网站内容的不可见框架,并且他们的点击也不会被拦截。
]
客户端缓解技术称为帧破坏或帧终止。虽然它们在某些情况下可能有效,但也很容易被规避。这就是为什么客户端方法不被视为最佳实践的原因。安全专家建议使用服务器端方法(例如 X-Frame-Options (XFO))或更现代的方法(例如内容安全策略),而不是破坏框架。 X-Frame-Options 是 Web 服务器在网页中包含的响应标头,用于指示是否允许浏览器在框架中显示其内容。
X-Frame-Option 标头允许三个值:
DENY,阻止页面在框架中显示
SAMEORIGIN,允许页面在同一域中显示在框架中
ALLOW-FROM URI,允许页面在框架中显示,但只能在特定的URI(统一资源标识符)中显示,例如只能在特定的、特定的网页上显示。
打击点击劫持的更现代的方法包括带有框架祖先指令的内容安全策略(CSP)。该选项在替换 XFO 时广泛使用。 CSP 相对于 XFO 的主要优点之一是它允许 Web 服务器允许多个域构建其内容。但是,并非所有浏览器都支持此功能。
CSP 中的frame-ancestors 指令允许三种类型的值: “none” 阻止任何域显示内容; 'self' 仅允许当前站点在框架中显示内容,或带有通配符的 URL 列表,例如 '*.some site.com'、'https://www.example.com/index.html'、等等,仅允许在与列表中的项目匹配的任何页面上进行框架。