# 计算环境安全

# 第一章 操作系统安全

# 1.1 操作系统安全机制

操作系统安全是计算环境安全的基石,核心安全机制包含六大方面:标识与鉴别、访问控制、权限管理、安全审计、内存保护、文件系统保护

# 1.1.1 标识与鉴别

标识与鉴别是操作系统安全的第一道防线,用于确认用户身份合法性。标识是用户向系统声明身份的过程(如输入用户名),鉴别是系统验证该身份真实性的过程(如验证密码)。

Windows 系统标识 — SID(安全标识符)

SID 是 Windows 中唯一标识安全主体的核心机制,格式为 S-1-5-21-xxx-xxx-xxx-xxxx

字段含义
S固定前缀,表示 Security Identifier
1版本号(Windows 2000 起固定为 1)
5主要颁发机构(Windows NT 架构固定为 5)
21子颁发机构类型(21 = 用户主体,80 = 服务主体)
1000相对标识符 RID(500 = 管理员 Administrator,501 = 来宾 Guest,1000 = 首个创建用户)

考试重点:SID 中 21/80 的区分、RID 特定值的含义(500/501/1000)

安全主体(Security Principal):包括用户账户、计算机账户和服务账户三类,是访问行为的发起者,每个安全主体拥有唯一的 SID。

Linux 系统标识 — UID(用户 ID)

Linux 使用整数 UID 标识用户,范围 0-65535:

UID 范围归属说明
0root 账户最高权限,系统超级用户
1-99系统保留账户供系统服务和守护进程使用
100-499预留账户区域部分发行版用于系统账户
500-65535普通用户一般登录用户

安全警示:若发现非 root 账户的 UID 为 0,表明系统可能已被植入后门(攻击者创建了隐藏的 root 权限账户)。这是入侵检测的重要排查点。

Windows 用户凭据存储

项目说明
存储位置%SystemRoot%\System32\config\SAM 注册表文件(运行时系统锁定)
密码哈希LM-Hash:旧式 DES 加密,安全性弱(已弃用);NTLM-Hash:MD4 哈希,当前 Windows 主用
鉴别流程图形界面 (GINA) 接收输入 → 本地安全授权 (LSA) 验证 → 安全账户管理 (SAM) 比对哈希 → LSA 为 SID 附加权限

Linux 用户凭据存储

文件路径说明
passwd/etc/passwd存储用户名、UID、GID、家目录等(早期含 DES 加密密码,现已移至 shadow)
shadow/etc/shadow存储密码哈希(仅 root 可读写)

shadow 文件字段解析(以 $6$salt$hash 为例):

用户名:密码哈希:最后修改日:最短天数:最长天数:提醒天数:宽限期:过期日:保留字段
  • $6$ = SHA-512 加密算法( $1$ =MD5, $2a$ =Blowfish, $5$ =SHA-256)
  • 时间字段从 1970 年 1 月 1 日起计算天数
  • 典型值: 99999 最长有效期约 274 年(几乎不强制过期)

# 1.1.2 访问控制

访问控制机制确保用户仅能访问已授权的资源,核心原则是最小特权按需授权

Windows 访问控制 — ACL 机制

属性说明
模型类型自主访问控制(DAC)
附着对象客体(文件、目录、注册表项等)
文件系统支持仅 NTFS 支持(FAT32/FAT16 不支持 ACL)
安全特点将非法用户阻挡在外,合法用户也需受权限限制
访问令牌包含用户 SID 和特权列表,以用户身份运行的进程拥有该令牌的副本

Linux 访问控制 — UGO 模型

权限类型:读(r)=4, 写(w)=2, 执行(x)=1
权限三元组:所有者(u) / 所属组(g) / 其他用户(o)

示例:rwxr-xr-x = 755
说明:
- u(所有者):rwx(读写执行)
- g(所属组):r-x(读和执行)
- o(其他):r-x(读和执行)

权限修改命令对比

方式命令示例适用场景
符号模式chmod u+x,g-w file仅修改单项权限,保留其他不变
数字模式chmod 644 file直接设置完整权限,操作更高效
递归修改chmod -R 755 dir/目录及内部所有文件统一修改

# 1.1.3 权限管理

Windows UAC(用户账户控制)机制

核心原理:管理员账户登录时默认仅获得受限令牌,执行敏感操作时需要弹出确认对话框进行二次授权

管理员登录 → 获取受限令牌(标准用户权限)
     ↓
执行管理任务(如安装软件、修改系统设置)
     ↓
触发UAC提示框 → 用户确认 → 提升为完整管理员权限

作用:①防止管理员误操作 ②阻止恶意代码自动提权。

易混淆点:UAC 不是身份鉴别机制,而是权限提升控制机制。

Linux SUID(Set User ID)机制

特征:文件权限中所有者执行位显示为s(而非x)
效果:任何用户执行该文件时,自动获得文件所有者的权限
核心风险:对root属主的SUID文件可导致普通用户获得root权限

典型案例:/usr/bin/passwd
- passwd文件所有者是root,设置了SUID位
- 普通用户运行passwd时以root权限操作/etc/shadow
- 原理:passwd将root权限编译于内核层执行,不受外层文件权限限制

考试重点:SUID 是 CISP 高频考点,需理解其 "权限穿透" 特性和安全风险。严格管控 SUID 设置是系统加固的基本要求。

root 账户限制建议

  • 日常操作使用普通账户登录
  • 管理操作通过 susudo 临时提权
  • 防止低级误操作(如 rm -rf / 等危险命令)

# 1.1.4 安全审计

