软考(信息安全工程师)

一、信息安全基础概念

1. 信息安全基本属性

  • 机密性:确保信息不泄露给未授权的个体、进程或实体
  • 完整性:保护数据和系统的准确性和完备性,防止未授权篡改
  • 可用性:确保授权用户在需要时可以正常访问和使用资源
  • 可控性:对信息传播及内容具有控制能力
  • 抗抵赖性:确保行为发起者无法否认其行为(如发送消息、签署文件)

2. 网络信息安全基本功能

  • 防御:事前采取的安全措施(防火墙、加密、访问控制)
  • 检测:事中或持续性的监控(IDS、态势感知)
  • 应急:事件发生后的紧急响应措施
  • 恢复:将受影响系统恢复到正常状态

3. 信息安全管理流程

  1. 确定管理对象
  2. 评估对象价值
  3. 识别对象威胁
  4. 识别对象脆弱性
  5. 确定对象风险级别
  6. 制定防范措施
  7. 实施和落实防范措施
  8. 运行与维护网络信息安全管理设备

4. 国家网络安全体系

  • 中国网络安全审查技术与认证中心(CCRC):负责网络安全设备审查
  • 入网许可证:由工信部下属实验室(泰尔实验室、威尔实验室)认证
  • 无线产品核准:由国家无线电管理委员会负责
  • 网络安全等级保护制度
    • 工作流程:定级→备案→建设整改→等级测评→运营维护
    • 等级划分:1-5级(从用户自主保护级到访问验证保护级)
  • 国家计算机网络应急技术处理协调中心(CNCERT/CC):负责网络安全事件应急处理
  • 四大顶级安全会议:S&P、CCS、NDSS、USENIX Security

5. 网络安全组织结构

领导层

  • 职责:确定网络安全战略方向,分配资源,对网络安全工作负责
  • 组成:企业高层管理者、网络安全委员会等
  • 关键任务
    • 批准网络安全政策和战略
    • 分配足够的预算和人力资源
    • 监督网络安全工作的执行
    • 对重大网络安全事件做出决策

管理层

  • 职责:制定网络安全策略、标准和流程,负责安全管理团队的组织和管理
  • 组成:安全总监、安全经理等
  • 关键任务
    • 制定和更新网络安全政策
    • 规划安全投资和资源分配
    • 监督安全实施进度
    • 组织安全培训和意识提升活动
    • 评估安全风险和应对措施

执行层

  • 职责:负责安全策略的具体实施和日常操作
  • 组成:安全技术实施团队、安全运维团队、安全分析团队等
  • 关键任务
    • 安全设备配置与维护
    • 安全监控与事件响应
    • 漏洞扫描与修复
    • 安全策略实施与验证
    • 安全报告编制

外部协作层

  • 职责:与外部安全组织、合作伙伴、监管机构的协作
  • 组成:与CNCERT、安全厂商、行业联盟等的协作机制
  • 关键任务
    • 安全信息共享与情报交换
    • 与监管机构的合规对接
    • 参与行业安全标准制定
    • 与合作伙伴的安全协作
    • 安全事件的跨组织响应

二、密码学与加密算法

1. 对称加密算法

DES加密算法详细过程

基本参数

  • 密钥长度:64位(实际有效56位,8位用于奇偶校验)
  • 分组长度:64位
  • 轮数:16轮

加密过程

  1. 初始置换(IP):64位明文经过初始置换表重新排列
  2. 16轮迭代
    • 每轮将64位数据分为左右32位
    • 右半部分通过扩展置换(48位)→与子密钥异或→S盒压缩(32位)→P盒置换
    • 将S盒输出与左半部分异或,作为下一轮的右半部分
    • 当前右半部分直接作为下一轮的左半部分
    • 每轮使用的子密钥由主密钥经过置换选择1、循环移位和置换选择2生成
  3. 逆初始置换(IP⁻¹):16轮结束后,左右32位合并,经过逆初始置换得到密文

S盒工作原理

  • 8个S盒,每个S盒接收6位输入,输出4位
  • 6位输入的第1位和第6位组成行号,中间4位组成列号
  • 从S盒中查表得到4位输出

密钥生成过程

  1. 64位密钥经过置换选择1,去除8位校验位,得到56位密钥
  2. 将56位密钥分为两部分,每部分28位
  3. 每轮进行循环左移(移位数根据轮数变化)
  4. 经过置换选择2得到48位子密钥
  5. 16轮共生成16个不同的48位子密钥

AES加密算法详细过程

基本参数

  • 密钥长度:128/192/256位
  • 分组长度:128位
  • 轮数:10/12/14轮(对应128/192/256位密钥)

加密过程

  1. 初始轮密钥加:明文与第一轮密钥进行异或
  2. 主轮函数(9/11/13轮):
    • 字节代换(SubBytes):使用S盒对每个字节进行非线性替换
    • 行移位(ShiftRows):每行按不同偏移量循环移位
    • 列混合(MixColumns):对列进行线性变换,实现扩散
    • 轮密钥加(AddRoundKey):与当前轮密钥异或
  3. 最终轮:与主轮类似,但省略列混合步骤

密钥扩展

  • 128位密钥扩展为44个32位字(176字节)
  • 扩展规则:W[i] = W[i-4] ⊕ T(W[i-1])(当i mod 4 = 0时)
  • T函数包括:字节代换、行移位、与轮常量异或

S盒构造

  • 通过有限域GF(2⁸)上的乘法逆元运算构建
  • 再经过仿射变换得到最终S盒

SM4对称加密算法详细过程

基本参数

  • 密钥长度:128位
  • 分组长度:128位
  • 轮数:32轮

