一种风险识别方法、装置、电子设备和存储介质与流程
未命名
07-22
阅读:63
评论:0

背景技术:
::2.安全研发生命周期是一类把安全要素融入到研发各个阶段从而实现尽早发现安全风险、降低风险解决成本的流程。developmentsecurityoperations,简称devsecops,是一类安全研发生命周期的实践,将安全工具如静态代码扫描器、交互式插桩扫描器、请求响应扫描器等与其它研发工具一起融入到研发流水线中,并实现流畅运行。在流行的微服务架构中,一次调用链路往往会涉及到多个应用单元和服务接口,这些工具很难准确的完成跨应用、跨服务的业务风险分析。因此,相关技术中亟需一种容易准确完成跨应用、跨服务的业务风险分析的方案。3.需要说明的是,在上述
背景技术:
:部分公开的信息仅用于加强对本说明书的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。技术实现要素:4.本说明书提供了一种风险识别方法、装置、电子设备和存储介质,该方法能够相对准确的完成跨应用、跨服务的业务风险分析。5.本说明书的其他特性和优点将通过下面的详细描述变得显然,或部分地通过本说明书的实践而习得。6.根据本说明书的一个方面,提供了一种风险识别方法,包括:获取多个应用各自的多种目标类型的行为数据;根据上述多个应用各自的多种目标类型的行为数据,构建跨应用图数据库;其中,上述跨应用图数据库中存储有上述多个应用各自的多种目标类型的行为数据之间的关联关系;根据上述跨应用图数据库,对待识别业务进行风险识别;其中,上述待识别业务中包括上述多个应用中的至少一个。7.根据本说明书的另一个方面,提供一种风险识别装置,该装置包括:获取模块,用于获取多个应用各自的多种目标类型的行为数据;构建模块,用于根据上述多个应用各自的多种目标类型的行为数据,构建跨应用图数据库;其中,上述跨应用图数据库中存储有上述多个应用各自的多种目标类型的行为数据之间的关联关系;识别模块,用于根据上述跨应用图数据库,对待识别业务进行风险识别;其中,上述待识别业务中包括上述多个应用中的至少一个。8.根据本说明书的另一个方面,提供一种电子设备,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述实施例中的风险识别方法。9.根据本说明书的一个方面,提供一种计算机可读存储介质,上述计算机可读存储介质中存储有指令,当上述指令在计算机或处理器上运行时,使得上述计算机或处理器执行如上述实施例中的风险识别方法。10.根据本说明书的另一个方面,提供一种包含指令的计算机程序产品,当上述计算机程序产品在计算机或处理器上运行时,使得上述计算机或处理器执行如上述实施例中的风险识别方法。11.本说明书的实施例所提供的风险识别方法、风险识别装置、计算机可读存储介质、电子设备和计算机程序产品,具备以下技术效果:12.本说明书示例性的实施例提供的方案中,通过获取多个应用各自的多种目标类型的行为数据,来构建跨应用图数据库。由于该跨应用图数据库中存储有多个应用各自的多种目标类型的行为数据之间的关联关系,且待识别业务中包括多个应用中的至少一个,因而可以根据该跨应用图数据库,对待识别业务进行风险识别。通过构建跨应用图数据库,使得本说明书示例性的实施例提供的方案具备了跨应用、跨服务的高精度分析能力,从而有利于相对准确的完成跨应用、跨服务的业务风险分析。另外,由于跨应用图数据库中存储有多个应用各自的多种目标类型的行为数据之间的关联关系,而无需存储其他数据,因而可以在准确分析的同时,避免存储数据过多导致的分析速度慢的问题。13.应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本说明书。附图说明14.此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本说明书的实施例,并与说明书一起用于解释本说明书的原理。显而易见地,下面描述中的附图仅仅是本说明书的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。15.图1为本说明书一实施例提供的风险识别方法的示意性流程图。16.图2为本说明书一实施例提供的步骤101的一种实现方式的示意性流程图。17.图3为本说明书一实施例提供的步骤1011的一种实现方式的示意性流程图。18.图4为本说明书一实施例提供的静态程序分析能力的示意图。19.图5为本说明书一实施例提供的动态程序分析能力的示意图。20.图6为本说明书一实施例提供的步骤1013的一种实现方式的示意性流程图。21.图7为本说明书一实施例提供的步骤102的一种实现方式的示意性流程图。22.图8为本说明书一实施例提供的in-》out链路和in-》sink链路的示意图。23.图9为本说明书一实施例提供的app1和app3关联的示意图。24.图10为本说明书一实施例提供的步骤103的一种实现方式的示意性流程图。25.图11为本说明书一实施例提供的交易支付场景的示意图。26.图12为本说明书一实施例提供的实现风险识别方法的整体技术架构图。27.图13为本说明书一实施例提供的纯人工评估模式的示意图。28.图14为本说明书一实施例提供的纯自动化评估模式的示意图。29.图15为本说明书一实施例提供的自动化风险预评模式的示意图。30.图16为本说明书一实施例提供的自动化场景确认模式的示意图。31.图17为本说明书一实施例提供的风险识别装置的结构示意图。32.图18示意性示出了根据本说明书一示例性的实施例中电子设备的结构图。具体实施方式33.为使本说明书的目的、技术方案和优点更加清楚,下面将结合附图对本说明书实施方式作进一步地详细描述。34.下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本说明书相一致的所有实施方式。相反,它们仅是如所附权利要求书中所详述的、本说明书的一些方面相一致的装置和方法的例子。35.现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够以多种形式实施,且不应被理解为限于在此阐述的范例;相反,提供这些实施方式使得本说明书将更加全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本说明书的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本说明书的技术方案而省略所述特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知技术方案以避免喧宾夺主而使得本说明书的各方面变得模糊。36.此外,附图仅为本说明书的示意性图解,并非一定是按比例绘制。图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。37.风险评估的本质是在对业务充分理解的前提下,运用安全知识进行风险披露的过程。经过对大量风险评估案例进行复盘分析后,发现影响效率的关键点为安全工程师对于“业务”知识的理解不够,或者是研发工程师对于“安全”知识的储备不足。“业务”指的是广义的业务概念,从层次上,既包括通常认知上的业务(如登陆业务、支付业务),也包括承载业务的系统架构以及运行的应用进程和源代码;从内容上,既包括通常认知上的业务(如登陆业务),也包括安全业务(是否接入安全防御组件)。安全工程师需要全面理解“业务”,才能够基于已有的安全知识去识别安全风险。而对研发工程师来说正好相反,研发工程师非常理解业务,但由于安全知识掌握不足无法识别业务存在的风险。在风险评估场景以外,更多的场景要求安全工程师具备快速、清晰理解“业务”的能力,比如在风险应急和风险治理场景,安全工程师需要根据应急/治理标准快速梳理出待进行改造的业务、系统和代码,并且对结果的准确性、实施效率和成本有较高要求。38.安全开发生命周期(sdl,securitydevelopmentlifecycle)是一个帮助开发人员在构建安全软件的同时降低成本的软件开发过程,最早由微软提出并得到成功实践,当前在业界非常流行并广泛实践。与sdl并驾齐驱的一个概念是devsecops,devsecops发源于devops,正如同sdl发源于开发生命周期dl(developmentlifecycle),devsecops的核心原理与sdl并无差异,更强调安全过程需要工具化和流水线化。39.由于全面实施sdl流程成本过高,绝大多数企业往往会优先选择建设更轻量级的devsecops流程。实施devsecops流程能够显著提升安全水位,不过它也会存在一些瓶颈。devsecops是一类安全研发生命周期的实践,将安全工具如静态代码扫描器、交互式插桩扫描器、请求响应扫描器等与其它研发工具一起融入到研发流水线中,并实现流畅运行。部分devsecops工具在面对当前流行的微服务架构时,一次调用链路往往会涉及到多个应用单元和服务接口,很难准确完成跨应用、跨服务的业务风险分析。40.基于此,为解决上述很难准确完成跨应用、跨服务的业务风险分析的技术问题,本说明书实施例提供了一种风险识别方法、装置、电子设备和存储介质。下面首先对本说明书实施例中的风险识别方法进行具体说明:41.本说明书实施例中的风险识别方法可以应用于具备风险识别功能的电子设备,该电子设备可以为服务器。在具体实现中,风险识别功能可以由一个服务器实现,也可以由多个服务器共同实现。42.在示例性的实施例中,风险识别方法的的示意性流程图可以参阅图1,包括:43.步骤101:获取多个应用各自的多种目标类型的行为数据。44.步骤102:根据上述多个应用各自的多种目标类型的行为数据,构建跨应用图数据库;其中,上述跨应用图数据库中存储有上述多个应用各自的多种目标类型的行为数据之间的关联关系。45.步骤103:根据上述跨应用图数据库,对待识别业务进行风险识别;其中,上述待识别业务中包括上述多个应用中的至少一个。46.在图1所示的实施例中,通过获取多个应用各自的多种目标类型的行为数据,来构建跨应用图数据库。由于该跨应用图数据库中存储有多个应用各自的多种目标类型的行为数据之间的关联关系,且待识别业务中包括多个应用中的至少一个,因而可以根据该跨应用图数据库,对待识别业务进行风险识别。通过构建跨应用图数据库,使得本说明书示例性的实施例提供的方案具备了跨应用、跨服务的高精度分析能力,从而有利于相对准确的完成跨应用、跨服务的业务风险分析。另外,由于跨应用图数据库中存储有多个应用各自的多种目标类型的行为数据之间的关联关系,而无需存储其他数据,因而可以在准确分析的同时,避免存储数据过多导致的分析速度慢的问题。47.下面对图1所示的实施例中的各个步骤的具体实施方式进行说明:48.在步骤101中,电子设备可以收集多个应用各自的多种目标类型的行为数据。其中,多种目标类型可以为和风险识别相关的类型,和风险识别相关的类型可以由安全专家和/或研发专家根据实际需要预先确定。上述应用可以部署在服务器上,以承载一些业务功能,从而实现一些业务功能。49.在示例性的实施例中,多种目标类型包括:应用基础行为类、业务行为类、安全风险行为类和安全防御行为类。下面对则集中目标类型分别进行介绍:50.上述应用基础行为类即应用的基本行为类,应用基础行为类可以进一步包括:发送接受请求、消息、返回缓存、返回数据库、读写文件、写日志等。上述请求比如可以包括:http请求、prc请求等。51.上述业务行为类即应用的业务行为类,业务行为类可以进一步包括:登录行为、注册行为、支付行为、转账行为、红包行为、营销行为等。52.上述安全风险行为类即应用中存在的风险行为,安全风险行为类可以进一步包括:系统命令执行行为、敏感接口调用行为、敏感数据读取行为等。53.上述安全防御行为类即应用主动安全防御的行为,安全防御行为类可以进一步包括:认证行为、二次核身行为、鉴权行为、加密行为、安全检测行为等。54.在示例性的实施例中,可以获取应用研发过程中产生的过程资料,如文档、产品页面、代码、进程数据等,通过自然语言处理(naturallanguageprocessing,nlp)、图像识别、程序分析、机器学习等技术对这些过程资料进行分析,结构化地抽取业务信息,得到上述多种目标类型的行为数据。55.在示例性的实施例中,上述步骤101中获取多个应用各自的多种目标类型的行为数据的实现方式可以参阅图2,包括:56.步骤1011:对上述多个应用分别进行静态程序分析,得到上述多个应用各自的静态程序分析结果。57.步骤1012:对上述多个应用分别进行动态程序分析,得到上述多个应用各自的动态程序分析结果。58.步骤1013:根据上述多个应用各自的静态程序分析结果和动态程序分析结果,对上述多个应用分别进行业务抽象建模,得到上述多个应用各自的多种目标类型的行为数据。59.在图2所示的实施例中,通过进行静态程序分析和动态程序分析,使得静态程序分析结果和动态程序分析结果可以相互补充,从而有利于更加准确且全面的得到多个应用各自的多种目标类型的行为数据。60.下面对图2所示的实施例中的各个步骤的实施方式进行具体说明:61.在步骤1011中,可以使用静态程序分析工具,对多个应用分别进行静态程序分析,得到多个应用各自的静态程序分析结果。其中,静态程序分析工具可以实现中间代码生成、指令简化等基础工作,并基于高精度的指针分析技术构建方法调用图和程序依赖图。通过方法调用图和程序依赖图即能实现对数据流分析、污点分析、结构化查询语言(structuredquerylanguage,sql)分析、源码分析、配置分析等程序分析核心算法。通过开发相应的数据流、调用流等分析规则即能收集到单个应用中的数据流、污点流、调用流、程序元数据、配置数据等信息,从而可以将收集到的单个应用中的数据流、污点流、调用流、程序元数据、配置数据等信息作为该单应用的静态程序分析结果。62.在示例性的实施例中,步骤1011的实现方式可以参阅图3,包括:63.步骤301:确定上述多个应用分别对应的开发框架。64.步骤302:对上述多个应用分别对应的开发框架进行框架分析,得到上述多个应用分别对应的初始化分析结果。65.步骤303:根据预设的流分析规则,对上述多个应用分别对应的初始化分析结果进行分析,得到上述多个应用各自的静态程序分析结果。66.在图3所示的实施例中,通过对多个应用分别对应的开发框架进行框架分析,相当于多开发框架进行框架建模,使得静态程序分析工具可以适应不同的开发框架,有利于提高后续分析的准确性和速度。67.下面对图3所示实施例中的各步骤的实施方式进行具体说明:68.在步骤301中,不同的应用对应的开发框架可能相同,也可能不同。开发框架可能为:spring框架、控制反转(inversionofcontrol,ioc)框架、69.数据访问对象(dataaccessobject,dao)框架、mybatis框架等。70.在步骤302中,可以对多个应用分别对应的开发框架进行框架分析,得到多个应用分别对应的初始化分析结果。其中,框架分析可以理解为初始化分析,也可以理解为框架建模。比如,对ioc框架进行框架分析,可以理解为对ioc框架进行ioc建模,对dao框架进行框架分析,可以理解为对dao框架进行dao建模。其中,框架建模可以理解为初始化分析的规则,框架建模的结果可以是初始化分析结果。本步骤中通过对应用的程序进行初始化分析,可以得到开发框架比较基础的一些业务的特性,比如权限、认证等,从而得到多个应用分别对应的初始化分析结果。71.在步骤303中,可以根据预设的流分析规则,对上述多个应用分别对应的初始化分析结果进行分析,得到上述多个应用各自的静态程序分析结果。其中,流分析规则可以根据实际需要进行设定,通过流分析规则能收集到单个应用中的数据流、污点流、调用流、程序元数据、配置数据等信息。由于行为具体到程序层面的体现就是不同的流,因此,相当于根据流分析规则,可以确定一个行为属于哪一种目标类型,比如是应用基础行为类还是业务行为类。上述流分析规则规则还可以包括一级分类规则和二级分类规则,比如,一级分类规则为确定一个行为是否属于应用基础行为类的规则,二级分类规则为识别应用有没有发超文本传输协议(hypertexttransferprotocol,http)、远程过程调用(remoteprocedurecall,rpc)等请求的一个规则,比如识别到底层调用一个发http请求,就认为是有发http请求的行为。72.在示例性的实施例中,可以构建如图4所示的静态程序分析能力,从而利用该静态程序分析能力,完成静态程序分析,得到静态程序分析结果。本实施例中的静态程序分析工具可以具备图4所示的静态程序分析能力。图4中,静态程序分析能力通过基础层、核心层、适配层和数据层的功能实现。基础层用于实现中间代码生成、指令简化等基础工作,并基于高精度的指针分析技术构建方法调用图和程序依赖图。核心层用于通过方法调用图和程序依赖图实现对数据流分析、污点流分析、sql分析、源码分析、配置分析等程序分析核心算法。适配层用于对多个应用分别对应的开发框架进行框架建模,比如图4中的ioc建模、dao建模。依赖建模和权限建模更加上层一点,相当于除了对框架、中间件建模以外,对业务层的一些比较基础的能力也有建模,比如权限,权限可以理解为是每个应用都会有认证和权限管控的体系。因为通常在一个公司内部,权限体系是相对比较固定的,这部分工作也可以建模,可以减轻后续分析的成本。数据层用于根据适配层的输出,即初始化分析结果以及预设的流分析规则,收集到单个应用中的数据流、污点流、调用流、程序元数据、配置数据等信息。73.在步骤1012中,可以通过动态程序分析工具对多个应用分别进行动态程序分析,得到上述多个应用各自的动态程序分析结果。可以理解的是,静态程序分析技术的优势是能够在不运行程序、不依赖流量充分度的前提下对程序的重要性质进行分析,但也不可避免地存在一定程度的漏报和误报。因此,本实施例还会对多个应用分别进行动态程序分析。74.在示例性的实施例中,可以构建如图5所示的动态程序分析能力,从而利用该动态程序分析能力,完成动态程序分析,得到动态程序分析结果。本实施例中的动态程序分析工具可以具备图5所示的动态程序分析能力。图5中,通过javaagent技术实现了统一的java虚拟机(javavirtualmachine,jvm)字节码插桩能力,并向上提供插件机制,在上层可以实现交互式应用安全测试(interactiveapplicationsecuritytesting,iast)、动态运行时保护(runtimeapplicationself-protection,rasp)以及动态数据采集组件rdata,基于动态数据采集组件可以采集到程序动态运行时关键方法调用前、返回时、异常时的trace信息、调用栈、环境信息、业务数据等数据。本实施例中,可以将上述动态数据采集组件所采集到的数据作为动态程序分析结果。75.在步骤1013中,根据多个应用各自的静态程序分析结果和动态程序分析结果,对多个应用分别进行业务抽象建模,得到多个应用各自的多种目标类型的行为数据。也就是说,在收集到多个应用各自的动、静态程序分析结果后,可以基于动、静态程序分析结果进行业务抽象建模。本实施例中,可以主要基于动、静态程序分析结果中的数据流和调用流进行业务抽象建模。根据调用流和数据流的特性,使用调用流为主的组合链路数据来识别场景能够保证较高的召回率,使用数据流为主的组合链路来识别风险能够保证较高的准确率。业务抽象建模规则可以包含以下4种类型:76.基础行为类:应用的基本行为,如发送接收请求等。77.业务行为类:应用的业务行为,如实现登陆、注册功能等。78.安全风险行为类:应用存在风险的行为,如系统命令执行等。79.安全防御行为类:应用主动安全防御的行为,如认证、鉴权等。80.在示例性的实施例中,上述静态程序分析结果和动态程序分析结果包括代码注释,上述步骤1013的实现方式可以参阅图6,包括:81.步骤601:对上述代码注释进行分词,得到若干关键词。82.步骤602:根据上述若干关键词和预设的映射库,确定对应有风险类型和/或场景的目标关键词。83.步骤603:根据上述目标关键词,对上述多个应用分别进行业务抽象建模,得到上述多个应用各自的多种目标类型的行为数据。84.需要说明的是,对于微服务架构承载的系统来说,每一个服务接口可以视作为一个最小业务行为单元。通过动静态程序分析即能自动化提取程序中的微服务接口,提取的信息包含接口相关的代码注释、类/枚举/方法/变量名、流量数据等与业务语义强相关的特征信息。在本实施例中,主要采用了分词技术来对接口注释即代码注释进行分词,同时完成分词后结合关键词匹配进行业务抽象建模,有利于提高业务抽象建模的准确性。85.下面对图6所示实施例中的各个步骤的实施方式进行具体说明:86.在步骤601中,可以采用自然语言处理(naturallanguageprocessing,nlp)分词技术,对代码注释进行分词,得到分词结果。其中,分词结果中即包括分词得到的若干个关键词。87.在步骤602中,预设的映射库中可以存储有关键词和场景之间的映射关系,或是存储有关键词和风险类型之间的映射关系,或是存储有关键词、风险类型和场景之间的映射关系。从而,根据分词得到的若干关键词和预设的映射库,可以确定对应有风险类型和/或场景的目标关键词。可以理解的是,每个应用可以均具有对应的代码注释,从而可以通过关键词匹配,得到多个应用各自的目标关键词。88.可以理解的是,对代码注释分词后,可能得到很多关键词,比如得到一个关键词列表,但这些关键词并不是都会对应有风险类型和/或场景。因此,通过映射库匹配出目标关键词,该目标关键词所对应的代码可能是安全专家关注的。89.在步骤603中,可以根据多个应用各自的目标关键词,对上述多个应用分别进行业务抽象建模,得到上述多个应用各自的多种目标类型的行为数据。一个应用的目标关键词可以用于描述该应用对应的风险类型和/或场景。其中,对一个应用进行业务抽象建模可以理解为:建立该应用的目标关键词与业务场景和\或业务风险的对应关系,使得通过关键词可以映射到对应的业务场景和\或业务风险。一个应用的多种目标类型的行为数据,可以理解为:该应用的多种目标类型对应的目标关键词与业务场景和\或业务风险的对应关系数据。90.在示例性的实施例中,上述步骤603的实现方式可以包括:获取安全专家对于目标关键词的确认信息或补充信息;根据上述安全专家对于上述目标关键词的确认信息或补充信息,进行业务抽象建模,得到上述多个应用各自的多种目标类型的行为数据。本实施例中,在得到目标关键词后,可以由安全专家对目标关键词及其对应的业务场景和\或业务风险进行确认或补充,比如,确认目标关键词及其对应的业务场景和\或业务风险之间的对应关系是否准确,比如该目标关键词是否真的对应该业务场景和\或业务风险。当获取到安全专家对于目标关键词的确认信息,表明安全专家对于目标关键词与业务场景和\或业务风险之间的对应关系没有疑义,从而可以执行根据目标关键词以及目标关键词对应的业务场景和\或业务风险,进行业务抽象建模,得到上述多个应用各自的多种目标类型的行为数据。安全专家的补充可以理解为:当匹配到一个目标关键词后,安全专家对该目标关键词对应的业务场景和\或业务风险进行补充,比如增加一些其他的场景标记或是风险标记。当获取到安全专家对于目标关键词的补充信息,表明安全专家对于目标关键词与业务场景和\或业务风险之间的对应关系有补充,从而可以结合安全专家对于目标关键词的补充信息,进行业务抽象建模,得到上述多个应用各自的多种目标类型的行为数据。91.本实施例中,进一步结合专家经验可以更加有效地实现对于微服务架构应用的业务抽象建模,提高抽象建模的准确性。92.在步骤102中,根据多个应用各自的多种目标类型的行为数据,构建跨应用图数据库。其中,跨应用图数据库中存储有多个应用各自的多种目标类型的行为数据之间的关联关系。93.示例性的,在得到多个应用各自的多种目标类型的行为数据后,可以将这些数据收集到离线数据库中,通过离线任务构建跨应用图数据库。跨应用图数据库可以包括两种类型,分别是方法调用图数据库和数据流图数据库。需要说明的是,本实施例中只是以上述离线数据库、离线任务为例,在具体实现中,也可以采用在线数据库和在线任务。94.在示例性的实施例中,步骤102的实现方式可以参阅图7包括:95.步骤1021:根据上述多个应用各自的多种目标类型的行为数据,确定上述多个应用各自的输入节点、输出节点以及数据消费节点。96.步骤1022:根据上述多个应用各自的输入节点、输出节点以及数据消费节点,构建上述多个应用各自的第一链路和第二链路;其中,上述第一链路为上述输入节点到上述输出节点之间的链路,上述第二链路为上述输入节点到上述数据消费节点之间的链路;97.步骤1023:根据上述多个应用各自的第一链路和第二链路,构建跨应用图数据库。98.下面对图7所示的实施例中的各个步骤的实施方式进行具体说明:99.在步骤1021中,可以根据每个应用的多种目标类型的行为数据,确定该应用的输入in节点、输出out节点以及数据消费sink节点。下面对这三种节点进行说明:100.in节点:即应用所有的数据入口,如网络(http、rpc、msg、关系型数据库cache)、文件读取(fileread)、数据库查询(dbselect)等。101.out节点:即应用所有的数据出口,同上如网络、文件、数据库等。102.sink节点:即应用所有的数据消费节点,如日志打印、命令执行等。103.在步骤1022中,根据多个应用各自的in节点、out节点以及sink节点,构建多个应用各自的第一链路和第二链路,第一链路即in-》out链路,第二链路即in-》sink链路。比如,参阅图8,图8即为针对某应用构建的in-》out链路和in-》sink链路。其中,图中的innerappedge表示节点之间的边,具体的,104.in节点到out节点之间的边(in-out边),即从数据入口到数据出口的边。in节点到sink节点之间的边(in-sink边),即从数据入口到应用行为的边。in-out边以及in-sink边上可以存储该应用的多种目标类型的行为数据。比如,in-out边上可以存储从in节点到out节点的路径数据,该路径数据与该应用的某种目标类型的行为数据相关。本实施例中,in-out边以及in-sink边上无需存储应用的全量数据,而是存储风险识别所关注的多种目标类型的行为数据,可以减少数据的存储量。105.在步骤1023中,可以根据多个应用各自的第一链路和第二链路之间的关联关系,构建跨应用图数据库。106.在示例性的实施例中,上述步骤1023的实现方式可以包括:在上述多个应用各自的第一链路和第二链路上的各节点中,确定属于同一类型的输出节点和输出节点;通过连接上述属于同一类型的输出节点和输出节点,构建跨应用图数据库。107.本实施例中,在in节点和out节点中,存在一个关联id字段,用于进行跨应用关联。同一类型的in/out节点的关联id格式相同,比如,rpc类型的in/out节点的关联id格式为:108.nterface.methodname(parametertype):uniqueid:parameterindex,109.而database类型的in/out节点的关联id格式为:database:table_name。通过连接相同关联id格式的out节点和in节点即上述的属于同一类型的输出节点和输出节点,就能够构建出一张跨应用图数据库。此时会多出一条跨应用的边,如图9所示的out-in边,即从app1的数据出口流到app3的数据入口的边。通过out-in边,可以将app1和app3关联起来。110.在步骤103中,根据上述跨应用图数据库,对待识别业务进行风险识别;待识别业务中包括多个应用中的至少一个。示例性的,待识别业务可以涉及上述多个应用中的不止一个应用,比如,涉及多个应用中的2个应用、4个应用等,本实施例对此不作具体限定。111.在示例性的实施例中,步骤103的实现方式可以参阅图10,包括:112.步骤1031:确定上述待识别业务的起始输入节点。即确定待识别业务起始的in节点,起始的in节点一般是通用的节点,比如对外提供的http接口。113.步骤1032:在上述跨应用图数据库中的各数据消费节点中,确定目标数据消费节点。114.示例性的,可以将跨应用图数据库中存在的sink节点均作为目标数据消费节点。也可以设置过滤规则,根据过滤规则对跨应用图数据库中存在的sink节点进行过滤,得到过滤后的sink节点。从而将过滤后的sink节点确定为目标sink节点。比如,各sink节点可以具备对应的属性,假设app1中sink节点的属性为打日志,app2中sink节点的属性为写文件,app3中sink节点的属性为登录,当前的需求是识别app1有没有登录场景,则过滤条件可以设置为是否具有登录的属性,从而可以确定app3中的sink节点为目标sink节点。115.步骤1033:通过遍历上述跨应用图数据库中的上述起始输入节点和上述目标数据消费节点之间的路径,确定上述待识别业务的业务场景和/或风险信息;其中,上述风险信息为最终的风险类型或预估的潜在风险类型。116.示例性的,可以通过图遍历语句计算出所有的可达路径,即上述的起始in节点和目标sink节点之间的路径。以下是gremlin图遍历语句示例:117.g.v().haslabel('in_node').has('app','openhome').repeat(oute().inv()).until(haslabel("sink_node")).path()118.当得到起始in节点和目标sink节点之间的路径后,可以根据这些路径以及预设的场景识别规则和/或风险确定规则,确定上述待识别业务的业务场景和/或风险信息。比如,如果遍历得到3条路径,并且3条路径满足场景1的场景识别规则,可以认为这3条路径对应场景1,即确定待识别业务的业务场景为场景1。类似的,如果遍历得到1条路径,并且1条路径满足风险类型1的风险识别规则,可以认为这1条路径对应风险类型1,即确定待识别业务的风险类型为风险类型1。119.示例性的,业务场景可以具有多组成性特征,即一个业务场景包括一个或多个业务子行为场景。一部分业务场景仅需通过一个业务子行为场景就能确定存在该业务场景。如商户发券这一业务场景包含创建代金券、配置代金券、发布代金券三个业务子行为场景,其中起到决定性因素的是发布代金券,因此通过判断是否存在发布代金券的子行为场景,即能判断出是否存在商户发券场景。也就是说,商户发券场景对应的场景识别规则可以为:是否存在发布代金券的子行为场景。120.示例性的,另一部分业务场景需要通过判断是否同时存在多个子行为场景以及其时序关系,来确定是否存在这一业务场景。如交易支付场景,需要准确地识别出图11中4类子场景(也即4类路径)以及其时序关系,来实现精准地识别是否存在交易支付场景。也就是说,交易支付场景对应的场景识别规则可以为:按照时间先后依次存在:交易创建路径、交易渲染路径、交易支付路径、结果轮询路径。121.示例性的,当风险信息为最终的风险类型时,说明风险评估平台对于该风险类型具有较高的风险确认准确率,可以直接最终的风险类型,自动完成风险评估。当风险信息为预估的潜在风险类型时,说明风险评估平台对于该风险类型具有较低的风险确认准确率,可以预估潜在的风险类型,即可能出现的风险类型,后续可以由安全专家进行风险确认。122.在示例性的实施例中,当确定待识别业务的业务场景和/或风险信息为确定上述待识别业务的业务场景时,上述对待识别业务进行风险识别,包括:123.将上述业务场景输入预设的风险评估模型,以输出上述业务场景中存在的潜在风险类型;输出上述业务场景中存在的潜在风险类型,以供安全专家根据上述潜在风险类型,确认上述业务场景中存在的风险类型。124.其中,预设的风险评估模型可以包括3级,第1级是业务场景,第二级是该业务场景下存在的潜在风险类型,第3级是这个风险类型对应的解决方案,这3级是一一映射的关系。当风险评估平台无法直接输出风险信息时,可以将其输出的业务场景输入风险评估模型,风险评估模型可以输出业务场景中存在的潜在风险类型。然后,风险评估平台可以将该业务场景中存在的潜在风险类型输出给安全专家,以使得安全专家可以根据输出的潜在风险类型确定最终的风险类型。125.在示例性的实施例中,当上述确定上述待识别业务的业务场景和/或风险信息为确定上述待识别业务的风险信息,且上述风险信息为上述预估的潜在风险类型时,上述对待识别业务进行风险识别,包括:输出上述业务场景和上述预估的潜在风险类型,以供安全专家根据上述潜在风险类型,确认上述业务场景中存在的风险类型。126.本实施例中,相当于风险评估平台可以确定待识别业务的业务场景和预估的潜在风险类型,但难以确定最终的风险类型。因此,风险评估平台可以输出待识别业务的业务场景和预估的潜在风险类型给安全专家进行参考,以使得安全专减可以根据潜在风险类型,确认该业务场景中存在的风险类型,该风险类型即为最终的风险类型。127.在示例性的实施例中,实现风险识别方法的风险评估平台的整体技术架构图可以参阅图12。在研发的编码、测试阶段,安全研发生命周期sdl平台,可以监听来自研发平台的代码合并与阶段推进消息,随后触发分布式扫描集群和业务服务器上的切面模块进行动静态程序分析。动静态程序分析的结果可以通过离线数据清洗通道写入图数据库中,以构建跨应用图数据库。图12中,对象存储服务(objectstorageservice,oss)可以存储发分布式扫描集群回流的数据,即静态程序分析结果。日志服务(logservice,sls)可以存储业务服务器回流的数据,即动态程序分析结果。开放数据处理服务(opendataprocessingservice,odps)可以对来自oss和sls的数据进行数据整合和清洗,将整合和清洗后的数据传入图数据库,以构建跨应用图数据库。经过图分析计算后,图计算结果会回流到sdl平台中,图计算结果即为上述的待识别业务的业务场景和/或风险信息。sdl平台可以提供基础的场景/风险的评估模型辅助安全专家进行风险评估,满足了最基础的纯人工参与风险评估需求,并且通过自定义配置场景/风险的评估模型以适应不同安全团队与安全领域的评估需求。128.根据风险评估流程中是否引入自动化工具即上述的风险评估平台,以及自动化能力对于不同场景/风险的识别能力,本实施例中提供4种模式风险评估的模式:纯人工评估、纯自动化评估、自动化风险预评、自动化场景确认。下面分别进行介绍:129.纯人工评估模式的示意图可以参阅图13,纯人工评估即没有自动化工具参与的评估模式,可以充分的满足风险评估流程的通用性与可配置性要求,安全团队可以通过配置定制化的风险评估模型,并设置每个评估动作的评估角色(安全工程师/业务方),以满足不同安全领域的风险评估流程需求。130.纯自动化评估模式的示意图可以参阅图14,纯自动化评估可以理解为:若自动化工具针对某一风险类型有较高的风险确认准确率,可以直接生成风险项即最终的风险类型,自动完成风险评估。自动化工具上报风险信息的同时,可以上报业务场景,反向补充业务场景与风险评估过程,最终确定在某种业务场景下存在的风险类型。131.自动化风险预评模式的示意图可以参阅图15,此种模式下自动化工具只能做到风险预评,即揭示可能存在的风险项,并上报可用于人工风险确认的必要信息。此时生成风险确认项,即上述的潜在风险类型,由人工进行风险确认。自动化工具上报风险预评信息的同时,可以上报业务场景,最终确定在某种业务场景下存在的风险类型。132.自动化场景确认模式的示意图可以参阅图16,此种模式下自动化能力只能做到业务场景确认,不能提供关于此场景下可能存在的风险信息,此时完成自动化场景确认,并根据风险评估模型自动生成对应的风险确认项,由人工完成后续风险确认流程。133.本实施例中,通过对于风险评估过程的分解,聚焦于如何高效实现业务理解这一命题,并通过图数据库、图计算技术融合业务知识与安全知识,通过平台工程协同工具能力和专家经验,来实现准召率的全面提升。通过图数据库实现了跨多个应用、工程的数据流、调用流关联,从而具备了跨应用、跨服务的高精度分析能力。提出了业务抽象级别的跨应用图数据库的设计思路,避免了传统程序分析跨应用图存储节点过多导致的遍历指数爆炸问题。134.通过业务抽象建模技术实现对程序业务语义的理解,从而具备了与业务语义强相关风险监测的基础能力。135.图17是本技术实施例提供的一种风险识别装置的结构示意图。136.示例性的,如图17所示,该装置包括:获取模块1701,用于获取多个应用各自的多种目标类型的行为数据;构建模块1702,用于根据上述多个应用各自的多种目标类型的行为数据,构建跨应用图数据库;其中,上述跨应用图数据库中存储有上述多个应用各自的多种目标类型的行为数据之间的关联关系;识别模块1703,用于根据上述跨应用图数据库,对待识别业务进行风险识别;其中,上述待识别业务中包括上述多个应用中的至少一个。137.一种可能的实现方式中,构建模块1702具体用于:根据上述多个应用各自的多种目标类型的行为数据,确定上述多个应用各自的输入节点、输出节点以及数据消费节点;根据上述多个应用各自的输入节点、输出节点以及数据消费节点,构建上述多个应用各自的第一链路和第二链路;其中,上述第一链路为上述输入节点到上述输出节点之间的链路,上述第二链路为上述输入节点到上述数据消费节点之间的链路;根据上述多个应用各自的第一链路和第二链路,构建跨应用图数据库。138.一种可能的实现方式中,构建模块1702根据上述多个应用各自的第一链路和第二链路,构建跨应用图数据库,包括:在上述多个应用各自的第一链路和第二链路上的各节点中,确定属于同一类型的输出节点和输出节点;通过连接上述属于同一类型的输出节点和输出节点,构建跨应用图数据库。139.一种可能的实现方式中,识别模块1703具体用于:确定上述待识别业务的起始输入节点;在上述跨应用图数据库中的各数据消费节点中,确定目标数据消费节点;通过遍历上述跨应用图数据库中的上述起始输入节点和上述目标数据消费节点之间的路径,确定上述待识别业务的业务场景和/或风险信息;其中,上述风险信息为最终的风险类型或预估的潜在风险类型。140.一种可能的实现方式中,当上述确定上述待识别业务的业务场景和/或风险信息为确定上述待识别业务的业务场景时,识别模块1703对待识别业务进行风险识别,包括:将上述业务场景输入预设的风险评估模型,以输出上述业务场景中存在的潜在风险类型;输出上述业务场景中存在的潜在风险类型,以供安全专家根据上述潜在风险类型,确认上述业务场景中存在的风险类型。141.一种可能的实现方式中,当上述确定上述待识别业务的业务场景和/或风险信息为确定上述待识别业务的风险信息,且上述风险信息为上述预估的潜在风险类型时,识别模块1703对待识别业务进行风险识别,包括:输出上述业务场景和上述预估的潜在风险类型,以供安全专家根据上述潜在风险类型,确认上述业务场景中存在的风险类型。142.一种可能的实现方式中,获取模块1701具体用于:对上述多个应用分别进行静态程序分析,得到上述多个应用各自的静态程序分析结果;对上述多个应用分别进行动态程序分析,得到上述多个应用各自的动态程序分析结果;143.根据上述多个应用各自的静态程序分析结果和动态程序分析结果,对上述多个应用分别进行业务抽象建模,得到上述多个应用各自的多种目标类型的行为数据。144.一种可能的实现方式中,获取模块1701对上述多个应用分别进行静态程序分析,得到上述多个应用各自的静态程序分析结果,包括:确定上述多个应用分别对应的开发框架;对上述多个应用分别对应的开发框架进行框架分析,得到上述多个应用分别对应的初始化分析结果;根据预设的流分析规则,对上述多个应用分别对应的初始化分析结果进行分析,得到上述多个应用各自的静态程序分析结果。145.一种可能的实现方式中,上述静态程序分析结果和动态程序分析结果包括代码注释;获取模块1701根据上述多个应用各自的静态程序分析结果和动态程序分析结果,对上述多个应用分别进行业务抽象建模,得到上述多个应用各自的多种目标类型的行为数据,包括:对上述代码注释进行分词,得到若干关键词;根据上述若干关键词和预设的映射库,确定对应有风险类型和/或场景的目标关键词;根据上述目标关键词,对上述多个应用分别进行业务抽象建模,得到上述多个应用各自的多种目标类型的行为数据。146.一种可能的实现方式中,获取模块1701根据上述目标关键词,对上述多个应用分别进行业务抽象建模,得到上述多个应用各自的多种目标类型的行为数据,包括:获取安全专家对于上述目标关键词的确认信息或补充信息;根据上述安全专家对于上述目标关键词的确认信息或补充信息,进行业务抽象建模,得到上述多个应用各自的多种目标类型的行为数据。147.一种可能的实现方式中,上述多种目标类型包括:应用基础行为类、业务行为类、安全风险行为类和安全防御行为类。148.需要说明的是,上述实施例提供的风险识别装置在执行风险识别方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。149.另外,上述实施例提供的风险识别装置与风险识别方法实施例属于同一构思,因此对于本说明书装置实施例中未披露的细节,请参照本说明书上述的字符的风险识别方法的实施例,这里不再赘述。150.本说明书实施例还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行程序时实现上述任一实施例方法的步骤。151.图18示意性示出了根据本说明书一示例性的实施例中电子设备的结构图。请参见图18所示,电子设备1800包括有:处理器1801和存储器1802。152.本说明书实施例中,处理器1801为计算机系统的控制中心,可以是实体机的处理器,也可以是虚拟机的处理器。处理器1801可以包括一个或多个处理核心,比如4核心处理器、9核心处理器等。处理器1801可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器1801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器;协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。153.存储器1802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器1802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在本说明书的一些实施例中,存储器1802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器1801所执行以实现本说明书实施例中的方法。154.一些实施例中,电子设备1800还包括有:外围设备接口1803和至少一个外围设备。处理器1801、存储器1802和外围设备接口1803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口1803相连。具体地,外围设备包括:显示屏1804、摄像头1805和音频电路1806中的至少一种。155.外围设备接口1803可被用于将输入/输出(input/output,i/o)相关的至少一个外围设备连接到处理器1801和存储器1802。在本说明书的一些实施例中,处理器1801、存储器1802和外围设备接口1803被集成在同一芯片或电路板上;在本说明书的一些其他实施例中,处理器1801、存储器1802和外围设备接口1803中的任意一个或两个可以在单独的芯片或电路板上实现。本说明书实施例对此不作具体限定。156.显示屏1804用于显示用户界面(userinterface,ui)。该ui可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏1804是触摸显示屏时,显示屏1804还具有采集在显示屏1804的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器1801进行处理。此时,显示屏1804还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在本说明书的一些实施例中,显示屏1804可以为一个,设置电子设备1800的前面板;在本说明书的另一些实施例中,显示屏1804可以为至少两个,分别设置在电子设备1800的不同表面或呈折叠设计;在本说明书的再一些实施例中,显示屏1804可以是柔性显示屏,设置在电子设备1800的弯曲表面上或折叠面上。甚至,显示屏1804还可以设置成非矩形的不规则图形,也即异形屏。显示屏1804可以采用液晶显示屏(liquidcrystaldisplay,lcd)、有机发光二极管(organiclight-emittingdiode,oled)等材质制备。157.摄像头1805用于采集图像或视频。可选地,摄像头1805包括前置摄像头和后置摄像头。通常,前置摄像头设置在电子设备的前面板,后置摄像头设置在电子设备的背面。在一些实施例中,后置摄像头为至少两个,分别为主摄像头、景深摄像头、广角摄像头、长焦摄像头中的任意一种,以实现主摄像头和景深摄像头融合实现背景虚化功能、主摄像头和广角摄像头融合实现全景拍摄以及虚拟现实(virtualreality,vr)拍摄功能或者其它融合拍摄功能。在本说明书的一些实施例中,摄像头1805还可以包括闪光灯。闪光灯可以是单色温闪光灯,也可以是双色温闪光灯。双色温闪光灯是指暖光闪光灯和冷光闪光灯的组合,可以用于不同色温下的光线补偿。158.音频电路1806可以包括麦克风和扬声器。麦克风用于采集用户及环境的声波,并将声波转换为电信号输入至处理器1801进行处理。出于立体声采集或降噪的目的,麦克风可以为多个,分别设置在电子设备1800的不同部位。麦克风还可以是阵列麦克风或全向采集型麦克风。159.电源1807用于为电子设备1800中的各个组件进行供电。电源1807可以是交流电、直流电、一次性电池或可充电电池。当电源1807包括可充电电池时,该可充电电池可以是有线充电电池或无线充电电池。有线充电电池是通过有线线路充电的电池,无线充电电池是通过无线线圈充电的电池。该可充电电池还可以用于支持快充技术。160.本说明书实施例中示出的电子设备结构框图并不构成对电子设备1800的限定,电子设备1800可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。161.在本说明书的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本说明书中的具体含义。此外,在本说明书的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。162.本说明书实施例还提供了计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机或处理器上运行时,使得计算机或处理器执行上述实施例中的一个或多个步骤。上述字符的显示装置的各组成模块如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取存储介质中。163.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。上述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行上述计算机程序指令时,全部或部分地产生按照本说明书实施例上述的流程或功能。上述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。上述计算机指令可以存储在计算机可读存储介质中,或者通过上述计算机可读存储介质进行传输。上述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digitalsubscriberline,dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。上述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。上述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,数字多功能光盘(digitalversatiledisc,dvd))、或者半导体介质(例如,固态硬盘(solidstatedisk,ssd))等。164.需要注意的是,上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。165.以上所述,仅为本说明书的具体实施方式,但本说明书的保护范围并不局限于此,任何熟悉本
技术领域:
:的技术人员在本说明书揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本说明书的保护范围之内。因此,依本说明书权利要求所作的等同变化,仍属本说明书所涵盖的范围。当前第1页12当前第1页12
技术特征:
1.一种风险识别方法,其中,所述方法包括:获取多个应用各自的多种目标类型的行为数据;根据所述多个应用各自的多种目标类型的行为数据,构建跨应用图数据库;其中,所述跨应用图数据库中存储有所述多个应用各自的多种目标类型的行为数据之间的关联关系;根据所述跨应用图数据库,对待识别业务进行风险识别;其中,所述待识别业务中包括所述多个应用中的至少一个。2.根据权利要求1所述的方法,其中,所述根据所述多个应用各自的多种目标类型的行为数据,构建跨应用图数据库,包括:根据所述多个应用各自的多种目标类型的行为数据,确定所述多个应用各自的输入节点、输出节点以及数据消费节点;根据所述多个应用各自的输入节点、输出节点以及数据消费节点,构建所述多个应用各自的第一链路和第二链路;其中,所述第一链路为所述输入节点到所述输出节点之间的链路,所述第二链路为所述输入节点到所述数据消费节点之间的链路;根据所述多个应用各自的第一链路和第二链路,构建跨应用图数据库。3.根据权利要求2所述的方法,其中,所述根据所述多个应用各自的第一链路和第二链路,构建跨应用图数据库,包括:在所述多个应用各自的第一链路和第二链路上的各节点中,确定属于同一类型的输出节点和输出节点;通过连接所述属于同一类型的输出节点和输出节点,构建跨应用图数据库。4.根据权利要求2所述的方法,其中,所述根据所述跨应用图数据库,对待识别业务进行风险识别,包括:确定所述待识别业务的起始输入节点;在所述跨应用图数据库中的各数据消费节点中,确定目标数据消费节点;通过遍历所述跨应用图数据库中的所述起始输入节点和所述目标数据消费节点之间的路径,确定所述待识别业务的业务场景和/或风险信息;其中,所述风险信息为最终的风险类型或预估的潜在风险类型。5.根据权利要求4所述的方法,其中,当所述确定所述待识别业务的业务场景和/或风险信息为确定所述待识别业务的业务场景时,所述对待识别业务进行风险识别,包括:将所述业务场景输入预设的风险评估模型,以输出所述业务场景中存在的潜在风险类型;输出所述业务场景中存在的潜在风险类型,以供安全专家根据所述潜在风险类型,确认所述业务场景中存在的风险类型。6.根据权利要求4所述的方法,其中,当所述确定所述待识别业务的业务场景和/或风险信息为确定所述待识别业务的风险信息,且所述风险信息为所述预估的潜在风险类型时,所述对待识别业务进行风险识别,包括:输出所述业务场景和所述预估的潜在风险类型,以供安全专家根据所述潜在风险类型,确认所述业务场景中存在的风险类型。7.根据权利要求1所述的方法,其中,所述获取多个应用各自的多种目标类型的行为数据,包括:
对所述多个应用分别进行静态程序分析,得到所述多个应用各自的静态程序分析结果;对所述多个应用分别进行动态程序分析,得到所述多个应用各自的动态程序分析结果;根据所述多个应用各自的静态程序分析结果和动态程序分析结果,对所述多个应用分别进行业务抽象建模,得到所述多个应用各自的多种目标类型的行为数据。8.根据权利要求7所述的方法,其中,所述对所述多个应用分别进行静态程序分析,得到所述多个应用各自的静态程序分析结果,包括:确定所述多个应用分别对应的开发框架;对所述多个应用分别对应的开发框架进行框架分析,得到所述多个应用分别对应的初始化分析结果;根据预设的流分析规则,对所述多个应用分别对应的初始化分析结果进行分析,得到所述多个应用各自的静态程序分析结果。9.根据权利要求7所述的方法,其中,所述静态程序分析结果和动态程序分析结果包括代码注释;所述根据所述多个应用各自的静态程序分析结果和动态程序分析结果,对所述多个应用分别进行业务抽象建模,得到所述多个应用各自的多种目标类型的行为数据,包括:对所述代码注释进行分词,得到若干关键词;根据所述若干关键词和预设的映射库,确定对应有风险类型和/或场景的目标关键词;根据所述目标关键词,对所述多个应用分别进行业务抽象建模,得到所述多个应用各自的多种目标类型的行为数据。10.根据权利要求9所述的方法,其中,所述根据所述目标关键词,进行业务抽象建模,得到所述多个应用各自的多种目标类型的行为数据,包括:获取安全专家对于所述目标关键词的确认信息或补充信息;根据所述安全专家对于所述目标关键词的确认信息或补充信息,进行业务抽象建模,得到所述多个应用各自的多种目标类型的行为数据。11.根据权利要求1所述的方法,其中,所述多种目标类型包括:应用基础行为类、业务行为类、安全风险行为类和安全防御行为类。12.一种风险识别装置,其中,所述装置包括:获取模块,用于获取多个应用各自的多种目标类型的行为数据;构建模块,用于根据所述多个应用各自的多种目标类型的行为数据,构建跨应用图数据库;其中,所述跨应用图数据库中存储有所述多个应用各自的多种目标类型的行为数据之间的关联关系;识别模块,用于根据所述跨应用图数据库,对待识别业务进行风险识别;其中,所述待识别业务中包括所述多个应用中的至少一个。13.一种电子设备,其中,所述电子设备包括:存储器,用于存储可执行程序代码;处理器,用于从所述存储器中调用并运行所述可执行程序代码,使得所述电子设备执行如权利要求1至11中任意一项所述的方法。
14.一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被执行时,实现如权利要求1至11中任意一项所述的方法。
技术总结
本说明书实施例提供了一种风险识别方法、装置、电子设备和存储介质,该风险识别方法包括:首先,获取多个应用各自的多种目标类型的行为数据;然后,根据上述多个应用各自的多种目标类型的行为数据,构建跨应用图数据库;上述跨应用图数据库中存储有上述多个应用各自的多种目标类型的行为数据之间的关联关系;接着,根据上述跨应用图数据库,对待识别业务进行风险识别,上述待识别业务中包括上述多个应用中的至少一个。用中的至少一个。用中的至少一个。
技术研发人员:盛锦辰 杨瑞林 何智鑫
受保护的技术使用者:支付宝(中国)网络技术有限公司
技术研发日:2023.03.31
技术公布日:2023/7/20
版权声明
本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
航空之家 https://www.aerohome.com.cn/
飞机超市 https://mall.aerohome.com.cn/
航空资讯 https://news.aerohome.com.cn/