安全审计通过日志记录实现事后追踪功能,是安全检测和取证分析的基石。

Windows 日志体系

日志类型内容用途
系统日志操作系统级别事件(驱动加载、服务启停等)系统故障排查
应用程序日志应用程序运行状态应用层问题定位
安全日志安全相关事件(登录成功 / 失败、权限变更等)安全事件追溯

此外,IIS 等特定服务拥有独立日志(如 HTTP 日志),为服务级审计提供细粒度记录。

Linux 日志体系

日志类型关键文件说明
连接时间日志/var/log/wtmp长期用户登录记录(who 命令读取)
/var/log/utmp当前登录用户记录(w / 命令读取)
系统错误日志/var/log/messages最全面的系统日志(含错误、安全事件),故障排查优先检查
应用日志/var/log/httpd/access.logApache/Nginx 等服务的访问日志

关键定位:安全审计主要用于事后追踪,实际安全控制应侧重事前预防和过程控制。日志完整性保护是审计系统自身安全的核心要求。

# 1.1.5 内存保护

内存保护的核心机制是用户空间与内核空间的隔离,防止用户进程越权访问或破坏内核内存区域。

核心分区架构

┌─────────────────────────────────┐
│    用户空间 (User Space)        │  ← 进程隔离,互不干扰
│   Ring 3                         │
├─────────────────────────────────┤
│    内核空间 (Kernel Space)      │  ← 核心态,完全控制系统
│   Ring 0                         │
└─────────────────────────────────┘

保护机制对比

机制原理CISP 考试要点
段式保护通过段描述符限制内存段访问范围基于段的特权级检查
页式保护通过页表设置页级读写 / 执行权限粒度更细,现代 OS 主流方案
段页式保护结合段式和页式Linux/x86 架构的实际方案

现代内存防护技术

  • ASLR(地址空间布局随机化):随机化进程关键数据区的内存地址(栈、堆、共享库等),使攻击者难以精确预测跳转地址
  • DEP/NX(数据执行保护):将栈和堆标记为不可执行,防止缓冲区溢出后执行 shellcode
  • Stack Canary(栈保护):在栈帧中插入随机检测值(canary),溢出时 canary 被覆盖,系统检测到异常后终止进程
  • 内核空间保护:通过 CPL(当前特权级)机制确保用户态代码无法直接访问内核态内存

考试重点:理解用户空间与内核空间的隔离原理、Ring 0/3 的特权级差异。ASLR 和 DEP 是 CISP 常考的防护技术。

# 1.1.6 文件系统保护

文件系统保护包含两大核心机制:访问控制列表(ACL)加密,两者形成互补防护。

两层防护的关系

第一道防线:访问控制列表
  └─ 防止未授权访问(常规情况下的权限管控)
第二道防线:加密
  └─ 确保即使文件被物理获取也无法解读(最后保障)

访问控制失效的典型场景

  • 设备丢失后通过 U 盘启动绕过操作系统权限
  • 攻击者清除 / 替换原账户密码后登录
  • 硬盘被拆下挂载到其他系统读取

操作系统加密方案对比

系统文件级加密磁盘级加密说明
WindowsEFS(加密文件系统)BitLocker(全卷加密)EFS 对用户透明;BitLocker 需 TPM 支持
LinuxeCryptfsLUKS(dm-crypt)eCryptfs 需手动安装;LUKS 是磁盘级加密标准

实施建议:生产环境服务器推荐同时启用 ACL 和加密;笔记本电脑等移动设备必须启用全磁盘加密,防止设备丢失导致数据泄露。

# 1.1.7 安全目标与机制分类

按用户登录状态划分操作系统的安全机制:

登录前保护:
  ├─ 标识与鉴别(用户名/密码、生物识别、智能卡等)

登录中保护:
  ├─ 访问控制(基于权限的资源管理)
  └─ 最小特权(仅授予完成任务所需的最小权限)

登录后保护:
  └─ 安全审计(事后追溯用户操作行为)

全程保护(不受登录状态影响):
  ├─ 内存保护(从系统启动到关闭全程保护)
  └─ 文件系统保护(持续监控文件访问和修改)

# 1.2 操作系统安全配置

# 1.2.1 安装与镜像验证

要求说明
来源可靠必须从官方网站或授权渠道获取安装镜像
完整性校验通过 MD5/SHA-1/SHA-256 哈希值验证镜像文件未被篡改
最小化原则仅选择必要的系统组件和功能

镜像校验是系统安全的基础前提,若镜像本身被植入后门,后续所有安全配置均无效。

# 1.2.2 磁盘分区策略

核心原则:系统与用户文件分区分置

推荐方案:
┌──────────────┬──────────────┬──────────────┐
│  系统分区(C:) │  数据分区(D:) │  备份分区(E:) │
│  OS + 应用程序 │  用户数据文件  │  系统备份镜像  │
└──────────────┴──────────────┴──────────────┘
  • 避免单分区方案(如 1TB 硬盘仅设 C 盘),否则系统崩溃将导致所有文件恢复困难
  • 生产环境服务器应采用独立分区方案,建议 /boot、/(根分区)、/home、/var 独立分区
  • 个人电脑也建议遵循此原则

# 1.2.3 安全补丁管理

环境策略风险控制
个人设备建议及时安装所有补丁个人数据可备份恢复
生产环境先在测试 / 备份服务器验证兼容性 → 备份 → 分批部署防止补丁引发新问题导致业务中断

案例警示:微软曾出现补丁修复了 A 问题却引发了 B 问题的案例,因此在生产环境验证兼容性至关重要。

