C++ / a working model

157 / 163   ·   C11   ·   约 8 分钟

操作系统安全简介

先记住这句话

本章介绍操作系统安全的重要性,解释为何操作系统作为所有计算的基础必须受到保护,并讨论实现安全所面临的挑战。

本篇内容
  1. 操作系统安全的核心地位
  2. 实现安全的困难
  3. 需要保护的资源
  4. 运行示例
  5. 动手练习

官方章节 PDF

操作系统安全的核心地位

几乎所有软件都依赖于操作系统运行。如果操作系统不安全,上层应用即使自身完美也无法保证安全。操作系统控制硬件资源,任何漏洞都可能让攻击者控制整个系统。由于操作系统使用广泛,其安全缺陷影响深远。

实现安全的困难

操作系统代码量大且算法复杂,容易隐藏缺陷。它们必须隔离多个并发进程,防止一个进程危害其他进程或系统。用户下载的未知程序不应获得与所有者相同的权限,否则可能造成严重破坏。

需要保护的资源

操作系统能访问所有内存、文件、设备和网络。进程无法自行保护免受恶意操作系统的侵害。因此,必须确保操作系统本身没有被利用的漏洞,并及时修补。硬件如安全飞地提供额外隔离,尽管实现困难。

常见误区

  • 认为应用程序安全就足够了,忽略底层操作系统
  • 延迟安装操作系统安全更新

运行一个例子

最低标准 C11 · 完整程序 · 下载 .c

#include <stdio.h>

int main(void) {
    printf("OS security simulation: processes isolated by kernel.\n");
    printf("Access granted only to permitted resources.\n");
    printf("Malicious process cannot steal data or crash others.\n");
    return 0;
}

在本地编译

gcc -std=c11 -Wall -Wextra -Wpedantic -Werror ostep-53-security-intro.c -o example && ./example

预期结果

OS security simulation: processes isolated by kernel.
Access granted only to permitted resources.
Malicious process cannot steal data or crash others.

CHECK YOUR UNDERSTANDING

合上答案,试着解释。

为什么操作系统必须提供隔离机制来保护进程资源?

查看参考答案

因为多个进程同时运行,如果不隔离,一个恶意或有缺陷的进程可能访问或破坏其他进程的数据和资源。

继续查证

标准草案与官方章节会更新;版本标记只说明示例最低要求。

回到目录