内网安全访问方法、装置及终端与流程

文档序号:11583318阅读:281来源:国知局
内网安全访问方法、装置及终端与流程

本发明涉及数据安全技术领域,尤其涉及一种内网安全访问方法、装置及终端。



背景技术:

在软件开发的过程中,软件源代码很容易被开发人员泄漏。源代码往往携带有技术机密,泄露的话不仅导致源代码的权利人利益受损,也会导致市场竞争恶劣。

现有技术中,为了防止源代码泄露,有以下几种技术方案:第一种,设置源代码服务器不与外部网络连接,只有内部封闭网络,无软盘驱动,无usb端口,无通用异步收发传输器(universalasynchronousreceiver/transmitter,uart)接口等;第二种,可以设置封闭网络连接终端,但终端只有uart接口或不支持u盘的usb接口,接口可以连到测试目标机器上,例如手机、pad、计算机等,供外部网络的用户访问,例如供外部网络的工程师做测试;第三种,可以通过内部封闭网络的编辑器(editor)软件对编辑后源代码加密,即使源文件复制出来也不能使用。上述方法可以在一定程度上保护源代码的网络安全。

但是,在第一种方案中,外部用户无法方便地获得目标代码,例如工程师无法直接获取编译后的目标代码进行测试,工程师的测试效率降低;在第二种方案中,只要有连接外部的通信端口,就有源代码泄露的可能性;在第三种方案中,由于源代码加密,所以在对源代码编译前需要做反过程,把加密的源文件进行解密,然后送给编译器编译,导致编译速度慢,且编译器要经过特殊处理,否则加密的源文件不能被原始编译器识别,而且加密不能支持所有的文件类型。



技术实现要素:

本发明解决的技术问题是如何提高内网访问的安全性,避免源代码文件 的泄露。

为解决上述技术问题,本发明实施例提供一种内网安全访问方法,内网安全访问方法包括:

在内网范围内将源文件目录复制至超级用户的编译根目录,所述编译根目录的访问权限仅属于所述超级用户,所述源文件目录中包含源文件;

使用所述超级用户的权限对所述源文件进行编译,以创建目标代码包目录,并将所述源文件编译形成的目标文件放置在所述目标代码包目录内;

使用所述超级用户的权限将所述目标代码包目录内的目标文件复制到内网出口,以供外网访问。

可选的,在内网内,仅允许所述超级用户将所述目标代码包目录内的文件复制到所述内网出口。

可选的,使用所述超级用户的权限将所述目标代码包目录内的目标文件复制到内网出口包括:

使用所述超级用户的权限将所述目标代码包目录内的目标文件复制到所述内网出口内的指定目录。

可选的,在将所述目标文件复制到所述内网出口内的指定目录之前,还包括:清空所述指定目录。

可选的,所述内网安全访问方法还包括:

删除所述编译根目录以及所述目标代码包目录。

可选的,在内网范围内将源文件复制至超级用户的编译根目录包括:删除所述超级用户的编译根目录;重新创建所述超级用户的编译根目录;将所述源文件复制至重新创建的编译根目录内。

可选的,使用所述超级用户的权限对所述源文件进行编译之前,还包括:

配置编译环境,并用预设标准代码库的标准编译规则文件替代所述源文件目录中的编译规则文件。

可选的,使用所述超级用户的权限对所述源文件进行编译是基于所述标 准编译规则文件触发的。

为解决上述技术问题,本发明实施例还公开了一种内网安全访问装置,内网安全访问装置包括:

根目录创建单元,适于在内网范围内将源文件目录复制至超级用户的编译根目录,所述编译根目录的访问权限仅属于所述超级用户,所述源文件目录中包含源文件;

编译单元,适于使用所述超级用户的权限对所述源文件进行编译,以创建目标代码包目录,并将所述源文件编译形成的目标文件放置在所述目标代码包目录内;

输出单元,适于使用所述超级用户的权限将所述目标代码包目录内的目标文件复制到内网出口,以供外网访问。

可选的,在内网内,仅允许所述超级用户将所述目标代码包目录内的文件复制到所述内网出口。

可选的,所述输出单元适于使用所述超级用户的权限将所述目标代码包目录内的目标文件复制到所述内网出口内的指定目录。

可选的,所述内网安全访问装置还包括:

第一清理单元,适于清空所述指定目录。

可选的,所述内网安全访问装置还包括:

第二清理单元,适于删除所述编译根目录以及所述目标代码包目录。

可选的,所述根目录创建单元包括:

清理子单元,适于删除所述超级用户的编译根目录;

根目录创建子单元,适于重新创建所述超级用户的编译根目录;

复制子单元,将所述源文件复制至重新创建的编译根目录内。

可选的,所述编译单元之前还包括:

配置单元,适于配置编译环境,并用预设标准代码库的标准编译规则文件替代所述源文件目录中的编译规则文件。

可选的,使用所述超级用户的权限对所述源文件进行编译是基于所述标准编译规则文件触发的。

为解决上述技术问题,本发明实施例还公开了一种终端,所述终端包括所述内网安全访问装置。

与现有技术相比,本发明实施例的技术方案具有以下有益效果:

本发明实施例通过在内网范围内将源文件目录复制至超级用户的编译根目录,所述编译根目录的访问权限仅属于所述超级用户,所述源文件目录中包含源文件;使用所述超级用户的权限对所述源文件进行编译,以创建目标代码包目录,并将所述源文件编译形成的目标文件放置在所述目标代码包目录内;使用所述超级用户的权限将所述目标代码包目录内的目标文件复制到内网出口,以供外网访问;通过配置超级用户权限对源代码文件进行编译和复制,并在编译过程中形成只用于复制到内网出口的目标代码包目录,提高了内网访问的安全性和源代码文件的安全性。

进一步,通过配置编译环境,并用预设标准代码库的标准编译规则文件替代所述源文件目录中的编译规则文件,避免本地编译规则文件被修改导致源代码文件泄露的问题,进一步保证了源代码文件的安全。

附图说明

图1是本发明实施例一种内网安全访问方法的流程图;

图2是本发明实施例另一种内网安全访问方法的流程图;

图3是本发明实施例一种内网安全访问装置的结构示意图;

图4是本发明实施例另一种内网安全访问装置的结构示意图。

具体实施方式

如背景技术中所述,现有技术的第一种方案中,工程师无法直接获取编译后的目标代码进行测试,工程师的测试效率降低;在第二种方案中,只要有连接外部的通信端口,就有源代码泄露的可能性;在第三种方案中,由于源代码加密,所以在对源代码编译前需要做反过程,把加密的源文件进行解密,然后送给编译器编译,导致编译速度慢,且编译器要经过特殊处理,否 则加密的源文件就不能被原始编译器识别,而且加密方式不能支持所有的文件类型。

为使本发明的上述目的、特征和优点能够更为明显易懂,下面结合附图对本发明的具体实施例做详细的说明。

本发明实施例所称内网是指内部封闭网络。内网是在开发源文件时使用的网络环境,且内网里的终端和服务器与内网以外的外部网络环境隔离,内网终端不配置可移动或可拆除存储器,例如软盘、磁盘等,也不会配置例如uart,usb接口等。

本发明实施例所称外网是相对于内网而言,外网是指外部网络。外网内的终端和服务器可以和外部网络连接,例如可以看网页、发送email,也可以做任何外部数据交换,例如可以连接u盘进行数据的复制。

本发明实施例所称内网出口是指内网和外网进行通信的接口。在内网,内网出口的访问权限属于超级用户,普通用户不能访问,从而实现内网的安全访问。

具体实施中,内网出口是内网用来输出数据到外网的目录,可以是在内网终端或服务器上的目录,在内网,内网出口仅允许超级用户操作,内网出口的路径例如可以是:server:to_outernet_path/。内网入口是内网用来接收外网输入数据的目录,普通用户可以操作,内网入口的路径例如可以是:server:from_outernet_path/。内网出口和内网入口目录对应于外网的两个目录:外网用来接收内网输出数据的目录和外网用来将数据导入到内网的目录,对应的外网目录的路径例如可以是server:from_innernet_path/和server:to_innernet_path/,外网的目录普通用户都可以操作。

本发明实施例的内网安全访问方法在内网具备内网出口的情况下,通过对内网出口进行监控和改进,实现在输出测试目标代码包的同时,又可以保护源代码不泄露的技术效果。

图1是本发明实施例一种内网安全访问方法的流程图。

请参照图1,内网安全访问方法包括:步骤s101,在内网范围内将源文件目录复制至超级用户的编译根目录,所述编译根目录的访问权限仅属于所 述超级用户,所述源文件目录中包含源文件。