加密过程

  1. 密钥扩展

    • 128位加密密钥经密钥扩展算法生成32轮轮密钥
    • 扩展过程:MK(主密钥)+ FK(固定参数)→ 32轮轮密钥
  2. 32轮迭代

    • 将128位明文分为4个32位字(X₀, X₁, X₂, X₃)
    • 每轮计算:Xᵢ₊₄ = Xᵢ ⊕ T(Xᵢ₊₁ ⊕ Xᵢ₊₂ ⊕ Xᵢ₊₃ ⊕ RKᵢ)
    • T变换包括:S盒代换、线性变换
  3. 反向输出:32轮后,将最后4个字反向组合成密文

T变换

  • 非线性部分:S盒代换,由4个8×8的S盒组成
  • 线性部分:L变换,执行8次移位和异或操作

RC4流密码详细过程

初始化

  1. 创建256字节的S盒,并初始化为0-255
  2. 使用密钥填充256字节的临时数组T
  3. 用密钥对S盒进行初始置换

密钥流生成

  1. i=0, j=0
  2. i = (i + 1) mod 256
  3. j = (j + S[i]) mod 256
  4. 交换S[i]和S[j]
  5. t = (S[i] + S[j]) mod 256
  6. K = S[t],作为密钥流字节

加密:明文字节与密钥流字节进行异或得到密文

2. 非对称加密算法

RSA算法详细过程

密钥生成

  1. 随机选择两个大素数p和q(通常为1024位以上)
  2. 计算n = p × q
  3. 计算欧拉函数φ(n) = (p-1)(q-1)
  4. 选择整数e(1 < e < φ(n)),使得gcd(e, φ(n)) = 1
  5. 计算d,使得d × e ≡ 1 (mod φ(n))
  6. 公钥:(e, n),私钥:(d, n)

加密过程

  1. 将明文M转换为整数(M < n)
  2. 计算密文C = Mᵉ mod n

解密过程

  1. 计算明文M = Cᵈ mod n

实际应用中的填充方案

  • PKCS#1 v1.5:添加固定格式的填充
  • OAEP(最优非对称加密填充):使用随机数和哈希函数进行填充

SM2椭圆曲线密码算法详细过程

基本参数

  • 素数域p
  • 椭圆曲线方程:y² = x³ + ax + b (mod p)
  • 基点G(阶为n的点)
  • 私钥d(1 < d < n-1)
  • 公钥P = dG

密钥生成

  1. 随机选择私钥d ∈ [1, n-1]
  2. 计算公钥P = dG

加密过程

  1. 选择随机数k ∈ [1, n-1]
  2. 计算C₁ = kG = (x₁, y₁)
  3. 计算t = kP = (x₂, y₂)
  4. 计算E = h(x₂||y₂) ⊕ M(h为哈希函数)
  5. 计算C₂ = SM3(x₂||M||y₂)
  6. 密文为(C₁, C₂, E)

解密过程

  1. 从C₁恢复t = dC₁
  2. 从E恢复M = h(x₂||y₂) ⊕ E
  3. 验证C₂ = SM3(x₂||M||y₂)

签名过程

  1. 计算e = SM3(Z || M),其中Z为用户身份标识
  2. 选择随机数k ∈ [1, n-1]
  3. 计算(x₁, y₁) = kG
  4. 计算r = (e + x₁) mod n
  5. 计算s = (1 + d)⁻¹(k - rd) mod n
  6. 签名为(r, s)

验证过程

  1. 验证r, s ∈ [1, n-1]
  2. 计算e = SM3(Z || M)
  3. 计算R = sG + (s + e)P
  4. 验证r = (e + x_R) mod n

ECC(椭圆曲线密码学)基本原理

椭圆曲线加法

  • 点加:P + Q = R
  • 点倍:2P = P + P
  • 无穷远点O作为加法单位元

有限域上的椭圆曲线

  • 素数域:y² = x³ + ax + b (mod p)
  • 二进制域:y² + xy = x³ + ax² + b (mod 2^m)

ECC安全性基础

  • 椭圆曲线离散对数问题(ECDLP)
  • 给定点P和Q = kP,求k在计算上是困难的

3. 哈希算法

MD5算法详细过程

基本参数

  • 输出长度:128位
  • 分组长度:512位
  • 轮数:4轮(每轮16步)

处理过程

  1. 填充:添加1后跟0,使长度≡448 mod 512
  2. 添加长度:附加64位原始消息长度
  3. 初始化MD缓冲区:A=0x67452301, B=0xEFCDAB89, C=0x98BADCFE, D=0x10325476
  4. 处理512位分组
    • 将分组分为16个32位字
    • 4轮处理,每轮16步
    • 每步使用不同的非线性函数F和常数T
    • 步骤:a = b + ((a + F(b,c,d) + X[k] + T[i]) <<< s)

非线性函数

  • 第1轮:F = (b & c) | ((~b) & d)
  • 第2轮:F = (b & d) | (c & (~d))
  • 第3轮:F = b ^ c ^ d
  • 第4轮:F = c ^ (b | (~d))

SHA-1算法详细过程

基本参数

  • 输出长度:160位
  • 分组长度:512位
  • 轮数:80步

处理过程

  1. 填充:添加1后跟0,使长度≡448 mod 512
  2. 添加长度:附加64位原始消息长度
  3. 初始化:h₀=0x67452301, h₁=0xEFCDAB89, h₂=0x98BADCFE, h₃=0x10325476, h₄=0xC3D2E1F0
  4. 处理512位分组
    • 将分组分为16个32位字W₀-W₁₅
    • 扩展为80个字:Wt = (Wt-3 ⊕ Wt-8 ⊕ Wt-14 ⊕ Wt-16) <<< 1
    • 80步处理,每步更新五个工作变量a,b,c,d,e
    • 步骤:TEMP = (a <<< 5) + f(b,c,d) + e + Wt + Kt
    • 更新:e=d, d=c, c=b<<<30, b=a, a=TEMP

