电力信息系统、航空航天、交通运输、银行金融、地图绘画、政府官网等系统再正式上线前需要做安全测试。避免造成数据泄露从而引起的各种严重问题。
那么系统上线前需要做哪些测试内容呢?下面由我给大家介绍
1、安全机制检测-应用安全
|-------|----------|------------------------------------------------------------|
| 身份鉴别 | 登录控制模块 | 应提供专用的登录控制模块对登录用户进行身份标识和鉴别 |
| 身份鉴别 | 鉴别信息复杂度 | 应提供用户身份标识唯一和鉴别信息复杂度检查功能,保证应用系统中不存在重复用户身份标识,身份鉴别信息不易被冒用 |
| 身份鉴别 | 登录失败处理 | 应提供登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施 |
| 身份鉴别 | 安全策略配置参数 | 应启用身份鉴别、 用户身份标识唯一性检查、用户身份鉴别信息复杂度检查以及登录失败处理功能,并根据安全策略配置相关参数 |
| 访问控制 | 访问控制策略 | 应提供访问控制功能, 依据安全策略控制用户对文件、数据库表等客体的访问 |
| 访问控制 | 访问控制范围 | 访问控制的覆盖范围应包括与资源访问相关的主体、客体及它们之间的操作 |
| 访问控制 | 授权主体配置 | 应由授权主体配置访问控制策略,并严格限制默认帐户的访问权限 |
| 访问控制 | 最小权限 | 应授予不同帐户为完成各自承担任务所需的最小权限,并在它们之间形成相互制约的关系 |
| 安全审计 | 安全审计覆盖范围 | 应提供覆盖到每个用户的安全审计功能,对应用系统重要安全事件进行审计 |
| 安全审计 | 审计记录保护 | 应保证无法删除、修改或覆盖审计记录 |
| 安全审计 | 审计内容 | 审计记录的内容至少应包括事件日期、时间、发起者信息、类型、描述和结果等 |
| 通信完整性 | 通信完整性 | 应采用校验码技术保证通信过程中数据的完整性 |
| 通信保密性 | 会话初始化 | 在通信双方建立连接之前,应用系统应利用密码技术进行会话初始化验证 |
| 通信保密性 | 敏感信息加密 | 应对通信过程中的敏感信息字段进行加密 |
| 软件容错 | 数据有效性校验 | 保证通过人机接口输入或通过通信接口输入的数据格式或长度符合系统设定要求 |
| 软件容错 | 故障恢复 | 在故障发生时,应用系统应能够继续提供一部分功能,确保能够实施必要的措施 |
| 资源控制 | 自动结束会话 | 当通信双方中的一方在一段时间内未作任何响应,另一方应能够自动结束会话 |
| 资源控制 | 会话连接数 | 应能够对应用系统的最大并发会话连接数进行限制 |
| 资源控制 | 多重并发限制 | 应能够对单个帐户的多重并发会话进行限制 |
2、漏洞扫描
漏洞扫描通过 Ping 扫描、端口扫描、OS 探测、脆弱点探测、防火墙扫描五种主要技术,每种技术实现的目标和运用的原理各不相同。Ping 扫描确定目标主机的 IP 地址,端口扫描探测目标主机所开放的端口,然后基于端口扫描的结果,进行 OS 探测和脆弱点扫描。
漏洞扫描主要覆盖以下漏洞:远程和本地输入验证错误;远程和本地代码注入漏洞;跨站脚本攻击(XSS);跨站请求伪造(CSRF);不安全的直接对象引用;错误的认证和会话管理;安全配置错误;代码问题安全漏洞;文件包含漏洞;文件上传漏洞;业务逻辑漏洞;其他的注入问题(LDAP注入、PHP注入、MySQL注入等);其他通用弱点(如上传漏洞、路径遍历等)。
3、代码审计
代码审计是针对系统开发的源代码进行安全性检查,通过工具扫描件加人工验证的形式是从代码层面审计发掘,系统在开发的过程中,代码逻辑是否合理,是否存在后门等漏洞。
源代码静态分析是一种在不运行程序的情况下分析程序代码的方法,目的是检测代码中的潜在问题,如安全漏洞、性能问题、代码质量问题等。以下是一些常用的源代码静态分析方法:
词法分析:将源代码分解成一个个单词或标记,以便后续分析。
语法分析:将源代码转换为抽象语法树,以便后续分析。
数据流分析:分析程序中的变量和函数调用,以确定变量的生命周期和值的变化情况。
控制流分析:分析程序中的控制流语句,以确定程序的执行路径。
符号执行:在执行程序的同时跟踪变量值,以确定程序的执行路径和结果。
路径敏感分析:分析程序中的每一条执行路径,以确定程序在不同路径下的行为。
模型检查:通过建立程序的形式化模型,自动验证模型是否满足安全性和正确性等属性。
源代码静态分析工具可以根据编程语言的特定规则和标准进行开发,以识别潜在的问题和漏洞,并提供修复建议。
4、渗透测试
渗透测试是一种授权模拟攻击,旨在对其安全性进行评估,目的是证明网络防御按照预期计划正常运行而提供的一种机制。它是一种安全评估方法,通过对目标系统进行模拟攻击,发现系统可能存在的漏洞、弱点及其它安全问题,从而评估系统的安全性能。
渗透测试是为了证明网络防御按照预期计划正常运行而提供的一种机制,具体流程阶段如下:
前期交互阶段。该阶段通常是用来确定渗透测试的范围和目标。
情报收集阶段。该阶段需要采用各种方法来收集目标主机的信息。
威胁建模阶段。该阶段主要是使用信息搜集阶段所获得的信息,来标识目标系统有存在可能存在的安全漏洞与弱点的方法之一。
漏洞分析阶段。该阶段将综合从前面几个环节中获取到的信息,从中分析理解那些攻击和用途径是可行的,特别是需要重点分析端口和漏扫描结果,截获到服务的重要信息,以及在信息收集环节中得到其他关键性的位置信息。
渗透攻击阶段。该阶段可能是存在渗透测试过程中最吸引人的地方,然后在这种情况下,往往没有用户所预想的那么一帆风顺,而是曲径通幽,在攻击目标系统主机时,一定要清晰的了解在目标系统存在这个漏洞,否则,根本无法启动攻击成功的步骤。
后渗透测试阶段。该阶段在任何一次渗透过程中都是一个关键环节,该阶段将以特定的业务系统作为目标,识别出关键的基础设施,并寻找客户组织罪具有价值和尝试进行安全保护的信息和资产。
渗透测试报告。报告是渗透测试过程中最重要的因素,使用该报告文档可以交流渗透测试过程中国做了什么,如何做的以及最为重要的安全漏洞和弱点。
标签:安全测试,安全测评