# 1.2.4 最小化部署

实施要点

  • 安装时仅选择必需的功能和组件
  • 关闭所有非必要的服务
  • 禁用非必要的默认共享和端口

安全收益:每减少一个开放端口或运行服务,攻击面就相应减小。

典型案例:仅作为 Web 服务器时,除 80/443 端口外应关闭其他所有端口。

# 1.2.5 远程访问控制

端口管理

服务端口不使用时建议
文件共享 (SMB)445/TCP关闭
远程桌面 (RDP)3389/TCP关闭
Telnet23/TCP关闭(用 SSH 替代)
SSH22/TCP修改默认端口 + 密钥登录

连接控制策略

  • 遵循 "最小开放" 原则,仅开放业务必需端口
  • 对远程连接实施 IP 地址白名单限制
  • 所有远程访问必须记录日志以备审计
  • 推荐使用 VPN 或堡垒机集中管理远程访问

# 1.3 账户策略配置

# 1.3.1 密码策略

核心安全要素

策略项推荐配置说明
复杂性要求至少包含大写、小写、数字、特殊符号中 3 种字符类型提高密码熵值
最小长度≥8 位(当前安全标准,敏感系统建议≥12 位)增加暴力破解难度
密码历史强制记录 N 次历史(设为 3 即新密码不能与前 3 次重复)防止循环使用旧密码
最长有效期建议 30-90 天强制更新降低弱密码暴露窗口
最短使用天数建议 1-2 天防止用户频繁修改回原密码

实施难点:非 IT 人员(如医护人员)可能因记忆负担而规避复杂密码要求,需配合培训和辅助工具(如企业密码管理器)。

# 1.3.2 账户锁定策略

防暴力破解核心机制

参数推荐值作用
锁定阈值连续 3-5 次错误登录触发锁定条件
锁定时间30 分钟或管理员解锁阻止持续尝试
计数器重置通常与锁定时间相同清零错误计数

特殊规则:当锁定时间与计数器重置时间不一致时,以较长者为准。例如锁定 15 分钟但计数器 30 分钟重置,则用户需等待 30 分钟才能重新尝试。

# 1.3.3 密码暴力破解防御

暴力破解原理:攻击者通过自动化工具依次尝试密码组合,从简单到复杂逐步枚举。

常见攻击序列:1 → 12 → 123 → ... → 123456 → password → admin123 → ...

多层防御体系

防御层技术手段效果
账户锁定限制登录尝试次数增加攻击者时间成本至不可接受
验证码CAPTCHA 图片验证阻止自动化工具
双因素认证密码 + 动态令牌 / 短信验证码即使密码泄露也无法登录
登录延迟每次失败后递增等待时间大幅降低枚举速度
IP 黑名单检测异常 IP 后自动封禁阻断分布式攻击来源

考试重点:账户锁定策略是防暴力破解的基础手段,理解阈值 / 锁定时间 / 计数器三者的优先级关系。

# 1.4 安全审计配置

# 1.4.1 日志设置与留存

日志记录要素:完整的安全审计记录应包含以下要素 ——

用户标识 | 操作时间 | 源IP地址 | 目标主机 | 操作类型 | 执行结果

合规要求

  • 日志存储容量需满足至少 6 个月留存(《网络安全法》要求)
  • 日志访问权限应限制为仅管理员可操作
  • 确保日志时间戳的准确性(建议启用 NTP 同步)

加固建议

  • Windows:关闭默认共享和自动播放功能
  • Linux:注意默认文件权限设置(umask 配置)

# 1.4.2 集中式日志服务器

部署优势

  1. 跨设备关联分析:聚合多台服务器的日志,发现关联性攻击行为
  2. 日志防篡改:即使单台业务服务器被入侵,攻击者也无法删除日志服务器上的记录
  3. 长期归档:统一管理日志存储空间和备份策略

取证价值:日志服务器是安全事件溯源的关键基础设施,即使业务服务器遭完全破坏,仍可通过日志服务器追溯攻击行为。

常用方案:Linux 环境下常见 rsyslog + Logstash + Elasticsearch 或商业 SIEM 系统;Windows 环境下可用 Windows Event Forwarding 或第三方日志管理平台。

# 第二章 信息收集与系统攻击

# 2.1 信息收集概述

信息收集是系统攻击的首要步骤,通过获取目标系统的各类信息来提高攻击效率和成功率。收集的信息越全面,攻击的指向性越强。

信息收集的三类目标

目标类别收集内容攻击用途
系统信息域名、网络拓扑、操作系统版本、应用软件及漏洞信息针对性漏洞利用
组织信息组织架构、地理位置、联系方式、近期重大事件社会工程学准备
人员信息员工简历、管理员个人信息(如宠物名、爱好)密码猜测 / 钓鱼邮件

# 2.2 公开信息收集 — 王进喜案例分析

这是一个经典的公开情报(OSINT)分析案例,展示了看似无害的公开信息如何被利用获取关键情报。

案例背景:1964 年中国发现首个大油田(大庆油田),石油开采技术不足需国际招标,中方未透露油田位置和储量以保持招标公平性。

分析过程

信息来源分析内容分析结论
王进喜衣着穿着厚棉袄,戴狗皮帽排除南方,确定位于中国东北寒冷地区
报道时间与经纬结合气象数据判断拍摄地区北纬 46-48 度(齐齐哈尔至哈尔滨区间)
历史勘探数据日本在东北的勘探记录进一步缩小范围,排除无油区域
手臂与井把比例推算油井直径推算最大产量
背景中第二口井判断井距估算油田范围和布局

商业结果:日本企业凭借精准分析制定的方案高价中标,中国为炼油设备支付了超额费用。

安全启示:看似普通的信息(照片、新闻稿)经过专业分析可能泄露关键情报。系统攻击前必须进行全面信息收集。

# 2.3 搜索引擎信息收集(Google Hacking)

常见 Google Hacking 语法

语法功能示例
filetype:ext限定搜索特定文件类型filetype:doc 保密
site:domain限定搜索特定网站site:qq.com 后台管理
inurl:keyword搜索 URL 中包含关键词的页面inurl:admininurl:login
intitle:keyword搜索标题中包含关键词的页面intitle:管理intitle:index of
intext:keyword搜索正文中包含关键词的页面intext:password
组合使用多语法联合搜索site:gov.cn filetype:doc 保密

高价值文件类型

文件类型关注原因
.doc / .docx可能包含敏感文字信息
.mdb / .sql数据库文件,可能包含数据库凭证
.ini / .config配置文件,可能包含账号密码
.old / .back / .bak备份文件,可能暴露原有账号和配置
.php / .asp后台入口或存在注入点的动态页面

防御建议:定期扫描并清理暴露的敏感文件,禁用目录列表功能,对后台路径进行隐藏处理。

# 2.4 网络信息收集

# 2.4.1 Ping 与 Tracert 路由探测

Ping:检测目标是否在线,ICMP回显请求/应答
  └─ 防御:防火墙过滤ICMP可阻止ping探测

Tracert:显示从本机到目标主机的路由路径(每个跃点的响应时间)
  └─ 输出示例:
     1  <1 ms  192.168.1.1
     2  10 ms  202.96.128.xxx
     3  42 ms  bjtelecom.net
     ...
    10  129 ms 123.124.177.80 (目标IP)

信息暴露风险

  • tracert 会暴露目标服务器的真实 IP 地址(即使使用了 CDN)
  • 超时节点可能表明存在防火墙拦截
  • 中间网络设备信息可用于定位目标网络位置

# 2.4.2 WHOIS 查询

通过 whois 服务可查询域名注册信息:

  • 域名注册时间、到期时间
  • 注册机构、注册者信息(早期含完整 QQ 号等敏感信息)
  • 管理和技术联系邮箱(现多已脱敏显示为星号)

防御建议:注册域名时开启隐私保护服务,避免个人信息通过 WHOIS 公开。

# 2.4.3 服务旗标识别与端口扫描

旗标抓取(Banner Grabbing)

示例:连接到FTP服务
> telnet 192.168.1.100 21
220 Microsoft FTP Server (Windows 2008 R2)

FTP 等服务的欢迎信息(旗标)会暴露操作系统类型和软件版本。根据版本信息可在漏洞库(如 CVE/NVD)中查询对应已知漏洞。

端口扫描技术

扫描类型原理特点
TCP 全连接扫描完成三次握手准确但易被日志记录
SYN 半开扫描仅发送 SYN,不完成握手隐蔽性强
UDP 扫描发送 UDP 探测包,等待响应或 ICMP 不可达速度慢,可靠性低

协议指纹识别:通过分析目标系统 TCP/IP 协议栈响应的细微差异(如 TTL 值、窗口大小、IP 标识位行为等),可远程识别操作系统类型。

防御建议:修改默认服务旗标(如将 Apache Banner 改为 Nginx 风格),变更默认服务端口(如 SSH 从 22 改为非标准端口)。

# 2.5 信息收集防御措施

防护层面措施说明
公开信息最小化减少.bak/.old 临时文件暴露遵循 "能不展示就不展示" 原则
网络层防护防火墙禁止 ICMP 响应、过滤 tracert 探测增加网络探测难度
系统信息伪装修改服务旗标、变更默认端口使攻击者难以确定系统类型
敏感文件管理定期清理配置文件、禁用目录列表防止 Web 路径遍历和信息泄露
注册信息保护域名注册开启隐私保护防止 WHOIS 泄露个人信息

# 2.6 缓冲区溢出攻击

# 2.6.1 原理与危害

缓冲区溢出是最危险、最经典的二进制漏洞类型,其本质是利用程序未对输入长度做严格校验的缺陷,通过输入超长数据破坏程序堆栈,改变程序执行流程。

危害等级:可导致攻击者获取系统最高权限。

攻击本质

用户输入 → 超出缓冲区容量 → 覆盖相邻内存区域 → 劫持EIP寄存器 → 执行恶意代码

# 2.6.2 堆栈结构与溢出过程

EIP 寄存器的关键作用:EIP(Extended Instruction Pointer)存储 CPU 下一条指令的内存地址,是程序执行流程的控制器。

正常堆栈布局:                    溢出后堆栈布局:
┌─────────────────┐              ┌─────────────────┐
│ name[0..7]       │              │ name[0..7]       │  ← 输入数据
├─────────────────┤              ├─────────────────┤
│ name[8..15]      │              │ name[8..15]      │  ← 溢出覆盖
├─────────────────┤              ├─────────────────┤
│ 其他局部变量     │              │ 被覆盖           │
├─────────────────┤              ├─────────────────┤
│ 保存的EBP        │              │ 被覆盖           │
├─────────────────┤              ├─────────────────┤
│ EIP(正常地址)   │              │ EIP = 0xaaaa     │  ← 恶意地址
└─────────────────┘              └─────────────────┘
                                  CPU读取EIP → 跳转到无效地址 → 崩溃