本实施例中,源文件是指用汇编语言或高级语言写出来的代码保存为文件后的结果,源文件中包含有源代码。使用所述超级用户的权限创建超级用户的编译根目录,并复制源文件至编译根目录。所述编译根目录的访问权限仅属于所述超级用户,普通用户无权访问,从而在一定程度上防止在复制操作过程中源文件的泄露。

本实施例中,超级用户是相对于普通用户而言的,超级用户的权限通常高于普通用户的权限,也即,采用超级用户的权限可以执行普通用户的操作,例如访问普通用户的目录、文件等,但是采用普通用户的权限却无法执行超级用户的操作,例如访问超级用户的目录、文件等。具体实施中,超级用户具备特殊权限,特殊权限例如可以是linux系统提供的超级用户权限,普通用户可以通过适当的方式获得超级用户的权限,然后就可以使用超级用户的权限进行文件的操作。例如,在linux操作系统中,超级用户的权限可以通过以下实施方式来获取:suid或setuid命令,可执行的文件(例如脚本或自定义工具)搭配该命令,便能使得普通用户采用超级用户的权限来执行该可执行文件,从而以超级用户的权限完成该可执行的文件中限定的操作;sgid或setgid命令,采用该命令的效果与suid或setuid大致相同。

具体实施中,在创建所述超级用户的编译根目录之前,可以删除上次编译产生的编译根目录,并将所述源文件复制至重新创建的编译根目录内。采用这样的方式,可以避免原先的编译根目录中夹杂其他文件而造成数据泄露。

本发明实施例利用上述权限获得方式或用户切换的方式,可以使普通用户获得超级用户的权限,普通用户能够利用超级用户的权限把目标代码包复制到外网,这样就能够保护源代码的安全。

步骤s102,使用所述超级用户的权限对所述源文件进行编译,以创建目标代码包目录,并将所述源文件编译形成的目标文件放置在所述目标代码包目录内。

本实施例中,目标文件是指源文件经过编译产生的能被中央处理器(centralprocessingunit,cpu)直接识别的二进制文件。

具体实施中,在对所述源文件进行编译之前,还可以配置编译环境,并用预设标准代码库的标准编译规则文件替代所述源文件目录中的编译规则文件。其中,编译规则文件(makefile)描述了整个源文件的编译、连接等规则,例如:哪些源文件需要编译以及如何编译、需要创建那些库文件以及如何创建这些库文件、如何最后产生需要的可执行文件。编译操作是基于编译规则文件触发的,例如是通过执行编译规则文件而触发并完成的。由于makefile具有自动执行linux命令的作用,而编译以及复制到内网出口的操作,都是基于编译规则文件触发的,为了避免普通用户利用修改本地makefile把源文件复制到产生的目标代码包目录,用预设标准代码库的标准编译规则文件替代所述源文件目录中的编译规则文件。由此,编译时被执行的makfile是预先设定的标准makefile,即使普通用户修改了源文件所处的开发目录中的makefile,修改后的makefile也不会被执行,而且普通用户无法访问属于超级用户的编译根目录来修改替换后的标准makefile,这就进一步保证了源代码文件的安全。

具体实施中,可以使用预设的适当脚本把任何本地的makefile用标准的代码库里的makefile替代。

具体实施中,需要进行编译时,普通用户可以通过执行预先编写的脚本,自动使用超级用户的权限对整个源文件自动编译,编译结束后切换回普通用户的权限。

本实施例中,在编译过程中创建目标代码包目录,用于放置源文件编译形成的目标文件,且超级用户只能将目标代码包目录内的文件复制至内网出口。故在编译过程中,普通用户不能把源代码文件夹带出去,因为目标代码包目录是在编译后产生的。而在步骤s101的复制操作过程中,普通用户无法把源文件复制到一个未创建的目录,从而进一步保证源文件在编译前的泄露。

具体实施中,根据用户需求目的,可以有以下一种或多种编译方式:软件开发工具包(softwaredevelopmentkit,sdk)编译、调试版本(debug)编译和发布版本(release)编译。其中,sdk发布包是指为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件时的开发工具的集合。调试版本包含调试信息,并且不作任何优化,便于程序员调试程序。发布版本是指进行 了优化,程序在代码大小和运行速度上都是最优的,以供用户使用。

