台湾乐天市场资安稽核团队经理纪文平分享乐天市场从事前评估检测需求到事后规画解决方案的做法中,如何透过沟通与制度化来强化检测严谨度,以及这套做法和台湾常见做法的不同之处。 (摄影/郭又华)
数位产品上线前是否该进行资安测试,怎么测试才不容易漏测,测完应该怎么做?台湾乐天市场资安稽核团队经理纪文平分享乐天市场从事前评估检测需求到事后规画解决方案的做法中,如何透过沟通与制度化来强化检测严谨度,以及这套做法和台湾常见做法的不同之处。纪文平所属团队是乐天集团3个国家的产品测试团队之一,负责集团在各国的产品资安测试跟渗透测试。
产品上线前资安检测,指的是产品正式发布或改版前,由资安工程师扮演攻击者,来试探系统漏洞,以在产品正式发布前修复或制定其他处理方针。乐天完整的检测程序分为四个阶段,包括了检测必要性评估阶段、提交需求的准备阶段、正式检测阶段,以及事后风险评估阶段。
产品上线前资安检测要先评估必要性
纪文平指出:「像乐天这样大型跨国企业有大量产品发布或改版,必须决定资安检测的必要性及优先度。」例如,如果只是使用者介面排版更新、韧体小型更新、或静态网页更新,乐天未必会进行资安检测。纪文平说,正式进入检测阶段前,企业需要有一套决策机制来评估资安检测必要性,乐天也有一套自己的评估决策树。他建议,企业可以从四个面向,来制定适合的必要性评估机制。
第一个考虑面向是从攻击表面来评估,也就是从产品部署环境,来评估攻击者可以从哪些面向来对产品下手。可以考虑,部署环境有无外部保护机制?网路环境为何,有没有WAF、VPN、Load Balancer、Proxy等机制?攻击者能不能直接从外网接触到此产品?都是需要考虑的事项。
纪文平补充,当产品直接部署到客户端环境,检测时就要假设没有任何额外防护,不能心存侥幸。如果是部署在自家可控环境,作为一个SaaS服务提供给客户,测试时要连同内部执行环境的防护措施一并纳入考量。
第二个面向是产品是否涉及敏感资料。例如,产品是否会处理到个人资料、信用卡资料等高度隐私资料,或是企业内部高机密等级的资料?另外,也需要依照资料特性,测试处理方法有遵循相关资料处理法规或标准。
第三个面向则是从产品改动情况评估,改动幅度和内容会不会影响资安相关设定。可以问的问题包括:产品是否涉及关键系统?是新产品推出还是旧产品改版?是大版本更新和还是小幅改动?改动内容是否有影响产品功能或底层逻辑?
最后一个面向则要考虑网路环境的改变,包括网路组态有无改变、使用的API及其他服务有无改动等。
产品上线前资安检测的做法,台日模式大不同
一项产品评估后,确定进行上线前资安检测,便进入了准备阶段,由开发方提交检测具体需求给资安检测方。纪文平观察,乐天等日本企业,与台湾常见检测准备方法有明显差异。他以《112年共同供应契约资通安全服务品项采购规范》作为台湾做法范本,来和乐天做法比较。
首先,台湾做法常会以URL或IP当作基本检测单位,比方说,一项内网渗透测试,就是以一个IP为单位去计算服务所需人天。
但乐天会以更细致的请求为单位。光是一个登入页面,内有登入、忘记密码、提交Email、回到上一页、进入更改密码页面、提交新密码、进入订单中心、进入购买历史等功能按钮,就有8个请求,也就是8个需要检查的项目,都需要各自执行一轮检测作业。
不只如此,乐天资安团队还会要求开发团队提供检查项目的详细资讯,例如HTTP 请求方法(HTTP Method)、目标URL,以及各种其他细项参数。纪文平说,这种做法的沟通成本较高,但可以让测试需求更加清楚、细致。
开发方提交完需求,资安团队便会正式进入检查阶段,这个阶段的台日做法,也大不相同。纪文平说,台湾定义检测种类时通常用较高层级、较概括的语言来描述,且只会举例几项应测试内容,不会穷举所有可测试项目。纪文平指出,这种做法很依赖资安工程师经验或是技术,来决定还有哪些项目应该测试。他举例,XSS漏洞测试做法有很多种,像前述共同契约规范只有简单提到「XSS漏洞测试」,这样一来,若企业只根据该规范来测试,便无法保证负责的工程师能测试到各种细项。
乐天则会有一个检查表,详细列出每一项检查项目。以Web产品来说,这个检查表上会有超过100个项目,包含OWASP Top 10、SANS Top 25,以及其他常见资安漏洞项目,资安工程师需要根据测试表项目逐一测试并标注测试完毕。纪文平坦言,这种做法较繁琐,但至少能确保资安工程师不会因为经验或知识不足而有所疏漏。
根据风险程度拟定解决方案
检测完毕,乐天资安团队会根据CVSS分数列出不同漏洞,并设定解决漏洞的时限。若开发团队评估漏洞无法于产品正式发布前修补,则会启动风险承担(Risk Acceptance)评估程序,由资安团队及开发团队长官共同执行。
乐天的风险承担评估做法是,漏洞CVSS分数越高,便需要两边团队越高阶的主管批准,才能允许不在产品发布前修补这个漏洞。同意承担这个漏洞的风险后,还需要拟定短期风险规避和长期漏洞修复计划。
通常,越高风险的漏洞越不容易被放行。少数特例是,只于内网运作的服务,综合考量内网其他防护机制后,两边团队主管都判断此服务不容易被攻击,才会选择承担漏洞风险。
纪文平总结,乐天产品上线前资安检测流程非常注重细节与沟通。从准备阶段开始,要求开发团队给予更多资讯及测试准备,测试阶段以请求而非URL为单位,且用检查表细致定义检查项目,到最后风险承受评估要求开发及资安两方团队共重承担资任,都可见一斑。
「订出细致具体的检测流程,就不会只依赖资深工程师的经验。」纪文平说。不过他提醒,这种做法也有其挑战,包括沟通成本较高、聚焦细项容易忽略复合型的弱点,以及共同评估风险承担容易模糊责任归属等。
乐天产品上线前资安检测特色
特色1 乐天产品检查以请求为单位,而非以URL或IP为单位。例如,这个简单的登入页面就有高达8个请求,需要各自做一轮资安检查。摄影/郭又华
特色2 提交检查需求时,开发团队需要给资安团队详细的产品资讯,包括HTTP请求方法HTTP Method、目标URL,以及各种其他细项参数。摄影/郭又华
特色3 进行资安检测时,乐天资安工程师会拿到一份详细的检查表,以Web产品来说,会有超过100个项目。工程师测试完,还须在检查表上逐一标注完成。摄影/郭又华
特色4 开发团队评估漏洞无法在产品上线前修补时,便须由开发和资安团队主管共同决定是否承担此风险,并拟定长短期应对计划。CVSS分数越高,所需签核主管等级越高。摄影/郭又华