非线性函数与常数

  • 0-19步:f = (b & c) | ((~b) & d), K=0x5A827999
  • 20-39步:f = b ^ c ^ d, K=0x6ED9EBA1
  • 40-59步:f = (b & c) | (b & d) | (c & d), K=0x8F1BBCDC
  • 60-79步:f = b ^ c ^ d, K=0xCA62C1D6

SM3哈希算法详细过程

基本参数

  • 输出长度:256位
  • 分组长度:512位
  • 轮数:64轮

处理过程

  1. 填充:添加1后跟0,使长度≡448 mod 512
  2. 添加长度:附加64位原始消息长度
  3. 初始化:A=7, B=4, C=1, D=2, E=1, F=2, G=8, H=8(初始向量)
  4. 处理512位分组
    • 将分组分为16个32位字
    • 扩展为68个字:Wt = P1(Wt-16 ⊕ Wt-9 ⊕ ROTL(Wt-3,15)) ⊕ ROTL(Wt-13,7) ⊕ Wt-6
    • 64轮处理,每轮使用不同的非线性函数和常数
    • 每轮更新8个32位工作变量

P0、P1函数

  • P0(X) = X ⊕ ROTL(X,9) ⊕ ROTL(X,17)
  • P1(X) = X ⊕ ROTL(X,15) ⊕ ROTL(X,23)

4. 数字签名技术

数字签名过程

  1. 发送方对原始数据用哈希函数(如SM3)生成摘要
  2. 用自己的私钥对摘要进行加密,得到数字签名
  3. 将原始数据和数字签名一起发送给接收方
  4. 接收方用发送方的公钥对签名进行解密,得到摘要A
  5. 接收方对收到的原始数据用同样的哈希函数生成摘要B
  6. 比较摘要A和摘要B,如果相同,则签名有效

典型数字签名算法

  • RSA签名:基于RSA加密算法
  • DSA:仅用于签名,不能加密
  • ECDSA:基于椭圆曲线的签名算法
  • SM2:国密算法,包含签名、密钥交换和加密功能

5. 密码操作模式

ECB (电子密码本) 模式

  • 工作原理:将明文分成固定长度的块,每个块独立加密
  • 特点
    • 相同明文块产生相同的密文块
    • 不需要初始化向量(IV)
    • 容易受到模式分析攻击
  • 应用场景:适合加密短消息或密钥,不适合加密大量数据
  • 安全风险:明文模式在密文中可见

CBC (密码分组链接) 模式

  • 工作原理:每个明文块与前一个密文块进行异或后再加密
  • 特点
    • 相同明文块在不同位置产生不同密文块
    • 需要初始化向量(IV)
    • 错误传播:单个比特错误影响当前块和下一个块
  • 应用场景:广泛用于文件加密、SSL/TLS
  • 安全优势:隐藏明文模式

CFB (密文反馈) 模式

  • 工作原理:将前一个密文块加密后与明文异或得到当前密文
  • 特点
    • 可以处理流数据
    • 需要初始化向量(IV)
    • 错误传播:单个比特错误影响多个后续块
  • 应用场景:实时数据加密,如卫星通信
  • 优势:可以将块加密算法转换为流加密

OFB (输出反馈) 模式

  • 工作原理:生成一个密钥流,明文与密钥流异或得到密文
  • 特点
    • 不受密文传输错误影响
    • 需要初始化向量(IV)
    • 相同IV和密钥会产生相同密钥流
  • 应用场景:卫星通信、有噪信道
  • 优势:错误不会传播

CTR (计数器) 模式

  • 工作原理:使用计数器生成密钥流,明文与密钥流异或
  • 特点
    • 可并行处理
    • 不受传输错误影响
    • 需要唯一计数器值
  • 应用场景:高性能要求的加密,如硬盘加密
  • 优势:高效,可随机访问

三、网络安全技术

1. 网络安全体系

网络安全体系特征

  • 整体性:各安全组件协同工作
  • 协同性:不同安全措施相互配合
  • 过程性:安全管理是持续过程
  • 全面性:覆盖所有安全方面
  • 适应性:能够应对新的安全威胁

2. 访问控制模型

自主访问控制模型(DAC)

  • 特点:基于主体的访问控制
  • 实现方式
    • 基于行:能力表、前缀表
    • 基于列:访问控制列表(ACL)、保护位
  • 特点:灵活性高,但难以统一管理

强制访问控制模型(MAC)

  • 特点:基于安全标记的访问控制
  • 典型模型
    • BLP模型:保护信息机密性,”不上读,不下写”
    • Biba模型:保护信息完整性,”不下读,不上写”
  • 实现方式:安全标签、访问矩阵

基于角色的访问控制模型(RBAC)

  • 特点:通过角色关联权限和用户
  • 核心组件
    • 用户:系统中的实体
    • 角色:权限的集合
    • 权限:对客体的操作权
  • 优点:简化权限管理,支持最小特权原则
  • 特殊属性:同时具有强制访问控制和自主访问控制的属性,是当前最常用的访问控制模型

3. 防火墙技术

防火墙类型

  1. 包过滤路由器:基于IP/TCP/UDP头信息过滤
  2. 双宿主机:具有两个网络接口的堡垒主机
  3. 屏蔽主机:包过滤路由器+堡垒主机
  4. 屏蔽子网:两个路由器+DMZ区域

防火墙性能指标

  • 单位时间内建立的TCP连接数量
  • 每秒处理的数据包数量
  • 并发连接数
  • 吞吐量

DMZ结构

  • 隔离区(DMZ):放置对外服务的服务器
  • 内部网络:保护内部资源
  • 外部网络:互联网
  • 两层防火墙:外部防火墙过滤入站流量,内部防火墙过滤DMZ到内部网络流量

华为防火墙设置指令

  • 基本ACL:基于源IP地址进行过滤

    1
    2
    3
    acl number 2000
    rule 5 permit source 192.168.1.0 0.0.0.255
    rule 10 deny source any
  • 高级ACL:基于源/目的IP、协议、端口等多条件过滤

    1
    2
    3
    acl number 3000
    rule 5 permit tcp source 192.168.1.0 0.0.0.255 destination 10.0.0.2 0 destination-port eq www
    rule 10 deny ip source any destination any

4. 隧道协议技术

二层隧道协议

  • PPTP:早期远程拨号接入,存在安全漏洞
  • L2TP:PPTP和Cisco L2F的结合,通常与IPsec结合使用

三层隧道协议

  • IPsec
    • AH(认证头):提供数据源认证和完整性校验
    • ESP(封装安全载荷):提供机密性、认证和完整性
    • IKE(互联网密钥交换):用于建立安全关联
    • 传输模式:只加密IP载荷
    • 隧道模式:加密整个IP包
  • GRE
    • 通用路由封装
    • 通常与IPsec结合使用(GRE over IPsec)

应用层隧道协议

  • SSL/TLS VPN
    • SSL VPN代理:通过浏览器访问特定应用
    • 全隧道SSL VPN:建立完整网络连接
  • OpenVPN
    • 基于OpenSSL库
    • 配置灵活,可穿越NAT和防火墙
  • WireGuard
    • 现代、高速、简洁的VPN协议
    • 代码量少,性能高
    • 使用UDP传输
  • SSH隧道
    • 本地端口转发:将本地端口流量通过SSH隧道转发
    • 远程端口转发:将远程端口流量通过SSH隧道转发

根据VPN用途分类

  1. 远程访问VPN (Access VPN)

    • 为远程用户提供安全接入企业内部网络
    • 适用于移动办公、远程工作者
  2. 站点到站点VPN (Intranet VPN)

    • 连接企业内部不同物理位置的网络
    • 适用于企业总部与分支机构互联
  3. 基于特定协议的VPN

    • 如SSL VPN、IPsec VPN等
    • 依据底层协议实现方式分类
  4. 基于特定用途的VPN

    • Extranet VPN:连接企业与合作伙伴网络
    • Intranet VPN:连接企业内部网络

四、安全协议与认证

1. AAA认证体系

  • 认证(Authentication):验证用户身份
  • 授权(Authorization):确定用户可使用的网络服务
  • 计帐(Accounting):记录用户使用情况,用于计费

2. Kerberos认证协议

Kerberos系统组成

  • Client:请求服务的客户端
  • Server:提供服务的服务器
  • KDC:密钥分发中心
    • AS:认证服务器
    • TGS:票据授予服务器

认证过程

  1. 初始认证

    • Client向AS请求TGT
    • AS验证Client身份,返回TGT和会话密钥
  2. 获取服务票据

    • Client用TGT向TGS请求服务票据
    • TGS验证TGT,返回服务票据ST和会话密钥
  3. 访问服务

    • Client用ST向Server请求服务
    • Server验证ST,提供服务

票据类型

  • TGT(票据授予票据):用于获取服务票据
  • ST(服务票据):用于访问具体服务

3. RADIUS协议

  • 远程认证拨号用户服务
  • 特点:客户端/服务器架构,基于UDP
  • 端口:认证1812,计费1813
  • 应用:网络接入认证、授权和计费

4. 无线网络认证技术

  • WEP:单向认证+弱加密,已不安全
  • WPA/WPA2:双向认证+AES加密
  • WAPI:中国标准,双向认证+SM4加密
    • WAI:鉴别模块,使用非对称密码算法(SM2)进行身份认证
    • WPI:保密模块,使用对称密码算法(SM4)进行加解密

5. 邮件收发协议

  • SMTP (Simple Mail Transfer Protocol):用于发送邮件

    • 端口:25
    • 特点:基于文本,明文传输(可使用STARTTLS加密)
  • POP3 (Post Office Protocol version 3)

    • 端口:110
    • 特点:将邮件下载到本地客户端,服务器通常不再保留
    • 安全增强:POP3S(加密版本,端口995)
  • IMAP (Internet Message Access Protocol)

    • 端口:143
    • 特点:在服务器上管理邮件,可在多设备间同步
    • 安全增强:IMAPS(加密版本,端口993)

五、安全威胁与防御

1. 攻击分类

主动攻击

  • 数据篡改:修改传输中的数据
  • 恶意代码植入:病毒、木马、勒索软件
  • DDoS攻击:大量请求导致服务不可用
  • 特点:难以防止但可检测

被动攻击

  • 网络监听:截获通信内容
  • 流量分析:分析通信模式
  • 密码嗅探:捕获密码明文
  • 特点:难以检测但可预防

2. APT攻击步骤

  1. 情报收集:收集目标信息
  2. 初始入侵:利用漏洞进入系统
  3. 建立据点:安装后门,维持访问
  4. 权限提升:获取更高权限
  5. 横向移动:在网络中扩散
  6. 数据收集与外传:窃取敏感数据
  7. 持续化驻留:长期保持访问

3. 入侵检测技术

误用检测方法

  • 基于规则:Snort、Suricata
  • 基于迁移状态:STAT、USTAT
  • 基于模式匹配:ClamAV
  • 基于专家系统:MIDAS、IDES
  • 基于协议分析:现代IDS

异常检测方法

  • 基于统计:分析正常行为模式
  • 基于模式预测:预测未来行为
  • 基于文本分类:识别异常文本
  • 基于贝叶斯推理:概率分析