具体实施中,可以通过适当的脚本或工具进行不同种类的编译以及编译后的操作,例如,其中一种可以是普通编译并输出目标代码包到内网出口;另一种可以是release发布包编译并把发布包输出到内网出口;还有一种可以是sdk发布包编译并把发布包输出到内网出口。其中,普通编译是本地测试常用的;release发布包编译和sdk发布包编译是发布时常用的。

步骤s103,使用所述超级用户的权限将所述目标代码包目录内的目标文件复制到内网出口,以供外网访问。

本实施例中,仅允许所述超级用户将所述目标代码包目录内的文件复制到所述内网出口,且只有目标代码包目录内的文件可以复制至内网出口。通过内容检查,确定待复制的文件为目标文件,允许复制到所述内网出口,否则,不允许复制到内网出口。

具体实施中,使用所述超级用户的权限将所述目标代码包目录内的目标文件复制到所述内网出口内的指定目录。普通用户可以通过外网对指定目录进行访问,读取目标文件,或对目标文件进行其他操作。在将所述目标文件复制到所述内网出口内的指定目录之前,清空所述指定目录。

本实施例中,在将目标文件复制至内网出口完成后,删除所述编译根目录以及所述目标代码包目录。删除操作是为了减小占用内存,并避免对其他操作产生影响。

图2是本发明实施例另一种内网安全访问方法的流程图。

请参照图2,内网安全访问方法包括:步骤s201,删除超级用户的编译根目录。

具体实施中,删除操作可以通过前述的适当方式为普通用户赋予超级用户的权限,让普通用户能够使用预设的脚本或自动化工具删除超级用户创建的文件和目录。

步骤s202,重新创建超级用户的编译根目录。

步骤s203,将源文件复制至重新创建的编译根目录。

具体实施中,源文件的复制操作可以通过前述的适当方式为普通用户赋予超级用户的权限,从而让普通用户能够采用超级用户的权限实现内网内文件或者目录的复制,复制后的文件和目录属于超级用户所有,普通用户不能访问。从而可以避免在复制过程中普通用户手动的把源文件拷到目标代码输出目录进行泄密。

具体实施中,为了避免编译过程中用户手动的去复制源代码文件到目标代码包目录间接的泄露源代码,把源文件所处的开发目录复制到编译根目录,例如可以是rootdirname-outnet,这个目录就是超级用户的目录,普通用户不能将复制任何文件到该目录。

步骤s204,配置编译环境,并用预设标准代码库的标准编译规则文件替代源文件目录中的编译规则文件。

具体实施中,由于普通用户无权在超级用户拥有的编译根目录去编译,且在例如linux操作系统等常规操作系统中,超级用户的权限不能通过例如shell脚本等脚本进行传递,故可以通过临时切换普通用户至超级用户的方式,使普通用户获取超级用户的编译权限。可以通过预先设定的脚本或自动化工具将普通用户切换到超级用户,以避免在切换的过程超级用户的密码被泄露给普通用户。

具体实施中,在完成用户切换后,先设置编译环境。由于makefile具有自动执行linux命令的作用,而编译并复制到内网出口的动作,通常都是用makefile触发,故makefile的安全性极其重要。故可以把复制到编译根目录的makefile用预设标准代码库里的makefile替代,例如把预设代码库里的控制编译过程各个节点的makefile,以及与makefile的内容或执行操作相关联的文件(例如编译脚本类、配置脚本类等)都进行替代,避免普通用户修改本地的编译规则文件将源代码泄露。

可以理解的是,预设标准代码库可以由用户在编译之前进行自定义配置。

步骤s205,使用超级用户的权限对源文件进行编译,以创建目标代码包目录,并将源文件编译形成的目标文件放置在目标代码包目录内。

具体实施中,在通过预先设定的脚本或自动化工具将普通用户切换到超 级用户后,普通用户使用超级用户的权限在超级用户的编译根目录进行编译。通过执行该脚本或自动化工具的参数提供的编译命令进行编译,可以形成目标代码包目录和目标文件。优选地,该脚本或自动化工具需要编译规则文件进行调用,这样可以保证只有超级用户的编译根目录下的编译规则文件(makefile)才能调用该脚本或自动化工具,从而对源代码有了进一步的保护。利用该脚本或自动化工具完成编译操作后,可以将权限自动切换回普通用户的权限,使得普通用户无法利用超级用户的权限进行额外的操作。步骤s206,清空指定目录。

步骤s207,使用超级用户的权限将目标代码包目录内的目标文件复制到内网出口的指定目录。