攻击完整步骤

  1. 寻找存在缓冲区溢出漏洞的程序
  2. 精心构造溢出数据(数据部分嵌入恶意 shellcode)
  3. 精确计算偏移量,控制 EIP 跳转到 shellcode 起始地址
  4. shellcode 执行 → 攻击者获取系统控制权

核心难点:必须能精确控制 EIP 中的跳转地址,这需要攻击者了解目标系统的内存布局。

# 2.6.3 防范技术

层级防护技术原理效果
用户层面及时安装系统补丁修补已知溢出漏洞消除已发现漏洞
用户层面启用防火墙防护限制异常网络通信阻止远程利用
开发层面使用安全函数strncpy() 替代 strcpy()snprintf() 替代 sprintf()边界检查防止溢出
开发层面输入验证严格校验用户输入的数据长度和格式源头控制
编译层面Stack Canary栈帧中插入检测值,溢出检测后终止阻止栈溢出利用
系统层面DEP/NX栈和堆标记为不可执行阻止 shellcode 执行
系统层面ASLR随机化基地址增加跳转地址预测难度
系统层面RELRO保护 GOT 表阻止 GOT 覆盖攻击

CISP 考试重点:理解 EIP 被改写导致控制流劫持的过程,以及 DEP 和 ASLR 两种关键防护技术的原理。

# 第三章 恶意代码防护

# 3.1 恶意代码概述

恶意代码(Malicious Code / Malware)是指以破坏、窃密或非法控制为目标的程序,表现形式包括二进制可执行文件、脚本语言、宏指令等。

常见恶意代码类型

类型特征示例
病毒(Virus)寄生于宿主文件,需要宿主程序激活CIH 病毒、宏病毒
蠕虫(Worm)自我复制,通过网络自动传播Stuxnet(震网)、Slammer
木马(Trojan)伪装成正常程序,隐蔽执行恶意功能远控木马(灰鸽子)
后门(Backdoor)绕过正常认证机制获取系统访问权限预留账户、隐蔽通道
勒索软件(Ransomware)加密用户数据并索要赎金WannaCry、LockBit
Rootkit深度隐藏自身和攻击者行为,修改内核数据结构内核级 Rootkit
流氓软件(Rogueware)虚假安全警告恐吓用户付费(当前最常见类型之一)假杀毒软件

防护原则:以预防为主,"能不动就不动" 是最佳防护标准。

# 3.2 恶意代码传播方式

三种主要传播途径

  1. 文件传播

    • 感染正常文件并嵌入恶意代码
    • 典型案例:中国常见的软件捆绑安装(隐藏 "更多" 按钮下的自动安装选项)
  2. 网络传播

    • 途径:网页挂马、电子邮件附件、即时通讯链接、漏洞利用
    • 特点:传播速度快、波及范围广
  3. 软件部署

    • 隐蔽形式:逻辑炸弹(满足特定条件触发破坏)、预留后门(厂商或开发者预置)、文件捆绑
    • 危害:可能连带安装大量恶意软件

# 3.3 恶意代码预防技术

三层防护体系

意识层:增强安全意识 → 不打开可疑附件、不点击未知链接
漏洞层:补丁管理 + 主机加固 → 减少漏洞数量
威胁层:软件防护 + 硬件防护 → 降低威胁影响

防护技术细节

防护类型技术方案说明
软件防护防病毒软件、反间谍软件终端基本防护
硬件防护企业级防毒墙部署于流量必经之路,网络层拦截
设备防护防火墙、路由器严格策略网络边界控制

# 3.4 恶意代码检测技术

# 3.4.1 特征码扫描(签名检测)

维度说明
机制基于病毒特征库的精确指纹匹配(恶意代码核心代码不变性)
优点准确率高,误报率低,管理简便
缺点病毒库不断膨胀影响效率;对新病毒 / 变种无效;滞后于病毒出现
典型应用传统防病毒软件

考试重点:特征码扫描是黑名单机制,只能检测已知恶意代码。

# 3.4.2 行为检测(启发式检测)

维度说明
机制基于统计数据的白名单机制,建立正常行为基线,检测偏离基线的异常行为
优点可检测未知病毒和变种
缺点误报率高(符合 "病毒不可判定原则")
改进方案特征码扫描 + 行为检测结合使用(如 360 的多引擎机制)

易混淆点:特征码扫描 = 黑名单(已知恶意),行为检测 = 白名单(偏离正常)。

行为检测典型场景:文本编辑软件突然进行注册表写入、频繁访问特定网站、大量加密文件操作等异常行为。

# 3.5 恶意代码分析技术

静态分析 vs 动态分析对比

对比项静态分析动态分析
执行方式不执行代码,直接分析二进制在沙盒 / 虚拟机中实际运行
分析内容文件特性、PE 结构、API 调用表文件读写、注册表操作、网络通信
优点安全(不触发恶意行为)可观察真实行为
缺点难以分析混淆 / 加壳代码恶意代码可能检测虚拟机环境
工具IDA Pro、Ghidra、stringsCuckoo Sandbox、Process Monitor

# 3.6 恶意代码清除方法

感染类型清除方法注意事项
引导区感染修复或重建主引导记录(MBR)需使用系统修复工具
附着型文件感染逆向还原:删除嵌入的恶意代码部分需精确理解文件格式结构
替换型文件感染从备份中还原原始正常文件需确认备份未被感染
独立文件型先终止内存中进程 → 再删除文件顺序不能颠倒,否则文件重新激活
软件嵌入型更新或重装软件清除后应及时更改相关密码
系统级感染重置 / 重装操作系统底层感染(如 Bootkit)时唯一有效方法

