编程那点事编程那点事

专注编程入门及提高
探究程序员职业规划之道!

信息安全等级保护之技术要求→应用安全→软件容错

一、要求内容 

a)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的数据格式或长度符合系统设定要求; 

b)应提供自动保护功能,当故障发生时自动保护当前所有状态; c)应提供自动恢复功能,当故障发生时立即自动启动新的进程,恢复原来的工作状态。 

二、实施建议 

在软件的数据输入部分进行容错控制主要是通过增加对输入信息的检验,使之符合应用程序本身的要求,防止输入异常数据导致程序运行出错。例如对输入的数据格式或长度等信息在用户输入是进行验证,符合规定的再提交给后台程序运行,反之则拒绝输入。 并且程序应当具备记录故障发生时的系统状态功能,例如系统状态的快照,便于时候分析故障原因。 

三、常见问题 

多数应用系统程序对输入信息都没有进行严格的验证,很多程序在输入异常数据后还会泄漏程序的错误信息或数据库的错误信息。 

四、实施难点 

对于程序在故障发生时的自动启动新进程的功能需要设定好监控原则,需要能够准确的确认程序真的发生故障,否则将可能影响正在运行的进程。 

五、测评方法 

形式 访谈,检查,测试。 对象 应用系统管理员,应用系统。 

实施 

a)应访谈应用系统管理员,询问业务系统是否有保证软件具有容错能力的措施(如对人机接口输入或通过通信接口输入的数据进行有效性检验等),具体措施有哪些; 

b)应检查应用系统,查看业务系统是否对人机接口输入(如用户界面的数据输入)或通信接口输入的数据进行有效性检验;是否在故障发生时能够自动保护当前所有状态;是否能够提供自动恢复功能); 

c)应检查应用系统,查看其是否具有自动保护能力,当故障发生时,是否能自动保护当前所有状态; 

d)应检查应用系统,查看其是否具有自动恢复能力,当故障发生时,是否能立即启动新的进程,恢复原来的工作状态; 

e)应测试应用系统,可通过输入的不同(如数据格式或长度等符合、不符合软件设定的要求),验证系统人机接口有效性检验功能是否正确。 

六、参考资料 

ISO17799中对软件输入数据的确认要求有指导方法: 

12.2.1 输入数据确认 控制: 应验证应用系统输入数据,以确保正确和适当 实施指南: 检验应适用于业务事务处理、常备数据(名字和地址,信贷限值,顾客引用号码)和参数表(销售价,货币兑换率,税率)的输入。

应考虑下列控制: 

a) 双输入或其他输入检验,比如边界检查或者限制具体范围的输入数据,

以检测下列差错: 

1) 范围之外的值; 

2) 数据字段中的无效字符; 

3) 丢失或不完整的数据; 

4) 超过数据的上下容量极限; 

5) 未授权的或不相容的控制数据; 

b) 周期性评审关键字段或数据文件的内容,以证实其有效性和完整性; 

c) 检查硬拷贝输入文档是否有任何未授权的变更输入数据(输入文档的所有变更均应予以授权);

d) 响应确认差错的程序; 

e) 测试输入数据真实性的程序; 

f) 定义在数据输入过程中所涉及的全部人员的职责。 

g) 创建一个数据输入过程中的行为日志。 《计算机信息系统安全等级保护通用技术要求》对故障容错的要求: 5.1.17.1 故障容错 应通过一定措施防止由于TCB 失效引起的资源能力的不可用,确保即使出现故障情况,TSF 也能维持正常运行,如在电力中断或通信中断时,TCB 将继续执行关闭程序的操作。故障容错机制有主动和被动两种。在主动机制下,特定的功能在故障发生时将会被激活,如火警即是一种主动机制,当TSF检测到火情时可以将操作切换到备份系统上;在被动机制下,TCB 被设计为能自动处理故障,如多处理器的多数表决系统,当其中的某一个处理器失效时并不影响TCB 的正常运行,当然需要检测出失效的处理器以便更换。 

故障容错分为: 

a) 降级故障容错,要求在确定的故障情况下,TSF 能继续正确运行指定的功能。这种功能往往是实现一些善后操作,如在安全状态保留失败的情况下,TSF 能按能力列表所列功能运行。这是一种强制性的安全功能策略,要求在出错情况下TCB 能继续规定的正确操作,因而要求系统必须在故障发生后通过降低能力保持一个安全的状态。这类故障的例子有计算机房进水、电力短时间中断、CPU 或主机瘫痪、软件错误或缓冲区溢出等。 

b) 受限故障容错,对标识的故障事件,TSF 能继续正确运行原有功能。这就要求TCB 必须采取有效措施来对抗指定的故障。如在安全状态保留失败的情况下,能运行所有TCB 的功能。

未经允许不得转载: 技术文章 » 信息安全 » 信息安全等级保护之技术要求→应用安全→软件容错