入侵检测系统类型

  • HIDS (主机入侵检测系统)

    • 部署在主机上,监测主机活动
    • 可以检测本地攻击行为
    • 不能检测网络层攻击
    • 优点:对主机内部活动了解更详细
    • 缺点:难以管理大规模部署
  • NIDS (网络入侵检测系统)

    • 部署在网络边界或关键位置
    • 监测网络流量
    • 无法检测主机内部的攻击行为,如远程口令破解(但可以检测缓冲区溢出)
    • 优点:对网络流量有全局视图
    • 缺点:不能检测加密流量
  • DIDS (分布式入侵检测系统)

    • 多个IDS组件分布在不同位置
    • 通过协同工作检测分布式攻击
    • 可以检测跨多个系统的攻击行为
    • 优点:增强对分布式攻击的检测能力
    • 缺点:部署和管理复杂

Snort规则的组成

Snort规则由规则头部和规则选项两部分组成:

  1. 规则头部:定义规则的基本属性

    • 规则动作(alert, log, pass, activate, dynamic)
    • 协议(tcp, udp, icmp, ip)
    • 源/目的IP地址和端口
    • 方向操作符(-> 表示方向)
  2. 规则选项:定义规则的具体行为

    • 消息:alert时显示的信息
    • 内容:匹配数据包内容
    • 标志:TCP标志位匹配
    • 端口:源/目的端口匹配
    • 其他:多种检测条件

示例规则:

1
alert tcp any any -> $HOME_NET 80 (msg:"WEB-MISC phf access"; content:"/cgi-bin/phf"; nocase; sid:1001; rev:1;)

4. 恶意代码分析

  • 静态分析:不运行代码,直接分析
  • 动态分析:在受控环境中运行并监控
    • 系统行为监控
    • 文件监控
    • 网络监控

5. 恶意代码技术分类

  • 进程注入技术:将代码注入到其他进程中
  • 超级管理技术:绕过安全限制
  • 端口反向链接技术:建立对外连接
  • 缓冲区溢出技术:利用缓冲区溢出漏洞

6. 网络蠕虫传播方法

  1. 随机扫描:随机选择目标IP地址进行扫描
  2. 顺序扫描:按顺序扫描IP地址范围
  3. 选择性扫描:针对特定网络或主机进行扫描

六、安全管理与应急响应

1. 信息安全风险评估流程

“识别风险→分析风险→评价风险→处理风险”的闭环管理

具体步骤

  1. 资产识别
  2. 威胁识别
  3. 脆弱性识别
  4. 风险分析
  5. 风险评价
  6. 风险处理
  7. 持续监控

安全事件的风险值计算

  • 安全事件发生的可能性 = 脆弱性 × 威胁发生频率
  • 安全事件的风险值 = 安全事件发生的可能性 × 安全事件影响

2. 应急响应常用技术

  • 隔离:将受影响系统隔离
  • 取证:收集和保存证据
  • 恢复:恢复系统和数据
  • 分析:分析攻击原因和方式
  • 报告:编写应急响应报告

3. 容灾恢复等级

等级 核心特征 关键技术 RPO RTO
0级 无异地数据 磁带+货车 数天/周 数天/周
1级 介质异地转运 磁带+货车+计划 24小时以上 24小时以上
2级 电子传送 网络传输备份数据 数小时至1天 数小时至1天
3级 电子传送+备用站点 热备站点+异步复制 数小时 数小时
4级 活动二级站点 集群+同步/异步复制 数分钟至数小时 数分钟至数小时
5级 双中心 双向同步复制 0~数分钟 0~数分钟
6级 零数据丢失 分布式处理/集群 0 极低

4. PDRR模型

  • Protection:防御
  • Detection:检测
  • Response:响应
  • Recovery:恢复

5. 3R生存模型

  • Resistance:抵抗
  • Recognition:识别
  • Recovery:恢复

七、其他重要安全概念

1. 物理安全

物理隔离机制

  • 完全物理隔离:完全断开物理连接
  • 客户端隔离
    • 双硬盘技术
    • 单硬盘内外分区技术
  • 数据交换隔离技术
    • 信息摆渡技术
    • 空气间隙

物理隔离技术发展阶段

  1. 第一代:完全的物理隔离
  2. 第二代:硬件卡隔离
  3. 第三代:数据转播隔离
  4. 第四代:空气开关隔离
  5. 第五代:安全通道隔离

2. 电磁泄漏

  • TEMPEST技术:防范电磁辐射导致的信息泄露
  • 防护措施:屏蔽机房、滤波技术、干扰技术

3. 安全备份策略

  • 全备份:备份所有数据
  • 增量备份:备份自上次备份以来变化的数据
  • 差分备份:备份自上次全备份以来变化的数据
  • 镜像备份:实时同步备份

4. 常用网络端口

端口 协议 用途
21 FTP 文件传输
22 SSH 安全远程登录
23 Telnet 远程登录(明文)
25 SMTP 邮件传输
53 DNS 域名解析
80 HTTP Web服务
110 POP3 邮件接收
443 HTTPS 安全Web服务
500 IKE IPsec密钥交换
4500 IPsec NAT IPsec NAT穿透
50 ESP IPsec封装安全载荷
51 AH IPsec认证头
1433 SQL Server 数据库服务
3389 RDP 远程桌面
161 SNMP 网络管理

5. 私有IP地址范围

  • A类:10.0.0.0 ~ 10.255.255.255
  • B类:172.16.0.0 ~ 172.31.255.255
  • C类:192.168.0.0 ~ 192.168.255.255
  • 共享地址:100.64.0.0 ~ 100.127.255.255

