必须启用UEFI安全启动并锁定引导链:第一步进BIOS启用Secure Boot并切至Setup Mode;第二步确认shimx64.efi为启动入口;第三步禁用非授权EFI执行、锁定GRUB配置、禁用GRUB命令行、设置超级用户密码、保护EFI分区只读与权限。

启用UEFI安全启动并锁定引导链
统信UOS系统若未启用UEFI安全启动,攻击者可替换/boot/efi/EFI/uos/grubx64.efi或篡改shim加载流程,从而植入持久化bootkit,必须从固件层建立签名验证闭环。
第一步:进入UEFI BIOS设置界面
重启电脑,在开机自检阶段连续按F2(华硕/联想)或Del(技嘉/微星),直到出现蓝色BIOS菜单;若键盘无响应,需先在Windows中通过“高级启动→UEFI固件设置”跳转。
第二步:启用Secure Boot并切换为Setup Mode
导航至Security选项卡→找到Secure Boot项→将其设为Enabled→若下方显示User Mode,必须先点开Secure Boot Key Management→选择“Restore Factory Keys”或“Reset to Setup Mode”→保存退出后再次进入,此时Secure Boot状态应变为Setup Mode。
第三步:确认UOS已使用shim-signed引导器
正常安装的UOS V20.5+桌面版会在EFI分区中部署shimx64.efi→grubx64.efi→vmlinuz的可信链;执行sudo efibootmgr -v,检查BootXXXX行是否指向\EFI\uos\shimx64.efi而非直接调用grubx64.efi;若路径不符,说明安装时未启用Secure Boot兼容模式,需重制启动盘。
第四步:禁止非授权EFI应用执行
在BIOS中启用Secure Boot Policy(如有)→设为Standard或Microsoft UEFI Certificate Authority→该策略将拒绝加载任何未由微软CA或统信官方密钥签名的.efi文件,包括恶意定制的grub.cfg注入模块。
锁定GRUB配置文件防篡改
攻击者常通过修改/etc/default/grub或直接编辑/boot/grub/grub.cfg来插入恶意initrd或内核参数,需阻断写入路径并启用文件完整性校验。
方法一:设置GRUB主配置文件为不可修改
执行命令:sudo chattr +i /etc/default/grub;该操作将使文件无法被任何用户(含root)删除、重命名或写入,【执行前务必确认当前GRUB配置完全可用,否则将导致update-grub失败且无法回退】;如需后续修改,必须先运行sudo chattr -i /etc/default/grub解锁。
方法二:启用AIDE进行启动配置完整性监控
安装AIDE工具:sudo apt install aide→初始化数据库:sudo aide --init→将生成的数据库移至安全位置:sudo mv /var/lib/aide/aide.db.new /var/lib/aide/aide.db→添加定时校验任务:echo "0 2 * * * root /usr/bin/aide --check | mail -s 'AIDE Check Report' admin@localhost" | sudo tee -a /etc/crontab;AIDE会检测/boot/grub/grub.cfg、/etc/default/grub及所有/etc/grub.d/脚本的哈希变更。
禁用GRUB命令行与编辑功能
默认GRUB允许在启动菜单界面按c键进入命令行、按e键编辑启动参数,攻击者可借此绕过内核参数限制、加载恶意模块或挂载根分区为读写模式进行篡改。
执行:sudo nano /etc/default/grub→找到GRUB_TERMINAL行,确保其值为console而非unspecified→在文件末尾新增两行:GRUB_DISABLE_RECOVERY="true"GRUB_DISABLE_SUBMENU="y"→保存后运行sudo update-grub;这将隐藏恢复模式菜单项,并强制GRUB不加载子菜单逻辑,大幅压缩可交互入口。
关键加固:设置GRUB超级用户密码
生成加密密码:sudo grub-mkpasswd-pbkdf2→按提示输入两次密码,复制输出中grub.pbkdf2.sha512.100000...整段→编辑/etc/grub.d/40_custom,在#!/bin/sh下方添加:set superusers="root"password_pbkdf2 root grub.pbkdf2.sha512.100000...→保存并执行sudo update-grub;此后任何GRUB编辑操作均需输入该密码,【密码一旦丢失,只能通过Live UOS环境重置,无其他恢复通道】。
保护EFI系统分区免遭覆盖
攻击者可通过挂载EFI分区并替换shimx64.efi或向EFI/uos/目录注入恶意loader实现固件级持久化,必须限制挂载权限与写入能力。
第一步:卸载当前已挂载的EFI分区
执行mount | grep efi确认挂载点(如/mnt/efi或/boot/efi)→运行sudo umount /boot/efi;避免EFI分区长期处于可写挂载状态。
第二步:修改fstab禁止自动挂载
执行sudo nano /etc/fstab→找到含/boot/efi或vfat的行→在挂载选项字段(第四个字段)中删除defaults,改为ro,noauto→保存退出;此后除非手动执行sudo mount -o rw /boot/efi,否则该分区永不自动挂载,且默认只读。
第三步:设置EFI目录权限锁
执行sudo chmod 700 /boot/efi/EFI/uos/→再运行sudo chown root:root /boot/efi/EFI/uos/;这将阻止非root用户列出或访问uos目录内容,连带保护shimx64.efi、grubx64.efi及grub.cfg等核心文件不被枚举定位。
