# 3.7 基于互联网的恶意代码防护

高级防护技术

蜜罐与蜜网

  • 蜜罐(Honeypot):故意部署的有缺陷系统,诱使攻击者攻击,从而研究和记录攻击行为
  • 蜜网(Honeynet):由多个蜜罐组成的模拟网络,提供更真实的攻击场景

云查杀技术

  • 基于分布式计算,客户端无本地病毒库,依赖云端引擎和数据库进行查杀
  • 优势:实时更新样本库,减轻终端计算和存储负担
  • 代表产品:360 云查杀系统

# 第四章 应用安全

# 4.1 应用安全威胁概述

应用安全是 CISP 计算环境安全的重要组成部分,威胁来源覆盖整个应用架构:

终端用户 ← → 传输协议 ← → 应用服务器 ← → 数据库服务器
    ↓            ↓              ↓               ↓
浏览器漏洞    HTTP明文        IIS/Apache       SQL注入
(XSS等)     (窃听)        配置漏洞          (数据泄露)

四大威胁来源

  • 终端用户:客户端受攻击(浏览器漏洞、恶意插件)
  • 传输协议:应用协议安全隐患(HTTP 明文传输、弱验证机制)
  • 应用服务器:运行软件漏洞或配置不当(IIS、Apache、Tomcat)
  • 数据库服务器:存储系统易受攻击(SQL 注入)

# 4.2 HTTP 协议安全

# 4.2.1 HTTP 工作机制

请求包结构

方法 URL 协议/版本
请求头部(Headers)
请求正文(Body)

示例:
POST /servlet/default.jsp HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/4.0 (Firefox)
Cookie: sessionid=abc123

LastName=Franks&FirstName=Michael

响应包结构

协议 状态码 状态描述
响应包头(Headers)
实体内容(Body)

示例:
HTTP/1.1 200 OK
Server: Microsoft-IIS/6.0
Content-Type: text/html

<!DOCTYPE html>...

关键字段解读

字段说明安全意义
User-Agent标识浏览器类型和版本可用于动态界面适配,也暴露客户端信息
Server标识服务器软件和版本暴露服务器信息,建议通过配置隐藏
Cookie维护会话状态可能被窃取(Session 劫持)
Referer标识请求来源可被用于 CSRF 防御,但也可能泄露信息

HTTP 状态码分类

分类范围含义示例
信息类1xx请求已接收,继续处理100 Continue
成功2xx成功处理请求200 OK
重定向3xx需进一步操作完成请求301/302 跳转
客户端错误4xx请求包含错误404 Not Found, 403 Forbidden
服务端错误5xx服务端处理失败500 Internal Server Error

# 4.2.2 HTTP 协议安全问题

三大核心缺陷

缺陷描述风险
明文传输所有数据以明文在网络上传输数据包捕获可获取用户名、密码等敏感信息
弱验证机制协议本身不提供强身份认证;HTTP1.1 摘要认证仅用 MD5 封装中间人攻击、凭据窃取
无状态特性依赖 Session 机制维持用户状Session 劫持、Session 伪造

解决方案

  • 使用 **HTTPS(HTTP + SSL/TLS)** 替代 HTTP 实现加密传输
  • 隐藏服务器敏感信息(Server 头等)
  • 加强 Session 管理机制(随机化 Session ID、设置 HttpOnly 和 Secure 标志等)

# 4.3 Web 服务端软件安全

# 4.3.1 服务支撑软件安全

常见安全问题

问题类型案例影响
软件漏洞IIS 5.0 超长 URL 拒绝服务漏洞、Unicode 解码漏洞服务器崩溃、目录遍历
配置缺陷使用默认账号弱口令(admin/123456)未授权访问
配置缺陷IIS 允许远程写入文件上传、WebShell 植入
配置缺陷目录列表启用信息泄露、文件枚举

防护措施

  • 部署 Web 应用防火墙(WAF),可阻挡约 90% 的已知攻击
  • 对老旧系统(如 Windows Server 2003/2008)尤其有效
  • 注意:任何安防设备都不能 100% 防护所有攻击

# 4.3.2 应用软件安全

开发缺陷

  • 未严格校验用户输入(如特殊字符: <>'"() 等)
  • 不安全的文件上传处理
  • 错误信息暴露敏感信息

网页防篡改机制

原理:对网页文件计算哈希值(MD5/SHA),定期轮询比对
检测到篡改后 → 自动还原备份(或手动触发)
典型场景:防止黑客修改首页植入政治敏感信息或恶意代码

# 4.4 SQL 注入攻击

# 4.4.1 注入原理

SQL 注入的本质是利用未过滤的用户输入构造非法 SQL 语句,欺骗数据库执行恶意查询。

万能密码原理

-- 合法语句
SELECT * FROM users WHERE username='admin' AND password='abcd'
-- 注入语句(假设输入:username=admin, password=123' OR '1'='1)
SELECT * FROM users WHERE username='admin' AND password='123' OR '1'='1'

关键点:通过单引号 ( ' ) 闭合 SQL 语句, OR 1=1 使条件恒真,绕过密码验证。

注入点发现:在 URL 参数、表单输入、Cookie 等用户可控输入位置尝试注入。

-- URL 注入示例
http://www.test.com/showdetail.asp?id=49' AND (SELECT COUNT(*) FROM users)>0 --

-- 是 SQL 注释符,用于截断原始语句的剩余部分。

# 4.4.2 SQL 注入攻击类型

注入类型特征说明
联合查询注入使用 UNION 合并查询结果直接获取数据内容
报错注入利用错误信息推断数据库结构信息泄露
布尔盲注根据页面返回差异逐位推断无回显时使用
时间盲注根据响应延迟推断条件真假无回显且无差异时可使用
二阶注入恶意数据先存入数据库,后续操作中触发更隐蔽
带外注入通过 DNS/HTTP 等外带通道获取数据防御最困难

# 4.4.3 危害与防御

SQL 注入的危害

危害说明
数据泄露检索数据库敏感信息(用户表、支付记录等)
数据操纵增删改数据(如 UPDATE users SET passwd='123'
系统入侵利用数据库功能执行系统命令(SQL Server 的 XP_CMDSHELL 扩展存储过程)

防御方法

防御措施实施方式效果
白名单验证限制输入格式(如只允许数字、固定长度)最严格,适用于枚举类参数
黑名单过滤过滤关键字( UPDATEINSERTDELETE'--辅助手段,可能被绕过
参数化查询使用 PreparedStatement / 参数化 SQL最有效,彻底分离数据和代码
最小数据库权限应用账号仅授予必要权限限制注入后的损失范围
WAF 防护部署 Web 应用防火墙网络层拦截注入尝试

⚠️ 法律提醒:根据《网络安全法》,SQL 注入测试需获得系统所有者的书面授权,未授权测试可能构成违法。

# 4.5 跨站脚本攻击(XSS)

# 4.5.1 原理与分类

XSS(Cross-Site Scripting)的本质是攻击者将恶意脚本注入到可信网站的页面中,利用用户对目标网站的信任关系实施攻击。

根本原因:程序未对用户提交内容中的 HTML/JavaScript 代码进行过滤或转义。

三种 XSS 类型对比

类型特征示例
存储型恶意脚本被永久存储在目标服务器上论坛发帖、用户评论中注入 <script>
反射型脚本作为请求参数立即反射回响应中钓鱼链接: ?search=<script>...
DOM 型通过客户端 JavaScript 修改 DOM 实现利用前端框架的 DOM 操作漏洞

# 4.5.2 危害与防范

XSS 攻击危害

  • 盗取用户 Cookie → Session 劫持 → 账号盗用
  • 伪造用户操作 → 以受害者身份发送请求
  • 钓鱼攻击 → 伪造登录页面骗取凭据
  • 重定向至恶意网站 → 诱导下载恶意软件

防范措施

措施说明等级
输入过滤对所有用户输入进行严格过滤,转义尖括号等特殊字符基础
输出编码根据上下文对输出进行编码(HTML 实体、URL 编码、JavaScript 编码)关键
CSP 策略内容安全策略,白名单脚本来源,禁止内联脚本强力
HttpOnly Cookie在 Set-Cookie 中设置 HttpOnly 标志,阻止 JavaScript 读取 Cookie基础
X-XSS-Protection启用浏览器内置 XSS 过滤器补充

易混淆点提醒:SQL 注入攻击的是数据库后端,XSS 攻击的是浏览器前端用户。两者攻击目标和利用方式完全不同。

# 4.6 其他 Web 应用攻击

攻击类型描述防御思路
CSRF(跨站请求伪造)利用用户已登录状态,诱导其执行非本意操作CSRF Token、SameSite Cookie
失效的会话管理Session ID 泄露、固定会话攻击随机化 Session ID、HTTPS 传输
不安全的对象直接引用修改参数访问未授权资源(如修改 URL 中的 ID)访问控制检查、不可预测 ID
不安全的配置管理默认配置、调试接口暴露、目录列表开启安全基线配置、定期检查
未验证的重定向参数控制的 URL 跳转被恶意利用白名单重定向目标
异常处理不当错误信息暴露堆栈信息或数据库结构自定义错误页面,不暴露细节

# 4.7 电子邮件安全

邮件协议机制

SMTP (25/TCP)     →  发信协议,简单请求-响应模式
POP3 (110/TCP)    →  收信协议,下载后本地读取
IMAP (143/TCP)    →  收信协议,邮件保留在服务器

加密版本:
SMTPS (465/TCP)   →  SMTP over SSL
POP3S (995/TCP)   →  POP3 over SSL
IMAPS (993/TCP)   →  IMAP over SSL

电子邮件安全威胁

威胁描述
信息泄露明文传输导致账号密码和邮件内容易被窃取
身份伪造SMTP 协议不验证发件人身份,易被伪造(社会工程学攻击)
垃圾邮件滥发商业广告或钓鱼邮件
附件传播恶意代码通过邮件附件传播(宏病毒等)

安全加固方案

层面措施
服务器端采用 S/MIME 或 PGP 端到端加密
服务器端使用 SSL/TLS 加密传输会话
服务器端部署反垃圾邮件网关和 SPF/DKIM/DMARC 邮件认证
客户端使用支持加密的邮件客户端(如 Outlook)
客户端不打开可疑附件,不点击可疑链接

# 第五章 数据安全

# 5.1 数据库安全措施

数据库安全的核心目标是保障数据的机密性、完整性、可用性。CISP 框架下的数据库安全措施与操作系统安全高度互补,但更侧重于数据存储层面的保护。

基础防护

安全措施内容说明
用户管理标识与鉴别、授权与访问控制与操作系统类似但粒度更细
安全审计记录和监控数据库操作需要进行精细到字段级的审计
数据加密区别于 OS 加密,保护数据存储安全TDE 透明数据加密、列级加密
存储管理缺省存储空间控制、临时数据权限、存储空间限额防止资源耗尽
资源控制CPU 和 IO 资源限额管理防止单用户占用过多资源

⚠️ 注意事项:加密操作存在风险,如加密过程中可能出现 bug 导致数据无法恢复。实施加密前必须做完整备份和测试。

# 5.2 数据库安全防护

# 5.2.1 纵深防御体系

用户请求
    │
    ▼
┌─────────────┐
│  安全边界    │ ← 用户鉴别、过滤非法SQL请求
├─────────────┤
│  查询引擎    │ ← 存取控制、验证表/字段级权限
├─────────────┤
│  数据加密    │ ← 可选组件,提供高级别保护
├─────────────┤
│  审计追踪    │ ← 完整记录所有操作日志
└─────────────┘

纵深防御理念:采用多层防线而非单点防护,安全机制贯穿整个数据库访问流程。

# 5.2.2 安全特性检查

检查维度

检查项具体内容
基础配置补丁更新状态、数据库协议设置(端口、传输协议)
账户安全用户名密码强度、口令策略执行情况
权限管理存储过程权限、触发器权限、角色分配
数据保护备份机制有效性、加密实施情况
网络控制数据库端口访问来源限制

# 5.2.3 运行监控

| 传统方案 vs 现代方案|

维度传统机制现代方案
核心身份认证和访问控制为主的被动防御运行时安全性和合规性检查
监控重点登录审计用户行为分析和违规操作识别

监控内容

  • 安全性:入侵检测(特征识别、模式匹配、统计分析)
  • 合规性:用户行为审计,违规操作识别与报警

实施方式:通过代理监视器和分析器实现实时监控,覆盖数据库服务器、应用服务器和数据库集群。

# 5.2.4 安全审计

审计对象等级

审计级别范围详解
标准审计系统级、用户级登录登出、DDL 操作
细粒度审计对象级(特定表 / 字段)特定敏感列(如身份证号)的所有操作

审计记录要素

访问来源:应用程序、客户端位置、用户账号
操作详情:操作类型(SELECT/INSERT/UPDATE/DELETE)、时间戳、涉及数据范围
执行结果:操作是否成功、影响行数(若有)

# 5.3 数据防泄露(DLP)

法律要求(《网络安全法》相关条款):

  • 未经用户同意不得收集和提供个人信息
  • 必须采取技术措施保障信息安全,防止数据泄露

DLP 防护框架

环节内容实施要点
数据识别明确敏感数据类型和分类分级根据行业标准 (如等保 2.0) 定级
渠道监控覆盖所有可能的外泄途径网络、USB、邮件、打印等
行为分析识别数据发送者、接收者和传输方式建用户行为基线,检测异常
策略执行判断违规程度并采取阻断 / 告警 / 审计预防与追溯结合

重点行业:金融、医疗等行业有特殊合规要求,需额外关注。

# 附录:知识小结与考试重点

知识点核心内容考试重点 / 易混淆点难度
Windows SIDS-1-5-21-xxx-xxx-xxxx 格式解析21 = 用户 / 80 = 服务;500 = 管理员 / 501 = 来宾 / 1000 = 首用户★★★
Linux UID0-65535 范围分配0=root;非 root 账户 UID=0 即后门标志★★★
权限管理rwx/r-x/r-x = 755chmod 符号模式与数字模式互转;SUID 的原理(s 位)★★★★
SUID 机制普通用户以文件所有者权限执行最难理解:passwd 修改 shadow 的原理、安全风险★★★★★
内存保护用户空间 vs 内核空间隔离ASLR、DEP/NX、Stack Canary 三者的原理区分★★★★
缓冲区溢出超长输入覆盖 EIP 劫持控制流EIP 角色、溢出堆栈布局变化、DEP/ASLR 防御链★★★★★
Google Hackingsite/filetype/inurl/intitle 语法组合搜索语法、敏感文件类型(.mdb/.bak/.old)★★★
信息收集防御旗标修改、默认端口变更最小化公开信息的策略思路★★
特征码 vs 行为检测黑名单 vs 白名单机制误报率差异、对新病毒的有效性对比★★★
静态 vs 动态分析不执行 vs 沙盒执行分析内容和适用场景对比★★
SQL 注入'OR 1=1-- 闭合语句构造万能密码原理、参数化查询是最有效防御★★★★
XSS存储型 / 反射型 / DOM 型分类XSS 攻击前端用户 vs SQL 注入攻击后端数据库★★★★
HTTP 协议安全明文传输、弱验证、无状态三缺陷User-Agent 和 Server 字段的信息泄露风险★★★
纵深防御安全边界→查询引擎→加密→审计多层防护而非单点、审计颗粒度(标准级 vs 对象级)★★★★
数据防泄露识别→监控→分析→执行四环节法律法规要求(《网络安全法》)★★★
密码策略复杂度 + 历史 + 锁定阈值锁定时间与计数器重置的优先级关系★★
补丁管理测试→备份→部署生产环境必须先验证兼容性★★
EFS vs BitLocker文件级 vs 磁盘级加密防御逻辑:访问控制失效后的最后防线★★

CISP 计算环境安全核心复习线索:操作系统安全机制(标识→访问→权限→审计→内存→文件)→ 安全配置(最小化 + 补丁 + 远程控制)→ 攻击视角(信息收集→缓冲区溢出)→ 恶意代码防护(特征码 + 行为 + 清除)→ 应用安全(HTTP+SQL+XSS + 邮件)→ 数据安全(数据库纵深防御 + DLP)