6. 安卓系统架构

  • Linux内核层:提供基础功能和硬件驱动
  • 硬件抽象层(HAL):提供硬件接口
  • Android运行时
    • Dalvik虚拟机:早期Android使用的虚拟机
    • ART虚拟机:Android 5.0后使用的虚拟机,性能更高
  • 系统库层:提供C/C++库
  • 应用框架层:提供Java API
  • 应用层:用户可见的应用程序

文件格式

  • .dex:Dalvik/ART虚拟机可执行的文件格式
  • .apk:安卓应用的打包文件,包含.dex

八、国密算法体系

1. SM1

  • 类型:对称加密算法
  • 密钥长度:128位
  • 分组长度:128位
  • 特点:硬件实现,安全性等同于AES

2. SM2

  • 类型:非对称加密算法
  • 密钥长度:256位
  • 基础:椭圆曲线密码学
  • 用途:数字签名、密钥交换、加密

3. SM3

  • 类型:哈希算法
  • 输出长度:256位
  • 特点:安全性等同于SHA-256

4. SM4

  • 类型:对称加密算法
  • 密钥长度:128位
  • 分组长度:128位
  • 用途:无线局域网标准

5. SM7

  • 类型:对称加密算法
  • 密钥长度:128位
  • 分组长度:128位
  • 用途:非接触式IC卡应用

6. SM9

  • 类型:非对称加密算法
  • 特点:基于标识的密码系统
  • 用途:身份认证、密钥交换

九、网络安全管理框架

1. 网络信息安全管理5个阶段

  1. 识别:识别组织资产、风险和威胁
  2. 保护:实施安全控制措施
  3. 检测:持续监控安全事件
  4. 响应:对安全事件进行响应
  5. 恢复:从安全事件中恢复

2. 网络风险管理步骤

  1. 识别:识别资产、威胁和脆弱性
  2. 评估:评估风险可能性和影响
  3. 控制:实施风险控制措施
  4. 监控:持续监控风险状态

3. 蜜罐技术

  • 空系统:无实际服务的诱饵系统
  • 镜像系统:真实系统的副本
  • 虚拟系统:模拟真实系统的虚拟环境

4. 安全评估指标

  • RPO(Recovery Point Objective):可接受的最大数据丢失量
  • RTO(Recovery Time Objective):可接受的最大服务中断时间
  • MTD(Maximum Tolerable Downtime):最大可容忍停机时间

十、安全工具与技术

1. 网络扫描技术

端口扫描技术全面详解

(此处已包含在之前的完整笔记中,略)

2. ARP欺骗过程

(此处已包含在之前的完整笔记中,略)

3. SSL/TLS协议详解

(此处已包含在之前的完整笔记中,略)

4. IPsec协议详解

(此处已包含在之前的完整笔记中,略)

5. 常见安全事件与漏洞对应关系

漏洞分类

  1. 非技术性安全漏洞

    • 网络安全责任主体不明确
    • 网络安全策略不完备
    • 网络安全操作技能不足
    • 网络安全监督缺失
    • 网络安全特权控制不完备
  2. 技术性安全漏洞

    • 设计错误
    • 输入验证错误
    • 缓冲区溢出
    • 意外情况处置错误
    • 访问验证错误
    • 配置错误
    • 竞争条件
    • 环境错误

常见安全事件与漏洞对应关系

安全事件 对应漏洞 防御措施
SQL注入 输入验证错误 参数化查询、输入过滤、WAF
XSS攻击 输入验证错误 输出编码、内容安全策略
CSRF攻击 访问验证错误 CSRF令牌、SameSite Cookie
缓冲区溢出 编程错误 安全编码实践、边界检查
远程口令破解 认证机制缺陷 强密码策略、多因素认证、账户锁定
未授权访问 访问控制缺陷 最小权限原则、RBAC模型
信息泄露 配置错误 安全配置审核、敏感信息保护
会话劫持 会话管理缺陷 安全会话管理、HTTPS

6. Apache Web日志文件

  • 访问日志 (access.log)

    • 记录所有HTTP请求信息
    • 包含客户端IP、请求时间、请求方法、URL、HTTP状态码、响应大小等
    • 格式可自定义,通常为Common Log Format或Combined Log Format
  • 错误日志 (error.log)

    • 记录服务器运行中的错误信息
    • 包含错误级别、时间、错误消息、相关请求等
    • 帮助诊断服务器问题
  • 其他日志

    • 代理日志:记录通过Apache代理的请求
    • SSL日志:记录SSL/TLS连接相关信息
    • 自定义日志:根据需求配置的特定日志

十一、安全编码与实践

1. 安全编码原则

  • 最小权限原则:程序只拥有完成任务所需的最小权限
  • 防御性编程:假设所有输入都是恶意的
  • 输入验证:对所有输入进行严格验证
  • 输出编码:防止XSS等攻击
  • 错误处理:安全地处理错误,不泄露敏感信息

2. 常见安全漏洞

  • 缓冲区溢出:数据写入超过缓冲区容量
  • SQL注入:在SQL查询中插入恶意代码
  • XSS:在网页中注入恶意脚本
  • CSRF:跨站请求伪造
  • 命令注入:在系统命令中注入恶意代码
  • 不安全的直接对象引用:直接暴露内部对象

3. 安全开发流程

  1. 需求阶段:识别安全需求
  2. 设计阶段:设计安全架构
  3. 实现阶段:安全编码实践
  4. 测试阶段:安全测试和渗透测试
  5. 部署阶段:安全配置和监控
  6. 维护阶段:持续安全评估和更新

十二、总结与应试要点

1. 国密算法(重中之重)

  • SM1/SM4/SM7:对称加密,密钥和分组都是128位
  • SM2:非对称加密(基于ECC),用于签名/密钥交换/加密
  • SM3:哈希算法,输出256位

