计算机安全原理与实践
计算机安全原理与实践
1.概述
- 关键目标:机密性、完整性、可用性 CIA+ 真实性、可说明性
- 计算机中的资源:硬件、软件、数据、通信线路和网络
- 攻击形式:主动攻击、被动攻击、内部攻击、外部攻击
2.密码
攻击对称加密:密码分析、蛮力攻击
ECB(电子密码本、电话本)模式应用广泛:规律性、容易被破译
非对称加密:RSA、ECC(椭圆曲线密码加密)、Diffie-Hellman 密钥协议、数字签名标准(DSS)
3.用户认证
数字用户认证方法
- 四个认证方法:个人信息、物品(令牌)、生理特征(静态生物特征)、行为特征(动态生物特征)
- 三个风险评估独立概念:置信等级、潜在影响、风险范围
基于口令的认证
口令作用:口令系统是对于抵御入侵者应用最广泛的方法手段
用户ID的三个作用
- 决定了用户是否被授权访问系统
- 决定了该用户所拥有的的访问权限
- 应用在自主访问控制机制中
四个口令破解方法
可以通过设置足够大的盐值以及设置较长的散列值来进行对抗
- 字典攻击
- 彩虹表攻击
- 猜测较短、带有用户喜好的口令
- 开源口令破解器
应对措施
- 口令文件访问控制
- 使用入侵检测技术对不安全行为识别
- 重新设置不安全口令
- 口令的限制balabla
四种口令选择策略
- 用户教育
- 计算机生成口令
- 后验口令检查:系统周期性地运行自己的口令破解程序来找到容易被猜测到的口令
- 先验口令检查:选择密码的时候计算机进行检查—口令检查器、Bloom 过滤器
Salt目的
- 防止复制的口令在口令文件中可见
- 增加离线口令字典攻击难度
- 避免被发现用户使用多个同一口令
保护口令文件:影子口令文件
基于令牌的认证
- 智能卡与普通卡:
- 智能卡一般是指带有接触式或者非接触式芯片的卡
- 普通卡一般是指普通胶印印刷的卡片,磁条、不带芯片,不具有加密感应功能,电子接口
用户认证中的安全问题
- 窃听、主机攻击、重放、客户端攻击、特洛伊木马攻击、拒绝服务
4.访问控制
访问控制原理
访问控制:授予或拒绝下列特定要求的过程: (1) 获得并使用信息及相关信息处理服务;(2) 进入特定物理设施 。实现依据安全策略对使用系统资源进行控制,仅许可授权实体(用户、程序、进程或其他系统)依据该策略使用该系统资源。”用来实现和保证计算机系统的安全服务的措施,特别****是保证访问控制服务的措施。
自主访问控制 (DAC)
强制访问控制 (MAC)
基于角色的访问控制(RBAC)
基于属性的访问控制(ABAC)
主体:访问客体的实体
客体:外界对其访问受到控制的资源一个用来包含或接收信息的实体
访问权:描述了主体访问客体的方式
DAC
定义:指一个实体可以被授权按其自己的意志使另一个实体能够访问某些资源。
访问矩阵:矩阵中的每项表示一个特定主体对一个特定客体的访问权。
保护域:访问矩阵的规定,一行定义一个保护域
RBAC
约束:互斥角色、基数、先决条件角色
ABAC
- 优点:它的灵活性以及表达能力。
- 缺点:需要考虑每次访问对资源和用户属性的评价所造成的性能影响。
应用:web、XAMCL(可扩展的访问扩展语言)、云服务
ABAC系统能够实现 DAC、RBAC和 MAC 的思想。
属性
- 主体
- 客体
- 环境
策略:一组用来管理组织内部的允许行为的规则和关系,其基础是主体所具有的特权,以及在哪种环境条件下资源或客体需要被保护。
5.数据库与云安全
数据库管理系统
- 数据库:存储一个或多个应用所用的结构化数据集合
- DBMS(数据库管理系统):它是创建、维护数据 库的程序套件。为多个用户和应用提供特定的查询服务
- DDL(数据定义语言)
- DML(数据操纵语言)
关系数据库
关系数据库的基本构件是数据表
- 关系数据库的结构使得多个表通过在所有表中都出现的唯一标识符联系在一起
- 用户和应用通过关系查询语言来访问数据库—-SQL(结构化查询语言)
- 关系:表/文件 元组:行/记录 属性:列/字段
- 主键:用来唯一地标识表的一行 它由一个或多个列名组成
- 外键:在一个表中定义为主键的属性必须作为另一个表的属性出现
- 视图/虚表:视图是从一个或多个表中返回的选定行与列的查询结果,视图经常用于安全目的。
SQL 注入攻击
用途:修改或删除数据 、 执行任意操作系统命令 、启动拒绝服务(DoS)攻击
五个类型
- 用户输入
- 服务器变量:HTTP头部、网络协议头部、环境变量等
- 二阶注入
- cookie
- 物理用户输入
攻击分类
- 带内(inband)
- 重言: or 1==1
- 行尾注释
- 捎带查询
- 推理(inferential)
- 非法/逻辑错误查询:错误返回显示
- 盲SQL注入:错误无显示
- 带外(out-of-band)
- 检索信道
防御措施
- 防御性编码
- 手动防御性编码实践
- 参数化查询插入
- SQL DOM:
- 检测
- 基于签名
- 基于异常
- 代码分析
- 运行时阻断
- 在运行时检测查询是否与预期查询模型一致
数据库访问控制
DBMS管理策略
- 集中管理:特权用户
- 基于所有权的管理:创建者可以授予和回收该表的访问权
- 分散管理:创建者可以给其他用户授权
级联授权
基于角色的访问控制
将用户分为三类
- 应用程序属主
- 应用程序属主外的终端用户
- 管理员
能力
- 创建删除角色
- 定义角色的许可
- 分配和取消用户到角色的分配
数据库加密
缺点:
- 密钥管理:复杂
- 不灵活
6.恶意软件
定义
一种被(往往是秘密地)植入系统中,以损害受害者数据、应用程序或操作系统的机密性、完整性或可用性,抑或对用户实施骚扰或妨碍的程序。
分类
传播方式
工作方式、有效载荷
需要宿主:寄生代码、病毒
不需要宿主:蠕虫、木马、bot
可以复制:病毒、蠕虫
不可以复制:木马、垃圾邮件
APT
高级持续性威胁
- 高级:综合性程序
- 持续性
- 威胁
病毒
组成
- 感染机制:aka感染向量
- 触发条件:aka逻辑炸弹
- 有效载荷:
阶段
- 潜伏
- 触发
- 传播
- 执行
分类
- 依据目标
- 感染引导区病毒
- 感染可执行文件病毒
- 宏病毒
- 多元复合型病毒
- 依据隐蔽方式
- 加密型病毒
- 隐蔽型病毒
- 多态病毒
- 变形病毒
蠕虫
传播方式
- 电子邮件或即时通信工具
- 文件共享
- 远程执行能力
- 远程文件访问或传输能力
- 远程登录能力
扫描发现方式
扫描
随机式探索:大量流量,容易被提前中断
黑名单
拓扑式探索
本地子网
特点
- 多平台
- 多种攻击手段
- 超快速传播
- 多态
- 变形
- 其他恶意代码的传输载体
- 0-day攻击
客户端漏洞和路过式下载(夹带式下载)
利用应用程序中的缺陷( bug)来安装恶意软件。使得当用户浏览一个受攻击者控制的Web页面时,该页面包含的代码会攻击该浏览器的缺
陷并在用户不知情或未允许的情况下向系统安装恶意软件。等待那些无防备的用户浏览恶意的 Web页面来传播
- 变种—水坑式攻击:攻击者通过研究他们意图攻击的目标,确定他们可能要浏览的Web站点,然后扫描这些站点找出那些含有能让他们植入夹带式下载的漏洞。
其他
社工
- 垃圾邮件
- 特洛伊木马
- 手机木马
Bot
IRC—->HTTP
- 与蠕虫的区别是:在于是否具有远程控制能力
蠕虫是自我复制并自我激活
bot是由某种形式的指挥控制服务器网络控制的
对抗手段
恶意软件预防措施的四个要素
- 规则
- 警惕性
- 弥补弱点
- 缓解威胁
预防失败的缓解三个措施
- 检测
- 识别
- 清除
反病毒软件的发展划分
- 简单的扫描:通配符、特征码
- 启发式扫描器:另一种方法是完整性检查–校验和
- 活动陷阱:内存驻留程序识别病毒行为
- 全面保护:沙箱分析设计最困难的部分是确定执行每次解释(interpretation)所需的时间
方法
- 杀毒软件
- 砂箱分析
- 基于主机的行为阻断软件
- 间谍软件的检测和清除
- 边界扫描方法
- 入口监控软件
- 出口监控软件
- 分布式情报收集方法
7.拒绝服务攻击
定义
DOS攻击是指利用网络协议漏洞或其它系统以及应用软件漏洞耗尽被攻击目标CPU、内存、带宽、磁盘等系统资源,使得被攻击的计算机网络无法正常提供服务,直至系统停止响应甚至崩溃的攻击方式
攻击对象
- 网络带宽
- 系统资源
- 应用资源:web
泛洪攻击
目标:占据所有到目标组织的网络连接的容量
分类
- ICMP泛洪水
- UDP泛洪
- TCP SYN泛洪:与SYN欺骗区别:攻击的对象是数据包的总量而不是目标系统上的网络处理程序
SYN欺骗
目的:系统资源;通过造成服务器上用于管理TCP连接的连接表溢出,从而攻击网络服务器响应TCP连接请求
分布式拒绝服务攻击DDOS
- 攻击者
- 执行者(Zombie)
- 代理端(Zombie):执行与代理通信加密 by IRC
基于应用的带宽攻击
- SIP洪洪
- HTTP洪泛攻击
- Slowloris(Based on https):半开耗尽原理、不完整的HTTP请求(合理的HTTP流量)、现有依赖特征检测的入侵检测和入侵防御手段无法识别出Slowloris
防范
延迟绑定、关键比特提取分析
反射攻击与放大攻击
利用网络服务系统的正常功能
- 反射攻击:防范:过滤数据包、小流量—>大流量、构建回路死循环、DNS、UDP,成功的要求:生成带有虚假源地址的数据包
- 放大攻击:防范:防止使用虚假地址;泛洪、Smurf(ICMP)Fraggle(UDP)广播数据包—–不能用TCP,TCP面向连接无广播、DNS
防范
不可能完全预防DoS攻击
四道防线
响应668
8.入侵检测
入侵者
入侵者分类
- 网络罪犯
- 活动家
- 国家资助的组织
- 其他
入侵者水平分类
- 学徒
- 训练有素者
- 高手
行为分类
- 目标获取和信息收集
- 初始访问
- 权限提升
- 信息收集或系统利用
- 维持访问权限
- 覆盖痕迹
IDS概述
安全入侵:未经授权绕过系统安全机制的行为
入侵检测:一种硬件或软件功能,该功能用于收集和分析计算机或网络中各个区域的信息,以识别可能的安全入侵
IDS组成
- 传感器:收集数据
- 分析器:确认是否发生了入侵
- 用户接口:查看或控制系统的行为
IDS分类
- HIDS基于主机的IDS:监测主机
- NIDS基于网络的IDS:检测网络流量、传输、协议
- 分布式或混合式IDS:集成在一个中央分析器中
误报:对入侵性行为定义大,将用户误认为入侵者
漏报:范围小,漏过真实的入侵者
分析方法
- 异常检测:行为数据统计分析,可检测零日攻击
- 统计法
- 基于知识法
- 机器学习法
- 特征或启发式检测:aka误用检测,只能识别已有的攻击
- 特征方法
- 基于规则的启发式识别
HIDS
数据源和传感器
数据源
- 系统调用踪迹
- 审计记录
- 文件完整性校验和
- 注册表访问
分类
异常HIDS
特征或启发式HIDS
分布式HIDS
组成
主机代理模块
局域网监测代理模块
中央管理器模块:从主机代理模块和局域网监测代理模块接受并分析
NIDS
网络流量、传输层、网络层、应用层
组成
- 传感器
- 服务器:一个或多个管理NIDS
- 管理控制台:一个或多个提供人机交互接口
位置
入侵检测技术
+状态协议分析 (SPA):缺点是它所需要的高资源占用。
分布式或混合式入侵检测
入侵检测交换格式
- 入侵检测消息交换要求
- 入侵检测消息交换格式
- 入侵检测交换协议
蜜罐
功能
- 转移攻击者对重要系统的访问
- 收集有关攻击者的活动信息
- 引诱攻击者在系统中逗留足够长的时间,以便于管理员对此攻击做出响应
这些系统充满了虚构的信息,这些信息看起来很有价值, 但系统的合法用户无法访问。 没有产出的资源 任何与蜜罐系统通信的尝试很可能是一个探测、扫描或者攻击。 如果一个蜜罐发起对外通信,则系统可能已被破坏
分类
- 低交互蜜罐:由模拟IT服务或系统的软件包构成;无法提供所模拟服务或系统的全部功能
- 高交互蜜罐:完整操作系统、服务以及应用程序的真实系统;缺点:需要极大的资源,并且一旦被攻破,就可能被用来发起对其他系统的攻击
位置
Snort
体系架构
- 数据包解码器
- 检测引擎
- 记录器
- 报警器
规则
9.防火墙
防火墙的必要性
- 对互联网连接至关重要
- 保护局域网的有效手段
- 在驻地网络和互联网络之间插入以建立受控连接
- 用作外围防御
设计目标
- 内外部的通信流量必须经过防火墙
- 只有策略授权的流量才能通过防火墙
- 防火墙本身不会被渗透
防火墙的过滤特征
- IP地址和协议值:包过滤和状态检测
- 应用层协议:应用程序级网关
- 用户身份
- 网络活动
局限性
- 无法组织绕开防火墙的攻击
- 无法完全组织内部威胁
- 不正确的安全无线局域网可以从组织外部访问
- 内部人员沾花惹草
类型
包过滤防火墙
规则
- 源ip 目的ip
- 源/目的传输层地址
- IP协议域
- 接口
两种策略
丢弃:阻止没有明确准许(保守可控,对用户可见)
转发:准许没有明确拒绝(易于管理使用,安全性差)
优点:简单;用户透明;处理速度快
缺点:无法阻止上层攻击(具体说)、有限的日志功能、不支持高级用户认证、易受TCP/IP协议漏洞攻击(源地址欺骗)、配置不当会导致破坏
攻击
- IP欺骗
- 源路由攻击
- IP细小分段
状态检测防火墙
通过建立一个出站TCP连接目录来强制执行TCP流量的规则
应用级网关
aka应用程序代理
- 优点:比包过滤更安全
- 缺点:增加每个连接上的额外处理开销
电路级网关
aka电路级代理
e2e—>两条连接;不检查内容;确定哪些连接被允许;通常在信任内部用户时使用;较低的管理费用
防火墙的布置
(优缺点记一下)
- 堡垒主机 :系统被认为是网络安全的一个关键强点 作为应用级或电路级网关的平台
- 基于主机的防火墙
- 个人防火墙
防火墙的部署与配置
DMZ
外防火墙和内防火墙之间的区域
VPN
虚拟专用网络
分布式防火墙
防火墙部署和拓扑结构
(记一下各个图)
IPS入侵防御系统
aka IDPS入侵检测和防御系统
分类同上;策略2中(特启/异)
HIPS
NIPS识别恶意数据包的方法
- 模式匹配
- 传输异常
- 状态匹配
- 统计异常
- 协议异常
数字免疫系统
IBM开发、全方面防御
Snort Inline
snort的改进版
规则:丢弃、拒绝、简单丢弃(不做记录)、对蜜罐实现有用
攻击者看到了失败,但不能找出它发生的原因
一体化威胁管理系统
10.缓冲区溢出
防御措施
- 编译时防御:加固程序来抵抗在新程序中的攻击
- 使用现代高级程序语言–自动检查越界、额外资源销
- 安全的编码技术
- 语言扩充和安全库的使用
- 栈保护机制:设定函数入口和出口代码并检查其栈帧寻找有没有受到破坏的证据、stackguard(栈卫士)、Stackshield和返回地址防护者 (RAD)、随机的canary(金丝雀)值
- 运行时防御:在现有的程序中检测和终止攻击
- 可执行地址空间保护:虚拟内存保护栈和堆
- 地址空间随机化
- Guard 页(隔开):在进程的地址空间的关键区域、在栈帧之间,或者是在堆的不同的存储区域之间设置guard页;耗费时间和页需求
攻击形式
- 栈溢出
- 替换栈帧
- 返回到系统调用
- 堆溢出
- 全局数据区溢出