0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

防御Rootkit攻击并避免恶意恶意软件

星星科技指导员 来源:microchip 作者:microchip 2023-04-24 09:57 次阅读

一种特别阴险的恶意软件形式是通过rootkit(或bootkit)攻击注入系统的固件,因为它在操作系统启动之前加载并且可以隐藏普通的反恶意软件。Rootkit 也很难检测和删除。防御 rootkit 攻击的一种方法是使系统能够使用安全启动设备,该设备旨在检测预操作系统环境中的未授权固件。

使用硬件信任根进行安全启动至关重要,因为它可以在威胁加载到系统之前保护系统免受威胁。安全引导过程仅允许系统使用制造商信任的软件引导。什么使安全启动安全?安全引导有两个主要方面:

• 安全引导加载程序存储在不可变的内存中 - 换句话说,它无法更改

• 安全引导加载程序在系统内执行第一阶段固件引导加载程序之前对其进行身份验证,以验证它是否已由受信任的原始设备制造商 (OEM) 签名。

让我们研究一下安全启动,以及如何在支持安全启动的嵌入式和 PC 平台中将嵌入式控制器用作主启动加载程序(即信任根)。

嵌入式控制器

嵌入式控制器长期以来一直是个人计算机 (PC) 移动平台的一部分,包括笔记本电脑、上网本和平板电脑。嵌入式控制器也是服务器、工业、电信和工业领域嵌入式设计不可或缺的一部分。当今的嵌入式控制器具有高度可配置性,OEM 使用它为其系统实现差异化功能,包括待机电源排序、热监控、风扇控制和电池充电。

嵌入式控制器还用作系统中的信任根或信任锚,以支持安全启动。图 1 显示了系统及其基本组件的示例。

系统中可能有许多嵌入式处理器用于执行固件。任何执行可在系统中更新的固件的处理器都必须经过固件身份验证,然后才能允许运行。嵌入式控制器安全引导加载程序是存储在ROM中的不可变代码,是系统中执行的第一个代码。它负责验证和执行存储在系统闪存中的 OEM 第一阶段固件引导加载程序。

由于 OEM 第一阶段引导加载程序驻留在闪存中,并且可以在系统中更新,因此此代码不能被视为不可变或信任根。在支持安全启动的系统中执行之前,必须对其进行身份验证。安全启动可防止恶意或未经授权的代码在系统中执行。一旦系统完全运行并且主 CPU 正在执行代码,它就可以使用本地受信任的平台模块或远程服务器来验证或证明硬件平台的完整性。

系统启动顺序

当系统通电时,不可变的安全启动加载程序初始化嵌入式控制器子系统,然后加载并验证存储在系统闪存中的 OEM 固件。OEM 固件通过验证下一层固件(如系统 BIOS)来维护信任链,配置系统并启动使系统退出重置的过程。每一层固件都对下一层进行身份验证,直到安全启动过程完成。引导过程完成后,主系统 CPU 将从重置中释放并开始执行操作系统。

UEFI(统一可扩展固件接口规范)是广泛接受的标准,用于描述固件启动顺序和系统操作系统之间的接口。

安全启动身份验证

安全启动是在执行之前对系统中的所有固件或软件进行身份验证的操作。恶意软件的一种形式是通过 rootkit 攻击注入系统的固件,它可以取代 OEM 的第一阶段固件引导加载程序并隐藏反恶意软件,加载正常操作系统,没有任何迹象表明存在任何问题并且无法检测到(参见图 2a)。

图 2a:UEFI 引导序列示例。

图 2b:具有硬件信任锚的 UEFI 启动序列示例。

Microchip的嵌入式控制器是固件信任根。它的工作是验证 OEM 第一阶段引导加载程序的数字签名。OEM 的第一阶段引导加载程序将对第二阶段固件加载程序进行身份验证,后者又将验证要在系统中运行的下一个固件或软件代码。这称为信任链。嵌入式控制器安全引导加载程序是链中的第一个环节,称为信任锚。

数字签名

数字签名

提供两个功能:完整性检查和身份验证。使用数字签名的公钥预配的信任根或信任锚可以验证固件映像是否是 OEM 批准的代码映像,以便在系统中使用。

若要创建数字签名,OEM 首先生成满足所选签名算法(如 RSA-2048 或椭圆曲线)要求的非对称密钥对。消息(即代码消息)通过散列算法(例如SHA-384)进行处理,并使用私钥进行签名(参见图3)。