2. 对称加密

  • DES:56位密钥,64位分组,已不安全
  • 3DES:112/168位密钥,64位分组,速度慢
  • AES:128/192/256位密钥,128位分组,当前标准
  • SM4:国密对称加密算法

3. 非对称加密

  • RSA:基于大整数因子分解,密钥长(1024/2048位)
  • ECC/SM2:基于椭圆曲线,密钥短(160-256位),效率高
  • DSA:仅用于签名,不能加密

4. 哈希算法

  • MD5:128位输出,已不安全
  • SHA-1:160位输出,已不安全
  • SHA-2:SHA-256/384/512,当前标准
  • SM3:国密哈希算法,256位输出

5. 数字签名

  • 过程:哈希→私钥加密→发送
  • 验证:公钥解密→哈希比对
  • 算法:RSA、DSA、ECDSA、SM2

6. 安全协议

  • Kerberos:基于票据的认证协议
  • IPsec:网络层安全协议
  • SSL/TLS:传输层安全协议

7. 安全模型

  • DAC:自主访问控制
  • MAC:强制访问控制
    • BLP:保护机密性
    • Biba:保护完整性
  • RBAC:基于角色的访问控制(同时具有强制访问控制和自主访问控制属性)

十二、案例分析

1.安全配置

Windows安全配置

  1. 默认情况下,终端服务接入服务器时,登录对话框中会显示上次登录的账号名。为增强系统安全,通过修改注册表,将
    HKLM\software\MicrosoftIWindowsNT\CurrentVersion\winlogon\DontdisplayLastUserName下的REG_SZ的键值改成多少?
    alt text
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
问题1:请写出查看计算机上的用户帐号列表的命令
net user / net users

问题2:请写出创建一个用户名为51cto$,口令是123456的命令
net user "51cto$" "123456" /add
用户名 51cto$ 包含特殊字符 $(在命令行中 $ 是环境变量符号),必须用双引号包裹整个用户名和密码,否则系统会报错(如 The user name could not be found)


问题3:此时是否能够使用问题1中的net命令查看到刚刚创建的51cto$用户?为什么?
不能;用户名最后用$符号,则创建的用户是隐藏用户,不可以单纯使用net user 查看

问题4:管理员账号Administrator对应图4-1注册表中Users键值下的哪一项?
默认情况下 Users键值下的000001F4是管理员账号Administrator,(000001F5是Guest账号)

问题5:图4-1中,51cto$账号对应Users键值下的000003F0,若需要将51cto$账号克隆为管理员账号,需要复制管理员账号的哪个键值?
F (细节)

问题6:使用克隆账号登入到该计算机,使用什么命令查看当前用户的有效用户名?
whoami

1:启用该策略,不显示上次登录的用户名。
0(默认值):显示上次登录的用户名。


  1. 某公司安全管理员小工针对针对公司中的两个连接了VPN的电脑PC1和PC2进行巡查,图3-1是PC1的windows系统中”事件查看器”的事件截图,图3-2为图3-1中第二条事件(红框标记)的详细信息:图3-3是PC2的网络抓包经过某条件语句过滤后的截图。

alt text

alt text

alt text

  • 问题1:Windows 日志类型,及其查看方式
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1.系统日志:驱动加载失败、系统服务启动异常、硬件错误。
2.安全日志:登录成功/失败、权限变更、策略修改、文件访问审计(需提前配置审核策略)。
3.应用程序日志:软件崩溃、许可证错误、应用服务启动失败


打开事件查看器:eventvwr.msc


# 查看应用程序日志(最新 10 条)
Get-EventLog -LogName Application -Newest 10

# 查看安全日志(按事件 ID 筛选)
Get-WinEvent -LogName Security | Where-Object {$_.Id -eq 4624} # 4624=成功登录

# 查看系统日志(按时间筛选)
Get-WinEvent -LogName System -After (Get-Date).AddHours(-24) # 过去24小时

  • 问题2:图3-1的事件ID为4650,请结合任务类别,判断导致上述日志的最有可能的情况。
    备选项:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
A.IPSec主模式协商失败 B.建立了IPsec主模式安全关联
C.IPsec主模式安全关联已结束D.IPSec采用了传输模式成功

4650
IPsec主模式
主模式安全关联已建立
(协商成功)

4651
IPsec传输模式
传输模式安全关联已建立
(协商成功)

4652
IPsec主模式
主模式协商失败

4653
IPsec传输模式
传输模式协商失败

4654
IPsec主模式
主模式安全关联已删除(结束)

4655
IPsec传输模式
传输模式安全关联已删除
(结束)

  • 问题3:安全事件中的任务类别中IPSec是一种VPN,VPN提供的安全服务主要包括哪些?
1
2
3
4
5
6
7
8
9

(1)IPsec VPN 是属于三层协议隧道技术,网络层VPN
(2)远程连接服务,数据加密传输

VPN主要的安全服务有以下3种:
保密性服务( Confidentiality):防止传输的信息被监听;
完整性服务( lntegrity):防止传输的信息被修改;
认证服务( Authentication):提供用户和设备的访问认证,防止非法接入。

  • 问题四:请写出建立VPN连接的两端ip地址
1
2
src: 192.168.0.96
dst: 218.87.227.2
  • 问题五:如果要在Wireshark当中过滤出如图3-3的流量分组,请写出在显示过滤框中应输入的过滤表达式。
1
2
3

图中的所有分组都ip地址172.16.14.253有关,所以可以设定ip.addr == 172.16.14.253来过滤。

  • 问题六:通过图3-3的分组分析,
    网工认为PC2的这些分组是通过L2TP封装了的,但依然存在安全风险,该风险针对的是三大安全目标即保密性、完整性、可用性中的哪个
1
保密性
  • 问题七:根据第二条事件(红框标记)的详细信息图3-2,可以判断是PC1通过12tpoveripsec
    :VPN连接到对端,请写出你的判断依据?
