CN116028057A - 代码管理的方法和装置 - Google Patents
代码管理的方法和装置 Download PDFInfo
- Publication number
- CN116028057A CN116028057A CN202111258200.3A CN202111258200A CN116028057A CN 116028057 A CN116028057 A CN 116028057A CN 202111258200 A CN202111258200 A CN 202111258200A CN 116028057 A CN116028057 A CN 116028057A
- Authority
- CN
- China
- Prior art keywords
- data
- code
- module
- des
- library
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/311—Functional or applicative languages; Rewrite languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
根据本公开的实施例,提供了一种代码管理的方法、装置、电子设备、存储介质和程序产品。在此描述的方法包括:响应于构建可执行文件的请求,从代码库中获取对应的开发代码;将开发代码编译为中间代码,以确定中间代码的安全性;以及响应于中间代码被确定为安全,基于中间代码生成可执行文件。基于这样的方式,本公开的实施例能够有效地保证开发代码的安全性和合规性。
Description
技术领域
本公开的各实现方式涉及计算机领域,更具体地,涉及代码管理的方法、装置、电子设备和计算机存储介质。
背景技术
随着互联网技术的发展,各式各样的互联网应用已经成为人们生活中的重要部分。这样的应用每天将产生海量的数据,由此带来了各方面的诸如数据主权保护等数据安全问题。例如,一些国家可能禁止特定类型的用户数据被发送到海外的服务器。
对于一些全球化应用而言,这样的挑战是更为显著的。这样的全球化应用可能需要基于相同的技术架构来为多个不同区域的用户提供服务。然而,这些区域可能具有完全不同的数据安全约束,例如特定的数据主权保护要求,这导致数据安全保护的难度进一步加大。
发明内容
在本公开的第一方面,提供了一种代码管理方法。该方法包括:响应于构建可执行文件的请求,从代码库中获取对应的开发代码;将开发代码编译为中间代码,以确定中间代码的安全性;以及响应于中间代码被确定为安全,基于中间代码生成可执行文件。
在本公开的第二方面中,提供了一种代理管理装置。该装置包括:获取模块,被配置为响应于构建可执行文件的请求,从代码库中获取对应的开发代码;编译模块,被配置为将所述开发代码编译为中间代码,以确定所述中间代码的安全性;以及生成模块,被配置为响应于所述中间代码被确定为安全,基于所述中间代码生成可执行文件。
在本公开的第三方面,提供了一种电子设备,包括:存储器和处理器;其中存储器用于存储一条或多条计算机指令,其中一条或多条计算机指令被处理器执行以实现根据本公开的第一方面的方法。
在本公开的第四方面,提供了一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中一条或多条计算机指令被处理器执行实现根据本公开的第一方面的方法。
在本公开的第五方面,提供了一种计算机程序产品,其包括一条或多条计算机指令,其中一条或多条计算机指令被处理器执行实现根据本公开的第一方面的方法。
附图说明
结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:
图1示出了根据本公开实施例的数据安全保护系统的示意性框图;
图2示出了根据本公开的一些实施例的计算安全子系统的示意性框图;
图3A示出了根据本公开的一些实施例的在其中部署数据交换子系统的示例部署环境;
图3B示出了根据本公开的一些实施例的在TTP方的内部数据中心(IDC)和非TTP所处的境外内部数据中心(RoW IDC)中DES的实现;
图3C示出了根据本公开的一些实施例的DE的示例架构的框图;
图3D示出了根据本公开的一些实施例的数据交换过程的流程图;
图3E示出了根据本公开的一些实施例的在DES处实现的各类数据处理的示例数据流的流程图;
图3F示出了根据本公开的一些实施例的涉及MQ通道的数据交换架构的示意框图;
图3G示出了根据本公开的一些实施例的涉及HDFS通道的数据交换架构的示意框图;
图3H示出了根据本公开的一些实施例的数据从TTP IDC复制到境外IDC的目标对象存储(TOS)通道的示意图;
图3I示出了根据本公开的一些实施例的数据从境外IDC复制到TTP IDC的TOS通道的示意图;
图3J示出了根据本公开的一些实施例的在TOS通道中的消息序列图;
图3K示出了根据本公开的一些实施例的涉及服务调用通道的数据交换架构的示意框图;
图3L示出了根据本公开的一些实施例的在服务调用通道中从非TTP到TTP的数据交换示例;
图3M示出了根据本公开的一些实施例的在服务调用通道中从TTP到非TTP的数据交换示例;
图4A示出了根据本公开的一些实施例的管理移动端应用的网络流量的方法的流程图;
图4B示出了根据本公开的一些实施例的针对原生类型的网络流量的分析和限制过程的示意图;
图4C示出了根据本公开一些实施例的针对网页视图类型的网络流量的分析和限制过程的示意图;
图4D示出了根据本公开一些实施例的针对第三方SDK类型的网络流量的分析和限制过程的示意图;
图4E示出了根据本公开的一些实施例的安全沙盒子系统的模块图;
图5示出了根据本公开的一些实施例的管理推荐策略的示例过程的流程图;
图6示出了根据本公开的一些实施例的代码管理的示例过程的流程图;以及
图7示出了根据本公开的一些实施例的用于代码管理的装置的示例框图;以及
图8示出了可以用来实施本公开的实施例的示例设备的框图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
在本公开的实施例的描述中,术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”、“第二”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。
以下参考附图来说明本公开的基本原理和若干示例实现。
数据安全保护系统整体架构
根据本公开的实施例,提供了一种数据安全保护系统。图1示出了根据本公开实施例的数据安全保护系统1000的示意性框图。如图1所示,数据安全保护系统1000包括多个子系统,以用于从不同维度来保护用户在使用目标应用的过程产生的相关数据的安全。
通常而言,为了支持目标应用的运行,一方面,用户需要例如可以在通过适当的电子设备来运行目标应用1080。另一方面,还需要在适当的计算环境(例如,云计算环境)中部署目标应用平台1030,以例如运行用于支持目标应用1080的正常运行的各种类型的服务。
在一些实施例中,数据安全保护系统1000可以首先从运行代码的安全性的角度来保证目标应用1090的在运行过程中所产生的数据的安全。如图1所示,数据安全保护系统1000可以包括安全计算子系统1060,其可以用于保证与目标应用1080对应的代码的安全性,以及保证与目标应用平台1030所对应的代码的安全性。
经计算子系统1060编译获得的服务运行文件例如可以被部署到目标应用平台1030中,经计算子系统1060编译获得的目标应用的安装文件(例如,apk文件)例如可以被发布至应用商城1120。关于安全计算子系统1060的具体实现将在下文结合图2详细讨论。
在一些实施例中,如图1所示,安全计算子系统1060可以是基于云基础设施1070。在一些实施例中,云基础设施1070例如可以是由受信合作伙伴所提供。在本公开中,“受信合作伙伴”也可以称为受信技术合作方(Trusted Technology Partner,TTP),其例如可以包括在特定区域(例如,特定国家或法域)内技术上受信的任何个人、企业或组织。
在一些实施例中,如图1所示,数据安全保护系统1000可以包括由TTP所提供的受信安全环境1010。与传统的应用平台部署不同,目标应用平台1030可以被被部署在受信安全环境1010中,以提高目标应用平台1030所产生数据的安全性,以及其运行机制的透明性和可信程度。
在一些实施例中,目标应用1080可以通过推荐算法来为用户提供内容推荐服务。这样的内容推荐例如可以包括但不限于:多媒体内容推荐、用户推荐、商品推荐等等。考虑到目前越来越多的推荐系统利用机器学习来实现推荐功能,这使得仅从代码程度来管理推荐机制可能难以保证推荐的公平性。
如图1所示,数据安全保护系统1000还可以包括推荐管理子系统1050,其例如可以通过对目标应用平台1030所运行的推荐算法进行测试,以确保目标应用1080中的推荐机制的公平性。关于推荐管理子系统1050的具体实现,将在下文详细描述。
在一些实施例中,考虑到目标应用平台1030在运行服务以支持目标应用1080的正常运行时,目标应用平台1030可能需要与其当前部署的目标区域(例如,特定国家或法域)外的应用或数据中心(也称为境外应用或境外数据中心)进行交互。
通常而言,目标区域通常会通过法律或规章而对本区域内产生的数据与境外的通信进行约束。目标区域内产生的特定类型的数据可能被禁止被传递到境外。为了保证目标应用平台1030在与境外通信过程的合规性,数据安全保护子系统可以包括数据交换子系统1040。类似地,数据交换子系统1040可以被部署在受信安全环境1010中,以保证其运行的透明性和可信程度。
在一些实施例中,如图1所示,数据交换子系统1040可以包括多个数据通道,以用于不同类型的数据传输。例如,目标应用平台1030中产生的多媒体数据例如可以通过数据交换子系统1040中的相应数据通道,并经由第三方提供的内容分发网络1130来与海外应用1140和/或海外数据中心1150通信。
作为另一示例,对于一些目标应用平台1030中产生的特定内部数据,其可以通过相应的数据通道并例如可以通过直连光缆来与海外数据中心1150和海外开发部门1160通信。关于数据交换子系统1040的具体实现将在下文结合图3A至图3M详细描述。
进一步地,为了保证目标应用平台1030出口和入口通信的安全性,在一些实施例中,数据安全子系统1000还可以包括应用防火墙子系统1020。应用防火墙子系统1020例如可以被部署在受信安全环境1010中,其例如可以用于监控从目标应用1080到目标应用平台1030的数据通信,从目标应用平台1030到目标应用1080的数据通信,和/或从目标应用平台1030到第三方应用110的数据通信等。
以此方式,数据安全保护平台1000不仅可以通过数据交换子系统1040来保证目标应用平台1030与境外的数据通信的安全性和合规性,还能够通过应用防护墙子系统1020来保证目标应用平台1030与境内的各对象(例如,目标应用1080或第三方应用1110等)通信的安全性和合规性。
在一些实施例中,对于目标应用1080而言,为了保证其运行的合规性和可信程度,数据安全保护系统1000还可以包括例如由TTP管理的安全沙盒子系统1090,其使得目标应用1080的应用业务逻辑1100所涉及的不同类型的网络通信能够受到安全沙盒子系统1090的保护。由此方式,数据安全保护系统1000可以避免目标应用1080例如通过后门程序等方式来发起不合规的数据通信。关于安全沙盒子系统1090的详细实现将在下文结合图4A至图4E详细描述。
由此,基于本公开的数据安全保护系统1000,TTP可以在从目标应用的开发到运行的整个生命周期期间对代码安全性、数据安全性等各个方面进行管理和监控,从而保证与目标应用相关联的数据的安全性,并且保证其运行的合规性。
安全计算子系统
以下将参考图2来详细描述安全计算子系统1060。图2示出了根据本公开实施例的安全计算子系统1060的示意性框图。
如图2所示,安全计算子系统1060例如可以包括安全代码环境2010,其例如可以由TTP所提供。以下将结合提交新的开发代码2140来描述安全计算子系统1060的工作过程。
如图2所示,当开发者有需要部署的新的开发代码2140时,其例如可以通过由TTP提供的同步网关2150来向安全代码环境2010提交开发代码2140。相应地,开发代码2140将被同步至由安全代码环境2010中的代码库2160。
在一些实施例中,当开发者需要利用新的开发代码2140来进行编译时,开发者例如可以通过同步网关2150来向制品构建系统2080来发送构建请求。
备选地,当代码库2160接收到新的开发代码2140时,代码库2160也可以自动地向制品构建系统2080发送代码合并事件,以触发制品构建系统2080以启动制品(artifact,例如可执行代码)的构建过程。
当构建过程被启动后,代码拉取模块2090可以从代码库2160获取用于构建的代码文件。在一些实施例中,用于构建的代码文件例如可以是由开发者所指定的,或者是由制品构建系统2080所自动地确定的。
进一步地,编译模块2100可以对由代码拉取模块2090从代码库2160中所拉取的代码进行编译,以例如编译为中间代码。
在一些实施例中,考虑到代码编译过程中往往还会利用引入一些第三方代码。安全计算子系统1060也需要保证所引入的第三方代码的安全性。
如图2所示,安全计算子系统1060可以包括第三方独立网关2030,以用于检查并确认所需要引入的第三方库2020的安全性。应当理解,这样的第三方库例如也可能是经编译的链接库或者是源代码本身。
通过安全性检查的第三方库2020可以被添加到制品库2040中。如图2所示,在制品的构建过程中,编译模块2100还可以从制品库2040中获取编译当前制品所依赖的其他制品,例如历史已经编译生成的制品,或者基于第三方库2020生成的制品等。
进一步地,编译模块2100例如可以将从代码库2160所拉取的代码和从制品库2040所获取的依赖制品,并将其编译生成中间代码,以由安全代码扫描模块2110执行代码安全性检测。
应当理解,由TTP管理的安全代码扫描模块2110可以执行任何适当的代码扫描过程来执行安全性检查,这样的扫描规则对于开发者来说是未知的,由此可以保证用于编译得到最终制品的代码的安全性。
在一些实施例中,上传模块2120可以根据安全代码扫描模块2110的结果来执行相应的上传。如果安全代码扫描模块2110确定编译获得的中间代码是安全的,则上传模块2120可以将进一步编译得到的可执行文件上传至制品库2040。
进一步地,如果安全代码扫描模块2110确定编译获得的中间代码是安全的,上传模块2120还可以将可执行文件的签名信息上传至制品签名管理模块2060。
相反,如果安全代码扫描模块2110确定当前中间代码具有相应风险,则上传模块2120可以将相关风险上传至问题追踪系统2070,以例如形成风险分析报告。相应地,所编译得到的可执行文件将被禁止上传至制品库2040。
在一些实施例中,代码库2160中的开发代码2140例如还可以在一个受信环境中被提供,以例如进行人工核查。如果确定开发代码2140存在风险,则该结果同样可以被上报至问题追踪系统2070。
在一些实施例中,如果安全代码扫描模块2110确定当前中间代码具有相应风险,则上传模块2120还可以通知回调模块2130,以在代码库2160中将相应代码标记为风险代码。
在一些实施例中,由TTP维护的问题追踪系统2070例如可以将所接收的风险上报信息发送至开发代码2140的开发者或者维护者,以提醒其当前开发代码2140无法通过安全检查,因此无法被部署。
在一些实施例中,如果开发代码2140通过安全性检查,其可以被编译成可执行文件,并进一步被添加到制品库2040,以例如经由部署网关2050而被部署。
在一些实施例中,在部署从制品库2040获取的制品(即,可执行文件)之前,部署网关2050可以通过制品签名管理系统2060来验证制品的签名是否有效。当制品的签名有效性被确认后,部署网关2050可以将基于开发代码2140所生成的制品部署到网络中。
在一些实施例中,制品例如可以是在客户设备处执行的应用程序,则部署网关2050例如可以将所生成的安装文件(例如,apk文件)发布至相应的应用商店,以供用户下载。由此,本公开的实施例可以保证用户能够下载并安装的安装文件总是由安全代码环境2010经由部署网关2050所发布的。
在一些实施例中,制品例如可以是用于部署到目标应用平台1030中的服务程序。具体而言,目标应用的维护方可能向部署平台发起将特定制品部署到目标应用平台1030中的请求。相应地,在该请求通过审核后,目标应用平台1030可以从制品库2040获取待部署的特定制品,并且对该特定制品的签名进行认证。在该制品的签名通过认证后,该制品例如可以通过以虚拟机或容器的方式被部署到目标应用平台1030中。
由此,基于所讨论的安全计算子系统,本公开的实施例能够从代码上传、代码编写、代码编译、第三方库引用等各个环节来有效地监控从代码转换为真正部署使用的应用程序或服务程序的过程。基于这样的方式,本公开的实施例能够有效地避免在源代码中引入的各种安全漏洞或合规风险。
数据交换子系统
应用的运行会涉及在不同国家、地区管辖的应用平台之间进行数据交互。例如,在图1所示的示例中,期望在目标应用平台1030与同一应用在境外运行的目标应用平台之间交互数据,以提供应用的全球数据交互。如前所述,数据交换子系统(DES)1040可以支持目标应用的公共数据和满足规则的其他数据在不同平台之间进行同步,并且确保所交换的数据的安全性和合规性。总体上,DES 1040被配置为检测在不同平台之间的数据是否满足数据交换约束。数据交换约束可以包括为了满足国家或地区的法律和法规等设置的约束,由于企业、组织和/或用户保护的其他方面的要求而需要设置的约束,等等。
例如,在具有特定数据主权保护要求的国家或地区,可能要由TTP进行涉及数据主权保护的检查。因此,在涉及跨平台的数据交换的很多情况下都需要保护数据交换的安全性和合规性。特别是在设置TTP机房后,外界与TTP机房存储的数据交换会受到约束,希望与TTP方交互的数据会经过数据主权保护的检查。在这样的示例中,数据交换约束可以包括与特定国家或地区的数据主权保护要求相关的规则。
这类的交互数据可以划分为两个方面,一个方面包括平台之间的互通类数据,另一方面包括平台的运维人员对平台的访问或操作等运维类数据。互通类数据主要用于在两个平台之间进行同步,确保应用的功能完整性,这类数据需要经过DES系统以进行安全性和合规性的检查。互通类数据例如包括在线业务数据,离线数据等。运维类数据的检查是要确保运维人员在运维控制面上的操作也是合规的。
图3A示出了根据本公开的一些实施例的在其中部署DES 1040的示例部署环境3001。
在图3A中,TTP方3027指的是在特定国家或地区中需要受到TTP监督和约束的环境。TTP方3027可以涉及用于运行、管理、维护目标应用的各种组件,例如包括业务系统3028、运营平台3029、在线存储3030、离线存储3031等。TTP方3027还包括运维平台3032,运维人员会需要访问运维平台3032,以实现对目标应用的访问、管理或维护等。
类似地,非TTP方3020指的是在特定国家或地区之外的一个或多个其他国家或地区所属的环境,其不受到TTP方3027所处国家或地区的数据交换约束。非TTP方3020可以涉及用于运行、管理、维护目标应用的各种组件,例如包括业务系统3020、运营平台3021、在线存储3022、离线存储3023等。非TTP方3020还包括运维平台3024,运维人员会需要访问运维平台3024,以实现对本地应用或应用平台的访问、管理或维护等。
境内用户流量会流通过TTP方3027的一些组件,境外用户流量会流通过非TTP方3020的一些组件。在本文中,“境内用户流量”指的是在该特定国家或地区管辖的应用平台上产生的用户流量,“境外用户流量”指的是在该特定国家或地区之外的一个或多个其他国家或地区管辖的应用平台上产生的用户流量。
在图3A的环境中,互通类数据包括在TTP方与非TTP方之间交换的境内用户流量与境外用户流量。互通类数据会经过DES 1040,以便进行数据安全性和合规性等方面的检查。此外,还可以设置运营网关3026,以用于对运维类数据执行数据安全性和合规性等方面的检查。
如下文将详细讨论的,在DES 1040中,可以根据数据的类型设置不同的数据通道,以在相应的通道中执行对要交换的数据的检查。图3A示意性示出了一些通道,包括目标对象存储(TOS)通道,消息队列(MQ)通道,离线聚合数据通道,日志(LOG)通道,服务调用通道等。
对于数据交换的双方,可以均有各自的DES来实现数据保护,例如用于对流入数据和/或流出数据的保护。
图3B进一步示出了在TTP方的内部数据中心(IDC)和非TTP所处的境外内部数据中心(RoW IDC)中DES 1040的实现。
在图3B中,TTP IDC 3056指的是针对在特定国家或地区运行的目标应用的IDC,其受到TTP的数据保护检测,境外IDC 3059指的是在特定国家或地区之外的一个或多个其他国家或地区中运行目标应用的IDC,其可能受到其他国家或地区的数据保护约束。
如图3B所示,DES 1040A被实现在TTP IDC 3056中,用于检测外部流入和/或内部流出的数据。DES 1040B被实现在境外IDC 3059中,用于检测外部流入和/或内部流出的数据。DES 1040A和DES1040B可以被认为是DES 1040的具体部署实例。
从TTP IDC 3056角度来看,从外部流入的数据或内部流出的数据可以包括多种类型的数据,下文将举例描述。
如图3B所示,对于TTP IDC 3056,外部流入的数据可以包括用户请求,例如来自特定国家或地区境内的用户通过境内运行的目标应用3058发起的主动请求。如本文中其他部分将描述的,在一些实施例中,用户请求还可以经过移动沙盒和/或TTP IDC 3056中的防火墙网关3057等被进行安全性保护。用户请求会到达TTP IDC 3056中的境内应用平台3041进一步处理。在一些示例中,境内应用平台3041可以包括各种服务、供应商网关、存储等等组件。此外,如果用户请求是要被传送到TTP IDC 3056以外的数据中心,该用户请求会被传递到DES 1040A进行数据保护。
在一些实施例中,对于TTP IDC 3056,外部流入的数据还可以包括由供应商3055发起的供应商请求,例如请求境内应用平台的特定服务。例如,第三方供应商可能会调用境内应用平台的应用程序接口(API),例如OpenAPI。由于不能确认第三方供应商是否属于境内用户,供应商请求会经由TTP IDC 3056中的第三方网关3040被送到境内应用平台3041中的供应商网关进行检查,以确定是否是境内用户。如果发起请求的供应商是境内用户,那么供应商请求可以被正常响应。如果发起请求的供应商是境外用户,那么供应商请求会经过DES 1040A被传送。
在一些实施例中,对于TTP IDC 3056,外部流入的数据还可以包括从境外IDC3059同步到TTP IDC 3056的数据。例如,如果对于境外流入数据需要进行数据安全审核时,境外流入数据也需要经过DES1040A的处理。
在一些实施例中,对于TTP IDC 3056,外部流入的数据还可以包括运维人员对TTPIDC 3056的运维操作,例如对TTP IDC 3056的变更。这样操作可以包括代码类变更,配置类变更,日志维护等。代码类变更例如可以包括新功能的上线、bin文件发布等。代码类变更可以由本国际或地区的应用平台的境内运维人员执行。配置类变更可以包括对目标应用的一些设置的启用或禁用,调度的流量配置等。在一些情况下,对于跨国运营的应用平台,可以由境外平台运维人员执行配置类变更。当然,这仅取决于不同应用的管理要求。日志维护指的是对TTP IDC 3056中的日志3044进行维护。
在一些实施例中,境内运维人员或境外运维人员可以网络隔离的条件下对TTPIDC 3056执行运维操作,以进一步确保数据主权保护。如图3B所示,境内运维人员在网络隔离的情况下发起运维操作,运维操作会经由负载均衡器3045进行分配,以分布到TTP IDC3056中的代码3042处,运维平台3043处或日志3044处。除网络隔离之外,境外运维人员的运维操作会经由运营网关3046来进一步进行安全检查,然后被分布到TTP IDC 3056中的代码3042处,运维平台3043处或日志3044处。
在一些实施例中,对于TTP IDC 3056,内部流出的数据可以包括在应用平台的运行过程中从境内应用平台3041发起的第三方请求,以用于请求第三方服务3054,例如在公共网络中的第三方服务。第三方请求也需要由DES 1040A进行数据保护。
在一些实施例中,对于TTP IDC 3056,内部流出的数据还可以包括从TTP IDC3056同步到境外IDC 3059的数据。例如,在目标应用运行中,可能会需要将存储在TTP IDC3056中的用户内容同步到境外IDC 3059。根据数据主权保护的一些规定,这类数据可能是DES1040A需要审核的重点数据。
在一些实施例中,对于TTP IDC 3056,内部流出的数据还可以包括代码同步数据。例如,在一些情况下,出于数据主权保护等方面的检查要求,可能会要求对目标应用或应用平台的代码审核。为了在满足数据主权保护要求的前提下不泄露代码,可能会将代码同步到安全隔离环境3051以供审核。安全隔离环境3051例如可以是不联网的机房,受监控的机房等物理环境,或者具有安全保护的虚拟计算环境,等等。
从境外IDC 3059的角度,其中部署的DES 1040B也会对类似的外部流入数据和内部流出数据进行安全保护。例如,用户通过境外运行的目标应用3058产生的用户请求,在经由负载均衡器3047到达境外应用平台3048(其可以包括各类服务和存储)后,也可以经过DES1040B保护。在运维方面,境外运维人员也可以在网络隔离的情况下经由水晶(crystal)网关3049对境外应用平台3048执行运维操作。这类运维操作也可以经由DES 1040B进行数据保护。
对于在DES 1040A或1040B中进行保护的数据,取决于类型不同,用于执行数据主权保护的方案以及为了实现数据主权保护所需要执行的处理也可能不同。
在本公开的实施例中,在DES 1040(例如,DES 1040A或1040B)中,可以按数据的类型来对数据进行预处理,以将数据的格式统一格式化,从而简化和促进后续关于数据主权保护的检查,加速数据交换过程。
由此,DES 1040中可以按数据类型划分为不同处理部分。例如,按数据来源,DES1040A中可以包括境内用户数据通道,用于处理特定国家或地区境内用户相关的数据;境外用户数据通道,用于处理境外用户相关的数据;工程技术数据通道,用于处理工程类、运维类数据,诸如代码、参数等各类研发数据、运维数据等。进一步地,取决于数据产生、传输、接收、存储等处理技术,各个通道中的数据还可以被进一步划分。如下文将描述的,按技术划分,不同通道中的数据可以被划分为消息队列(MQ)数据,离线聚合数据,目标对象存储(TOS)数据,服务调用数据中的一项或多项,或者其他类型的数据。
对于在数据主权保护审核中通过的数据,可以从统一格式化格式的数据转换回原始格式的数据,并提供到相应的目的地。根据本公开的方案,由于数据来源不同,不同类型的数据在数据格式、处理技术等方面都各有不同,通过统一格式化的预处理和后处理,可以降低后续在数据主权保护的审核阶段的复杂度。此外,随着数据来源的更新和技术扩展/变化等,可以只需要改变数据的预处理和后处理,而不会对数据交换约束确定阶段的处理进行复杂改动。由此,数据交换架构具有极大的灵活性和可扩展性。
下文将参考附图来详细描述一些具体实施例。
DES的整体架构和数据流
图3C示出了根据本公开的一些实施例的DES 1040的示例架构的框图。在图3C的示例中,DES 1040被示出为对目标应用在境内应用平台3041与外部应用平台(统称为境外应用平台3048)之间同步数据,并执行数据交换约束的确定。
如图3C所示,DES 1040可以包括DES适配器3061,DES中心和DES适配器3070。DES中心可以包括针对不同类型数据通道的DES中心,例如针对境内用户数据的DES中心3065A,针对境外用户数据的DES中心3065B,以及针对工程技术数据的DES中心3065C等。DES中心3065A、3065B和3065C具有不同同步能力。在下文中,有时为了便于描述,DES中心3065A、3065B和3065C可以被统称为DES中心3065。
DES适配器3061与境内应用平台3041相连,用于从境内应用平台3041接收要同步并且要经由DES 1040检测的数据,以及将从境外应用平台3048接收到并且经过DES 1040检测的数据发送给境内应用平台3041。DES适配器3070与境外应用平台3048相连,用于将境内应用平台3041接收到并且经过DES 1040检测的数据发送给境外应用平台3048,并且从境外应用平台3048接收要同步并且要经由DES1040检测的数据。DES适配器3061和DES适配器3070均与DES中心3065互连,以向DES中心3065传送数据。
各个DES中心3065被配置为利用数据交换约束来检测数据,以确保在两个应用平台之间交换的数据的安全性和合规性。通常,满足数据交换约束的数据会通过DES 1040被传递到相应的目的地,而不满足数据交换约束的数据可能会被DES 1040驳回。
DES适配器3061和3070可以被配置为对要传入DES中心3065的数据执行预处理和后处理,以使DES中心3065在各个数据类型对应的统一格式化数据基础上进行关于数据交换约束是否被满足的确定。
在一些实施例中,DES 1040中的DES适配器3061和DES中心3065可以与境内应用平台3041一起被实现在TTP IDC 3056中,DES适配器3070可以与境外应用平台3048一起被实现在境外IDC 3059中。
在一些实施例中,可以隔离DES 1040中的不同组件,以进一步确保更有效的数据隔离。这样的数据隔离可以通过将不同组件部署在不同数据中心来实现。在一些实施例中,可以通过应用虚拟私有数据中心(VPC)技术来实现数据隔离。例如,如图3C所示,DES适配器3061可以被实现在VPC1中,各个DES中心可以被实现在VPC2中,DES适配器3070可以被实现在VPC3中。DES中心3065中的数据安全性和合规性的确定可以由TTP执行。在数据隔离的情况下,VPC1和VPC3不具有直接通信连接,但VPC1和VPC3分别与VPC2具有直接通信连接,可以彼此通信数据/信息。通过VPC技术所带来的数据隔离,部署在VPC2的DES中心3065可以是TTP信任的区域(称为TTP受信区域)。
在一些实施例中,DES适配器3061可以包括DES入口3062,其可以实现控制面的处理,例如由运维人员申请建立和管理数据通道,注册规则等,并且可以由TTP查看通道中的数据。DES适配器3061还可以包括DES代理(proxy)3063,其可以实现数据面的处理,例如数据验证、数据过滤、数据转换、数据采样、日志检测,等等。类似地,在一些实施例中,DES适配器3070可以控制面的DES入口3072和数据面的DES代理3073。
在一些实施例中,对于境内用户数据通道,DES中心3065A可以包括DES注册中心,用于注册数据交换约束、配置数据等等。DES中心3065A还可以包括进一步细分的通道,包括针对服务调用数据的服务调用通道,针对MQ数据的MQ通道,针对离线聚合数据的HDFS通道(其中,HDFS称为Hadoop分布式文件系统)以及针对TOS数据的TOS通道。离线聚合数据例如包括高度并行集成虚拟环境(HIVE)类型的数据。
服务调用数据例如可以包括利用各种网络协议或调用协议,例如HTTP协议或RPC协议来进行远程服务调用的数据。MQ数据可以包括支持MQ协议以及类似协议的数据,例如包括各类数据库(例如,MySQL,Redis数据库)中存储的数据。离线聚合数据可以包括基于HDFS技术的文件系统中的数据,以及基于其他技术的文件系统中的数据。TOS数据包括对象文件,例如视频、音频、图像、文档、以及其他媒体文件。
在一些实施例中,虽然图3C中未示出,对于境外用户数据通道的DES中心3065B和对于工程技术数据通道的DES中心3065C,也可以包括与DES中心3065A类似的组件。
图3D示出了根据本公开的一些实施例的数据交换过程300的流程图。过程3004可以被实现在DES 1040中。
如图3D所示,在框3301,DES 1040获取目标应用要在第一平台(例如,境内应用平台3041)与第二平台(例如,境外应用平台3048)之间交换的原始数据。取决于交换的方向,原始数据可以来自第一平台,并可以由DES 1040中的DES适配器3061接收到。或者,原始数据可以来自第二平台,并可以由DES 1040中的DES适配器3070接收到。
在框3302,DES 1040基于原始数据的类型来处理原始数据,以获得该类型对应的统一格式化数据。原始数据的处理(此处的处理也可称为预处理)可以根据原始数据的类型来确定。原始数据的类型例如可以包括MQ数据、离线聚合数据、TOS数据或服务调用数据等。进一步地,在一些情况下,原始数据的处理也可以按数据来源的不同来确定。例如,根据数据来源,原始数据可以被划分为境内用户数据,境外用户数据或工程技术数据。不同类型的数据对应的格式不同,并且可以应用不同方式来产生对应的统一格式化数据。
在一些实施例中,由于数据源所使用的技术不同,同一类型的数据可能在不同格式下被提供,这增加了对技术处理的要求。因此,可以指定一个统一格式。在预处理阶段,可以通过格式转换将原始数据的格式转换为该类型下的指定格式,以获得统一格式化数据。
例如,对于MQ数据,可以将不同格式的MQ数据进行解析,以便分析由不同格式封装的消息中的内容。对于离线聚合数据和TOS数据,可以响应于从不同格式下的文件系统或数据系统调用这些数据的不同请求,转换为通过统一API来实现的文件调用请求。对于服务调用,可以将不同协议下生成的服务调用请求转换为统一协议中的服务调用请求。
对于不同类型的数据的具体预处理方式,下文将更详细描述。
在框3303,DES 1040从统一格式化数据确定对数据交换约束的满足。例如,DES1040中的DES中心3065,特别是对应数据类型的DES中心3065可以执行对数据交换约束的满足与否的检查。经过统一格式化的预处理,DES中心3065不需要应用各种不同技术来解析原始数据,从而更方便地利用规则来执行数据安全性和合规性的检查。
在框3304,如果确定统一格式化数据满足数据交换约束,DES1040将统一格式化数据转换为原始数据。在满足数据交换约束的情况下,数据被允许在平台之间同步。为了确保数据正确同步,DES 1040会进一步处理中间生成的统一格式化数据(即,执行后处理阶段),以将统一格式化数据转换为原始数据,其具有原始的格式。
在框3305,DES 1040执行原始数据在第一平台与第二平台之间的交换。由此,可以实现在满足安全性和合规性情况下的数据交换。
在一些实施例中,如上文简单提及的,可以在不同平台之间创建与不同类型的原始数据分别对应的多个数据通道,不同类型的原始数据将会被传递到对应的数据通道中进行处理。每个数据通道可以包括适合处理该类型的原始数据的预处理组件、后处理组件和关于数据交换约束的确认组件。附加地或备选地,每个数据通道可以被注册有要被应用到该特定类型的原始数据的数据交换约束。通过这样的方式,可以实现对不同类型的数据的预处理、数据交换约束的确认和后处理方面的分离。
与不同类型的数据对应的数据通道可以被灵活地创建、更新和删除。这样,如果数据的预处理和后处理方式发生变化,或者针对数据的特定类型的数据交换约束需要更新,都可以在相应数据通道中执行,而不会影响到其他数据通道。此外,根据业务需要,如果要在第一平台与第二平台之间交换的新类型的原始数据并且该新类型的数据也要执行关于数据主权保护的检查,那么可以灵活地在第一平台与第二平台之间创建新的数据通道用于处理新类型的原始数据。
图3E示出了根据本公开的一些实施例的在DES 1040处实现的各类数据处理的示例数据流3005的流程图。数据流3005涉及控制面的数据流和数据面的数据流。
在控制面,可以由运维人员在DES 1040中配置一个或多个类型的数据的通道,并可以实现对通道的更新和维护等。如图3E所示,境内运维人员可以经由DES入口3062请求配置特定数据类型和用于处理特定数据类型的通道,并将指示特定数据类型的数据目录3081和对特定数据类似的数据定义3082注册到DES注册中心3066。数据定义3082可以指定在DES1040中对不同类型的数据进行处理的通道信息,并且可以包括关于对相应类型的数据的预处理方案、后处理方案等。
类似的,境外运维人员也可以经由DES入口3072请求配置特定数据类型和用于处理特定数据类型的通道。境外运维人员也可以将指示特定数据类型的数据目录3084和对特定数据类似的数据定义3085注册到DES注册中心3066。数据定义3085可以指定在DES 1040中对不同类型的数据进行处理的通道信息,并且可以包括关于对相应类型的数据的预处理方案、后处理方案等。
在数据面,不同类型的数据在DES 1040中会经过各自的通道。如图3E所示,对于服务调用数据,在TTP IDC侧的客户端或服务器3086与境外IDC侧的客户端或服务器3090之间交换服务调用请求。为了使服务调用请求满足数据主权保护要求,服务调用请求在DES1040中的服务调用通道被处理。
在图3E的示例中,服务调用通道可以至少包括DES代理3063中的预处理模块3087、DES中心3065中的HTTP代理3088,以及DES代理3073中的路由模块3089。来自TTP IDC侧的客户端或服务器3086的服务调用请求被传送到预处理模块3087。预处理模块3087利用来自数据定义3082中所规定的数据预处理方案来处理服务调用请求,并将统一格式化后的服务调用请求发送给HTTP代理3088。
在这个示例中,假设服务调用请求被统一格式化为符合统一协议,即HTTP协议的请求。因此,HTTP代理3088可以在确定统一格式化后的服务调用请求满足数据交换约束后,将统一格式化后的服务调用请求通过路由模块3089提供到另一侧的客户端或服务器3090。在被提供到客户端或服务器3090之前,统一格式化后的服务调用请求被转换回到符合原始协议的服务调用请求。
对于MQ数据,这个类型的原始数据在DES 1040中的MQ通道被处理。在图3E的示例中,MQ通道可以至少包括DES代理3063中的预处理模块3092、DES中心3065中的MQ传送器3094,以及DES代理3073中的路由模块3097。
针对MQ类型的原始数据3091被传送到预处理模块3092。预处理模块3092利用来自数据定义3082中所规定的数据预处理方案来处理原始数据3091,得到统一格式化数据3093。统一格式化数据3093由MQ传送器3094提取,例如经由第三方软件开发工具包(SDK)提取。在经过数据交换约束的检查后,由SDK将满足规则的统一格式化数据3096推送到境外IDC。不满足数据交换约束的统一格式化数据3095被驳回。路由模块3097将满足规则的统一格式化数据3096路由到对应的目的地,在被传输到目的地之前统一格式化数据3093被转换回对应的原始数据3098。
对于离线聚合数据和TOS数据,原始数据分别会在DES 1040中的HDFS通道和TOS通道被处理。为简化,图3E示出了一个通道的示例,但可以理解,HDFS通道和TOS通道可以包括图示的组件。在图3E的示例中,HDFS通道或TOS通道可以至少包括DES代理3063中的预处理模块3100、DES中心3065中的文件传送器3103,以及DES代理3073中的路由模块3105。
由于离线聚合数据类型或TOS类型的数据被存储在文件系统或其他存储系统中,预处理模块3100可以向文件传送管理器3102发起调用文件传送API的请求,以获得针对离线聚合数据类型或TOS类型的原始数据3099被传送到预处理模块3100。预处理模块3100可以利用来自数据定义3082中所规定的数据预处理方案来处理原始数据3099,得到统一格式化数据3101。
与MQ类型的数据处理类似,统一格式化数据3101由文件传送器3103提取,例如经由SDK提取。在经过数据交换约束的检查后,由SDK将满足规则的统一格式化数据3104推送到境外IDC。不满足数据交换约束的统一格式化数据会被驳回,无法被传送到境外IDC。路由模块3105将满足规则的统一格式化数据3104路由到对应的目的地,在被传输到目的地之前统一格式化数据3094被转换回对应的原始数据3106。
应当理解,图3E仅示出了在DES 1040中对从TTP IDC到境外IDC的流出数据的处理。对于相反方向的数据流,在DES 1040中也可以通过类似的流程处理,并且DES 1040也可以保留对应的组件用于支持相应的处理,特别是在DES适配器中的组件。
下文将针对DES 1040中不同类型的数据的一些示例实现进行详细讨论。
针对MQ的数据交换的示例实现
图3F示出了根据本公开的一些实施例的涉及MQ通道的数据交换架构3006的示意框图。数据交换架构3006可以被实现在DES 1040中,用于针对MQ类型的数据执行数据安全保护。在图3F的示例中,示出了从TTP IDC到境外IDC方向的数据交换。
如图3F所示,TTP IDC中的源数据库3110产生要传送的MQ数据的实体。MQ数据可以包括改变数据或者商业定制事件等消息,不同消息可以具有不同的格式。源数据库3110产生的MQ数据被放入源消息队列3112中。
在图3F的示例中,在DES适配器3061中除DES入口3062外,还包括DES前适配器3120。DES前适配器3120可以被实现为DES代理3063的一部分,以用于对从TTP IDC到境外IDC方向的MQ数据进行预处理。DES前适配器3120可以被配置为将不同格式的MQ数据处理为具有统一格式的统一格式化MQ数据,并将统一格式化MQ数据提供给MQ传送器3094,以执行关乎数据交换约束是否满足的确定。
MQ数据(或消息)也可以包括由不同协议生成的数据,每个协议下的数据具有定制格式,因此需要不同的预处理。如图3F所示,DES前适配器3120可以包括解析器3122,其被配置为对不同类型的原始MQ数据进行解析,以将不同类型的原始MQ数据转换统一格式的统一格式化MQ数据。如图3F所示,DES前适配器3120可以包括MySQL解析器,用于解析通过MySQL协议生成的数据,例如变化数据捕获(CDC)数据;Redis解析器,用于解析通过Redis协议生成的数据,例如CDC数据;文档解析器,用于解析文档数据库中的数据,特别是CDC数据;图解析数据,用于解析图(graph)数据库的数据,特别是CDC数据;MQ解析器,用于解析通过消息队列发送的不同类型的业务事件数据,等等。可以理解,解析器3122是可灵活缩放的,其中可以设置更多、更少或其他的解析器,用于解析相应类型的MQ数据。
解析后得到的统一格式化MQ数据也可以是消息队列的形式,可以被放入统一格式化消息的队列3124中。在TTP IDC的VPC2中,负责MQ数据的MQ传送器3094可以通过SDK从统一格式化消息的队列3124提取解析后的统一格式化MQ数据用于进行数据安全性和合规性检查。不满足数据
的统一格式化MQ数据被MQ传送器3094驳回,并被记录在驳回日志3126中。满足数据交换约束的统一格式化MQ数据经由SDK被推送到DES适配器3070中的DES后适配器3130。
DES后适配器3130可以被实现为DES代理3073的一部分,以用于对从TTP IDC到境外IDC方向的统一格式化MQ数据进行后处理,以将数据传送到目的地。满足数据交换约束的统一格式化MQ数据经由SDK被推送到DES后适配器3130。
DES后适配器3130可以包括数据回放器3132,用于对统一格式化MQ数据执行后处理。具体地,DES后适配器3130可以被配置为将统一格式化MQ数据转换为原始MQ数据。因此,DES后适配器3130可以包括与不同类型的MQ数据相对应的回放器(replayer),用于执行从统一格式到各自的定制格式的转换。如图3F所示,DES后适配器3130可以包括MySQL回放器,用于将统一格式化MQ数据转换为符合MySQL协议的MQ数据;Redis回放器,用于将统一格式化MQ数据转换为符合Redis协议的MQ数据;文档回放器,用于将统一格式化MQ数据转换为图形式的原始数据;MQ回放器,用于将统一格式化数据转换为符合MQ协议的原始数据,等等。
转换后的原始MQ数据被放入DES后适配器3130中的统一格式化消息的队列3134,并从中可以被同步到目标消息队列3135。目标消息队列3135用于存放从源消息队列3112经由DES 1040间接同步过来的MQ数据。目标数据库3136可以从目标消息队列3135获得期望的MQ数据。
图3F中仅示出了从TTP IDC到境外IDC方向的数据交换所涉及的组件。对于图3F的示例中,示出了从境外IDC到TTP IDC方向的数据交换,DES 1040中可以包括类似的组件用于处理这个方向的数据交换,例如DES适配器3070可以包括具有与DES前适配器3120类似功能的DES前适配器,并且DES适配器3061可以包括具有与DES后适配器3130类似功能的DES后适配器。为简化目的,这个方向的处理不再详细展开。
可以理解,图3F中示出的在DES中用于处理MQ数据交换的组件仅是示例。在其他示例中,取决于需要,不同功能模块还可以按其他方式被细分、合并等,并且还可以包括更多、更少或不同的功能模块。
针对离线聚合数据的数据交换的示例实现
图3G示出了根据本公开的一些实施例的涉及HDFS通道的数据交换架构3500的示意框图。数据交换架构3500可以被实现在DES1040中,用于针对离线聚合数据执行数据安全保护。在图3G的示例中,示出了在TTP IDC侧的HDFS 3502与境外IDC侧的HDFS 3504之间的离线聚合数据交换。在HDFS 3502与HDFS 3504中的一些离线聚合数据可能需要彼此同步。
如图3G所示,在数据交换架构3500中,TTP IDC侧的数据传送检测器3510负责检测HDFS 3502中是否存储了需要被传送到另一侧的HDFS 3504的离线聚合数据。在发现要传送的离线聚合数据的情况下,数据传送递交器3520可以向文件传送器3550递交数据传送的请求。在被递交到文件传送器之间,数据预处理模块3530被配置为对数据执行预处理,以将离线聚合数据处理为统一格式化数据。
在文件传送器3550中,数据传送服务器3556被配置为基于利用数据交换约束来控制数据传送服务。如果数据传送服务器3556确定来自HDFS 3502的预处理后的统一格式化数据符合数据交换约束,那么可以调用传送工作3558,以将统一格式化数据通过传送工作3558下的传送任务3562传送到境外IDC。在一些实施例中,传送工作3558还可以可选地包括数据验证任务3560,其可以被配置为根据需要执行数据验证。统一格式化数据经过HDFS网关3564,并可以被执行后处理后,得到原始的离线聚合数据,并被存入HDFS 3504。
类似的,在数据交换架构3500中,境外IDC侧的数据传送检测器3570负责检测HDFS3504中是否存储了需要被传送到TTP IDC侧的HDFS 3502的离线聚合数据。在发现要传送的离线聚合数据的情况下,数据传送递交器3572可以向文件传送器3550递交数据传送的请求。在被递交到文件传送器之间,数据预处理模块3570被配置为对数据执行预处理,以将离线聚合数据处理为统一格式化数据。
在文件传送器3550中,如果数据传送服务器3556确定来自HDFS3504的预处理后的统一格式化数据符合数据交换约束,那么可以调用传送工作3554,以将统一格式化数据通过传送工作3554下的传送任务3552传送到TTP IDC。统一格式化数据经过后处理后,得到原始离线聚合数据,并被存入HDFS 3502。
可以理解,图3G中示出的在DES中用于处理离线聚合数据交换的组件仅是示例。在其他示例中,取决于需要,不同功能模块还可以按其他方式被细分、合并等,并且还可以包括更多、更少或不同的功能模块。
针对对象存储的数据交换的示例实现
总体而言,TOS通道可以确定对象文件是否满足数据交换约束、以及在约束满足的情况下将对象文件从源IDC(例如,TTP IDC或境外IDC)复制到目的地IDC(例如,境外IDC或TTP IDC)。对象文件例如是视频、音频、图像、文档、或者其他媒体文件。
在一些实施例中,可以通过API从对象存储复制对象文件,执行数据交换约束的确定,并且利用API将对象文件推送到目的地端的对象存储。在对象文件的数据交换中,通过与对象文件对应的复制请求来确定对数据交换约束的满足。下文将参考图3H至图3J来描述TOS通道的细节。
图3H示出了根据本公开的一些实施例的数据从TTP IDC复制到境外IDC的目标对象存储(TOS)通道3600的示意图。在该示例中,要交换的数据是对象文件,其被存储在TTPIDC中的对象存储3606,并且期望要被交换到境外IDC的对象存储3607。
在图3H中,TTP IDC中的API 3605被配置为将复制请求推送给工作节点3605,并且从工作节点3605接收从另一侧的境外IDC交换过来的复制结果。如图所示,在数据流开始3601时,针对要交换的对象文件的复制请求由API(也可称为DES-TOS API)3602传送给工作节点3605。该复制请求可以指示要交换的对象文件相关的信息,例如对象文件的格式(视频、音频、文本等)、对象文件的标识符、以及其他文件元数据等。该复制请求具有统一格式。
受信区域VPC2内的工作节点3605被配置为响应于针对对象文件的复制请求,执行关于数据交换约束的确定。具体地,工作节点3605可以从统一格式化的复制请求中确定要交换的对象文件是否满足数据交换约束。
在一些实施例中,在TTP IDC侧,可以在初始阶段或者后续需要的时候发起数据交换约束的注册。在约束注册开始3622时,可以通过TTP IDC中的DES入口3620,向TTP受信任区域中的DES注册中心3624注册要使用的数据交换约束。数据交换约束的注册可以通过调用API 3602来实现。工作节点3605可以通过DES注册中心3624来访问当前要使用的数据交换约束。
在一些实施例中,数据交换约束可以指示允许交换的对象文件的白名单或者不允许交换的对象文件的黑名单,在每个名单中可以按对象文件的格式、标识符等来标识允许或不允许交换的文件对象。
在执行数据交换约束,工作节点3605允许满足数据交换约束的复制请求的执行。如果复制请求允许被执行,工作节点3605访问TTP IDC中的对象存储3606以将对象文件复制到境外IDC中的对象存储3607。对于非法请求(即不满足数据交换约束的复制请求),它们将被拒绝,从而无法被执行。工作节点3605可以将复制的对象文件经由境外IDC中的API3610来写入对象存储3607。这样,数据流结束3611。
图3I示出了根据本公开的一些实施例的数据从境外IDC复制到TTP IDC的TOS通道3650的示意图。在该示例中,要交换的对象文件其被存储在境外TTP IDC中的对象存储3607,并且期望要被交换到TTP IDC的对象存储3606。
在图3I中,境外IDC中的API 3610被配置为将复制请求推送给工作节点3605,并且从工作节点3605接收从另一侧的TTP IDC交换过来的复制结果。如图3I所示,在数据流开始3651时,针对要交换的对象文件的复制请求由API 3610传送给工作节点3605。该复制请求可以指示要交换的对象文件相关的信息,例如对象文件的格式(视频、音频、文本等)、对象文件的标识符、以及其他文件元数据等。该复制请求具有统一格式。受信区域VPC2内的工作节点3605可以从统一格式化的复制请求中确定要交换的对象文件是否满足数据交换约束。
在一些实施例中,在境外IDC侧,可以在初始阶段或者后续需要的时候发起数据交换约束的注册。在约束注册开始3632时,可以通过境外IDC中的DES入口3630,向TTP受信任区域中的DES注册中心3624注册要使用的数据交换约束。数据交换约束的注册可以通过调用API 3610来实现。工作节点3605可以通过DES注册中心3624来访问当前要使用的数据交换约束。
在执行数据交换约束,工作节点3605允许满足数据交换约束的复制请求的执行。如果复制请求允许被执行,工作节点3605访问境外IDC中的对象存储3607以将对象文件复制到TTP IDC中的对象存储3606。对于非法请求(即不满足数据交换约束的复制请求),它们将被拒绝,从而无法被执行。工作节点3605可以将复制的对象文件经由TTP IDC中的API3602来写入对象存储3606。这样,数据流结束3652。
可以理解,图3H和图3I中示出的在DES中用于处理TOS数据交换的组件仅是示例。在其他示例中,取决于需要,不同功能模块还可以按其他方式被细分、合并等,并且还可以包括更多、更少或不同的功能模块。
图3J示出了根据本公开的一些实施例的在TOS通道中的消息序列3012。图3J中的消息序列3012涉及TTP 3701、运维人员3702、平台工作人员3703、DES入口3704、API 3705、工作节点3605和对象存储3708。
取决于数据交换的方向,图3J中的DES入口3704、API 3705和对象存储3708可以是图3H和图3I中任一中的对应组件。例如,在图3H所示的从TTP IDC复制到境外IDC的TOS通道3600中,DES入口3704包括图3H所示的DES入口3620,API 3705包括图3H中的API 3602,对象存储3708包括图3H中的对象存储3606。在从境外IDC复制到TTP IDC的TOS通道3650中,DES入口3704包括图3I所示的DES入口3630,API 3705包括图3I中的API 3610,对象存储3708包括图3I中的对象存储3607。
在消息序列3012中,运维人员3702向DES入口3704注册3711数据交换约束,其可以约束对象文件在不同IDC的对象存储3606和3607之间的复制。在完成注册后,DES入口3704可以向运维人员发送3714响应。DES入口3704向API 3705注册3712关于数据交换约束的容器信息,并且在注册完成后API 3705可以向DES入口3704发送3713响应。经由DES入口3704注册的规则可以被高速缓存3715到API 3705,并且也可以被高速缓存3716到工作节点3605。
平台工作人员3703可以向API 3705发起3717对对象文件的复制请求。API 3705可以执行认证3718。工作节点3605可以从API 3705拉取3719复制请求,并且对要复制的对象文件执行3720数据交换约束的确定。如果允许复制对象文件,工作节点3605执行3721文件复制,以从对象存储3706复制对应的对象文件。无论不满足数据交换确定的结果如何,工作节点3605会向API 3705返回3722反馈。在允许复制对象文件的情况下,反馈包括所复制的对象文件。在不允许复制对象文件的情况下,反馈用于指示复制请求被拒绝。
在一些实施例中,平台工作人员3703可以回调3723API 3705,从API 3705可以向平台工作人员3703返回3724复制请求ID。在一些实施例中,TTP 3701可以通过DES入口3704来查看3725历史对象文件复制的情况,以确认在过去一段时间内对象文件的交换是否符合数据交换约束的要求。DES入口3704可以返回3726所要查看的结果。
针对服务调用的数据交换保护的示例实现
图3K示出了根据本公开的一些实施例的涉及服务调用通道的数据交换架构3800的示意框图。数据交换架构3800可以被实现在DES1040中,用于针对服务调用类型的数据执行数据安全保护。在图3L的示例中,示出了在TTP IDC侧的目标平台服务3802与境外IDC侧的境外(非TTP)平台服务3804之间的服务调用数据交换。例如,目标平台服务3802上的服务可能需要调用境外平台服务3804上的服务,反之,境外平台服务3804的服务也可能需要调用目标平台服务3802上的服务。
不同服务平台可能会应用多种不同的服务调用协议,例如HTTP协议或Thrift RPC协议。在本公开的一些实施例中,希望在VPC受信区域中执行数据主权保护时可以处理统一格式化数据,例如HTTP协议数据。
在图3K中,在控制面,非TTP控制面用于通道注册、通道架构更新、检测;TTP/TTP控制面用于通道请求批准、通道禁止、通道检测等。在数据面,HTTP负载均衡器3810是来自TTPCloud的L7均衡产品,其是确保所有DES-RPC通道流量通过VPC受信区域的关键组件。HTTP通道是DES-RPC通道中支持HTTP协议的通道。Thrift RPC通道是DES-RPC通道中支持ThriftRPC协议的通道。在被发送到TTP的HTTP负载均衡器之前,Thrift RPC通道将被包裹在HTTP通道中。
在通道注册阶段,DES-RPC通道利用通道信息和数据定义来声明。通道信息可以包括通道的类型,例如Thrift RPC或HTTP。通道信息还可以包括RPC调用元组。调用元组可以包括src dc、src服务、dst dc、dst服务、rpc方法/http路径。
数据定义可以取决于数据的流动方向。对于从非TTP到TTP的数据流动,将使用具有合规注释的Thrift IDL来声明响应。对于从TTP到非TTP的数据流动,将使用带有合规注释的Thrift IDL来声明请求。在一些实施例中,在DES-RPC通道通过合规性注册时,DES-RPC通道才是可用的。
可以理解,图3K中示出的在DES中用于处理服务调用数据交换的组件仅是示例。在其他示例中,取决于需要,不同功能模块还可以按其他方式被细分、合并等,并且还可以包括更多、更少或不同的功能模块。
图3L示出了根据本公开的一些实施例的在图3K所示的服务调用通道中从非TTP到TTP的数据交换示例。如图3L所示,由境外区域的服务A 3901发起的调用将由HTTP代理3902或Thrift代理3903转发到TTP的HTTP负载均衡器3905。服务A 3901可以是图3M所示的境外平台服务的一个示例。对于HTTP请求,调用将由HTTP代理3902转发到HTTP负载均衡器3905。对于Thrift请求,调用将由Thrift代理3903转发到HTTP负载均衡器3905。
境外IDC中对应服务代理,比如说HTTP代理3902或者Thrift代理3903到VPC受信区域HTTP负载均衡器3905的服务发现建议通过DNS来实现,对应请求转发到TTP IDC区域的代理的服务发现则建议使用定制/通用的服务发现。
HTTP负载均衡器3905可以包括合规插件3906。对于非法的请求,合规插件3906将返回错误。对于Thrift rpc调用,请求将被HTTP包裹以生成新的HTTP请求。新的HTTP请求的主体为Thrift二进制文件。
在VPC受信区域中,TTP的HTTP负载均衡器3905将请求分别转发到TTP的HTTP代理3907和Thrift代理3908,然后HTTP代理3907和Thrift代理3908分别将请求转发到作为目标服务的服务B3908和服务C 3910。对于Thrift rpc调用,Thrift代理3908会在发送请求之前从所生成的新的HTTP请求中恢复原始Thrift请求。
TTP的HTTP代理3907和Thrift代理3908将在向TTP的HTTP负载均衡器3905发送响应之前对响应进行检查。对于未通过合规性检查的响应,将返回错误。此外,对于Thriftrpc调用,Thrift响应将被HTTP包裹以生成新的HTTP响应。新的HTTP响应的主体为Thrift二进制文件。
图3M示出了根据本公开的一些实施例的在图3K所示的服务调用通道中从TTP到非TTP的数据交换示例。如图3M所示,由TTP的服务A 3951发起的调用将由TTP的HTTP代理3952和Thrift代理3953转发到TTP的HTTP负载均衡器3955。对于HTTP请求,调用将由HTTP代理3952转发到HTTP负载均衡器3955。对于Thrift请求,调用将由Thrift代理3953转发到HTTP负载均衡器3955。
对于非法的请求,将返回错误。对于未通过合规性检查的响应,将返回错误。对于Thrift rpc调用,请求将被HTTP包裹以生成新的HTTP请求。新的HTTP请求的主体为Thrift二进制文件。
TTP的HTTP负载均衡器3955将请求转发到非TTP(也即,境外区域)的HTTP代理3957和Thrift代理3958。然后HTTP代理3957和Thrift代理3958将请求转发到境外区域的服务B3959和服务C3960。
对于Thrift rpc调用,Thrift代理会在发送之前从所生成的新的HTTP请求中恢复原始Thrift请求。
非TTP的HTTP代理3957和Thrift代理3958将向TTP的HTTP负载均衡器3955发送响应。对于Thrift rpc调用,Thrift响应将被HTTP包裹以生成新的HTTP响应。新的HTTP响应的主体为Thrift二进制文件。
安全沙盒子系统
客户端应用需要与服务器通信以传输数据。客户端应用的网络流量可以传输大量的用户数据。因此,需要一种能够管理客户端应用的网络流量的方法,以使得用户数据不会经由客户端应用的网络流量被传输到未经允许的服务器。例如,在数据主权保护的场景下,该方法可以防止用户数据被传输到非数据主权国家的服务器。
然而,客户端应用的网络流量的类型十分丰富。客户端应用可以包括移动端应用和电脑(PC端)应用。客户端应用的网络流量可以包括原生类型的网络流量和网页视图类型的网络流量等。此外,客户端应用的网络流量并非都在应用的所有者的管理和控制之下。例如,客户端应用的网络流量可以包括来自第三方广告商的网络流量。因此,管理客户端应用的各种类型的网络流量是十分困难的。
本公开的示例实施例提出了一种管理客户端应用的网络流量的方法。该方法包括:基于对目标用户的确定,检测目标用户的用户数据从客户端应用到服务器的网络传输;基于网络传输对应的网络流量的类型,在网络传输的不同层分析网络流量;以及基于分析指示网络流量满足与目标用户对应的数据交换约束,将网络流量发送到由数据交换约束限定的服务器。
以此方式,通过基于网络流量的类型在网络传输的不同层分析网络流量以及限制不满足数据交换约束的网络流量的传输,可以有效地防止用户数据经由各种类型的网络流量传输到未经允许的服务器。
以下将参照附图来具体描述本公开的实施例。下文将以移动端应用为例来示例性地说明本公开的方案。
图4A示出了根据本公开的一些实施例的管理移动端应用的网络流量的示例方法4100的流程图。该方法4100例如可以在图1的安全沙盒子系统1090处实施。移动端应用可以是移动端的目标应用1080。
在框4102,基于对目标用户的确定,检测目标用户的用户数据从目标应用1080到服务器的网络传输。换言之,如果确定当前用户是目标用户,则安全沙盒子系统1090可以检测目标用户的用户数据的网络传输。
在一些实现中,可以基于对目标用户的确定将网络流量路由到安全沙盒子系统1090,以使得安全沙盒子系统1090可以检测和分析与用户数据的网络传输对应的网络流量。安全沙盒子系统1090可以分析目标应用1080的网络请求并且基于数据交换约束来限制不满足条件的网络请求。
数据交换约束可以包括与数据主权有关的交换约束,例如数据主权保护规则。数据主权保护规则可以根据各个国家或区域的规定而被确定。数据主权保护规则也可以由应用的运营方确定(例如,与用户数据使用协议有关)。
数据主权保护规则可以基于具体场景而被设置。例如,数据主权保护规则可以规定不允许数据主权国家的用户数据传输到数据主权国家之外的任何服务器。在另一些实现中,数据主权保护规则可以规定不允许数据主权国家的隐私的用户数据传输到未经注册的任何服务器。本公开的范围对此不作限制。
如图1所示,目标应用1080的网络请求经由安全沙盒子系统1090的分析和处理之后被传输到应用防火墙子系统1020。安全沙盒子系统1090的原理和细节将在下文详细描述。
目标用户是指其用户数据的传输需要被检测和管理的用户。目标用户可以是具有数据主权国家的国籍的用户。备选地或附加地,目标用户也可以是根据数据主权保护的具体规则而确定的用户。例如,目标用户可以是具有数据主权国家的国籍并且当前在地理上位于该数据主权国家中的用户。
在一些实现中,可以基于用户信息来确定目标用户。用户信息可以包括用户的账号信息、个人信息、注册信息等。备选地或附加地,可以基于设备信息来确定目标用户。设备信息可以包括用户身份识别模块(Subscriber Identity Module,SIM)信息、IP地址、网络服务提供商信息、设备的系统设置信息、应用设置信息等。
在一些实现中,可以基于多种信息的组合来确定目标用户。多种信息可以具有不同的优先级。例如,SIM信息、网络服务提供商信息的优先级可以高于IP地址、系统设置信息、应用设置信息等。
在一些实现中,对目标用户的确定可以基于对目标用户所在地区的确定。可以利用上述用户信息或设备信息来确定目标用户的所在地区,从而确定目标用户。例如,可以利用智能手机的系统设置中的地区设置来确定当前用户所在地区,并以此确定当前用户是否为目标用户。又例如,可以利用SIM卡的国家代码来确定目标用户所在地区,并以此来确定目标用户。
在一些实现中,可以在初次启动应用时确定目标用户。换言之,可以在初次启动应用时确定当前用户是否是目标用户。备选地或附加地,可以在用户注册时确定当前用户是否是目标用户。备选地或附加地,可以在用户登入、登出、切换账号时确定当前用户是否是目标用户。
在一些实现中,可以将确定结果存储在本地或服务器中。可以在第一次将用户确定为目标用户之后存储确定结果并且设置在阈值时间段内使用所存储的确定结果。这样,当用户再次登录时,可以无需再次对用户进行确定。
在框4104,基于网络传输对应的网络流量的类型,在网络传输的不同层分析网络流量。
目标应用1080中的网络流量可以包括多个类型的网络流量,例如原生(native)、网页视图(Webview)和第三方软件开发工具包(SDK)类型的网络流量。原生类型的网络流量由业务层中的操作系统(例如,安卓和IOS)代码产生和处理。原生类型的网络流量可以完全由目标应用1080的所有者来控制。
第三方SDK类型的网络流量由第三方SDK产生和处理。通常,目标应用1080中可以接入第三方SDK以用于实现登录或分享的功能。第三方SDK类型的网络流量由这些第三方SDK产生和处理。应理解,第三方SDK类型的网络流量通常不能完全由应用的所有者来控制。
网页视图类型的网络流量可以包括由应用的所有者控制的网络流量,例如,应用内置的浏览器通过调用原生应用的代码而产生的网络流量。网页视图类型的网络流量还可以包括由第三方控制的网络流量。例如,由第三方广告商产生和控制的网络流量。
基于网络流量的类型,安全沙盒子系统1090可以采取相应的分析策略,从而更好地管理应用中的用户数据的网络传输。
在框4106,基于分析指示网络流量满足与目标用户对应的数据交换约束,将网络流量发送到由数据交换约束限定的服务器。可以针对不同的目标用户设置不同的数据交换约束。例如,对于敏感等级更高的目标用户,可以设置更严格的数据交换约束。数据交换约束可以限定哪些用户数据可以被传输到哪些服务器。在一些实现中,可以基于目标用户的用户信息或对应的设备信息来确定目标用户对应的数据交换约束。
在一些实现中,安全沙盒子系统1090可以包括针对不同类型的网络流量的多个子模块。例如,用于管理原生类型的网络流量的子模块、用于管理网页视图类型的网络流量的子模块、以及用于管理第三方SDK类型的网络流量的子模块。这些子模块可以分析相应类型的网络流量,以及限制或拦截不满足数据交换约束的网络流量。下文将参考图4B至图4E来详细描述针对不同类型的网络流量的管理的细节。
图4B示出了根据本公开的一些实施例的针对原生类型的网络流量的分析和限制过程4200的示意图。图4B示出了用于分析和限制原生类型的网络流量的子模块4210。子模块4210可以是安全沙盒子系统1090的一部分,也可以是安全沙盒子系统1090的一种具体实现方式。
如图4B所示,业务逻辑层4220将网络请求下发给底层OS 4230。业务逻辑层4220可以是图1所示的应用业务逻辑1100在网络传输方面的一种具体实现。子模块4210可以作为拦截器在网络层分析和限制网络请求。子模块4210可以通过分析端点、网络请求的参数、或模式(schema)来限制网络请求。例如,可以基于schema是否已被注册来确定是否限制该网络请求。备选地或附加地,可以基于网络请求中所请求的字段是否涉及敏感信息来确定是否限制该网络请求。
在一些实现中,子模块4210可以包括针对安卓的拦截器、针对IOS的拦截器。附加地,子模块4210还可以包括针对C++的拦截器。以此方式,通过在网络层分析和限制网络请求,可以基于网络请求的协议信息来更好地判断该网络请求是否应该被限制。
图4C示出了根据本公开的一些实施例的针对网页视图类型的网络流量的分析和限制过程4300的示意图。图4C示出了用于分析和限制网页视图类型的网络流量的子模块4310。子模块4310可以是安全沙盒子系统1090的一部分,也可以是安全沙盒子系统1090的一种具体实现方式。
子模块4310可以将网页视图类型的网络流量转移到原生的网络接口,以使得网页视图类型的网络流量可以由针对原生类型的网络流量的子模块4210来分析和限制。在一些实现中,子模块4310可以利用JavaScript(JS)的钩子(hook)机制来将网页视图类型的网络流量转移到原生的网络接口。
如图4C所示,子模块4310可以包括启动器4311、导航URL拦截器4312和内部请求拦截器4313。子模块4310可以与应用内置的浏览器4320通信,以使得网页视图类型的网络流量可以被子模块4310管理和检测。启动器4311可以在应用内置的浏览器4320打开(被创建)时进行JS注入,以使得网页视图类型的网络流量可以利用hook机制被转移到原生的网络接口。被转移到原生的网络接口的网络流量可以由原生的网络模块接管。
在一些实现中,可以使用如下方式来利用JS hook技术进行网络流量的转移。
导航URL拦截器4312可以分析和限制主页面(初始页面)的URL。例如,导航URL拦截器4312可以基于URL的schema是否被注册来确定是否限制该网络请求。如果该网络请求未被限制,则浏览器4320可以加载该主页面。
内部请求拦截器4313可以将与主页面的静态资源和动态资源有关的网络流量转接到原生的网络接口,以使得这些网络流量可以由子模块4210来在网络层进行限制和分析。具体的分析和限制过程与原生类型的网络流量类似,在此不再赘述。
在一些实现中,针对由应用的所有者控制的网页视图类型的网络流量和由第三方控制的网页视图类型的网络流量,子模块4310可以采取不同的分析和限制策略。例如,针对由第三方控制的网页视图类型的网络流量,可以仅利用导航URL拦截器4312来确定主页面的URL是否被注册来分析相关的网络流量,而无需进一步分析主页面的静态资源和动态资源。
图4D示出了根据本公开的一些实施例的针对第三方SDK类型的网络流量的分析和限制过程4400的示意图。图4D示出了用于分析和限制第三方SDK类型的网络流量的子模块4410。子模块4410可以是安全沙盒子系统1090的一部分,也可以是安全沙盒子系统1090的一种具体实现方式。
子模块4410可以在应用程序接口(API)层分析和限制第三方SDK类型的网络流量。子模块4410可以通过在API层分析第三方SDK的API所请求的数据是否满足数据交换约束来限制第三方SDK类型的网络流量。
在一些实现中,子模块4410可以包裹(wrap)第三方SDK中请求用户数据的API,并且在包裹中添加基于数据交换约束的判断逻辑。换言之,子模块4410可以通过向第三方SDK的API添加判断逻辑来确定包裹API。这样,业务逻辑层4220不是直接调用第三方SDK的API,而是调用添加了判断逻辑的包裹API。
如图4D所示,子模块4410可以包括分别针对每个第三方SDK的包裹模块。例如,针对SDK 4411的包裹模块4412、针对SDK 4413的包裹模块4414、以及针对SDK 4415的包裹模块4416。包裹模块(例如,包裹模块4412)可以包裹对应的SDK(例如,SDK 4411)中的API,以生成对应的包裹API。在一些实现中,子模块4410可以动态地增加包裹模块以包裹第三方SDK的API。
在一些实现中,可以通过如下方式来包裹第三方SDK的API。包裹模块4412可以定义暴露给业务层的、与SDK 4411中的API相同的API。包裹模块4412可以实现该API并且定义SDK 4411数据类型的包裹类。
判断逻辑可以基于数据交换约束来确定是否可以调用被包裹的第三方SDK的API。在一些实现中,判断逻辑可以基于SDK的名称、API的名称、API的参数的名称等来分析第三方SDK的API是否可以被调用。如果判断结果为是,则第三方SDK的API可以被调用,并向业务层返回值。如果判断结果为否,则不调用第三方SDK的API,也即,与该API相关的网络流量被限制。应理解,判断逻辑可以基于具体场景而变化。例如,判断逻辑可以设置为不允许向第三方SDK传入用户的隐私数据。
以此方式,通过在API层进行分析和限制,子模块4410可以在无需知晓第三方SDK的内部代码的情况下管理和检测第三方SDK类型的网络流量。
图4E示出了根据本公开的一些实施例的安全沙盒子系统1090的模块图。如图4E所示,安全沙盒子系统1090包括启动模块4520。启动模块4520被配置为基于对目标用户的确定,启动对目标用户的用户数据从客户端应用到服务器的网络传输的检测。启动模块4520可以激活管理模块来检测、管理、分析和限制与用户数据的网络传输对应的网络流量。
管理模块被配置为基于网络传输对应的网络流量的类型,在网络传输的不同层分析网络流量;以及基于分析指示网络流量满足与目标用户对应的数据交换约束,将网络流量发送到由数据交换约束限定的服务器。
在一些实现中,管理模块可以包括子模块(也称为第一管理模块)4210、子模块(也称为第二管理模块)4310和子模块(也称为第三管理模块)4410。子模块4210、子模块4310和子模块4410可以分析和限制客户端应用的网络流量。
在一些实现中,子模块4210被配置为基于网络流量的类型为原生类型的网络流量,在网络层分析网络流量。
在一些实现中,子模块4310被配置为基于网络流量的类型为网页视图类型的网络流量,将网页视图类型的网络流量转移到客户端应用的网络接口以由客户端应用的原生网络模块管理;以及在网络层分析所转移的网络流量。
在一些实现中,将网页视图类型的网络流量转移到移动端应用的网络接口包括:利用JavaScript的钩子机制来转移网页视图类型的网络流量。
在一些实现中,子模块4410被配置为基于网络流量的类型为第三方SDK类型的网络流量,在应用程序接口API层分析网络流量。
在一些实现中,在API层分析所述网络流量包括:通过向第三方SDK的API添加基于所述数据交换约束的判断逻辑来确定包裹API;以及调用所述包裹API以利用所述判断逻辑来分析所述网络流量。
在一些实现中,启动模块4520可以基于对目标用户的确定来激活子模块4210、4310和4410。例如,启动模块4520可以在用户注册时确定当前用户是否是目标用户。如果确定结果为是,则启动模块4520可以激活子模块4210、4310和4410。又例如,启动模块4520可以在用户登录时从本地或服务器获取对该用户的确定结果,并基于确定结果来确定是否激活子模块4210、4310和4410。
安全沙盒子系统1090中还可以包括用于对网络流量进行采样的采样模块4510。在一些实现中,采样模块4510可以向启动模块4520发送采样信号来触发启动模块4520。采样信号可以指示对网络流量进行采样的采样率。
采样模块4510可以基于数据交换约束来采样目标用户和不同类型的网络流量。例如,采样模块4510可以以不同的采样率来对不同类型的网络流量进行采样。利用采样模块4510,可以仅分析网络流量中的一部分,从而降低开销并维持应用的稳定性。
应理解,安全沙盒子系统1090还可以包括其他模块,或者仅包括图4E所示的部分模块。例如,在目标应用1080仅是移动端的原生应用时,安全沙盒子系统1090可以不包括针对网页视图类型的网络流量的子模块4310。本公开的范围对此不作限制。
在一些实现中,基于网络流量的类型,还可以在套接字(Socket)层来分析和限制网络流量。例如,可以在Socket层转接第三方SDK类型的网络流量,以使得可以直接分析第三方SDK类型的网络请求。备选地或附加地,也可以在Scoket层分析和限制原生类型的网络流量以及网页视图类型的网络流量。
在一些实现中,还可以在目标应用1080上建立作为代理的本地服务器。通过将目标应用1080的网络请求转发给本地服务器,并且通过在本地服务器分析和限制网络流量,可以管理由本地服务器转发给外部服务器的网络请求。以此方式,可以在考虑协议信息的情况下分析和限制不同类型的网络流量,从而更好地管理应用的网络流量不被传输到未经允许的外部服务器。
上文参考图4B至图4E详细描述了针对不同类型的网络流量的分析和限制的原理和细节。应理解,上述限制规则、判断逻辑和数据交换约束仅是示例性的,而非限制本公开的范围。例如,根据不同国家的法律法规要求可以设置不同的数据主权保护规则。此外,取决于计算机网络的层的定义,可以在与上述层相近或相似的层处来分析和限制网络流量。
此外,在上文的描述中,安全沙盒子系统1090可以直接分析和限制目标应用1080中的网络流量。换言之,只有未被安全沙盒子系统1090限制的网络流量才能继续传输。备选地或附加地,安全沙盒子系统1090可以不直接限制网络流量,而是仅提供分析报告。在这种情况下,可以在正常传输网络请求的同时向安全沙盒子系统1090发送网络请求的副本。安全沙盒子系统1090可以分析网络请求的副本,并提供分析报告。
在一些实现中,针对多个数据主权国家的情况,可以相应地设置多个安全沙盒子系统1090来分别针对每个数据主权国家进行处理。例如,可以基于对目标用户所在地区的确定,启动对应的安全沙盒子系统来分析和限制网络流量,以使得应用中的用户数据的网络传输符合对应国家的数据主权保护规则。
推荐管理子系统
如上文所讨论的,目标应用例如可以通过推荐机制来向用户提供各种内容的推荐,诸如,多媒体内容推荐、用户推荐、商品推荐等等。在这样的应用中,推荐策略的公平性已经成为许多地区管理的重点。例如,一些应用可能通过推荐机制来引导用户去关注与用户习惯无关的特定内容,则这样的推荐机制可能是不合规的。
另一方面,通常的推荐算法往往依赖于机器学习模型来实施,诸如由安全计算子系统1060所执行的代码层级核查可能无法有效地检测推荐算法的公平性。而另一方面,推荐模型的训练与更新往往与实际用户数据息息相关,人们也不期望在检查过程中暴露用户的隐私数据,因为这可能会导致数据合规的风险。
本公开的实施例进一步提出了一种管理推荐策略的方案。图5示出了管理推荐策略的过程500的流程图。该过程500例如可以由推荐管理子系统1050执行。
如图5所示,在框502,推荐管理子系统1050获取与目标应用中的一组对象相关联的一组对象特征,其中一组对象特征是基于一组对象的属性而转换得到的,一组对象特征不直接表达一组对象的属性。
在一些实施例中,推荐管理子系统1050可以经由目标应用提供的应用程序接口API来获取该组对象特征。在一些实施例中,推荐管理子系统1050例如可以经由专用API而从目标应用平台1030来获取与目标应用1080中的一组对象相关联的一组对象特征。
在一些实施例中,该组对象特征例如可以是由特征提取模型基于该组对象的属性而转换得到的。基于这样的方式,可以使得推荐策略的管理方或者其他第三方无法基于对象特征来确定对象的原始属性信息。由此,可以保证目标应用中的数据的安全性。
在框504,推荐管理子系统1050从一组对象特征中确定第一对象特征和第二对象特征,其中第一对象特征和第二对象特征之间的第一差异小于第一阈值。
在一些实施例中,该组对象特征例如可以表示为多个向量。进一步地,推荐管理子系统1050例如可以基于向量之间的差异,而从该组对象特征中选择出差异小于第一阈值的至少一对对象特征。
在框506,推荐管理子系统1050基于目标应用中的推荐策略,确定与第一对象特征对应的第一推荐结果和与第二对象特征对应的第二推荐结果。
在一些实施例中,推荐管理子系统1050可以将第一对象特征提供至与推荐策略相关联的推荐模型,以确定第一推荐结果,并且将第二对象特征提供至推荐模型,以确定第二推荐结果。
在一些实施例中,为了保证推荐策略的安全性,可以由推荐管理子系统1050经由目标应用提供的API而将所选择得到的第一对象特征和第二对象特征发送至远程运行的推荐模型,以用于确定第一推荐结果和第二推荐结果。示例性地,该推荐模型例如可以是由目标应用的维护方所运行的。
在一些实施例中,生成第一推荐结果和第二推荐结果的过程将不会影响目标应用中真正部署的推荐模型。
在一些实施例中,第一推荐结果和第二推荐结果可以是由推荐模型输出的向量表示。由此,推荐管理子系统1050将无法直接解读第一推荐结果和第二推荐结果的语义,从而进一步提高了目标应用内数据的安全性。
在框508,推荐管理子系统1050基于第一推荐结果和第二推荐结果,评估推荐策略。
在一些实施例中,推荐管理子系统1050可以确定第一推荐结果和第二推荐结果之间的第二差异,并且基于第二差异与第二阈值之间的比较,确定推荐策略的公平性。
具体地,对于合理的推荐策略而言,对于两个相似的对象,其推荐结果应当是相似的。因此,如果推荐管理子系统1050确定第二差异超过第二阈值时,可以确定推荐策略具有较差的公平性。
或者,推荐管理子系统1050例如也可以基于第二差异超过第二阈值的对象特征对的占比,来确定推荐策略的公平性。例如,推荐管理子系统1050例如可以随机采样多组对象特征对,并如果其中第二差异超过第二阈值的对象特征对的占比超过阈值占比,则可以确定推荐策略具有较差的公平性。
在一些实施例中,推荐管理子系统1050还可以基于用于输入到推荐模型的对象特征和历史推荐结果之间的相关性,来确定推荐策略的公平性。具体地,推荐管理子系统1050还可以从目标应用获取第三对象特征和针对第三对象特征的历史推荐结果。进一步地,推荐管理子系统1050基于第三对象特征和历史推荐结果之间的相关性,确定推荐策略的公平性。例如,推荐管理子系统1050可以基于确定对象特征与历史推荐结果的类别信息是否匹配。
在一些实施例,推荐管理子系统1050可以确定与第三对象特征和历史推荐结果对应的向量表示,并基于两个向量表示之间的差异来确定第三对象特征和历史推荐结果之间的相关性。例如,如果一个对象和其历史推荐结果的向量差异大于阈值,则推荐管理子系统1050可以确定推荐策略具有较差的公平性。
在一些实施例中,如上文所提及的,还可以由安全计算子系统1060例如对于推荐策略相关联的源代码进行检查。具体地,安全计算子系统1060例如可以获取与推荐策略相对应的源代码,并且基于源代码或与源代码对应的中间代码来评估推荐策略。
在一些实施例中,推荐策略例如可以用于向目标应用1080中的用户推荐至少一项多媒体内容。多媒体内容的示例例如可以包括:图像、视频、音乐或其组合等。
示例过程、装置和设备
图6示出了根据本公开的一些实施例的代码管理的示例过程600的流程图。如图6所示,在框602,安全计算子系统1060响应于构建可执行文件的请求,从代码库中获取对应的开发代码。在604,安全计算子系统1060将开发代码编译为中间代码,以确定中间代码的安全性。在606,安全计算子系统1060响应于中间代码被确定为安全,基于中间代码生成可执行文件。
在一些实施例中,方法还包括:向代码扫描模块提供中间代码,以确定中间代码的安全性。
在一些实施例中,将开发代码编译为中间代码包括:获取与开发代码相关联的第三方库;以及基于开发代码和第三方库,生成中间代码。
在一些实施例中,获取与开发代码相关联的第三方库包括:发送获取与开发代码相关联的第三方库的请求;以及响应于第三方库被确定为是安全的,获取第三方库。
在一些实施例中,方法还包括:响应于中间代码被确定为具有风险,拒绝构建可执行文件;以及使代码库中对应的开发代码中的风险部分被标记。
在一些实施例中,方法还包括:生成关于风险的报告。
在一些实施例中,方法还包括:生成针对可执行文件的签名;以及将签名上传至签名管理系统。
在一些实施例中,可执行文件包括目标应用的安装文件,方法还包括:将安装文件经由部署网关发送至应用商店。
在一些实施例中,可执行文件包括由目标应用平台运行的服务程序,方法还包括:认证服务程序的签名;以及响应于签名被认证,使服务程序经部署网关而被部署到目标应用平台。
在一些实施例中,从代码库中获取对应的开发代码包括:经由同步网关将开发代码同步至代码库中;经由同步网关向制品构建系统发送构建可执行文件的请求;以及由代码拉取模块基于请求而从代码库中获取对应的开发代码。
在一些实施例中,将开发代码编译为中间代码包括:由编译模块对应的开发代码编译为中间代码;由编译模块将中间代码发送至安全代码扫描模块;以及由安全代码扫描模块确定中间代码的安全性。
在一些实施例中,由编译模块对应的开发代码编译为中间代码包括:由编译模块从制品库中获取与开发代码相关联的第三方库,其中第三方库是响应于被第三方独立网关确定为安全的而经由第三方独立网关被添加至制品库中;以及由编译模块基于开发代码和第三方库生成中间代码。
在一些实施例中,方法还包括:响应于中间代码由安全代码扫描模块确定为安全,由上传模块向制品库中上传基于中间代码生成的可执行文件;由部署网关从制品库中获取可执行文件,以使可执行文件被部署。
在一些实施例中,由部署网关从制品库中获取可执行文件以使可执行文件被部署包括:由部署网关从制品库获取可执行文件和可执行文件的签名;向制品签名管理模块发送可执行文件的签名;以及响应于由制品签名管理模块认证签名,使可执行文件经由部署网关而被部署。
本公开的实施例还提供了用于实现上述方法或过程的相应装置。图7示出了根据本公开的一些实施例的管理推荐策略的装置600的示意性结构框图。
如图7所示,装置700包括获取模块710,被配置为响应于构建可执行文件的请求,从代码库中获取对应的开发代码。装置700还包括编译模块720,被配置为将开发代码编译为中间代码,以确定中间代码的安全性。装置700还包括生成模块730,被配置为响应于中间代码被确定为安全,基于中间代码生成可执行文件。
图8示出了可以用来实施本公开内容的实施例的示例设备800的示意性框图。例如,根据本公开实施例的系统1000或其各子系统可以由设备800来实施。如图所示,设备800包括中央处理单元(CPU)801,其可以根据存储在只读存储器(ROM)802中的计算机程序指令或者从存储单元808加载到随机访问存储器(RAM)803中的计算机程序指令,来执行各种适当的动作和处理。在RAM 803中,还可存储设备800操作所需的各种程序和数据。CPU 801、ROM 802以及RAM 803通过总线804彼此相连。输入/输出(I/O)接口805也连接至总线804。
设备800中的多个部件连接至I/O接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
上文所描述的各个过程和处理,例如过程600,可由处理单元801执行。例如,在一些实施例中,过程600可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由ROM 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序被加载到RAM 803并由CPU 801执行时,可以执行上文描述的过程600的一个或多个动作。
本公开可以是方法、装置、系统和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于执行本公开的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是但不限于电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本公开操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本公开的各个方面。
这里参照根据本公开实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本公开的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理单元,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理单元执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本公开的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
以上已经描述了本公开的各实施方式,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施方式。在不偏离所说明的各实施方式的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施方式的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施方式。
Claims (18)
1.一种代码管理的方法,包括:
响应于构建可执行文件的请求,从代码库中获取对应的开发代码;
将所述开发代码编译为中间代码,以确定所述中间代码的安全性;以及
响应于所述中间代码被确定为安全,基于所述中间代码生成可执行文件。
2.根据权利要求1所述的方法,还包括:
向代码扫描模块提供所述中间代码,以确定所述中间代码的所述安全性。
3.根据权利要求1所述的方法,其中将所述开发代码编译为中间代码包括:
获取与所述开发代码相关联的第三方库;以及
基于所述开发代码和所述第三方库,生成所述中间代码。
4.根据权利要求3所述的方法,其中获取与所述开发代码相关联的第三方库包括:
发送获取与所述开发代码相关联的所述第三方库的请求;以及
响应于所述第三方库被确定为是安全的,获取所述第三方库。
5.根据权利要求1所述的方法,还包括:
响应于所述中间代码被确定为具有风险,拒绝构建所述可执行文件;以及
使所述代码库中所述对应的开发代码中的风险部分被标记。
6.根据权利要求5所述的方法,还包括:
生成关于所述风险的报告。
7.根据权利要求1所述的方法,还包括:
生成针对所述可执行文件的签名;以及
将所述签名上传至签名管理系统。
8.根据权利要求1所述的方法,其中所述可执行文件包括目标应用的安装文件,所述方法还包括:
将所述安装文件经由部署网关发送至应用商店。
9.根据权利要求1所述的方法,其中所述可执行文件包括由目标应用平台运行的服务程序,所述方法还包括:
认证所述服务程序的签名;以及
响应于所述签名被认证,使所述服务程序经由部署网关而被部署到所述目标应用平台。
10.根据权利要求1所述的方法,其中从代码库中获取所述对应的开发代码包括:
经由同步网关将开发代码同步至所述代码库中;
经由所述同步网关向制品构建系统发送构建可执行文件的所述请求;以及
由代码拉取模块基于所述请求而从所述代码库中获取所述对应的开发代码。
11.根据权利要求1所述的方法,其中将所述开发代码编译为中间代码包括:
由编译模块将所述对应的开发代码编译为所述中间代码;
由所述编译模块将所述中间代码发送至安全代码扫描模块;以及
由所述安全代码扫描模块确定所述中间代码的所述安全性。
12.根据权利要求11所述的方法,其中由编译模块将所述对应的开发代码编译为所述中间代码包括:
由所述编译模块从制品库中获取与所述开发代码相关联的第三方库,其中所述第三方库是响应于被第三方独立网关确定为安全的而经由所述第三方独立网关被添加至所述制品库中;以及
由所述编译模块基于所述开发代码和所述第三方库生成所述中间代码。
13.根据权利要求1所述的方法,还包括:
响应于所述中间代码由安全代码扫描模块确定为安全,由上传模块向制品库中上传基于所述中间代码生成的可执行文件;
由部署网关从所述制品库中获取所述可执行文件,以使所述可执行文件被部署。
14.根据权利要求13所述的方法,其中由部署网关从所述制品库中获取所述可执行文件以使所述可执行文件被部署包括:
由所述部署网关从所述制品库获取所述可执行文件和所述可执行文件的签名;
向制品签名管理模块发送所述可执行文件的所述签名;以及
响应于由所述制品签名管理模块认证所述签名,使所述可执行文件经由所述部署网关而被部署。
15.一种代码管理装置,包括:
获取模块,被配置为响应于构建可执行文件的请求,从代码库中获取对应的开发代码;
编译模块,被配置为将所述开发代码编译为中间代码,以确定所述中间代码的安全性;以及
生成模块,被配置为响应于所述中间代码被确定为安全,基于所述中间代码生成可执行文件。
16.一种电子设备,包括:
存储器和处理器;
其中所述存储器用于存储一条或多条计算机指令,其中所述一条或多条计算机指令被所述处理器执行以实现根据权利要求1至14中任一项所述的方法。
17.一种计算机可读存储介质,其上存储有一条或多条计算机指令,其中所述一条或多条计算机指令被处理器执行以实现根据权利要求1至14中任一项所述的方法。
18.一种计算机程序产品,包括一条或多条计算机指令,其中所述一条或多条计算机指令被处理器执行以实现根据权利要求1至14中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111258200.3A CN116028057A (zh) | 2021-10-27 | 2021-10-27 | 代码管理的方法和装置 |
US17/680,189 US11593077B1 (en) | 2021-10-27 | 2022-02-24 | Method and apparatus of code management |
EP22885604.3A EP4407440A1 (en) | 2021-10-27 | 2022-10-08 | Code management method and apparatus |
PCT/CN2022/123807 WO2023071722A1 (zh) | 2021-10-27 | 2022-10-08 | 代码管理的方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111258200.3A CN116028057A (zh) | 2021-10-27 | 2021-10-27 | 代码管理的方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116028057A true CN116028057A (zh) | 2023-04-28 |
Family
ID=85289418
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111258200.3A Pending CN116028057A (zh) | 2021-10-27 | 2021-10-27 | 代码管理的方法和装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11593077B1 (zh) |
EP (1) | EP4407440A1 (zh) |
CN (1) | CN116028057A (zh) |
WO (1) | WO2023071722A1 (zh) |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8079023B2 (en) * | 2007-03-22 | 2011-12-13 | Microsoft Corporation | Typed intermediate language support for existing compilers |
WO2011120123A1 (en) * | 2010-03-31 | 2011-10-06 | Irdeto Canada Corporation | A system and method for encapsulating and enabling protection through diverse variations in software libraries |
US9530006B2 (en) * | 2014-04-11 | 2016-12-27 | Oracle International Corporation | Method and system for performing a memory safety check of a program written in an unmanaged programming language |
US20160357530A1 (en) * | 2015-06-05 | 2016-12-08 | Apple Inc. | Method and apparatus for intermediate representation of applications |
EP3314418A1 (en) * | 2015-06-24 | 2018-05-02 | TOI S.r.l. | Method and system for preparing code to be executed by programmable control devices |
CN105022958B (zh) | 2015-07-11 | 2018-01-12 | 复旦大学 | 一种安卓应用中基于代码库安全规约的应用程序漏洞检测分析方法 |
US11023215B2 (en) * | 2016-12-21 | 2021-06-01 | Aon Global Operations Se, Singapore Branch | Methods, systems, and portal for accelerating aspects of data analytics application development and deployment |
US10521208B2 (en) * | 2017-06-23 | 2019-12-31 | Microsoft Technology Licensing, Llc. | Differentiated static analysis for dynamic code optimization |
WO2019033019A1 (en) * | 2017-08-11 | 2019-02-14 | Fugue, Inc. | SYSTEM AND METHOD FOR PROVIDING CLOUD OPERATING SYSTEM VALIDATIONS FOR A DOMAIN-SPECIFIC LANGUAGE FOR CLOUD SERVICES INFRASTRUCTURE |
KR102001046B1 (ko) * | 2017-11-24 | 2019-07-17 | (주)잉카엔트웍스 | 공통 중간 언어를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법 |
US20190272157A1 (en) * | 2018-03-01 | 2019-09-05 | Fugue, Inc. | System and method for embedding domain-specific language code within a visualization of cloud-based computing infrastructure |
CN109032606B (zh) | 2018-07-10 | 2022-03-01 | 北京小米移动软件有限公司 | 原生应用程序的编译处理方法、装置及终端 |
US11010495B1 (en) * | 2018-10-23 | 2021-05-18 | Architecture Technology Corporation | Systems and methods for runtime enforcement of data flow integrity |
US11481498B2 (en) * | 2019-01-28 | 2022-10-25 | Visa International Service Association | Continuous vulnerability management for modern applications |
US11074055B2 (en) * | 2019-06-14 | 2021-07-27 | International Business Machines Corporation | Identification of components used in software binaries through approximate concrete execution |
US10839124B1 (en) | 2019-06-26 | 2020-11-17 | Amazon Technologies, Inc. | Interactive compilation of software to a hardware language to satisfy formal verification constraints |
CN111309589A (zh) * | 2019-11-29 | 2020-06-19 | 中国电力科学研究院有限公司 | 一种基于代码动态分析的代码安全扫描系统及方法 |
US11347488B2 (en) * | 2020-05-18 | 2022-05-31 | Fortinet, Inc. | Compiling domain-specific language code to generate executable code targeting an appropriate type of processor of a network device |
CN111768187A (zh) * | 2020-08-31 | 2020-10-13 | 支付宝(杭州)信息技术有限公司 | 一种部署智能合约的方法、区块链节点和存储介质 |
CN112613023B (zh) * | 2020-12-28 | 2023-04-28 | 厦门市美亚柏科信息股份有限公司 | 一种认证信息生成算法的保护方法和终端 |
CN113220302A (zh) | 2021-04-14 | 2021-08-06 | 清华大学 | 面向物联网操作系统的代码缺陷静态检测方法和系统 |
-
2021
- 2021-10-27 CN CN202111258200.3A patent/CN116028057A/zh active Pending
-
2022
- 2022-02-24 US US17/680,189 patent/US11593077B1/en active Active
- 2022-10-08 WO PCT/CN2022/123807 patent/WO2023071722A1/zh active Application Filing
- 2022-10-08 EP EP22885604.3A patent/EP4407440A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4407440A1 (en) | 2024-07-31 |
US11593077B1 (en) | 2023-02-28 |
WO2023071722A1 (zh) | 2023-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9055068B2 (en) | Advertisement of conditional policy attachments | |
US8838951B1 (en) | Automated workflow generation | |
CN110839087B (zh) | 接口调用方法及装置、电子设备和计算机可读存储介质 | |
WO2023071731A1 (zh) | 数据安全保护系统 | |
WO2023071460A1 (zh) | 用于数据交换的方法、系统、装置和设备 | |
US9239911B2 (en) | Replacement of security credentials for secure proxying | |
CN110083338B (zh) | 基于智能网关的服务系统 | |
US11811884B1 (en) | Topic subscription provisioning for communication protocol | |
CN113721893A (zh) | 一种微服务总线设计方法及装置 | |
Kellezi et al. | Towards secure open banking architecture: an evaluation with OWASP | |
KR20240134884A (ko) | 개인과 연관된 정보를 업데이트하고 배포하기 위한 시스템 및 방법 | |
CN116055074B (zh) | 管理推荐策略的方法和装置 | |
CN115242433B (zh) | 数据处理方法、系统、电子设备及计算机可读存储介质 | |
US11637781B1 (en) | Method, apparatus and system for managing traffic data of client application | |
WO2023071722A1 (zh) | 代码管理的方法和装置 | |
CN115085950A (zh) | 微服务安全控制方法、装置、设备及计算机可读存储介质 | |
CN116582362B (zh) | 网络访问的控制方法、装置、电子设备及存储介质 | |
CN115982748B (zh) | 基于区块链的安全控制数据资源托管的方法、装置和设备 | |
KR102120229B1 (ko) | 4-tier 방식 CASB의 보안통제 수행을 위한 인공지능 기반 부하균형 시스템 및 그 방법 | |
US20230199015A1 (en) | System and method for contextual misconfiguration detection | |
CN117557372A (zh) | 一种基于区块链的数据处理方法、设备以及可读存储介质 | |
CN118784259A (zh) | 数据传输方法、网关组件、装置、设备及存储介质 | |
CN117896118A (zh) | 一种物联网卡认证登录方法、装置、电子设备及存储介质 | |
CN117061221A (zh) | 云密码服务的实现方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |