木马病毒入侵方式(木马攻击的实质是什么)

尽管木马源攻击的通用漏洞评分高达 9.8,但企业完全没必要惊慌失措。

剑桥大学研究人员发现的木马源(Trojan Source)攻击会诱使编译器读取隐藏的 Unicode 字符,并生成带有开发人员或安全分析师不知道的额外指令和后门的二进制文件。由于默认情况下特殊字符不可见,因此在代码审查期间难以发现恶意代码。

利用 Unicode 显示文本方式的攻击并不新鲜,但 “木马源” 更具威胁的原因是从公共站点(例如 StackOverflow、GitHub 和其他社区论坛)复制和粘贴的大量代码会直接进入源代码文件。如果有问题的 Unicode 字符隐藏在文件中,这些字符也会被复制进来。

nVisium 高级应用程序顾问 Jon Gaines 表示:“这对源代码审查的能力是一次考验,当下建议暂时不要复制和粘贴代码,最好是自己重写一遍。”

方法一:“显影” Unicode 字符

开发人员可以通过启用他们正在使用的 IDE 或文本编辑器来显示 Unicode 字符,从而检测潜在的恶意 Unicode 字符。或者可以使用命令行十六进制编辑器,例如 HexEd.It,在文件中搜索特定的 Unicode 字符。

一些主要的源代码控制平台已经做出回应:GitHub、GitLab 和 Atlassian(用于 BitBucket)已经发布了针对 Unicode BiDi 字符的警报 (CVE-2021-42574)。

对于容易遭受木马源攻击的文本编辑器 Visual Studio Code ,一种可行的方法是将编码转换为非 unicode。JFrog 安全研究高级主管 Shachar Menashe 表示,这会将恶意的 Unicode 字符(对于 BiDi 字符)标记为损坏字符,在手动代码审查期间可以发现这些损坏的字符。

这是在 Visual Studio Code 中进行转换后 Unicode BiDi 的样子:

有些同形文字很难与合法字符区分开来。这是在 Visual Studio Code 中进行转换后这些字符的显示方式:

Visual Studio、Notepad 和 Sublime Text 实际上不受 BiDi 字符的影响,因为该行要么被破坏,要么整行显示为注释:

方法二:过滤字符

Menashe 认为木马源攻击方法的威胁 “在现实世界中影响有限”,因为常规源代码通常不包含研究人员列举的特殊 Unicode 字符(BiDi 和同形文字)。它们 “很容易被检测到、发出警报,甚至可能会自动过滤掉”。

下面的 Linux 命令可以警告或删除单个源代码文件中的所有 Unicode 字符:

  • Alert:iconv-f utf-8 -t ascii input.cpp
  • Strip:iconv-c -f utf-8-t ascii input.cpp-o filtered_output.cpp

或者,此 Linux 命令将检查文件列表并标记找到特殊字符的实例:

for file in filelist;do hexdump-C “$file”|grep RTLcharacters;done

以下命令不仅可以发出警报,还可以仅从单个代码文件中删除木马源攻击针对的特定字符。

例如以下这两个 Linux 命令去除了 Unicode BiDi 字符 CVE-2021-42574):

  1. CHARS=$(python-c'print u"\u202A\u202B\u202D\u202E\u2066\u2067\u2068\u202C\u2069".encode("utf8")')
  2. sed's/['"$CHARS"']//g'filtered_output.cpp

对于 Unicode Homoglyph 字符 (CVE-2021-42694),这两个命令生成了仅用于剥离西里尔字母同形文字的部分列表:

  • CHARS=$(python-c'print u"\u0405\u0406\u0408\u0410\u0412\u0415\u0417\u041D\u0420\u0421\u0422\u0425\u0430\u0440\u0441\u0443\u0445\u0455\u04AE\u04BB\u04C0".encode("utf8")')
  • lsed 's/['"$CHARS"']//g'< /tmp/utf8_input.txt>/tmp/ascii_output.txt

方法三:更新工具

为编译器安装更新,这样可阻止木马源攻击。在应用得到更新前,自动检测和清理文件的命令也可以缓解这些问题。虽然可以在更改文本编辑器设置后执行手动源代码审核以查找这些特殊字符,但这将是 “处理此问题的最糟糕方法”,Menashe 指出,因为某些字符在某些情况下来自合法的拉丁字符。

“最好的解决方案是运行自动化工具来标记和 / 或删除这些字符,”Menashe 说道。

