信息安全 - 安全架构与工程
一、安全设计原则与模型
安全设计原则
在系统开发项目的初期,就考虑安全的影响能降低实现安全控制的成本,我们在软件和硬件开发项目中要实现和管理如下原则。
1)最小权限:每个程序和系统用户都应该具有完成任务所必需的最小权限集合。比如不能为了简便给普通用户开放管理员权限
2)安全默认值-secure defaults:从不假设系统的默认设置是安全的,需要由管理员/安全人员基于组织的安全策略来完成系统的设置。
3)安全失效 - fail securely: 提供包括异常处理和输入校验在内的故障管理,将安全失效方案集成到系统中。
4)信任但要验证 - trust but verify: 一种传统的安全方法,信任组织安全边界以内的设备和主体。
5)保持简单 - keep it simple:避免让系统过于复杂,越复杂的系统越难以保护。
6)职责分离:细分特权,分配给多个主体,确保个体无法单独控制关键职能或系统
7)零信任- zero trust:组织内的任何事物都不会被自动信任,假设所有的活动都来自于未知和不可信任的位置,直到被验证。
8)隐私设计: Privacy by Design包含了具体的七原则,是一种通过将隐私保护嵌入到产品开发,业务流程及基础架构设计中的方法,具体请阅读这里。
9)深度防御 - defense in depth:使用多类安全措施保护同一个控制点。
安全模型
安全模型为设计人员提供了一种将抽象陈述映射到安全策略的方法,这种安全策略规定了构建软硬件需要的算法和数据结构。
1. 可信计算基 - TCB
来自于DoD定义的一个早期系统评估标准TCSEC。
TCB是硬件、软件和空间的组合,完整信息系统的子集,是系统中唯一可信任的部分,它遵守并执行安全策略。
TCB有一个参考监视器用于对资源访问进行授权验证,也被称为安全内核
安全边界-security perimeter是一个假想边界,隔开了TCB和系统的其他部分。
2. 状态机模型
状态是系统在特定时刻的快照,如果一个状态的各个方面都符合安全策略,那这个状态是安全的。如果一个系统的所有状态转换结构都是安全的,那这个系统就是安全状态机
3. 信息流模型
信息流模型是状态机模型的一个分支,它侧重于信息流动,旨在防止未授权的信息流。
BLP和Biba模型都是信息流模型
4. 非干扰模型
高安全级别主体的动作不应该影响低级别主体的动作。它提供了一种保护形式,可以防止特洛伊木马造成的损害
5. Take-Grant模型
定义的是如何将权限从一个主体传到到另一个主体。
假设主体A 有客体Z的访问权限, 而主体B当前没有客体Z的权限。
获取规则 - Take: B找A获取 Z的访问权限
授予规则 - Grant:A主动给予B 访问Z的权限
创建规则 - Create: A为自己在 Z上多创建一个权限,比如增加一个关机权限
删除规则 - Remove: A删除自己在 Z上的关机权限
6. 访问控制矩阵
利用基于主体和客体的表,定义每个主体对每个客体能执行的动作和功能
7. Bell-LaPadula模型 - BLP模型
DoD开发的模型用于保护机密性,原则是阻止低级别主体访问高级别客体
8. Biba模型
用于商业组织的模型,关注完整性,原则是阻止低级别主体修改高级别客体
BLP和Biba模型中的两个属性速记方式。 *属性总是关于写入, “简单”属性总是关于读取。
9. Clark - Wilson模型
主体无法直接访问客体,只能通过程序,接口来访问
实现职责分离。 是商业应用的常用模型
10. Brewer and Nash模型
使用数据隔离原则,管理员访问A数据集时,不能同时访问具有利益冲突的B数据
我觉得象SaaS中的管理员如果进入了Tenent A,就不能同时访问Tenent B的数据
系统评估
1. 通用准则 - CC (Common Criteria)
CC是一个全球认可的产品评估模型,在ISO 15408中定义。
1)目标
确保IT产品的评估有一致的高标注,增加购买者对已评估和评级的IT产品信心
消除重复评估,是安全评估和认证过程更具有效率
2) 两个要素
保护范畴-Protection Profile: 客户想要的安全要求和保护
安全目标 - Security Targets:供应商构建的安全声明
TOE-评价对象: PP+ST的组合。 评价过程就是对比 PP和ST
3)评估保证级别 - EAL, 总共分为七级
EAL-1: 功能测试
EAL-2:结构化测试
EAL-3: 系统性测试 - 看源代码
EAL-4: 系统性设计与测试 - 看设计
EAL-7正式的验证设计和测试
2. 操作授权- ATO - Authorization to Operation
RMF中使用ATO替代了原有的鉴定-Accrediation
ATO是一个官方认可,认为该系统风险达到了可接收程度,允许该IT系统进行业务运营并接受其已知风险。AO-Authorizing Offical是有权对IT系统及其操作和风险进行评估,并发布ATO的授权实体。
ATO只有在过期(一般是5年)或者该系统发生重大改变或发生重大安全入侵事件后才需重新获取。
二、信息系统的安全功能
1. 内存保护
1)隔离
2)虚拟内存
3)分段
4)内存管理
5)保护环 - 见下面的 3.1章节
2. 虚拟化
1)虚拟机管理程序
Type-I: 虚拟机管理程序直接安装在裸机上,用于支持服务器的虚拟化
Type-II:先在裸机上安装操作系统,虚拟机管理程序是操作系统上的一个应用。它用于支持桌面虚拟化,也就是我们经常在个人电脑上装虚拟机的方式。
2)VM逃逸保护 (VM escaping) 是指VM上的软件能破坏虚拟机管理程序提供的隔离保护,从而破坏其他容器或主机操作系统。
控制措施: 1-将高度敏感数据和系统部署在单独的物理机上; 2-及时更新虚拟机管理程序补丁;3-监控虚拟环境的攻击和滥用行为
3)虚拟机蔓延(VM Sprawl) 是指组织创建了过多的VM,导致管理复杂以及虚拟机资源浪费。需要通过建立和贯彻虚拟机创建及部署管理流程。
4)容器化-Containerization
VM是每个虚拟机都有自己独立的操作系统,而容器Container只包含应用所需要的真实资源(应用程序 + 依赖库), 而操作系统则有虚拟机管理程序统一提供。它能减少OS层面的浪费,提升硬件资源的利用率。
3. 可信平台模块
1)TPM-可信平台模块:是主板上一个单独的处理芯片,用于存储和加密密钥,支持硬盘加密系统,比如BitLocker。
2)HSM-硬件安全模块:是一种加密处理器,用于管理/存储数字密钥,加速加密操作、支持更快的数字签名。HSM通常是外接的设备。TPM是HSM的一种。 ATM/CA/SSL加速器/支持DNSSec的DNS服务器都是用HSM来进行密钥存储和计算。
4. 接口
在应用程序中实现受限接口,以限制用户执行操作。可以让没有权限的用户无法看到或无法使用接口,来约束未授权用户的操作。
三、不同信息系统的安全漏洞与威胁
硬件安全漏洞评估与缓解
1. CPU
1)保护环
操作系统有四个环的模型,最内层的环是环0,具有最高特权级别,操作系统中的内核占据环0.应用程序占据最外层的环3。中间是驱动程序和系统实用程序。
2)处理器操作模式
用户模式:CPU在执行用户应用程序的模式,该模式下,CPU只能执行部分指令,防止用户破坏系统
特权模式:只有操作系统本身组件的进程可以在该模式下执行,它能访问CPU支持的所有指令
2. 存储器
存储器最重要的安全问题是 控制使用过程中谁可以访问存储器中的数据
3. 存储介质
存储介质安全手段: 数据加密防止被盗; 数据净化防止敏感数据残留在停用的介质上。
安全架构设计中的常见缺陷
1. 缓冲区溢出
缓冲区溢出的原因是程序代码没有对输入和参数做严格检查,导致存储数据超出缓冲区尺寸大小。
溢出后的数据修改了函数的返回地址,导致函数返回时跳转去执行攻击者写入的恶意代码。
2. 维护钩子
维护钩子是进入系统的入口点,也叫后门。必须明确禁止此类入口,并监视审核日志,发现未经授权的管理员访问。
3. 状态攻击
TOCTOU攻击:利用检查时间和使用时间的窗口,替换资源,让对手可以访问到没有权限的资源。也叫竞争条件攻击。
基于客户端的系统
客户端上的本地缓存容易出现中毒
1. ARP缓存中毒
1)攻击者通过响应ARP广播查询返回伪造的回复,让受害者保留错误的ARP缓存
2)攻击者在本地通过脚本创建静态ARP记录
ARP中毒后客户端传输的数据被发送到非预期的系统,可能造成中间人攻击
2. DNS缓存中毒
1)通过攻击DNS服务器或DNS缓存服务器伪造DNS记录
2)DNS查询欺骗或者是伪造DNS服务器地址
3)修改本地HOSTS文件,创建静态的DNS解析记录
DNS中毒后,会将流量送到错误主机,进而发生中间人攻击
3. Internet文件缓存
利用拆分响应攻击,可能导致客户端下载恶意内容到缓存中,并被激活。
基于服务端的系统
主要关注数据流控制问题,防止数据传输泄密和数据传输可靠性。
DoS攻击可能对数据流控制造成严重危害
数据库系统安全
1. 聚合-Aggregation
通过收集大量低安全级别数据,组合成高级别的数据记录。比如财务通过对比两个月的工资总额,计算出本月唯一一位新加入员工的工资数额。
可以通过多实例或者噪音添加方式来防止聚合攻击
2. 推理-Inference
利用人类的思维推理能力,从低级别数据中获取出高级别的信息。比如财务通过对比两个月的工资总额,计算出本月唯一一位新加入员工的工资数额。
数据分区和数据混淆可以防止推理攻击。
分布式系统安全
1. 云服务
虚拟化仍然需要考虑补丁管理,并进行漏洞评估和渗透测试
云访问安全代理-CASB 能在云和本地组织之间实施适当的安全措施,它可以安装在本地或云侧。
需要理解云共享责任模型,知道如何在云厂商和组织之间如何分配、划分这些安全职责
2. 边缘计算与雾计算
边缘计算 - Edge Computing: 理念是将数据源和计算资源尽可能接近,以降低处理延迟。让执行数据收集的设备自己完成数据处理,而不是将源数据送往中心服务器统一处理。主要应用在工业物联网系统中。象CDN,智能汽车,视频会议系统,图像识别系统都是边缘计算的应用。
雾计算 - Fog Computing:将传感器,物联网设备收集到的信息,发送到一个本地网络中的集中式服务器进行处理。
物联网 - IoT
IoT指的是一类通过连接网络来提供自动化、远程控制的智能设备。
IoT设备的主要安全漏洞是缺乏足够的数据加密与访问控制。
控制措施:
1. 为IoT设备部署独立网络,把它与主网络进行隔离
2. 及时更新系统补丁;限制访问;监控所有行为;部署防火墙和网络过滤
移动设备
1. MDM - Mobile Device Management
管理员可以将用户移动设备注册到MDM系统中, UEM-Unified Endpoint Management是组织用于管理所有不同类型设备的控制软件,可以用于替代MDM。
MDM可以提供如下安全功能
1)远程数据擦除 - Remote Wiping: 远程擦除需要被盗设备联网。远程擦除后仍可能被攻击者进行数据恢复,所以要组合FDE共同使用,这样即使被恢复也是密文数据。
2)设备锁定 - Device Lockout: 不允许登录
3)GPS位置获取
Geotagging:是移动设备支持在该设备创建的媒体文件/贴文中附加位置信息的能力
4)应用控制 - Application Control
应用允许列表 - Application Allowing List: 限制用户只能安装组织认可的应用。防止设备感染恶意代码。
5)存储分隔 - Storage Segmentation
在设备中将公司数据和个人数据进行分开存储。
2. 设备加密 - Full Device Encryption
FDE能保证在锁屏情况下禁用设备的数据接口,保证设备数据安全
3. 移动设备部署策略
1) BYOD - 携带个人设备: 最不安全的方式,将组织的数据与资源暴露在个人设备中,也可能导致员工的个人数据意外暴露给组织
2)COPE - 组织拥有但个人使用设备:公司配置但允许员工同时用于工作和个人目的。
3)CYOD - 自选设备: 个人从组织认可的设备清单中选择并自行购买
工业控制系统 - ICS
ICS是一种控制工业过程和机器的计算机管理设备,包括分布式控制系统DCS,可编程逻辑控制器PLC,监控和数据采集SCADA。
ICS过去几乎没有考虑安全性,所以易受攻击,且并经常更新。
嵌入式系统
通常指围绕一组有限的特定功能设计的系统,是一个大系统的组成部分。
嵌入式系统的设计重点在于成本最小化和实现特别功能,导致安全性低。
安全控制措施:
1)网络分段,隔离嵌入式系统与其他系统;
2)使用防火墙
3)使用手动更新,防止未经测试的更新被引入
4)监控
5)控制冗余与多样性
四、恶意代码和应用攻击
恶意代码
1. 病毒
目的:传播与破坏
1)病毒传播技术
主引导病毒 - 感染MBR,系统启动时会将病毒加载到内存
文件程序感染病毒 - 感染不同类型的可执行文件
宏病毒 - 利用Office的宏功能传播的病毒
服务注入病毒 - 将恶意代码注入到可信的系统进程中,绕过反病毒软件的检测。
2)反病毒机制
特征检测 - 利用已知病毒库
启发式 - 分析软件行为,对可疑文件进行隔离和监控
3)病毒技术
复合病毒 - 使用多种传播技术的组合
隐形病毒 - 通过篡改操作系统来欺骗反病毒软件
多态病毒 - 传播过程中会修改自身代码,通过改变病毒特征来逃脱反病毒软件检测
加密病毒 - 使用加密技术来改变病毒特征
2. 逻辑炸弹
满足一个或多个逻辑条件时自动触发的恶意代码
3. 特洛伊木马
伪装为其他程序的恶意代码,比如勒索软件
4. 蠕虫
不需人为干预就可以自我传播的恶意代码
5. 间谍软件和广告软件
间谍软件监控用户动作,窃取用户敏感信息
广告软件强行展示广告
6. 零日攻击
如果恶意代码从发现到服务商发布补丁间有较长窗口期,或系统管理员未及时更新补丁,可能会发生零日攻击。
需要组合多重安全控制措施来共同方法,比如补丁管理程序 + 最新的反病毒软件 + 应用程序控制等
密码攻击
攻击者获得系统非法访问的最简单方法是:窃取已授权用户的账号和密码
1) 密码猜测攻击
通过用户名和用户基本信息猜测密码
2)字典攻击
使用预构建的字典文件中的词汇进行机密和匹配
彩虹表是字典攻击的一种,用于暴力破解散列密码。通过对散列加盐可以提升攻击难度。
3)社会工程学
Phishing - social engineering的一种,用于窃取信息
Spear Phishing --面向特定组织的网络钓鱼行为,通过提供部分真实信息让来源看起来非常可靠,诱导用户提供机密信息
应用程序攻击
1)缓冲区溢出 - 执行充分的用户输入验证
2)TOCTOU漏洞
3)后门 - 开发人员或恶意代码创建的后门
4)权限提升 - 使用rootkit提升权限到root级别。 通过及时更新补丁可以防止rootkit攻击
Web应用攻击
1) 跨站脚本-XSS:攻击者在可信网站的Web页面中嵌入恶意执行脚本。
控制措施:对用户输入执行验证,防止用户对网站页面输入脚本程序
2)跨站请求伪造 - CSRF:在第一个网站上嵌入代码,让用户点击链接时实际在往第二个网站发送命令
利用了用户对第一个网站的信任关系。
控制措施:在链接中嵌入安全令牌,并检查访问URL,只接受源自自己站点的请求。
3) SQL注入 - 在网站输入中输入特定SQL语句,利用Web服务器进行执行对数据库的攻击
控制措施: 1-通过参数化查询和存储过程限制执行的语句; 2-对用户输入执行输入验证;3-限制用户特权,只给Web服务器使用的数据库账号最小权限。
4) 服务器端请求伪造 - SSRF
攻击者访问Web服务器,然后构造一个由该服务器发起的请求,用于访问内网中的系统和资源。 比如:利用翻译网站的页面访问功能访问该公司内部的其他资源
5)会话劫持- Session Hijack
通过窃取客户端的有效sessionID,冒出用户和服务器端对话
控制措施:保护sessionID(不通过URL传输sessionID,使用httponly防止客户端脚本访问cookie获取sessionID), 防止xss攻击,使用TLS防止网络嗅探
侦察攻击与伪装攻击
1) 侦察
IP探测 + 端口扫描 + 漏洞扫描
控制措施: 禁用Ping + 禁用不必要的服务 + 为操作系统安装最新的补丁
2)伪装攻击
IP欺骗:攻击者让自己的系统具有可信系统的IP地址
控制措施: 对网络边界配置过滤,阻止使用内部IP作为源的外部数据进入网络; 阻止使用外部IP作为源的内部数据离开网络;阻止使用私有IP地址的包进入/离开网络。
会话劫持:拦截通信,伪装为可信服务器与客户端通信
控制措施:防重放身份验证 + Cookie失效
五、物理安全
站点设计的安全原则
1)安全设施计划(secure facility plan)列出组织的安全需求,并突出保障安全所需要的技术与方法。该计划可以通过关键路径分析(critical path analysis)过程来完成。
2)站点选择需要优先考虑安全需求
3)设施设计 - CPTED
CPTED: 通过环境设计来预防犯罪, 是一门学科,它研究如何正确设计通过通过直接影响人类行为而减少犯罪的物理环境。
CPTED(环境设计预防犯罪)实施了三种策略:自然访问控制、自然监视和自然区域加固。 自然访问控制使用路障和其他物理元素在安全和不安全之间创建分隔。自然监视设计的环境将潜在的入侵者暴露在合法居住者的自然审查之下。自然区域加固使用围栏、标记和其他元素来明确定义安全空间
物理安全的实现
1. 数据中心安全
1)物理访问控制:
使用智能卡或接近式读卡器,结合PIN一起做MFA
使用物理入侵检测系统,警报系统需配备心跳传感器做线路监控
配置保安或监控系统防伪装(masquerading)与捎带(piggybacking)
2) 审计踪迹与访问日志防止访问滥用
3)发射安全
电子设备发出的电信号或辐射可能会被非法监听
用于防护发射攻击的技术叫TEMPEST,包括法拉第笼(金属隔离网),白噪音(发射无线噪音隐藏真实电磁信号)与控制区(使用前两者技术来保护某个特定区域)
2. 基础设施与HVAC
1)湿度: 40%-60%, 低湿度可能会导致静电放电
2)水:数据中心需要远离水源或水管
3. 火灾与消防
1)灭火器类别与原理
灭火器只适用于早期阶段的火灾
水--降低温度减少热量; 干粉--阻断燃料供应; 二氧化碳或其他不可燃气体-抑制氧气供应
A类灭火器 - 适用于普通燃烧物 - 使用水或干粉
B类灭火器 - 适用于液态燃烧物 - 使用二氧化碳、碳酸钠
C类灭火器 - 适用于电气火灾 - 使用二氧化碳
D类灭火器 - 适用于金属火灾 - 使用干粉
2)火灾探测
火灾探头应有足够覆盖度,且需能自动通知当地消防部门请求援助
探测类型: 固定温度探测,温度上升率探测,火焰驱动,烟雾驱动
3)喷水消防系统
湿管系统:管中一直充满水
干管系统:管中充满了压缩气体,打开灭火功能气体释放,管中进水并喷洒
预动作系统:正常情况下是干管,检测到可能火灾后开始注水。等到热量足够高之后,开始喷淋。如果火灾快速扑灭,有可能通过人工干预方式阻止水管喷水。最适合人机共存的环节
4)气体消防系统
比喷水系统更有效,喷洒二氧化碳或者FM-200.适合没有人员常驻的机房使用
4. 边界控制
1)物理边界控制
围栏,门,旋转门(turnstiles),捕人陷阱(mantraps, 一种双门结构)
2)照明
照明是最常用的边界安全控制
3)安全警卫与警犬
安全警卫是昂贵的
5. 内部控制
设施内的控制方式通常做法是访客有专人陪同,所有活动受到密切监视。还有其它一些针对访客的措施
1)钥匙和密码锁
2)胸卡
3)动作探测器
红外动作探测 - 监视红外照明模式的变化
热量动作探测 - 监视热量级别和模式的变化
波动动作探测 - 向检测区域内发射低频超声或高频微波信号,并监视发射信号中的变化
电容动作探测 - 感知周围电场或磁场变化
光线动作探测 - 感知监视区域内可见光级别的变化
被动音频动作探测 - 监听是否有异常声响
4)入侵警报: 包括阻止警报,驱逐警报和通知警报
参考资料:
CISSP Official Study Guide - 第九版英文版 及 第八版中文版