JR/T 0213-2021 金融网络安全 Web应用服务安全测试通用规范.pdf
- 文档部分内容预览:
JR/T 0213—2021
测试过程应对Web应用服务及漏洞进行分级管理,以保证重要Web应用服务的资源投入。
测试过程应按照GB/T31509一2015中的项目管理方法对过程、人员、工具等进行控制,以保证安全 测试过程的安全可控。
4.1.5最小影响原则
十对处于运维阶段的Web应用服务,应提前确定合适的测试时间窗口,避开业务高峰期林业标准,同时做 试目标应用服务的应急预案。
未经金融机构允许,测试方不应向第三方及社会公众泄露与安全测试目标相关的一切信息,包括但 不限于开发及运维人员个人信息以及因测试活动所获取的敏感信息,如Web应用网络架构、业务数据、 安全漏洞等。
测试方应保证漏洞提交的及时性,检测出漏洞与提交漏洞的时间间隔不应超出规定时间,不应出现 漏洞积压的情况。
Web应用服务安全测试应推 结合,互为补充。安全测试实施的继 人测试、团队测试、众测等
测试环境及准备基本要求: a 金融机构应针对金融交易类应用提供与生产环境相似的仿真环境,以便进行部分可能影响数据 完整性及业务稳定性的侵入式测试。测试方在生产环境中应避免使用可能导致数据完整性及业 务稳定性遭受破坏的测试手段。 b 金融机构应预先准备功能与数据均完备的账号以保证测试的完备性,若完成测试涉及必要的专 有设备,如控件、证书和U盾等软硬件设备,金融机构应给予必要的配合或协助。 如测试过程中发现功能损坏及数据缺失,测试方应对缺失的数据及损坏的功能进行详细记录, 并及时反馈给系统开发人员进行功能及数据补足。 d 通过仿真环境测试时,金融机构应提供安全的测试接入方式,如现场接入、VPN远程接入及IF 白名单等方式,防止非授权人员对仿真环境进行违规访问或违规测试。 e) 禁止测试方任何未经授权的第三方泄露与测试环境相关的任何信息。 f 测试环境提供方应及时与测试方同步测试系统更新、维护及测试计划,以保证测试环境稳定可 用。 g 如测试目标为应用接口,测试环境提供方应向测试方提供足以用来构造并完成接口请求的说明 文档或脚本。
5.3.1通用测试要求
通用测试基本要求: a 金融机构应采用技术或管理手段,确保面向安全测试所开放的功能集合完全覆盖生产系统面向 最终用户所开放的功能集合。 ) 测试方应参考CNVD维护热门高危漏洞所对应的测试方法及工具列表,并每个李度更新测试项 列表及对应的测试方法。金融机构应针对测试项列表定期开展评审工作,确认更新内容的覆盖 情况满足金融机构的相关要求。 ) 金融机构应进行互联网暴露资产和内网资产测绘,明确安全测试对象清单并进行定期更新。 d 当出现重大高危漏洞时,测试方应及时跟进漏洞披露进展并向金融机构同步相关信息,同时及 时更新测试方法及工具。 e) 测试方应优先保证热门高危漏洞的测试进度及测试效果。 巧 对于面向客户开放且包含支付功能的系统,应保证测试方法覆盖当前热门高危漏洞的全部测试 项以及本章测试技术中包含的所有基本要求。这些应用系统包括但不限于网上银行和开放银行 等。 通用测试增强要求: a 如采用第三方软件或硬件进行热门高危漏洞的防御或修补,需进行安全测试以保证这些防御策 略不能被任何已公开手段绕过。 b) 测试方应针对开源的高危系统及高危组件设置单独的测试清单并定期进行更新。 C 全量内容的安全测试应覆盖热门高危漏洞所对应测试方法以及本章测试技术中包含的所有基 本要求
5.3.2业务逻辑测试
5.3.2.1多线程竞争条件测试
多线程竞争条件测试基本要求:
JR/T 0213—2021
a 测试方应在仿真环境中进行涉及资金 析于 断生产环境中是否存在类似问题。 b)应至少覆盖转账及积分兑换等场景。 多线程竞争条件测试增强要求: 多线程竞争条件测试具备偶发性,对同一个功能应采用至少2种以上工具并分别测试3次以上以确保 则试充分。
5.3.2.2资金查询越权测试
资金查询越权测试基本要求: a)应通过测试确认指定账户查询的回显内容中不包含当前用户权限所无法查看的内容 b)测试应覆盖到每一个可能对当前用户权限产生影响的参数。
5.3.2.3资金交易越权测试
资金交易越权测试基本要求: a 应通过测试确认不存在同一机构不同账户之间混淆的情况,如将预付账户资金直接汇入应付账 户并完成虚假交易。 b) 应通过测试确认不同机构之间不存在平行越权问题,如测试方利用漏洞诱导他人完成自已账户 的支付。
5.3.2.4支付漏洞测试
支付漏洞测试基本要求: 测试方应在仿真环境中进行支付漏洞测试。金融机构应通过对比分析判断生产环境中是否存在 类似问题。 b) 支付漏洞是否存在不应通过是否能够结算成功判断,应通过是否能够成功生成订单判断。 ) 应通过测试确认不存在商品属性篡改问题,商品属性包括但不限于商品金额、商品有效期、增 值服务有效期、商品分期数和附加优惠等。 d) 应通过测试确认支付功能不存在0元支付问题,如删除金额参数或将金额参数置为0可以生成 合法订单。 e) 应通过测试确认支付功能不存在整数溢出问题。 应通过测试确认支付功能不存在负值反充问题,如通过支付负数成功导致账户余额增加。 名 应通过测试确认支付功能不存在正负值对冲问题,如在进行多个不同类型商品结算支付时,可 以通过正负值对冲构造低价订单。 h) 应通过测试确认支付功能不存在流程异常的问题,如输入非法的金额或数量导致应用出现异常 或跳转至预期之外的流程
5.3.2.5请求重放测试
5.3.2.6用户信息完整性测试
息完整性测试基本要求
5.3.2.7业务逻辑数据验证测试
业务逻辑数据验证测试基本要求: 应通过测试确认其他不涉及资金支付的业务逻辑功能不存在数据验证缺陷。如将相关业务逻辑 的各个关键参数赋值为空值、0值、负数、超大数、字符串、换行符或制表符,以及将相关参数 整体删除之后出现的各类非预期结果。
5.3.2.8隐藏域测试
隐藏域测试基本要求: 测试方应充分发现并记录隐藏域中的参数,并尝试对这些参数进行直接赋值以模拟非预期的请求。 如在隐藏域中发现参数admin,尝试直接在请求中增加admin=1后立即获得管理员权限。 隐藏域测试增强要求: 测试方应结合业务语境充分猜测可能的隐藏参数,并尝试对这些参数进行直接赋值以模拟非预期的 请求。如猜测会存在参数admin,尝试直接在请求中增加admin=1后立即获得管理员权限
5.3.2.9完整性检查和中间人测试
完整性检查和中间人测试基本要求: 应通过测试确认客户端和服务器在传输交易数据时,服务端采用了有效的完整性检查和防篡改措 施。 完整性检查和中间人测试增强要求: 应通过测试确认客户端和服务器之间进行双向认证的有效性,确保无法通过已知手段进行中间人攻 击。
JR/T 0213—2021
5.3.2.11图形验证码测试
图形验证码测试基本要求: a 应通过测试确认图形验证码不会被整体绕过。 b) 应通过测试确认图形验证码无法进行低成本的光学字符识别(OCR)。如互联网上可下载的OCR 验证码识别工具、脚本等。 应通过测试确认图形验证码认证1次后即刻失效
5.3.2.12滑块验证码测试
滑块验证码测试基本要求: a 应通过测试确认滑块验证码不会被整体绕过。 b) 应通过测试确认滑块验证码能够有效防止机器模拟验证。 应通过测试确认滑块验证码认证1次后即刻失效。
5.3.2.13处理用时测试
处理用时测试基本要求: 应通过测试确认所有关键请求不能通过响应时间的变化而进行执行结果预测。如使用通配符导致的 响应延迟可能是由于服务端使用了正则表达式,这种情况下攻击者可以通过调整输入以获得预期之外的 最佳响应。
3.2.14工作流程绕过
工作流程绕过测试基本要求: a)应至少在找回密码和重置密码场景处进行业务流程绕过测试。 b)应通过测试确认当前所在的业务流程阶段不能够通过用户传入的参数直接指定。 c)对于每一个业务流程阶段,应通过测试确保安全策略与安全原则具备整体一致性
5.3.2.15应用程序误用测试
应用程序误用测试基本要求: 应通过测试确认系统存在能够阻止攻击者反复进行攻击尝试的防御机制。如多次输入疑似攻击尝试 及攻击利用的内容,系统可以直接阻断请求并进行临时IP封禁。该机制可以由第三方设备或软件提供。 应用程序误用测试增强要求: 应通过测试确认系统存在可以自学习的抗攻击尝试机制。
5.3.2.16文件上传测试
文件上传测试基本要求: 应通过测试确认系统不存在可以直接部署网页脚本的文件上传功能。 b) 应通过测试确认存储上传文件的Web应用服务不存在脚本解析漏洞。 c) 应通过测试确认上传文档前应经过有效的身份验证。 d)应通过测试确认文件上传的校验在服务端进行。
e) 应通过测试确认文件上传功能存在有效的后缀白名单限制,且无法被突破。 f 应通过测试确认文件上传的位置无法通过参数进行指定或操控。 8 应通过测试确认文件上传功能不存在竞争上传问题。 h 对于文件上传后会针对上传文件内容进行展示及重新染的功能,应通过测试确认无法利用该 功能绕过现有防御机制。 文件上传测试增强要求: 对于文件上传后会针对上传文件内容进行展示及重新渣染的功能,应通过测试确认该功能无法通过 容展示及重新道染执行外部插入的命令
5.3.3身份鉴别测试
5.3.3.1角色定义测试
角色定义测试基本要求: a)测试方应充分了解目标应用中的全部角色并建立权限矩阵。 b 金融机构应提供所有角色权限的账号及登录方式,并确认测试方建立权限矩阵的准确性。如生 产环境中不能提供对应角色权限的账号及登录方式,则需要在仿真环境中进行补充测试。
5.3.3.2用户注册过程测试
用户注册过程测试基本要求: a 应通过测试确认用户主体只能被注册1次。 b) 应通过测试确认系统存在能够有效认证用户主体的功能设计。如实名注册中,至少通过查询姓 名与身份证号码的匹配度来验证用户主体的真实性。 应通过测试确认不存在可以直接控制注册用户权限的参数。 d 应通过测试确认注册过程包含有效的人机识别,无法通过自动化批量完成
5.3.3.3账户权限变化测试
账户权限变化测试基本要求: 测试方应结合角色权限矩阵,梳理所有涉及权限变化的功能,并确认是否能够最小化满足业务 需求。 b 应通过测试确认任何角色都不能为自身或其他角色赋予超越自身的权限。 应通过测试确认任何角色都不能撤销或转移对等权限以及更高权限。
5.3.3.4账户枚举和弱用户名测试
账户枚举和弱用户名测试基本要求: a)应通过测试确认登录时无法进行账户枚举。 b)进行账户枚举和弱用户名测试时应尽可能尝试常见用户名与默认用户名。
5.3.3.5口令信息加密传输测试
口令信息加密传输测试基本要求: a)应通过测试确认口令信息传输在当前场景下满足JR/T0168一2020的要求。如网银系统在传输 口令时应采用双向校验。 b) 应通过测试确认口令信息传输时至少对口令参数本身使用摘要算法进行加密,或整个请求采用 通过国家密码管理部门认可的HTTPS协议进行传输
JR/T 0213—2021
在使用HTTPS 办议访问并成功登陆
5.3.3.6默认口令与弱口令测试
默认口令与弱口令测试基本要求: a) 测试方应建立并维护金融机构常用弱口令字典,并保证字典具备较高的命中率。 6) 测试方应通过访谈及调研的形式确认目标系统不存在统一分发的默认口令,或确认每个账户的 默认口令各不相同且无法基于自身分配的口令对其他账户的口令进行预测。 C 应通过测试确认不能够使用空口令登录目标系统。 d 应通过测试确认不存在能够使用弱口令登录的高权限账户。 e) 对于第三方应用,测试方应通过测试确认第三方应用不存在可预测的默认口令。如出厂口令或 可轻易与开发商信息关联的常见口令。 默认口令与弱口令测试增强要求: 测试方应针对目标系统及所属金融机构,通过组合关联信息定制弱口令字典的方式提升命中率
5.3.3.7账户锁定机制测试
5.3.3.8认证绕过测试
认证绕过测试基本要求: 应通过测试确认内部功能均进行了有效的认证保护,无法通过直接请求非授权访问内部功能。 b 应通过测试确认不存在能够通过参数直接激活登录认证的功能。如参数1ogin=on后能够以某 一个固定或指定的权限正常使用相应功能。 C 应通过测试确认会话标识或用来标示身份的其他参数不能进行线性预测。 应通过测试确认无法通过修改响应包的方式简化前
5.3.3.9记住密码功能测试
认证绕过测试基本要求: 应通过测试确认浏览器本地(包括但不限于Cookie、LocalStorage、SessionStorage) 存储明文密码或哈希。
5.3.3.10密码策略测试
密码策略测试基本要求: a)应通过测试确认目标系统的密码策略满足对应安全级别的要求。如密码长度要求、密码组成要 求、密码强制修改周期要求和历史密码策略要求等。 b)应通过测试确认目标系统无法通过连续多次更改密码的方式绕过历史密码策略。
5.3.3.11密码修改及重置测试
密码修改及重置测试基本要求:
5. 3.4.1 目录遍历、文件包含测试
目录遍历、文件包含测试基本要求: a)测试方应遍历所有通过用户传入文件名调取文件内容的功能,确保无法基于当前web应用运行 权限进行指定操作文件查看及下载的操作。 b 应通过测试确认传入参数不支持PHP封装协议(伪协议)。如php://input和php://filte 等。 c)应通过测试确认传入参数不支持通过“../”以及对应的各类编码或变体进行父目录穿越
5.3.4.2且录浏览测试
目录浏览测试基本要求: a)应通过测试确认Web应用各级目录均未开启目录浏览功能。 应通过测试确认Web应用各级目录不存在通过其他信息间接泄露全部或部分目录名称的问题, 如版本控制工具残留文件导致的目录或文件名称泄露
5.3.4.3可预测资源定位测试
可预测资源定位测试基本要求: a)对于不便进行权限限制的静态资源,应通过测试确认其名称具备不可预测性,包括但不限于图 片、文档和附件等静态资源。如图片名称包含32位以上哈希且不可线性预测。 应充分尝试请求可能的文件名、后缀及相关变体,确保不存在包含敏感信息的可预测资源。如 版本控制文件、备份文件和示例文件等。 C 应通过测试确认web服务器及中间件的基础配置文件和管理入口,不会因为配置失误导致未授 权访间,
5.3.4.4授权绕过测试
授权绕过测试基本要求: 如具备条件,测试方应使用管理员权限遍历管理页面和功能并进行记录,且通过测试确保普通 用户以及其他非授权用户不具备这些页面及功能的使用权限。 b 应通过测试确认管理功能的权限判断逻辑未仅在前端实现。如在未登录状态下请求某个管理页 面,会通过增加JavaScript的方式引导用户跳转或关闭窗口,但实际管理功能及数据已经加 载并可以正常使用
5.3.4.5权限提升测试
JR/T0213—2021
权限提升基本要求: 应通过测试确认不存在通过用户输入参数可以直接控制当前账户整体权限的功能实现或接口。如通 过增加参数admin=1即可使用管理员功能
5.3.4.6不安全的直接对象引用测试
不安全的直接对象引用测试基本要求: a) 应通过测试确认所有用户输入的与权限相关的线性参数均不存在平行越权的问题。如ID=150 为当前用户的内容,ID=151为当前用户所不具备权限的其他用户的内容。 b 在生产系统中,如涉及写与删除操作的平行越权,应至少在另一个测试账户中进行。如不具备 另一个测试账户,则应在仿真环境中进行本项测试。 进行不安全的直接对象引用测试时,应严格禁止批量跑取数据的行为。如需要进行危害验证, 应获取不超过5条数据用以证明危害即可
5.3.5会话管理测试
5.3.5.1会话管理绕过测试
会话管理绕过测试基本要求: a)应通过测试确认Cookie中的会话凭证具备不可预测性。 应通过测试确认会话标识符从一个可信系统,如服务器上创建,而不是在客户端创建。 C 应通过测试确认Cookie中的会话凭证不能通过目标系统中的其他功能生成,如存在某个功能 实现或接口,在传入用户名后可以得到对应用户的会话凭证。 会话管理绕过测试增强要求: 在验证会话凭证的不可预测性时,宜采用通过工具生成大量会话凭证样本并进行碰撞的方式进行
5.3.5.2Cookie属性测试
Cookie属性测试基本要求: 应通过测试确认Cookie中的会话标识设置了Secure、HttpOnly和SameSite属性。 6 应通过测试确认对HttpOnly不支持的浏览器不能使用站点功能。 应通过测试确认目标系统不存在能够绕过HttpOnly机制的漏洞,如特定的中间件漏洞以及利 用CORS特性导致的XSS会话劫持等。
5.3.5.3会话固定测试
会话固定测试基本要求: a) 应通过测试确认用户登录成功后目标系统会自动更新会话标识。 b) 应通过测试确认当用户携带一个通过URL传递的指定的会话标识进行用户认证后,该会话标识 不会生效。
5.3.5.4会话令牌泄露测试
会话令牌泄露测试基本要求: 应通过测试确认所有涉及身份认证的关键参数均不能通过GET方式传输。如用户名密码对,会话标 识以及其他能够独立通过身份校验的各类凭据
5.3.5.5CSRF测试
CSRF测试基本要求: 测试方应梳理并记录所有与身份强相关的单向操作,包括但不限于不需要原密码的密码修改功 能、增加用户功能、删除用户功能、赋予用户权限功能、转账功能、发送公告功能等。应通过 测试确保上述功能不存在CSRF问题, 如使用Referer校验,则应通过测试确认不存在域内的CSRF漏洞。 C 如使用Token校验,则应通过测试确认Token验证与会话标识强相关。 d 如使用双重校验,则应通过测试确认校验码不可预测及不可绕过。 e 如使用图形验证码,则应通过测试确认图形验证码不可预测及不可绕过。 应通过测试确认目标系统无法进行JSON和JSONP劫持攻击。
5.3.5.6登出功能与会话超时测试
登出功能与会话超时测试基本要求: a)应通过测试确认用户界面中存在登出功能,并确认登出功能的有效性。 b)应通过测试确认目标系统存在无动作前提下的自动登出时间设置,且不长于10分钟。
5.3.5.7会话变量重载测试
会话变量重载测试增强要求: 应通过测试确认目标系统的每次会话变量重载都在充分认证的基础之上进行。如任何未登录的用户 在访问某个页面后都被动激活了登录会话,
5.3.6输入验证测试
5.3.6.1XSS测试
JR/T 0213—2021
5.3.6.2SSRF测试
SSRF测试基本要求: a)测试方应在所有可能调用内部或外部第三方系统的位置进行充分的SSRF测试尝试。包括但不 限于直接通过参数传递IP地址的功能、传递端口号的功能、传递第三方URL的功能以及传递 第三方回显数据的功能等。 b)应通过测试确认传入的URL参数仅支持HTTP(S)协议,不应响应file://、gopher://、ftp:/ 和dict://等其他网络协议。
垫圈标准5.3.6.3HTTP谓词算改测试
HTTP谓词算改测试基本要求: a)应通过测试确认目标系统是否开启了WebdaV。 b)在开启了Webdav的前提下,应通过测试确认目标系统无法通过Webdav缺陷配置上传 Webshell。 HTTP谓词算改测试增强要求: 应通过测试确认非标准的HTTP方法不会产生非预期的行为
5.3.6.4HTTP参数污染测试
ITTP参数污染测试基本要求: 应通过测试确认在引入多个同名参数时,安全限制与参数执行始终保持一致。 应通过测试确认在引入多个同名参数时,目标系统在接受了多个参数值组合的前提下无法绕 安全限制。
5.3.6.5SQL注入测试
SQL注入测试基本要求: a)涉及增、删、改的注入测试,应在仿真环境下进行。严禁在生产环境中进行增、删、改相关的 各类SQL注入测试。包括但不限于通过堆叠注入引入完整的增删改语句,通过Outfile语句向 服务器文件写入内容,通过文本输入区域进行二次注入,在增删改语句中拼入恒真表达式或注 释后续执行条件等危险操作。 b 严禁使用第三方运维的域名解析记录平台进行带外注入测试。如需使用测试方自有平台进行测 试,需按照金融机构制定的测试工具管理流程进行报备。 C 在使用了NoSQL及ORM相关技术的系统中,测试方应根据相关技术特点调整测试手段以便充分 发现SQL注入风险。 SQL注入测试增强要求: a 测试方应对所有可能存在数据库查询的功能进行SQL注入测试。可通过开发专项工具的方式提 升SQL注入测试的全面性。 b) 在使用了安全限制的场景下,应通过测试确认负载均衡或代理服务器在向后端服务器做转发的 过程中,不存在HTTP请求走私(HTTPrequestSmuggling)问题。
医药标准5. 3. 6. 6 XML 注入测试
....- 金融标准
- 相关专题: 网络安全