在拥有大型代码库的组织中,对文件的单独审计很难大面积开展。Red Hat 发布了一个简单的 Python 脚本(
   https://access.redhat.com/sec...)来识别整个代码库中的潜在问题。该脚本可以集成到持续集成 / 持续交付工作流中,或者作为预提交检查添加,以确保恶意代码不会进入生产环境。

Rapid7 的首席安全数据科学家 Bob Rudis 还推荐了一个简单的缓解措施:“如果你只用英语或只用阿拉伯语编写代码,则可禁止在代码库中使用 BiDi 指令”。

尽管木马源攻击的通用漏洞评分高达 9.8,但企业没必要惊慌失措。Rudis 认为 9.8 分显然是 “夸大了”,因为实施木马源攻击需要攻击者直接访问开发人员的工作站、源代码管理系统或持续集成管道。

“如果攻击者可以直接访问你的源代码管理系统,坦率地说,你可能会遇到比这次攻击更大的问题。”Rudis 说:“我们建议在担心需要本地或物理访问的源代码级攻击之前,优先考虑真正关键的补丁并防止服务和系统暴露。”

(0)

相关推荐

  • win7禁USB自动安装驱动功能避免木马病毒入侵

    用户在限制USB设备使用方面,首先考虑的就是禁止其自动播放,以避免木马病毒入侵,但很多时候,这样的方法并不是很有效。如果你是Win7用户,那就可以通过它独有的“权限控制”技术,从源头上控制USB设备的 ...

  • 苹果手机被植入木马病毒怎么办(苹果手机会被病毒入侵吗)

    对于木马病毒相信小伙伴们都有了解,出现最多的地方也是在windows系统上,所以病毒的可怕已经在大家心里根深蒂固,后期在安卓系统中也会在不经意间被植入一些病毒,随着科技的进步,在手机中已经很难在植入病 ...

  • 如何清除木马病毒

    木马病毒是一种恶意程序,它会隐藏在无害文件中并伺机入侵系统.这些文件通常来自垃圾邮件或骗子邮件,或者是由于点击未知网络链接而引入.木马病毒会扰乱您的生活,好在它们很容易清除.按照本指南的方法,可将木马 ...

  • 如何禁止U盘自动运行木马病毒防止U盘受到病毒感染

    一般情况下我们使用U盘都是直接插到电脑上自动运行打开的。可是这样虽然简化了步骤,但是很容易感染木马病毒的。为了防止U盘受到病毒感染,系统之家小编告诉大家如何禁止U盘自运行木马程序。 一、Disable ...

  • 360网盾木马病毒有什么危害?

    木马病毒是指通过入侵他人计算机后,盗取帐号、密码、破坏系统文件、删除资料的恶意程序。 木马病毒通常会自动运行,例如:在用户登录游戏、网银等帐号的过程中记录用户的帐号和密码,并自动将窃取的资料发送到指定 ...

  • 封杀木马病毒全攻略

    木马是一种基于远程控制的病毒程序,该程序具有很强的隐蔽性和危害性,它可以在人不知鬼不觉的状态下控制你或者监视你.有人说,既然木马这么厉害,那我离它远一点不就可以了!然而这个木马实在是"淘气& ...

  • win10怎样开启defender 开启windows defender扫描木马病毒的方法

    在微软免费升级win10政策的诱惑下,很多win7.win8用户都将系统升级成了win10.虽然win10系统升级的硬件要求很低,但是一些配置吃紧的用户依然产生了一些问题.由于电脑内存不足,导致他们无 ...

  • Win10怎么使用上帝模式清除Dynamer的木马病毒?

    近日,一款名为Dynamer的木马病毒被McAfee发现利用Win7/Win8.1/Win10的“上帝模式”为非作歹,为攻击者大开受害系统后门,从而实现远程操控的目的,而且这款木马很难清除,可能上帝也 ...

  • 木马病毒一般藏身在哪

    木马(Trojan)病毒源自古希腊特洛伊战争中著名的"木马计"而得名,顾名思义就是一种伪装潜伏的网络病毒,等待时机成熟就出来害人.Trojan一词的特洛伊木马本意是特洛伊的,即代指 ...

  • comctl_32.exe进程是木马病毒吗 comctl_32进程安全吗

    进程文件: comctl_32 or comctl_32.exe 进程名称: Win32.Densmail Trojan 进程类别:存在安全风险的进程 英文描述: comctl_32.exe is a ...