为了验证数字签名,消息(即代码图像)通过用于对图像进行签名的相同哈希算法进行处理。数字签名使用生成的非对称公钥与签名期间提供的公钥进行比较进行验证。如果两个结果相同,则图像的真实性已经过验证,表明消息未被更改,并且与最初签名的消息相同(请参阅图 4)。

图 4:验证数字签名。

Microchip的嵌入式控制器安全引导加载程序

Microchip最近宣布推出一款新的支持加密技术的微控制器MCU),即带有Soteria-G2定制固件的CEC1712 MCU,旨在阻止rootkit攻击为从外部串行外设接口(SPI)闪存启动的系统注入的恶意恶意软件。

Microchip嵌入式控制器安全引导加载程序是指存储在EC只读存储器(ROM)中的固件,该固件执行用于加载、验证和执行配置和打开系统电源的 OEM 第一阶段引导加载程序的受信任代码。

Microchip的嵌入式控制器被假定为可信的(即信任锚)。Microchip的嵌入式控制器引导ROM负责加载、验证和执行存储在外部SPI闪存中的OEM引导固件,同时保持系统复位。根据设计,嵌入式控制器是平台中第一个上电的组件。安全引导加载程序(在ROM中硬编码)使系统的其余部分处于复位状态,直到它加载并验证负责初始化系统、电源排序和使系统退出复位的OEM应用程序固件。

首次通电时,应用处理器和更高级别的组件将保持复位状态,直到嵌入式控制器启动 ROM 加载、验证并执行 OEM 启动固件(参见图 5)。

图 5:系统中 Microchip 的嵌入式控制器。

OEM 使用签名映像对外部 SPI 闪存进行编程。映像使用 OEM 的私钥、SHA-384 哈希算法和椭圆曲线数字签名算法 (ECDSA) 进行签名。使用的椭圆曲线是NIST标准的P-384椭圆曲线。OEM 必须始终对此密钥保密。OEM 在嵌入式控制器的 OTP(一次性可编程)存储器中对用于验证签名的公钥进行编程。嵌入式控制器安全引导加载程序使用存储在 OTP 中的 ECDSA 公钥对 OEM 固件映像进行身份验证,作为嵌入式控制器安全启动序列的一部分。

嵌入式控制器安全启动顺序

下面总结了Microchip在多个器件(包括CEC1712)中实现的嵌入式控制器安全启动序列:

1. 在POR或芯片复位后,RSMRST#引脚为三态,并在外部拉低以保持系统复位。

2. 嵌入式控制器引导ROM初始化设备(即采样带,清除内存等)。

3. 嵌入式控制器引导 ROM 执行安全引导加载程序,用于验证 SPI 闪存映像的 ECDSA 签名。

4. 如果映像加载成功(成功 = 有效真实映像),启动 ROM 将保护设备(例如,清除加密内存、锁定密钥等)并跳转到固件应用程序代码(即 OEM 启动代码)。

5. 如果映像未成功加载(即签名检查失败),引导 ROM 将保护设备(例如,清除加密内存、锁定密钥等)并等待 POR 事件。系统无法引导。

随着 5G 蜂窝基础设施的快速增长、不断增长的网络和数据中心支持不断扩展的云计算,开发人员需要新的方法来确保操作系统保持安全和不受影响。

Microchip在其功能齐全的CEC1712 Arm® Cortex-M4®微控制器上推出的新型Soteria-G2定制固件,可为从外部SPI闪存启动的操作系统提供预启动模式下的硬件信任根保护的安全启动。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 处理器
    +关注

    关注

    68

    文章

    19286

    浏览量

    229808
  • 控制器
    +关注

    关注

    112

    文章

    16361

    浏览量

    178027
  • 嵌入式
    +关注

    关注

    5082

    文章

    19123

    浏览量

    305146
