二维码病毒为什么扫一扫就会中毒?

2025-04-05 02:22:20
推荐回答(1个)
回答1:

 首先通俗的解释一下“中毒”的概念。中毒和生病一样。
一,现在二维码里大致有这样一些类型的数据:长文本、短文本、名片、网址、wifi配置信息、地理位置信息。
  第二,中毒和生病一样,病毒需要一个生存和发展的环境,如果扫码能中毒,那么环境是谁?当然是扫码软件以及扫码软件的运行环境(通常就是手机操作系统)了。
现在已知的二维码“病毒”大致有以下3种方式:
  钓鱼网址,这个严格来说不是“病毒”,属于社会工程学威胁范畴,用户只需稍有安全意识则能有效避免被骗上当。在手机上,打开一个网址本身在大多数情况下是安全的,但危险在于停留在这个打开的网站上,用户干了些什么。用户自己主动输入信用卡号、安全码,用户自己主动输入支付宝用户帐号。。。另外,网址并不等于网站入口。比如,有一类特殊的网址,叫做伪协议地址,这个也有想象力空间(但似乎没见到攻击案例),例如sms://、tel://等等,这些点击之后,在不同的系统上有可能会打开不同的应用程序,例如发短信、打电话等等。
  HTML/JS混合代码,这是由于很多二维码软件提供了所谓的智能内容感知和识别,调用了浏览器解释引擎去承载和处理这些代码,实质上就是给“病毒”提供了“温床”,所以会“中毒”。但,就目前已知的攻击案例来说,纯第三方二维码类应用软件即使被这些浏览器客户端恶意代码攻击,在绝大多数情况下对用户造成的影响也很有限。极少数情况,可能会发生在:
  恶意代码直接攻击浏览器解释引擎,造成内存破坏类攻击,直接获得原生应用程序级别的任意代码执行甚至是提升权限。这种问题发生的概率要远远小于PC端浏览器遭受同类型攻击的概率。主要原因是:大多数攻击程序是需要一定“行数”的代码组成的,而二维码的承载数据能力又是受限制于图片编码的容量极限的。简单理解就是:复杂攻击需要更多行数的代码,较少行数的代码只能实现较简单的“攻击”,二维码由于自身设计的“缺陷”,无法提供恶意代码存储所必要的足够空间,故攻击想象空间和影响效果有限。
  自定义的二维码应用。虽然二维码本身承载的其实就只是普通文本数据(数字、字符啥的),但有些软件给这些数据定义了一些自己的解析规则,目的是实现扫码后自动XXX或自动YYY。坏就坏在这个自动化的过程,给了数据一秒变病毒的机会。如何理解?参考Web安全里的SQL注入、XSS等,就是最典型的数据一秒变病毒的参考案例。