1
2
L2TP采用专用的隧道协议,该协议运行在UDP的1701端口,图3-2中描述的端口号是1701,
另外通过前面描述的!PSec主模式以及<Dala Name=EspAuhTvpe>%6%16393</Data>可以判断是通过IPSec提供加密服务。

Linux安全配置

  1. 在网络信息化环境中,资源不是无限制开放的,而是在一定约束条件下,用户才能使用。一种技术。访问控制是几平所有系统都雲要用到的-访问控制通常按用户身份及其所归属的某项定义组来限制用户对某些信息项的访问,或限制对某些控制功能的使用的一种技术。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34

为适应不同应用场景的访问控制需求,访问控制参考模型不断演变,形成各种各样的访问控制模型,主要有自主访问控制模型、强制访问控制模型、
基于角色的访问控制模型、
基干属性的访问控制模型等。
(1)适合用于操作系统、数据库系统的资源访问的控制模型有:
(2)适合于分布式网络环境和Web服务的模型访问控制模型有:

(1) 基于角色的访问控制模型, 自主访问控制模型, 强制访问控制模型
(2) 基于属性访问控制模型


某linux主机上可以看到如下所示的信息: -rwxr-x--- 1root bin 3853 Aug 105:49 javac
则表明采用此种保护位方案的访问控制模型是:(3)
基于角色的访问控制模型(错误) 基于列的访问控制模型(白名单)


某公司的部分重要资料部署在Apache服务器的Nana/secret日录下,要求只有公司内部的研发部门可以访问,研发部门的子网是172.28.31.0/24,则信息安全工程师应该在Apache的
配置文件(4)中进行修改,文件中的控制配置如下所示,请根据要求补充完整。
<Directory /yanfa/secret>
<Limit GET POST>
deny from (5)
allow from(6)
</Limit>
</Directory>

(5) all
(6) 172.28.31.0/24

Windows IIS FTP服务器提供了三种访问限制技术手段,分别是什么?
1.实现用户账号认证
2.匿名访问控制
3.IP地址限制


  1. 某公司的网站服务器系统为Linux/UNIX,李工作为公司的安全运维工程师,由于工作需要,需要随时随地对服务器远程开展处置工作。李工使用的PC的IP地址为192.168.1.23

alt text

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78

(1)李工可以通过两种远程方式访问服务器进行运维,请写出两种方式?
ssh telnet

(2)请写出上述两种通信协议的默认端口号。
ssh:22 telnet:23

(3)出于安全考虑,李工应该选择那种方式进行远程运维?
ssh

(4)请写出李工可以选择远程安全登录运维管理的开源工具。
OpenSSH

李亮通过SSH登入到服务后,执行cat /etc/passwd 命今点显示如图2-1的画面。文件中的一行记录对应着一个用户,每行记录用冒号(:)分隔为 7 个字段。


(1)第2个字段“X"表示用来验证用户合法性的口令,真正的口令存放在什么文件中?(写出完整路径和名称)
/etc/shadow

(2)请写出图2-1中权限最低的用户名称。
bin
(3)请写出图2-1中系统允许远程登陆的用户名称。
user1 user2 root


UID=0→ root(最高权限)
UID=1~999→系统账户(如 bin, daemon, sshd)
普通用户UID>1000

若:/bin/bash /bin/sh /usr/bin/zsh 等可交互 Shell → 允许登录
若:/sbin/nologin/bin/false→禁止登录


Linux中可通过/etc/hosts,allow和/etc/hosts,denv这两个文件分许和禁止远程丰机对本地服务的访问运维。李工对服务器的这两个进行配置,实现禁止除了李工之外的任何主机进行远程,
请写出在这两个文件中加入的配置。

在/etc/hosts.deny中加入sshd:all:deny(:deny可以不写)
在/etc/hosts.allow中加入sshd:192.168.1.23:allow(:allow可以不写)


李工通过网络安全监测对系统的网络活动和内部活动进行分析,获取系统当前的状态信息,以发现有可能的异常行为。
(1)李工需要查看系统的活动进程,可以使用什么命令查看?
ps

(2)李工需要查看系统中在线的用户信息,可以使用什么命令查看?
who

(3)李工需要查看系统中的地址解析缓存表,可以使用什么命令查看?
arp

(4)李工需要检查系统中进程使用的文件、tcp/udp端口、用户等相关信息,可以使用什么命令查看?
lsof


Linux服务器的日志文件可提供审计,有助于系统管理员及时发现系统入侵行为或系统安全隐患。
李工根据安全需求查看相关日志:
(1)查看每一次用户登录和注销的历史信息的日志文件是哪个?
(2)查看不良的登入尝试记录的日志文件是哪个?

(1)-(2)备选答案:
A. lastlog
B. loginlog
C.utmp
D.wtmp
E.sulog


审计机制是 UNIXinux系统安全的重要组成部分,审计有助于系统管理员及时发现系统入侵行为或系统安全隐患。不同版本的 UNIXLinux日志文件的目录是不同的,早期版本UNx的审计日志目录放在/usr/adm:较新版本的在/arladm; Solaris,Linux和BSD在 UNIXarlog。常见日志文件如下:lastlog:记录用户最近成功登录的时间;
·loginlog:不良的登录尝试记录;
·messages:记录输出到系统主控台以及由 syslog系统服务程序产生的消息;
·utmp:记录当前登录的每个用户;
·utmpx:扩展的utmp;
·wtmp:记录每一次用户登录和注销的历史信息;
·wimp:扩展的wmp;
·vold.log:记录使用外部介质出现的错误;
·xferkig:记录fp的存取情况,
·sulog:记录su命令的使用情况;
·acct:记录每个用户使用过的命令。