软件安全性标准
一、安全目标
Ø 预防:
Ø 跟踪审计:从数据库系统本身、主体和客体三个方面来设置审计选项,审计对数据库对象的访问以及与安全相关的事件。数据库审计员可以分析审计信息、跟踪审计事件、追查责任。并且对系统效率的影响减至最小。
Ø 监控:能够对针对软件或数据库的实时操作进行监控,并对越权行为或危险行为发出警报信息。
Ø 保密性和机密性:可防止非授权用户的侵入和机密信息的泄漏。
Ø 多级安全性:指多级安全关系数据库在单一数据库系统中存储和管理不同敏感性的数据,同时通过自主访问控制和强制访问控制机制保持数据的安全性。
Ø 匿名性:
Ø 数据的完整性:可防止数据在异常情况下保证完整性。
二、技术的选择
Ø 分布性平台对象的选择
Ø 操作系统的选择
Ø 认证技术
三、代码的安全性
Ø 隐晦的安全性:代码模糊、紧包软件的安全性
Ø 多眼现象:脆弱性检测、其他
Ø 密码算法
Ø 特洛依木马
四、安全的原则
Ø 加固最脆弱的连接:进行风险分析并提交报告,加固其薄弱环节。
Ø 实行深度防护:利用分散的防护策略来管理风险。
Ø 失败安全:在系统运行失败时有相应的措施保障软件安全。
Ø 最小优先权:原则是对于一个操作,只赋予所必须的最小的访问权限,而且只分配所必 须的最少时间。
Ø 分割:将系统尽可能分割成小单元,隔离那些有安全特权的代码,将对系统可能的损害减少到最小。
Ø 简单化:软件设计和实现要尽可能直接, 满足安全需求的前提下构筑尽量简单的系统, 关键的安全操作都部署在系统不多的关键点(choke points)上。
Ø 保密性:避免滥用用户的保密信息。
五、软件稽核
Ø 体系结构的安全性
Ø 实现的安全性分析
源代码的稽核
使用RATS(remote access Trojan)
软件扫描
六、缓冲区溢出
Ø 防止内部缓冲区溢出的实现
Ø 防止输入溢出的实现
Ø 防止堆及堆栈溢出的实现
七、访问控制
Ø UNIX
文件属性及归属
程序接口
Ø WINNT
细化权限及分割
八、密码学的应用
Ø 使用密码学的目标:机密性、完整性、可鉴别性、抗抵赖性。
Ø 密码算法(对称和非对称):考虑算法的基本功能、强度、弱点及密钥长度的影响。
Ø 密钥管理的功能:生成、分发、校验、撤消、破坏、存储、恢复、生存期和完整性。
Ø 密码术编程:加密、散列运算、公钥密码加密、多线程、加密cookie
Ø 私钥算法、公钥算法及PKI
Ø 一次性密码、分组密码等
九、信任管理和输入的有效性
Ø 信任的可传递
Ø 防止恶意访问
Ø 安全调用程序
Ø 网页安全
Ø 客户端安全
Ø 格式串攻击
十、口令认证
Ø 口令的存储
Ø 添加用户
Ø 口令认证
Ø 选择口令
Ø 数据库安全性
Ø 访问控制(使用视图)
Ø 保护域
Ø 抵抗统计攻击
十一、客户端安全性
Ø 版权保护机制(许可证文件、对不可信客户的身份认证)
Ø 防篡改技术(反调试程序、检查和、对滥用的响应)
Ø 代码迷惑技术
Ø 程序加密技术
十二、系统开发控制
Ø 系统开发生命周期
功能需求确定
防护规范开发
统计评审
Ø 安全控制/构架
过程隔离
权利分离
可审计性
数据隐藏
安全内核
Ø 完整性级别
网络/系统
操作系统
数据库
文件
名词解释
自主访问控制
自主访问控制(Discretionary Access Control,简称DAC)的含义是当你拥有数据库对象上的某些操作权限及相应授权权限时,你可以按照自己的意愿,自作主张地把这些操作权限部分或全部转授给其他的用户,从而使得其他用户获得在这些数据库对象上的使用权。
强制访问控制
强制访问控制( Mandatory Access Control,简称MAC)就是通过主体(用户)和客体(数据对象)安全级匹配原则来确定该主体是否被允许存取该客体。
Ø 预防:
Ø 跟踪审计:从数据库系统本身、主体和客体三个方面来设置审计选项,审计对数据库对象的访问以及与安全相关的事件。数据库审计员可以分析审计信息、跟踪审计事件、追查责任。并且对系统效率的影响减至最小。
Ø 监控:能够对针对软件或数据库的实时操作进行监控,并对越权行为或危险行为发出警报信息。
Ø 保密性和机密性:可防止非授权用户的侵入和机密信息的泄漏。
Ø 多级安全性:指多级安全关系数据库在单一数据库系统中存储和管理不同敏感性的数据,同时通过自主访问控制和强制访问控制机制保持数据的安全性。
Ø 匿名性:
Ø 数据的完整性:可防止数据在异常情况下保证完整性。
二、技术的选择
Ø 分布性平台对象的选择
Ø 操作系统的选择
Ø 认证技术
三、代码的安全性
Ø 隐晦的安全性:代码模糊、紧包软件的安全性
Ø 多眼现象:脆弱性检测、其他
Ø 密码算法
Ø 特洛依木马
四、安全的原则
Ø 加固最脆弱的连接:进行风险分析并提交报告,加固其薄弱环节。
Ø 实行深度防护:利用分散的防护策略来管理风险。
Ø 失败安全:在系统运行失败时有相应的措施保障软件安全。
Ø 最小优先权:原则是对于一个操作,只赋予所必须的最小的访问权限,而且只分配所必 须的最少时间。
Ø 分割:将系统尽可能分割成小单元,隔离那些有安全特权的代码,将对系统可能的损害减少到最小。
Ø 简单化:软件设计和实现要尽可能直接, 满足安全需求的前提下构筑尽量简单的系统, 关键的安全操作都部署在系统不多的关键点(choke points)上。
Ø 保密性:避免滥用用户的保密信息。
五、软件稽核
Ø 体系结构的安全性
Ø 实现的安全性分析
源代码的稽核
使用RATS(remote access Trojan)
软件扫描
六、缓冲区溢出
Ø 防止内部缓冲区溢出的实现
Ø 防止输入溢出的实现
Ø 防止堆及堆栈溢出的实现
七、访问控制
Ø UNIX
文件属性及归属
程序接口
Ø WINNT
细化权限及分割
八、密码学的应用
Ø 使用密码学的目标:机密性、完整性、可鉴别性、抗抵赖性。
Ø 密码算法(对称和非对称):考虑算法的基本功能、强度、弱点及密钥长度的影响。
Ø 密钥管理的功能:生成、分发、校验、撤消、破坏、存储、恢复、生存期和完整性。
Ø 密码术编程:加密、散列运算、公钥密码加密、多线程、加密cookie
Ø 私钥算法、公钥算法及PKI
Ø 一次性密码、分组密码等
九、信任管理和输入的有效性
Ø 信任的可传递
Ø 防止恶意访问
Ø 安全调用程序
Ø 网页安全
Ø 客户端安全
Ø 格式串攻击
十、口令认证
Ø 口令的存储
Ø 添加用户
Ø 口令认证
Ø 选择口令
Ø 数据库安全性
Ø 访问控制(使用视图)
Ø 保护域
Ø 抵抗统计攻击
十一、客户端安全性
Ø 版权保护机制(许可证文件、对不可信客户的身份认证)
Ø 防篡改技术(反调试程序、检查和、对滥用的响应)
Ø 代码迷惑技术
Ø 程序加密技术
十二、系统开发控制
Ø 系统开发生命周期
功能需求确定
防护规范开发
统计评审
Ø 安全控制/构架
过程隔离
权利分离
可审计性
数据隐藏
安全内核
Ø 完整性级别
网络/系统
操作系统
数据库
文件
名词解释
自主访问控制
自主访问控制(Discretionary Access Control,简称DAC)的含义是当你拥有数据库对象上的某些操作权限及相应授权权限时,你可以按照自己的意愿,自作主张地把这些操作权限部分或全部转授给其他的用户,从而使得其他用户获得在这些数据库对象上的使用权。
强制访问控制
强制访问控制( Mandatory Access Control,简称MAC)就是通过主体(用户)和客体(数据对象)安全级匹配原则来确定该主体是否被允许存取该客体。