南京大学 操作系统 (JYY) 学习笔记:系统安全、访问控制与惊心动魄的侧信道攻击
写在前面这是本系列的第二十六篇。在操作系统 API 上我们可以构建命令行工具、编译器、数据库、浏览器等丰富的应用。当越来越多用户开始共享计算机、越来越多的应用出现在操作系统中隔离用户的权限就成为了非常重要的需求“黑客” 也随之登上了历史的舞台。本讲内容我们将探讨现代操作系统中的访问控制机制以及在“绝对安全”的系统设计之外黑客是如何利用幽灵般的硬件侧信道漏洞如 Meltdown完成降维打击的。计算机系统安全简介从“裸奔”到现代防护PC“裸奔”时代8086, Real-Mode (实模式)16-bit CS, 16-bit IP, 物理地址PC (CS 4) IP(只有 1 MB 的寻址能力)。固件代码 (Firmware code) 直接映射到地址空间中。int $x \rightarrow ((void(*)())(x \times 4))();这就是 16-bit 时代简陋的“系统调用”。完全没有任何安全可言任何程序都可以访问任何硬件。这造就了早期病毒的狂欢病毒可以随意复制自己然后感染更多的计算机“加壳”技术。例子著名的 CIH 病毒甚至能直接破坏主板的 BIOS 硬件芯片安全不裸奔的三大基石 (CIA Triad)现代信息安全建立在三个核心支柱之上1. Confidentiality (机密性)不想给别人看的别人就看不到。(比如快速格式化后如何保证数据不被恢复)2. Integrity (完整性)不想让别人改的别人就改不了。(你们的师兄“如何通过入侵老师邮箱拿到期末考卷和修改成绩…”)3. Availability (可用性)属于我的别人不能让我用不了。“Denial-of-service” (DoS) 拒绝服务攻击发送海量请求堵死服务器带宽导致正常用户无法服务。使用fork恶意拉起无数个线程耗尽系统内存和 PID 空间使得正常功能不能运行。经典 Fork bomb (Bash 炸弹)::(){ :|: };:Algorithmic complexity attack; 例子Hash table 碰撞攻击。Distributed DoS (DDoS) 分布式拒绝服务。安全是个巨大的主题软件 硬件协同设计参阅顶会 IEEE SP (Oakland) 2025分页机制和进程隔离系统调用和访问控制鉴权与授权加密审计与日志机密计算 (TEE)……今天我们只问一个问题操作系统的设计者如何在基础“功能”之上优雅地实现 Confidentiality, Integrity, Availability访问控制 (Access Control)访问控制的本质进程 虚拟内存已经实现了隔离。进程只能以 ELF 规定的权限访问自己的虚拟地址空间。系统调用是唯一访问操作系统对象的途径假设内核没有被漏洞攻破。操作系统还有更高维度的虚拟化机制虚拟机、容器 (cgroups, namespaces…)。访问控制的核心限制程序对操作系统对象的访问。拒绝越权访问 $ \rightarrow $ 保证机密性 (Confidentiality)拒绝越权修改 $ \rightarrow $ 保证完整性 (Integrity)(再加上公平的资源调度机制 $ \rightarrow $ 保证可用性 Availability)访问控制原理一张表从上帝视角看系统只需要维护一张巨大的权限控制表“谁能怎么访问什么”。进程对象访问权限1/etc/passwdread√1/etc/passwdwrite√4132/etc/passwdwrite×4132/tmp/hello.txtwrite√越权访问操作系统直接返回EACCESS(Permission denied)。缺点如果在内核里真维护这么一张表它将变得极其庞大而且极难维护。我们需要一个更简单、更低成本的机制。UNIX 的绝妙抽象用整数表示身份为了避免维护一张庞大的字符串表UNIX 引入了极简的uid,gid,mode机制uid 0$ \rightarrow $root其他都是“普通用户”。root是真神可以访问所有对象也可以使用setuid任意切换身份。子进程完美继承父进程的uid。gid“完全自由”虽然一般0是root组。一个用户可以属于多个不同的组。mode: 即r,w,x(读、写、执行) 权限位。例子owner 只写不可读audit 组可以读的日志文件。操作系统底层其实完全看不到用户名它只认识冷冰冰的数字uid。所有的权限隔离纯粹通过setuid,setgid,chmod系统调用实现。/etc/passwd每行一个用户username:password:uid:gid:comment:home:shell现代系统通常使用/etc/shadow文件存储密码的 hash 值极大地提高了安全性。chsh,passwd命令本质上只是具有特权的小程序直接去修改了这些文本文件而已。UID没有那么简单 (Spicy ️)没有一个软件系统 (Abstraction) 能逃脱成为“山”的宿命。随着业务的复杂化UNIX 被迫把纯粹的uid拆分成了极其变态的体系Real uid (ruid):真实的用户 ID。Saved uid (suid):为了实现“临时提权后恢复权限”而设计的备份 ID。Effective uid (euid):这是操作系统实际进行访问控制检查时真正看的 UIDFilesystem uid (fsuid):(Since Linux 1.2现在几乎没人用了)。chmod s(Set-UID 标志比如ls -l /bin/passwd里的s允许普通用户在执行该程序时瞬间化身为文件所有者的 euid)。深入阅读Setuid demystified回到访问控制现代扩展 (Spicy ️)uid,gid,mode已经无法满足现代云原生安全的需求了于是诞生了更多花活Access Control List (ACL):基于文件系统的扩展属性xattr实现支持为任意数量的特定用户和组设置极其精细的权限。SELinux / AppArmor:强制访问控制 (MAC)。可以试试sudo apparmor_status | ag --gpt -q Explain。Capabilities:把原本无所不能的root权限大卸八块。你可以给一个普通程序赋予“只允许发 Ping 包”的特权而不给它任何其他root能力。capsh --dropcap_net_raw -- -c ping 127.0.0.1(注意这是 fail on execve; 可用getcap查看 capabilities)。意料之外之外之外…… (Spicy ️)攻破一个进程Undefined behavior (未定义行为) 不是在和大家开玩笑的一个看似不起眼的缓冲区溢出 (Buffer Overflow) 或者悬空指针。内存错误 (Memory error) 贡献了巨量的现代内核提权漏洞。进阶教程Tutorial: 64-bit Overflow防御一个进程减少攻击面黑客很强但防守方也在不断进化疯狂拉高攻击的门槛降权:永远以www-root等最低权限运行对外服务。ASLR (地址空间布局随机化):每次启动mmap把栈、堆、库映射到完全随机的地址让黑客找不到跳转的目标。Canary (金丝雀/栈保护):在函数返回地址前埋一颗“地雷”一旦发生溢出覆盖地雷立刻引爆程序自杀。NX-bit (不可执行位):栈区和数据区被标记为永远不可执行代码。CFI (控制流完整性):硬件级别的跳转地址合法性校验 (如 Intel 的endbr64)。访问控制没能完全解决问题 (侧信道攻击)“单次”看起来绝对合法的访问如果在时间、功耗上存在差异也可能被提炼出极其致命的机密信息。经典的 Tenex 密码验证系统漏洞intcheck_password(__userchar*given_pass){...for(i0;istrlen(correct_pass);i)if(correct_pass[i]!given_pass[i]){sleep(3);returnEACCESS;// access denied}return0;}极客黑魔法上面的代码看起来没问题一旦第一个字符错了就立刻返回错误。但黑客可以故意把given_pass字符串放在一个内存分页边界 (Page Boundary)上如果第一个字符猜对了内核会去读第二个字符此时会触发一个极度耗时的缺页中断 (Page Fault)。黑客通过精确测量程序返回EACCESS的微秒级时间差就能在 $ O(N) $ 的常数时间内一个字符一个字符地把正确密码完全“试”出来Meltdown硬件芯片底层的崩塌软件没问题硬件也可以有漏洞这就大名鼎鼎的“熔断”漏洞 (Meltdown)。raise_exception();// 第一步故意触发一个异常比如非法读取高权限的内核内存uint8_tvolatilexprobe_array[data*4096];// 第二步利用非法拿到的 data 去访问数组漏洞原理拆解 (Timing side channel):推测执行 (Speculative Execution):现代处理器为了提高性能在等待异常处理完成时会提前“偷跑”后续的指令。缓存侧信道攻击:虽然 CPU 最后发现你越权了撤销了这些推测执行的寄存器结果但它没有撤销 CPU 高速缓存 (L1/L2 Cache) 里留下的痕迹用户虽然读不了内核数据但可以通过遍历探测probe_array的访问速度瞬间识别出哪一块内存被缓存了从而反向逆推出那个被非法读取的data是什么天道好轮回:现代硬件的精妙性能设计反而成了安全的地狱。目前的惨痛补丁: KPTI (Page Table Isolation)。直接改写了教科书强行在内核态和用户态切换时清空页表代价是巨大的性能损耗。你甚至看不到你的对手在哪硬件侧信道攻击的脑洞是没有极限的1. 电磁辐射窃听 (Electromagnetic eavesdropping)超视距攻击天线和显示器相距 10m中间隔着三层石膏板黑客竟然能通过截获显示器排线发出的微弱高频电磁辐射在自己电脑上完美复原你屏幕上的画面Electromagnetic eavesdropping risks of flat-panel displays2. 物理声学窃听只要录下你敲击键盘的声音每个按键在键盘不同位置产生的高频声纹有微小差异经过 AI 降噪分析就能在隔壁房间把你输入的密码完整记录下来。Physical key extraction attacks on PCs总结Take-away messages:在计算机系统设计的初期一切为了功能真的没有丝毫安全可言。但随着商业需求的暴涨和黑客的步步紧逼今天我们已经建立起了极其庞大、成熟的安全隔离机制从软件层的 UID/进程隔离到硬件层的 ASLR/NX 保护层层设卡。然而“攻与防”的艺术永远没有尽头。对于极客而言用出其不意的方法例如时间差、电磁辐射、CPU 分支预测漏洞去攻破这些看似坚不可摧的系统既是最高级的心智挑战也是推动计算机底层架构不断向前进化的核心动力。

相关新闻

清华大学自动化学院大数据专硕预推免全攻略:从CS背景到成功录取

清华大学自动化学院大数据专硕预推免全攻略:从CS背景到成功录取

1. 项目概述:一场关于选择与准备的硬仗“清华大学自动化学院大数据专硕预推免”,这个标题背后,远不止是一份简单的申请记录。它浓缩了计算机科学(CS)及相关交叉学科保研路上,一个极具代表性的关键战役。对于…

2026/8/5 14:57:35 阅读更多 →
百度网盘解析网站怎么选?2026最新免登录直链提取教程与避坑指南

百度网盘解析网站怎么选?2026最新免登录直链提取教程与避坑指南

PanDown - 网盘不限速下载工具PanDown是一款永久免费的网盘解析与多线程提速下载工具。坚持以用户体验作为核心,将加速进行到底!https://www.pandown.org/ 在进行大容量云端资源传输时,下载速率往往受到多重因素的影响。提升数据获取效率的核…

2026/8/5 14:56:35 阅读更多 →
你的macOS屏幕录制从此变得简单:QuickRecorder完全指南

你的macOS屏幕录制从此变得简单:QuickRecorder完全指南

你的macOS屏幕录制从此变得简单:QuickRecorder完全指南 【免费下载链接】QuickRecorder A lightweight screen recorder based on ScreenCapture Kit for macOS / 基于 ScreenCapture Kit 的轻量化多功能 macOS 录屏工具 项目地址: https://gitcode.com/GitHub_Tr…

2026/8/5 14:56:35 阅读更多 →

最新新闻

OpenClaw与Qwen-Max智能体开发实战与优化

OpenClaw与Qwen-Max智能体开发实战与优化

1. OpenClaw与Qwen-Max技术栈解析OpenClaw作为腾讯开源的智能体开发框架,近期与通义千问的Qwen-Max大模型形成技术组合,在自动化流程处理领域展现出独特优势。这套组合拳的核心价值在于:OpenClaw提供标准化智能体开发环境,Qwen-Ma…

2026/8/5 15:35:00 阅读更多 →
novel-downloader架构深度解析:模块化设计实现原理与高性能小说下载实践

novel-downloader架构深度解析:模块化设计实现原理与高性能小说下载实践

novel-downloader架构深度解析:模块化设计实现原理与高性能小说下载实践 【免费下载链接】novel-downloader 一个可扩展的通用型小说下载器。 项目地址: https://gitcode.com/gh_mirrors/no/novel-downloader 在数字内容快速迭代的今天,小说作品的…

2026/8/5 15:33:59 阅读更多 →
jwt库算法全解析:HS、RS、ES到EdDSA的选择与实现

jwt库算法全解析:HS、RS、ES到EdDSA的选择与实现

jwt库算法全解析:HS、RS、ES到EdDSA的选择与实现 【免费下载链接】jwt Safe, simple and fast JSON Web Tokens for Go 项目地址: https://gitcode.com/gh_mirrors/jwt14/jwt JSON Web Token(JWT)是现代应用中广泛使用的身份验证和信息…

2026/8/5 15:33:59 阅读更多 →
本地化创作者工具部署指南:从环境配置到API集成全流程解析

本地化创作者工具部署指南:从环境配置到API集成全流程解析

这次我们来看一个名为“粉丝空间站”的项目。从名称和有限的材料来看,这很可能是一个面向内容创作者或社群运营者的本地化工具,旨在帮助用户高效管理、生成或与粉丝相关内容进行互动。这类工具的核心价值在于将一些需要云端处理或手动操作的任务&#xf…

2026/8/5 15:33:59 阅读更多 →
Flutter与鸿蒙跨平台Entity适配实战

Flutter与鸿蒙跨平台Entity适配实战

1. 项目背景与核心价值 在跨平台开发领域,Flutter凭借其出色的渲染性能和一致的UI体验已成为移动端开发的主流选择。而鸿蒙HarmonyOS作为新一代分布式操作系统,其全场景能力与高性能特性为开发者带来了全新机遇。将Flutter的entity组件适配到鸿蒙平台&am…

2026/8/5 15:33:59 阅读更多 →
告别流水账:价值导向的周报撰写思维与三段论框架实践

告别流水账:价值导向的周报撰写思维与三段论框架实践

1. 为什么你的周报总像流水账?从“交差”到“价值”的思维转变又到周五下午,是不是感觉比周一早上还焦虑?不是因为工作没做完,而是因为那份每周都要交的“作业”——工作周报。很多人提起写周报就头疼,要么是“周一开会…

2026/8/5 15:33:59 阅读更多 →

日新闻

Java缓存框架:JetCache

Java缓存框架:JetCache

TOC 一、简介 JetCache 是一个 Java 缓存抽象框架,为不同的缓存解决方案提供了统一的使用方式。 它提供的注解比 Spring Cache 更加强大。 JetCache 的注解支持原生 TTL、两级缓存以及在分布式环境中的自动刷新功能,同时你也可以通过代码直接操作 Cach…

2026/8/5 0:00:43 阅读更多 →
AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

AD 铺铜设置十字连接,过孔全连接,新版AD的简单设置

需求:通孔焊盘 十字花;过孔 Via 实心直连;贴片焊盘按需设置 AD 测试版本AD24 很多工程师踩坑:全部统一十字,导致接地过孔阻抗高、大电流发热! 一、快捷键打开规则 PCB 界面按下:D R 展开…

2026/8/5 0:00:43 阅读更多 →
AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

AI素描转换技术深度拆解(2024最新论文+工业级落地代码):从Stable Diffusion ControlNet到LoRA微调全链路解析

更多请点击: https://kaifayun.com 第一章:AI生成素描效果 AI生成素描效果是计算机视觉与风格迁移技术融合的典型应用,其核心在于将彩色照片或RGB图像转换为具有手绘质感、明暗对比强烈、边缘清晰的单色素描图像。该过程通常依赖于深度学习模…

2026/8/5 0:00:43 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/5 15:00:43 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/5 13:13:56 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/5 10:20:36 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/4 13:38:24 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/4 11:09:16 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/4 13:38:40 阅读更多 →