当前位置:首页>货币平台

Unicode 视觉欺骗攻击深度解析

日期:2023-03-14

来源:玫瑰财经网

浏览:

    Unicode 视觉欺骗攻击深度解析

    一、前言

    2022年9月13日发布了unicode 15.0正式版本。在unicode 15 . 0中添加了4,489个字符,使字符总数达到了149,186个。这些新功能包括两个新脚本,总共161个脚本和20个新的表情包字符。同时,一些重要的unicode规范已更新到15.0版本,包括unicode安全机制(UTS#39),以减少unicode字符视觉欺诈引起的同类型异议攻击(Homoglyph Attack)。

    Homoglyph Attack是一种非常古老的视觉欺骗攻击方式。在机器打字机时代,很多打字机为了简化设计,减少制造和维护成本,键盘上没有1和0。打字员使用小写L和大写I代替数字1,大写O代替数字0。当这种打字员在70年代和80年代初转变为电脑键盘操作员时,他们古老的键盘习惯在他们的新职业中继续存在,并成为大混乱的源泉。应该是视觉混乱、同构攻击集中爆发的时期。

    此后,打字机被文字处理器取代,随着信息时代的开始,字符编码也开始从ASCII字符集扩大到Unicode字符集。我们开始使用浏览器或其他应用程序客户端呈现文本。在某些上下文中,URL、公式、源代码、ID等不适合作为同形字符写入。相似的外观可能会使用户无法从视觉上区分。

    unicode视觉欺骗取决于视觉上可能混淆的字符串。两个unicode字符串看起来非常相似。在一般的屏幕分辨率下,它以小的普通字体出现,所以人们很容易误解为其他的。视觉混淆没有明确的规则。大小足够的话,很多字符看起来像其他字符。屏幕分辨率的小尺寸意味着大多数脚本使用9-12像素字体。混淆还取决于字体的样式。对于传统的希伯来字体,很多字符只能通过微小的大小可能丢失的细微差异来区分。字符序列有时也用于欺诈。例如,“rn”(“r”后接“n”)在许多sans-serif字体中与“m”在视觉上混淆。

    近年来,unicode编码欺骗引起了很多恶意攻击,人或编译器或AI可能会因为unicode欺骗而产生错误的判断和分析。例如,在2021年,Google等商业系统使用Unicode的这些特殊字符攻击NLP模型

    Unicode 视觉欺骗攻击深度解析

    。通过不明显的代码(如不可见文字、同形文字、顺序更改或删除的操作文字)注入——,可能会大大降低某些模型的性能,大多数模型在功能上可能会失败(https://arxiv.org/abs/2106.09898)。

    2022年,Trezor这个著名的硬件钱包里有无数网络钓鱼网站,网络钓鱼链接https://suite.tr这是Zor.com。这个钓鱼链接与实际的Trezor官方网站trezor.io非常相似。(此案例来自《区块链黑暗森林自救手册》:https://github . com/slow mist/blockchain-dark-forest-self guard-handbook/bbok

    以客户端为基础,特别是防止浏览器端视觉欺诈的防御措施正在改善,但不能完全防止这种攻击。第一,视觉欺诈是很难完全消灭的攻击。因为即使在足够小的尺寸下,自己的生理视觉系统也无法分辨。第二,unicode字符集非常大,并且不断增加。第三,需要标准组织、浏览器开发者、域名注册者等多方面的共同合作。

    本文主要研究当前unicode中字形渲染、混合脚本、unicode、双向文本、组合字符引起的视觉欺骗问题,结合作者发现的各种类型的unicode视觉欺骗漏洞,共享漏洞挖掘过程方法,并提供防御的思路。

    二、字形渲染带来的安全风险

    字体或渲染引擎对字符或字符序列的支持不足时,需要直观区分的字符或字符序列会出现新问题-视觉混淆。特别是,当这些字符显示为重要信息时,例如,在浏览器的重要安全指示器地址栏中,这种视觉欺骗的危险是明显的。浏览器供应商一直对地址栏的IDN欺诈问题进行积极防御,通常在浏览器中维护重要域名列表,如果有域名和列表域名相同的异议,则将其转换为UNicode代码表示形式。

    由于缺乏渲染支持,每个字符的字形意义往往超出预期,这种不确定性随时可能导致视觉欺骗。那么字形到底是什么,它和字体、文字、字体有什么关系,在unicode中越来越热的Emozi表情是文字吗其中一些基本的名词概念经常被非专业人士混淆,我们先简要地看一下。

    字体(英语:Typeface)是字符集的设计,通常包含字母、数字集和标点符号集。也经常包括表意文字和制图符号。各字体是字形的集合,如宋体、黑体等。有些字体技术(如truetype/open type)可以根据分辨率、系统平台、语言等选择显示最佳外观。但是,打印时

    Unicode 视觉欺骗攻击深度解析

    ,屏幕上的“$100.00”形状足够强大,可以更改为“$200.00”,因此也可以用于安全攻击。此外,将层叠样式表(CSS)更改为其他字体,以便用于打印和屏幕显示,从而使您可以使用更多可能混淆的字体。这些问题不仅限于unicode。为了降低使用这些漏洞的风险,程序员和用户只能接受可靠的字体。

    字体(英语:font;传统英式英语:fount)是指印刷行业中具有相同风格和尺寸的一组字形。例如,课文中使用的宋体5号,题目中使用的10号全部称为一套。计算机早期的点阵词仍然有字体概念,相同的样式(如中二松体)是指1516像素集或2424像素集

    Unicode 视觉欺骗攻击深度解析

    。当矢量字体出现时,相同样式的字体不再需要制作不同的像素字体。只要创建一组,就可以自由缩放。“字体”和“字体”之间的边界开始模糊。普通英语用户也无法区分字体(Font)和字体(Typeface)之间的差异。

    字形(英语:glyph),又称字模,是指字的形体。中华人民共和国国家标准GB/T 16964 《信息技术字型信息交换》中定义的字形是“不依赖任何特定设计的可识别抽象图形符号”。在语言学中,单词(character)是意义最基本的单位——语素。字形是表达这一意思的具体表达。同一个字可以有不同的字形,而不影响表达的意义。例如,拉丁字母表的第一个字母可以写A或、汉字的“康康”、“家具/家具”。

    在阿拉伯语和南亚脚本等复杂脚本中,字符可以根据周围的字符更改外观。

    (1)字形可能因周围环境而异

    三个Arabic letter heh (U 0647)组合在一起

    (2)多个字符可以生成一个字形

    F=Latin small letter f (U 0066)

    I=Latin small letter I (U 0069)

    让我们来看看与视觉有关的东西。多个字符的组合可能具有相同的视觉外观。大卫亚设,Northern Exposure(美国电视新闻)例如,字母U 0BB6 SHA和U 0BB8 SA通常有很大的不同。但是这两种组合的字符序列在视觉感受上完全相同。底层的二进制数不同。

    事实上,多字符组合不仅是视觉欺骗,有时这些多字符组合还会导致系统内存崩溃。CVE-2018-4124在处理macOS High Sierra 10.13.3恶意创建的字符串时,此漏洞可能会导致堆损坏。的原始顺序为U 0C1C U 0C4D U 0C1E U 200C U 0C3E。这是泰卢固语字符序列辅音ja()、virama()、辅音nya()、零宽度非连接器和集合aa()。MacOS在处理的时候此字符序列可能会导致系统崩溃。

    表情包(英语:Emoji)是象形文字(图形符号),通常用彩色漫画表示,在文本中用作内联。代表脸、天气、车辆、建筑物、食物和饮料、动物和植物、情感、感觉或活动的图标。Emoji已经无处不在,正在成为超越其他文化的所有人共同使用的语言。但是,由于其他人对Emoji使用的理解和对个别操作系统碎片化的支持,提出了一些问题。例如:短期内看不到步枪的表情符号,U 1F946。unicode组织包括苹果和微软都反对加入步枪符号。手枪和其他武器的Emojis已经使人们陷入法律的麻烦。此前,一家法国法院判决手枪表情符号可能构成死亡威胁,将枪表情发给前女友的一名男子判处3个月有期徒刑。

    直接在浏览器地址栏中呈现U 1F512代码也很危险。因为外观与HTTPS安全锁非常相似。攻击者可以伪造安全锁。U 1F512编码在Chrome/Firefox浏览器中遇到过这样的安全问题。

    三、混合脚本带来的安全风险

    混合脚本有多种合法用途,如Mega。但是,在视觉上容易混淆的字符通常不会放在一个脚本中。视觉上容易混淆的文字为诈骗提供了很多机会。例如,希腊小写字母Omicron和拉丁语O的形状非常相似。

    以前,域名只允许使用拉丁字母A-Z、数字和其他字符(ASCII字符集)。后来发现,只支持ASCII代码的域名可能会成为问题。因为世界上有很多不是拉丁语的国家和地区,渴望在域名中使用自己的语言符号。大卫亚设,《Northern Exposure》,经过多次提案讨论,2003年发表了国际化域名规范[rfc3490]。这使大多数unicode可以用于域名,因此一般称为IDNA2003。后来在2010年批准了对IDNA2003的修订[rfc5895],称为IDNA2008。但是,IDNA2003和IDNA2008没有有效地解决国际化域名的某些问题。之后,unicode联盟发布了[UTS-46]以解决一些兼容性问题。

    IDNA使用unicode算法将非ASCII域名转换为ASCII域名。unicode算法可以将任何非ASCII unicode字符串唯一映射到仅使用英语字符、数字和连字符的字符串,编码的域名前面加上XN,表示这是unicode编码。

    国际化域名(IDN)是在unicode中定义的字符集或脚本中注册的第二个或第三个域名或web地址。到2009年底,顶级域名仅限于拉丁字母a-z,随后随着网络全球化的发展,IDN TLDs也开始逐渐普及和普及,这在全球化加速的同时也带来了一些安全风险。这一点我将在后面解释。

    如上所述,unicode 15.0的总字符数为149,186个字符,脚本数为161个字符。这些脚本大部分都可以用于域名注册,其数量还在增加。以顶级域名(TLD)COM为例,Verisign制定了IDN注册政策,规定了允许和禁止代码点。制定了五条验证规则:IETF标准、对特定语言的限制、对脚本混淆的限制、ICANN限制Unicode代码和特殊字符。遵循这五条规则的IDN被视为有效注册。

    在这五个IDN注册规则中,我将重点讨论名为“脚本混淆的限制”的规则。因为这有助于发现IDN的视觉欺诈问题。

    [对脚本混淆的限制]

    Verisign不支持使用混合unicode脚本进行注册。如果IDN包含多个unicode脚本代码,则将拒绝注册。例如,拉丁语脚本中的字符不能在IDN中使用,例如任何西里尔字符。IDN中的所有代码必须来自同一个unicode脚本。这样做是为了避免混淆的代码出现在同一个IDN中。

    下表列出了允许的unicode脚本。

    列举我之前发现的漏洞之一[CVE-2018-4277]spoof all domains containing ' d ' in apple products。研究发现,Apple产品中由Latin small letter dum (U A771)渲染的字形与Latin small letter d (U 0064)非常相似。可以在unicode(U A771)的字形标准(http://www . unicode . org/charts/pdf/ua 720 . pdf)中找到。d后面应该有小字,但在苹果产品中,

    接下来,为了使此IDN Spoof能够正常工作,我们注册了实际域名。Verisign制定的IDN注册规则知道,不能使用混合unicode脚本进行注册。如果IDN包含多个unicode脚本代码,则将拒绝注册。而且(U A771)也属于Latin,必须遵守域名注册者的规则。因此,域名已成功注册。

    我还注册了SSL证书,使这个IDN Spoof看起来更真实、更完美。其效果如下:Safari没有将此域名转换为unicode显示,因此我们成功了。

    在这里,我们确认了整个欺骗过程是完全可能的,攻击者可以伪造域名中带有D的所有域名。谷歌统计的Top 10k域名中,约有25%以上的网站域名中有D这个字符。这个网站的域名都可以伪造。

    https://chromium . googlesource . com/chromium/src//master/components/URL _ formatter/top _ DOP

    Linkedin.com

    Baidu.com

    Jd.com

    Adobe.com

    Wordpress.com

    Dropbox.com

    Godaddy.com

    Unicode 视觉欺骗攻击深度解析

    Reddit.com

    ..

    [苹果修理补丁]

    [受影响的产品]

    WatchOS 4.3.2https://support . apple . com/zh-cn/ht 208935

    IOS 11.4.1https://support . apple . com/zh-cn/ht 208938

    TvOS 11.4.1https://support . apple . com/zh-cn/ht 208936

    MacOS High Sierra 10.13.5https://support . apple . com/zh-cn/ht 208937

    四、双向文本造成的安全风险

    有些字符(如阿拉伯语和希伯来语脚本中使用的字符)有自己的书写方向,从右到左书写。如果这些字符与从左到右显示的其他脚本或符号集中的字符混合,则生成的文本称为双向(缩写为bidi)。文档的内存表示(逻辑顺序)和双向文本的显示外观(视觉顺序)之间的关系由UAX # 9:unicode双向算法[UAX9]管理。

    由于某些字符具有弱或中立的方向,而不是从强的左或右到左,unicode双向算法使用正确的规则集来确定最终的视觉渲染。但是,呈现任意文本序列可能会导致文本序列无法清晰阅读或在视觉上混淆。

    在URL中,多个方向(弱、中性、强)的字符经常同时存在。unicode双向算法使用一组精确的规则来确定最终的视觉呈现,但在呈现不同方向的文本序列时,文本序列可能无法清晰读取或在视觉上混淆。

    Chrome以前在Chrome访问过的漏洞。

    地址栏中的实际渲染如下:

    CVE-2018-4205是我之前发现的漏洞,利用RTL和空格欺骗了URL地址窗口。让我以这个漏洞为例来说明。

    (1) POC-1结构

    请访问http://www . apple . com . xn-ggbl a3j . xn-ngbc 5a ZD/。可以看到

    Chrome/Firefox/Safari所有三个浏览器地址栏均显示相同。Edge显示unicode。

    (2) POC-2结构

    在4个浏览器中访问POC-2时检测到问题。Safari中出现RTL和空格字符。

    (3) POC-3结构

    单击下载

    European Exchange金融投资European Exchange(也称为Eurokx)是世界领先的数字资产交易所,为全球用户提供比特币、莱特货币、以太网货币等数字资产的现货和衍生品交易服务,并使用区块链技术为全球交易者提供高级金融服务。这是一个非常古老的数字货币交易平台,平台为我们提供安全、专业的数字货币交易经验,为新手提供完整的流程指导,使其易于启动,通过客服24小时在线回复提供最佳服务。

    3

相关文章阅读

Copyright (c) 2022 玫瑰财经网 版权所有

备案号:冀ICP备17019481号

玫瑰财经网发布此信息的目的在于传播更多信息,与本站立场无关。玫瑰财经网不保证该信息(包含但不限于文字、视频、音频、数据及图表)全部或者部分内容的准确性、真实性、完整性、有效性、及时性、原创性等。
相关信息并未经过本网站证实,不对您构成任何投资建议,据此操作,风险自担。