具体实施中,目标文件的复制操作是通过预先设定的脚本或自动化工具实现的。该脚本或自动化工具能够使普通用户获取超级用户的权限,并采用超级用户的权限将目标代码包复制到内网出口。优选地,仅允许编译规则文件直接或间接地执行此脚本或自动化工具,避免普通用户手动调用该脚本或自动化工具导致泄密。同时该脚本或自动化工具严格检测复制时的源目录,如果源目录是目标代码包目录,就允许复制,否则不允许。这样就能保证这个工具只能把目标代码包目录内的目标文件复制到内网出口,也就是无法将目标代码包目录以外的其他任何文件复制到内网出口。

具体实施中,在通过预设的各个脚本或自动化工具执行将源文件目录复制到编译根目录、对编译根目录下的源文件进行编译、将目标文件复制到内网出口等操作时,需要确保只有编译规则文件才能调用这些脚本或自动化工具,否则不允许调用,以避免普通用户的权限被随意地切换至超级用户的权限,从而进一步提高安全性。

步骤s208,删除编译根目录以及目标代码包目录。

本实施例中,整个编译目录是临时的,在目标文件复制完成后,可以通过前述的适当方式为普通用户赋予超级用户的权限,并使用预设的脚本或自动化工具将编译过程产生的文件进行删除。

本发明实施例中,整个编译和复制过程中普通用户不能修改当前的编译 根目录下任何目录,更不能修改目标代码包目录,从而实现安全的把目标代码包复制到内网出口。

图3是本发明实施例一种内网安全访问装置的结构示意图。

请参照图3,内网安全访问装置包括:根目录创建单元301、编译单元302和输出单元303。

其中,根目录创建单元301适于在内网范围内将源文件目录复制至超级用户的编译根目录,所述编译根目录的访问权限仅属于所述超级用户,所述源文件目录中包含源文件;编译单元302适于使用所述超级用户的权限对所述源文件进行编译,以创建目标代码包目录,并将所述源文件编译形成的目标文件放置在所述目标代码包目录内;输出单元303适于使用所述超级用户的权限将所述目标代码包目录内的目标文件复制到内网出口,以供外网访问。

本实施例中,输出单元303适于使用所述超级用户的权限将所述目标代码包目录内的目标文件复制到所述内网出口内的指定目录。编译单元302使用所述超级用户的权限对所述源文件进行编译是基于所述标准编译规则文件触发的。

本发明实施例的具体实施方式可参照前述相应实施例,此处不再赘述。

图4是本发明实施例另一种内网安全访问装置的结构示意图。

请参照图4,内网安全访问装置包括:根目录创建单元301、清理子单元401、根目录创建子单元402、复制子单元403、配置单元404、编译单元302、第一清理单元405、输出单元303和第二清理单元406。

其中,根目录创建单元301适于在内网范围内将源文件目录复制至超级用户的编译根目录,所述编译根目录的访问权限仅属于所述超级用户,所述源文件目录中包含源文件;编译单元302适于使用所述超级用户的权限对所述源文件进行编译,以创建目标代码包目录,并将所述源文件编译形成的目标文件放置在所述目标代码包目录内;输出单元303适于使用所述超级用户的权限将所述目标代码包目录内的目标文件复制到内网出口,以供外网访问。

本实施例中,根目录创建单元301包括清理子单元401、根目录创建子单 元402和复制子单元403。清理子单元401适于删除所述超级用户的编译根目录。根目录创建子单元402,适于重新创建所述超级用户的编译根目录。复制子单元403,将所述源文件复制至重新创建的编译根目录内。

本实施例中,配置单元404适于在编译操作前配置编译环境,并用预设标准代码库的标准编译规则文件替代所述源文件目录中的编译规则文件。

第一清理单元405适于清空所述指定目录。使得输出单元303将所述目标代码包目录内的目标文件复制到指定目录。第二清理单元406适于删除所述编译根目录以及所述目标代码包目录。

本发明实施例的具体实施方式可参照前述相应实施例,此处不再赘述。

本声明实施例还公开了一种终端,所述终端包括所述内网安全访问装置。终端可以是计算机、智能手机、pad等。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于以计算机可读存储介质中,存储介质可以包括:rom、ram、磁盘或光盘等。

虽然本发明披露如上,但本发明并非限定于此。任何本领域技术人员,在不脱离本发明的精神和范围内,均可作各种更动与修改,因此本发明的保护范围应当以权利要求所限定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1