系统开发的安全考虑
项目启动和规划阶段(初始阶段)
1、确定需求
2、评估备选方案:初始风险分析
3、方案的选择/批准:确定安全框架
功能需求定义
系统设计阶段
系统创建阶段
系统接受阶段
注:接受测试完后还要进行接受认可(风险是否能接受)才能上线,一般放到系统部署阶段
系统部署、维护和更新阶段
做这些工作的主要目的是为了证明自己的工作该干的都干了
编程工具的安全问题
开源与闭源
隐匿获得安全:很多厂商觉得闭源会更安全
但其实开源和闭源都有虚假的安全感
编程语言
发展:
2.越高级的编程语言,编程过程越快,编出来的程序越安全
3.用别人的库来搭建我们的应用,是效率高又安全的开发方法
Java
1.通常认为Java语言比C语言更安全,因为Java是强类型语言。
.Java为混合型语言:既是编译型,也是解释型语言
.Java能提供的安全机制有:沙箱、碎片回收、代码签名等
沙箱:一种虚拟机沙箱,给管理员提供一个安全策略管理接口(指令级安全策略,如:不允许写操作等)
碎片回收:可能不使用的变量,Java会自动进行回收,释放内存(减少缓冲区溢出风险)。
代码签名:保证代码来源的透明性、真实性。
SOA(基于服务的架构)
数据检验的部署
数据检验策略
白名单策略优先考虑,其次考虑黑名单(对于黑名单上的采取停止处理的方式),最后考虑数据净化(复杂性高)
数据库及其安全
数据库管理系统类型
1.层次数据库:要找到目标需要知道对应的路径,只能表达上下级别的关系
2.网状数据库:模拟自然
3.关系数据库:当前主流数据库模型,基于各种数学原理,抽象级别较高
4.面向对象数据库:对象是一堆乱七八糟复杂的数据集,目前还没有通用的面向对象数据库
5.终端用户数据库、电子表格:Dbase、Access等文件型数据库,没有精细的数据访问控制,不在考虑范围内
关系数据库的数据结构
主键:唯一标识符
外键:在其他表中是主键,在本表中称为外键。
外键的参照完整性:在主表中不存在的值,在外键中不能记录
关系数据库的完整性规则
原子化:一个数据处理必须是完整的(要么处理完成,要么没进行处理),不能处于分割状态。
数据库接口语言
ODBC不太安全
数据仓库
数据仓库与数据库没有直接的关系
2.数据仓库为一种新的应用类型,如大数据等
3.数据仓库为一种高风险应用。保护级别比交易系统还高。使用时应该与外网进行物理隔离。
4.规格化:设计关系数据库表时涉及的原则。如:原子化;非主键的值只能依赖于主键,不能依赖其他任何数据。
数据仓库的使用方法
数据挖掘与在线分析处理的区别:
1.数据挖掘为自动化分析数据的算法,比较泛化;
2.在线分析处理(OLAP)为人查询原始数据,找到其中的对应关系。注意与OLTP区分(交易系统在线事故处理)
3.尽量使用数据挖掘,在线分析处理对于人的要求更高
数据库的主要威胁
聚合:鸡蛋放在一个篮子里
推论:例如,根据非涉密信息推断出涉密信息。采取多实例化的方法可以减轻这个问题(给出假的非涉密信息进行混淆)
查询攻击:SQL注入
基于知识的系统
知识管理
专家系统
————安全评估测试————
测试和评估(T&E)策略
总目标:尽早发现系统的不足
软件的验证和确认
验证:细节的比对
确认:对整体的判定
软件的内部逻辑比硬件复杂得多,增加了验证的复杂性
OWASP十大常见漏洞
略
安全控制措施的实施
开发过程的安全评估和测试
略
企业信息安全架构
一种企业安全需求分析工具SABSA,略
威胁建模
代码级的安全要求,一种完整的风险评估
1.微软的威胁建模方法
2.微软的威胁建模过程
测试工作的一般原则
计划、用例尽早准备
很难穷尽所有输入和处理
发现错误的测试才是成功的测试
……
详尽的测试文档要妥善保存(应永久保存)
测试的分类
结构化测试(白盒):通过源代码进行测试。
白盒要考虑覆盖率的问题,是否把所有代码的情况尽可能地都测试到
2.功能测试(黑盒)
3.结构测试和功能测试都很难穷尽各种情况,难以测试系统的可靠性,基于统计的测试(如:Fuzzing)可以弥补这一不足
4.回归测试:软件进行变更后重新进行测试
回归分析——只对变更模块以及相关联的模块进行测试分析
5.不同阶段的测试
6.正向、负向测试:正向指对于功能是否正常使用的测试,负向指对于畸形输入或非预期行为的处理
7.接口测试:侧重系统与远程系统之间关系协调性的检查
8.渗透测试
必须经过批准,严格控制测试人员(数量、身份、是否可信),减少知情人员
安全数据(安全日志)的收集和分析
安全日志的管理
难点在于对于人员的管理(日志复杂、数量众多)
网站检测措施
1.真实用户检测:对于每位用户的事务进行被动捕获和分析,对网站的可用性、功能和响应性能进行监测
2.合成事务监测:使用脚本模拟用户行为生成日志
信息安全持续监控ISCM
一种全局风险管控机制(如:安全态势感知),提供了IT资产的安全可见性
2.SCAP安全内容自动化协议,如:CVE(漏洞)、CPE(资产)、CVSS(风险)
第三方安全审计
软件保障SwA
美国政府提供一个供应商白名单,细节略
供应商安全审计
SOC,对于外包供应商的一个评级报告
报告分类:
Type1为一个时间点的报告、Type2为一段时期
SOC的区别在于面向的人群,1-3越来越广,关注点在于SOC2/3