当前位置:文档之家› 应用安全身份鉴别

应用安全身份鉴别

应用安全身份鉴别
应用安全身份鉴别

身份鉴别

应提供专用的登录控制模块对登录用户进行身份标识和鉴别;

应对同一用户采用两种或两种以上组合的鉴别技术实现用户身份鉴别;

查看对用户进行身份鉴别是采用两种或以上机制,比如用户名/密码、CA、USB 、KEY、生物特征识别等中的两种。

应提供用户身份标识唯一和鉴别信息复杂度检查功能,保证应用系统中不存在重复用户身份标识,身份鉴别信息不易被冒用;

通过测试主要应用系统的管理模块,查看系统是否具有用户身份唯一性标识的能力,如系统采用用户名来进行唯一性标识,则系统不应存在两个同名的用户。通过测试主要应用系统的

管理模块,查看系统是否具有用户身份唯一性标识的能力,如系统采用用户名来进行唯一性

标识,则系统不应存在两个同名的用户。

通过登录系统用户管理后台,先建立一个用户名为“test1”的用户,然后继续尝试添加一个用户名为“test1”的用户,系统提示“用户名或别名test1已存在”。因此,可判定该系统具有身份唯一性标识的能力。

应提供登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施;

通过测试主要应用系统登录验证模块,验证系统在登录失败的情况下是否启用了登录

失败处理功能,其测试结果是否与系统设计保持一致。

以“admin”用户登录界面登录应用系统,输入错误的鉴别口令,系统提示“用户名或密码错误”,则在输入错误的鉴别口令时系统并未精确返回密码错误,增加了非授权用户的非法猜测用户名和鉴别口令的难度。

应启用身份鉴别、用户身份标识唯一性检查、用户身份鉴别信息复杂度检查以及登录失败处理功能,并根据安全策略配置相关参数。

通过测试主要应用系统的管理模块,查看系统是否具有鉴别信息复杂度的能力,如鉴别口令必须采用8位以上,达不到此要求,系统应返回错误提示。则建议系统开发人员在开发时预留鉴别信息复杂度控制功能,一般情况下要求鉴别口令长度不低于8位,密码复杂度应包含字母、数字和特殊字符相结合;特殊情况下,考虑到易用性,普通用户密码复杂度要求可做适当调整,但管理员类用户口令应保证较高的复杂度要求。

访问控制

应提供访问控制功能,依据安全策略控制用户对文件、数据库表等客体的访问;

访问控制的覆盖范围应包括与资源访问相关的主体、客体及它们之间的操作;

应由授权主体配置访问控制策略,并严格限制默认帐户的访问权限;应授予不同帐户为完成各自承担任务所需的最小权限,并在它们之间形成相互制约的关系。

通过“admin”用户身份登录应用系统,依据安全策略对客体进行访问,查看是否成功;不依据安全策略对客体进行访问,看是否成功。如依据安全策略能访问成功,反之则不能访问成功,可判定系统安全策略实现满足设计要求。

检查主要应用系统是否存在默认账号或测试账号查看系统中存在的角色,针对不同的角色进一步通过“编辑角色权限”窗口查看系统管理员相应的权限,系统管理员没有操作业务和管理日志的权限,只有管理配置的权限。

安全审计

应具有对重要信息资源设置敏感标记的功能;

应依据安全策略严格控制用户对有敏感标记重要信息资源的操作;

应提供覆盖到每个用户的安全审计功能,对应用系统重要安全事件进行审计;

应保证无法单独中断审计进程,无法删除、修改或覆盖审计记录;

审计记录的内容至少应包括事件的日期、时间、发起者信息、类型、描述和结果等;

应提供对审计记录数据进行统计、查询、分析及生成审计报表的功能。通过登录审计日志管理的工作界面,审计日志内容包含日期、时间、

发起者信息、日志描述,但不包括日志类型和结果,则该系统审计内容不完全符合要求。

剩余信息保护

应保证用户鉴别信息所在的存储空间被释放或再分配给其他用户前得到完全清除,无论这些信息是存放在硬盘上还是在内存中;

应保证系统内的文件、目录和数据库记录等资源所在的存储空间被释放或重新分配给其他用户前得到完全清除。

a) 访谈应用系统管理员,询问系统是否采取措施保证对存储介质中的残余信息进行删除(无论这些信息是存放在硬盘上还是在内存中),具体措施有哪些;

b) 检查设计/验收文档,查看其是否有关于系统在释放或再分配鉴别信息所在存储空间给其他用户前如何将其进行完全清除(无论这些信息是存放在硬盘上还是在内存中)的描述,如用户退出模块中是否有对清除用户COOKIES,会话SESSION,删除缓存文件等代码操作的描述;

c) 通过测试主要应用系统,用某用户登录系统并进行操作后,在该用户退出后用另一用户登录,试图操作(读取、修改或删除等)其他用户产生的文件、目录和数据库记录等资源,查看操作是否成功,验证系统提供的剩余信息保护功能是否正确(确保系统内的文件、目录和数据库记录等资源所在的存储空间,被释放或重新分配给其他用户前得到完全清除)。

通信完整性

应采用密码技术保证通信过程中数据的完整性。

a) 访谈安全管理员,询问应用系统是否具有在数据传输过程中保护其完整性的措施,具体措施是有哪些;

b) 检查设计或验收文档,查看其是否有关于保护通信完整性的说明,则查看其是否有用密码技术来保证通信过程中数据的完整性的描述;

c) 通过测试主要应用系统,可通过获取通信双方的数据包,查看通信报文是否有验证码。如果条件允许,可设计测试用例,通过篡改通信一方的数据报文,查看系统的另一方是否能识别。

通信保密性

a) 在通信双方建立连接之前,应用系统应利用密码技术进行会话初始化验证;

b) 应对通信过程中的整个报文或会话过程进行加密。

通过抓包获取登录过程的数据包,查看是否对登录过程中所提交的所有数据,通过HTTP协议分析工具抓取登录过程的数据包可以发现提交的数据通过加密传输。。

软件容错性

应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口

输入的数据格式或长度符合系统设定要求;

应提供自动保护功能,当故障发生时自动保护当前所有状态,保证系统能够进行恢复。

在软件容错的测评过程中主要采用渗透测试的方法来验证系统中是否存在明显的弱点。

资源控制

a) 当应用系统的通信双方中的一方在一段时间内未作任何响应,另一方应能够自动结束会话;

b) 应能够对系统的最大并发会话连接数进行限制;

c) 应能够对单个帐户的多重并发会话进行限制;

d) 应能够对一个时间段内可能的并发会话连接数进行限制;

e) 应能够对一个访问帐户或一个请求进程占用的资源分配最大限额和最小限额;

f) 应能够对系统服务水平降低到预先规定的最小值进行检测和报警;

g) 应提供服务优先级设定功能,并在安装后根据安全策略设定访问帐户或请求进程的优先级,根据优先级分配系统资源。

代码安全

a)应对应用程序代码进行恶意代码扫描;

b)应对应用程序代码进行安全脆弱性分析。

相关主题
文本预览
相关文档 最新文档