第二章系统安全的需求分析本章从数据安全和业务逻辑安全两个角度对应用系统的安全进行需求分析,主要包括保密性需求、完整性需求、可用性需求三部分;随后对业务逻辑安全需求进行了分析,包括身份认证、访问控制、交易重复提交控制、异步交易处理、交易数据不可否认性、监控与审计等几个方面;最后还分析了系统中一些其它的安全需求。2.1数据安全需求2.1.1数据保密性需求数据保密性要求数据只能由授权实体存取和识别,防止非授权泄露。从目前国内应用的安全案例统计数据来看,数据保密性是最易受到攻击的一个方面,通常表现为客户端发生的数据泄密,包括用户的基本信息、账户信息、登录信息等的泄露。在应用系统中,数据保密性需求通常主要体现在以下几个方面:A.客户端与系统交互时输入的各类密码:包括系统登录密码、转账密码、凭证查询密码、凭证交易密码等必须加密传输及存放,这些密码在应用系统中只能以密文的方式存在,其明文形式能且只能由其合法主体能够识别。以网银系统为例,在网银系统中,通常存有四种密码:系统登录密码、网银转账密码、柜面交易密码及一次性密码。系统登录密码用来认证当前登录者为指定登录名的合法用户,网银用户的登录密码和网银转账密码由用户在柜面开户时指定,用户在首次登录网银系统时,系统必须强制用户修改初始密码,通常要求长度不得少于六位数,且不能是类似于111111、1234567、9876543等的简单数字序列,系统将进行检查。网银转账密码是指网银系统为巩固用户资金安全,在涉及资金变动的交易中对用户身份进行了再认证,要求用户输入预设的密码,网银交易密码仅针对个人用户使用,企业用户没有网银交易密码。建立多重密码机制,将登录密码与网银转账密码分开管理,有利于加强密码的安全性。由于用户在使用网银时每次都必须先提供登录密码,故登录密码暴露的机会较多,安全性相对较弱;但登录网银的用户并不是每次都会操作账户资金的,所以专门设定网银转账密码可加强账户的安全性。网银转账密码在网银开户时设定,网银用户在系统中作转账支付、理财、代缴费等资金变动类交易时使用。柜面交易密码是指用户在银行柜面办理储蓄时,针对储蓄凭证(如卡折、存单等)而设的密码。柜面交易密码常用于POS系统支付时、ATM取款时、凭证柜面取款时,柜面交易密码一个明显的特征是它目前只能是六位的数字,这是由于目前柜面密码输入设备的限制而造成的。柜面交易密码与上述的网银转账密码的区别在于:网银转账密码和系统登录密码都产生于网银系统,储存在网银系统中,仅限网银系统中认证使用;而柜面交易密码产生于银行柜台,可以在外围渠道如ATM、电话银行、自助终端上修改,它保存在银行核心系统中,供外围各个渠道系统共同使用。另外网银转账密码可以有非数字字符组成,而柜面交易密码只能是六位的数字。网银中使用到柜面交易密码的交易包括:网银开户、加挂账户。一次性密码由用户的智能卡、令牌卡产生,或由动态密码系统产生通过短信方式发送到用户注册的手机上。一次性密码的作用与网银转账密码相同,适用的场合也相同。一次性密码在农商行网银系统中是可选的安全服务,用户需到柜面办理开通手续才能使用,没有开通一次性密码服务的用户必须设定网银交易密码,开通一次性密码服务的用户则无需设定网银交易密码,要求网银系统自动判断并提示用户在某个交易中是要输入网银交易密码还是提示一次性密码。B.应用系统与其它系统进行数据交换时在特定安全需求下需进行端对端的加解密处理。这里的数据加密主要是为了防止交易数据被银行内部人士截取利用,具体通讯加密方案参照应用系统的特定需求。2.1.2数据完整性需求数据完整性要求防止非授权实体对数据进行非法修改。用户在跟应用系统进行交互时,其输入设备如键盘、鼠标等有可能被木马程序侦听,输入的数据遭到截取修改后被提交到应用系统中,如原本用户准备向A账户转一笔资金在交易数据遭到修改后就被转到B账户中了。同样的威胁还存在于交易数据的传输过程中,如在用户向应用系统提交的网络传输过程中或应用系统跟第三方等其它系统的通讯过程中,另外存储在应用系统数据库中的数据也有可能遭到非法修改,如SQL注入攻击等。2.1.3数据可用性需求数据可用性要求数据对于授权实体是有效、可用的,保证授权实体对数据的合法存取权利。对数据可用性最典型的攻击就是拒绝式攻击(DoS)和分布式拒绝攻击,两者都是通过大量并发的恶意请求来占用系统资源,致使合法用户无法正常访问目标系统,如SYNFlood攻击等,将会直接导致其他用户无法登录系统。另外,应用登录机器人对用户的密码进行穷举攻击也会严重影响系统的可用性。2.2业务逻辑安全需求业务逻辑安全主要是为了保护应用系统的业务逻辑按照特定的规则和流程被存取及处理。2.2.1身份认证需求身份认证就是确定某个个体身份的过程。系统通过身份认证过程以识别个体的用户身份,确保个体为所宣称的身份。应用系统中身份认证可分为单向身份认证和双向身份认证,单向身份认证是指应用系统对用户进行认证,而双向身份认证则指应用系统和用户进行互相认证,双向身份认证可有效防止“网络钓鱼”等假网站对真正系统的冒充。应用服务器采用数字证书,向客户端提供身份认证,数字证书要求由权威、独立、公正的第三方机构颁发;系统为客户端提供两种可选身份认证方案,服务器端对客户端进行多重身份认证,要求充分考虑到客户端安全问题。将客户端用户身份认证与账户身份认证分开进行,在用户登录系统时,采用单点用户身份认证,在用户提交更新类、管理类交易请求时,再次对用户的操作进行认证或对用户身份进行二次认证,以确保用户信息安全。2.2.2访问控制需求访问控制规定了主体对客体访问的限制,并在身份识别的基础上,根据身份对提出资源访问的请求加以控制。访问控制是应用系统中的核心安全策略,它的主要任务是保证应用系统资源不被非法访问。主体、客体和主体对客体操作的权限构成访问控制机制的三要素。访问控制策略可以划分为自主访问控制、强制访问控制和基于角色的访问控制三种。2.2.3交易重复提交控制需求交易重复提交就是同一个交易被多次提交给应用系统。查询类的交易被重复提交将会无故占用更多的系统资源,而管理类或金融类的交易被重复提交后,后果则会严重的多,譬如一笔转账交易被提交两次则将导致用户的账户被转出两笔相同额的资金,显然用户只想转出一笔。交易被重复提交可能是无意的,也有可能是故意的:A.用户的误操作。在B/S结构中,从客户端来看,服务器端对客户端的响应总有一定的延迟,这在某些交易处理上体现的更为明显,特别是那些涉及多个系统交互、远程访问、数据库全表扫描、页面数据签名等交易,这种延迟通常都会在5至7秒以上。这时用户有可能在页面已提交的情况下,再次点击了提交按钮,这时将会造成交易被重复提交。B.被提交的交易数据有可能被拿来作重放攻击。应用系统必须对管理类和金融类交易提交的次数进行控制,这种控制即要有效的杜绝用户的误操作,还不能影响用户正常情况下对某个交易的多次提交。比如说:当某个用户在10秒内提交了两笔相同的转账业务,则系统必须对此进行控制;另一方面,当用户在第一笔转账业务完成后,再作另一笔数据相同的转账时,则系统不能对此进行误控制。这里判断的依据就是交易重复提交的控制因子a,当交易提交的间隔小于a时,系统认为这是重复提交,提交间隔大于a的则不作处理,控制因子的大小由应用系统业务人员决定,系统应可对其进行配置化管理。2.2.4异步交易处理需求所谓异步交易就是指那些录入与提交不是同时完成的交易,这里的同时是指客户端在录入交易数据与提交交易的过程中,应用系统服务器端并没有对录入的数据进行持久化保存,而异步交易在系统处理过程中,录入与提交时间上发生在两个相分离的阶段,在两阶段之间,应用系统对录入的数据进行了持久化保存。由于异步交易是被系统分两阶段受理的,这就涉及到以下三个方面的问题:A.录入与提交的关系管理。B.如何保证提交的数据就是用户当初录入的数据。C.如何记录交易在两阶段的日志状态。录入与提交的关系定义不当将会导致交易录入与提交被同时完成而违反了业务处理流程,录入的数据被系统保存后有可能遭到非法篡改,非异步交易执行后的日志状态不会被更新而异步交易在提交后日志状态将会被更新。应用系统中需要定义成异步的交易通常有以下两类:²需要授权的交易。出于业务管理和业务安全方面的考虑,大部分管理类和金融类的交易都需要经过一定的授权流程后方能被提交。²部分定时交易,如预约转账等。预约一笔在周三转账的预约转账有可能是周一被录入的,用户在录入后,预约转账的数据将被网银系统保存直到周三这笔转账才会真正发生。应用系统必须定义简单、清晰、易维护的录入与提交关系模型,保证被保存的录入数据不会被非法篡改,同时要求异步交易的日志状态是明确的,不应出现录入与提交相矛盾的日志状态。2.2.5交易数据不可否认性需求交易数据不可否认性是指应用系统的客户不能否认其所签名的数据,客户对交易数据的签名是通过应用系统使用客户的数字证书来完成的。数字证书的应用为交易数据不可否认性提供了技术支持,而电子签名法的颁布为交易数据不可否认性提供了法律基础。在应用系统中通常要求对所有管理类与金融类的交易进行数字签名,以防客户事后对交易或交易数据的抵赖。应用系统需同时保存客户录入的原始数据和签名后的数据,保存期限依业务部门的具体要求而定。考虑到系统性能和对用户的响应问题,应用系统可只签与交易有关的关键数据,支付类的交易只对付款人账号、付款金额、收款人姓名、收款人账号、收款人开户行五个字段进行数字签名就可以了。2.2.6监控与审计需求安全级别要求高的应用系统应提供对系统进行实时监控的功能,监控的内容包括系统当前登录的用户、用户类型、用户正在访问的交易、用户登录的IP等。对金融类、管理类的交易以及应用系统登录交易需要完整地记录用户的访问过程,记录的关键元素包括:用户登录名、登录IP、交易日期及时间、交易名称、交易相关数据等,对有授权流程的交易要求完整记录授权的经过,授权记录与交易记录分开存放。2.3其它安全需求2.3.1登录控制需求登录通常是应用系统的关键交易,系统通过登录交易对用户身份进行认证。针对不同角色的用户指定不同的登录策略:²最小权限集用户,可使用用户登录名+静态登录密码+图形识别码方式登录。低安全性。²普通权限集用户,可使用用户登录名+动态登录密码+数图形识别码方式登录。²高权限集用户,可使用用户登录名+数字证书+静态密码+数图形识别码方式登录。²所有权限集用户,可使用用户登录名+数字证书+动态密码+数图形识别码方式登录。应用系统可提供客户端加密控件对用户输入的密码域进行加密处理后再提交。连续登录多次失败的用户,其IP将被应用系统锁定,24小时后系统将自动对锁定的IP进行解锁。这里登录失败的次数和IP锁定时长根据业务需求说明应由配置文件进行设定。对于首次登录系统的用户,系统将强制定位到修改密码的页面,要求用户修改初始密码重新登录方可使用系统。对于密码类型和长度,系统将规则检查。对于成功登录的用户,应用系统自动清除其连续登录失败的次数,同时初始化用户的相关数据并同时对登录数据进行记录,以备审计。2.3.2会话控制需求通过应用服务器自身的会话管理或应用程序的会话管理都可以控制会话的时长设定,设置过久的会话将给客户端带来安全风险,而设置过短则影响用户的正常使用。该机制使在应用层无状态的HTTP/HTTPS协议,能够支持需要状态记录的互联网应用,实现用户登录后在新的状态下从事交易、超时断路等功能。2.3.3被访问对象控制需求应用系统对用户的关键资源或信息,提供操作权限设置支持,权限分为:查询和更新两类。权限为查询的资源或信息只能对其进行查询操作,不能进行更新。资源权限由开户时指定,为加强安全性,权限分配可通过落地处理开通。2.3.4交易提醒需求交易提醒是指将客户的账号与客户手机号、电子邮件等关联起来,当客户信息发生变动时,向客户的手机发送一条短信或电话通知或发送一封电子邮件,及时准确的告知客户。另通过通知提醒功能,系统应定期向用户发送统计、明细、确认等信息。第三章应用系统安全的总体解决方案3.1安全技术安全技术是安全子