收藏 人收藏

    评论

    相关推荐

    google恶意软件警告提示怎么处理?

    google恶意软件警告提示怎么处理?google恶意软件警告处理方法按google说明:如果您检查过网站确认网站已恢复安全,便可以提交重
    发表于 04-27 11:23

    安卓系统成为手机恶意软件主要攻击目标

    美国网络安全公司迈克菲公司21日发布的最新安全报告显示,今年第三季度新出现的手机恶意软件攻击几乎都指向谷歌公司的安卓操作系统,该系统面临的安全形势相当严峻。  报告显示,第三季度专门针对安卓系统
    发表于 02-05 16:49

    【Android安全】Android中的“SpyLocker”恶意软件 - 您需要知道的内容

    后,信息将被记录传递给网络犯罪分子的服务器。SpyLocker不仅专注于移动银行应用程序,还尝试获取您的Google,Skype,eBay和PayPal帐户凭据。恶意软件甚至可以通过将所有接收
    发表于 08-09 16:49

    面对外部恶意攻击网站,高防服务器如何去防御攻击

    保护屏障。由于大多数网络恶意攻击都是对网络的主节点进行攻击,而软件防火墙会定期扫描网络主节点,寻找可能存在的安全隐患及时清理,不给
    发表于 05-07 17:00

    如何去防范恶意代码攻击

    在享受便利的同时,却往往忽视了隐私的保护。操作系统的漏洞、应用安全的不完善,都会导致物联设备被恶意代码注入,从而导致个人账号等隐私泄露。那么如何去防范恶意代码攻击呢?从当前的技术角度来讲,仅仅通过系统
    发表于 01-25 06:10

    基于数据特征的内核恶意软件检测

    内核恶意软件对操作系统的安全造成了严重威胁,现有的内核恶意软件检测方法主要从代码角度出发,无法检测代码复用、代码混淆攻击,且少量检测数据篡改
    发表于 01-05 11:39 0次下载

    人工智能恶意软件出现 可利用AI模型隐藏恶意

    恶意软件来创建强大的恶意代码,以逃避复杂的防御。 IBM研究院的安全研究人员开发了一种由人工智能驱动的“高度针对性和回避性”攻击工具,De
    的头像 发表于 09-08 09:30 3191次阅读

    Rootkit是什么

    Rootkit是一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,比较多见到的是Rootkit一般都和木马、后门等其他
    的头像 发表于 11-07 16:30 7814次阅读

    使用词法特征设计恶意域名快速检测算法解决恶意域名攻击事件

    针对互联网中恶意域名攻击事件频发,现有域名检测方法实时性不强的问题,提出一种基于词法特征的恶意域名快速检测算法。该算法根据恶意域名的特点,首先将所有待测域名按照长度进行正则化处理后赋予
    发表于 11-06 16:27 5次下载
    使用词法特征设计<b class='flag-5'>恶意</b>域名快速检测算法解决<b class='flag-5'>恶意</b>域名<b class='flag-5'>攻击</b>事件

    针对Docker的恶意软件攻击行为愈演愈烈

    配置错误的系统,并将这些系统的管理界面暴露在网上,以便接管服务器部署加密货币挖矿恶意软件。在过去的三年里,这些攻击愈演愈烈,一些针对 Docker(和 Kubernetes)新型
    的头像 发表于 12-02 16:00 2227次阅读

    恶意代码常见功能技术

    恶意代码的分类包括计算机病毒、蠕虫、木马、后门、Rootkit、流氓软件、间谍软件、广告软件、僵尸(bot) 、Exploit等等,有些技术
    的头像 发表于 04-10 17:03 2705次阅读

    安卓如何识别和应对恶意软件

    在大多数情况下,删除智能手机中的恶意软件并不困难,因为用户可以借助移动安全应用程序快速识别和删除恶意应用程序。在某些情况下,攻击者会对移动恶意
    发表于 07-29 15:40 1650次阅读

    Windows成恶意软件主要攻击对象

    根据 AV-TEST 提供的数据显示,在 2022,他们在 Windows 平台上发现了近 7000 万个新的恶意软件样本;macOS 上只有大约 1.2 万个恶意软件,相比之下 ma
    的头像 发表于 01-04 11:23 991次阅读

    保护 USB 端口免受恶意“USB 杀手”的攻击

    保护 USB 端口免受恶意“USB 杀手”的攻击
    的头像 发表于 01-05 09:43 3340次阅读
    保护 USB 端口免受<b class='flag-5'>恶意</b>“USB 杀手”的<b class='flag-5'>攻击</b>

    虹科分享|无文件恶意软件将击败您的EDR|终端入侵防御

    无文件恶意软件攻击大多无法检测到。它们经过精心设计,可以绕过NGAV、EPP和EDR/XDR/MDR等检测和响应网络安全工具。 随着无文件恶意软件
    的头像 发表于 04-18 10:23 614次阅读
    虹科分享|无文件<b class='flag-5'>恶意</b><b class='flag-5'>软件</b>将击败您的EDR|终端入侵<b class='flag-5'>防御</b>