CN114564348B - 代码层监测node.js第三方应用的方法及系统 - Google Patents

代码层监测node.js第三方应用的方法及系统 Download PDF

Info

Publication number
CN114564348B
CN114564348B CN202111546059.7A CN202111546059A CN114564348B CN 114564348 B CN114564348 B CN 114564348B CN 202111546059 A CN202111546059 A CN 202111546059A CN 114564348 B CN114564348 B CN 114564348B
Authority
CN
China
Prior art keywords
node
entry file
file
party application
monitoring
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.)
Active
Application number
CN202111546059.7A
Other languages
English (en)
Other versions
CN114564348A (zh
Inventor
徐年生
万振华
王颉
李华
董燕
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Mainway Technology Co ltd
Seczone Technology Co Ltd
Original Assignee
Shenzhen Mainway Technology Co ltd
Seczone Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Mainway Technology Co ltd, Seczone Technology Co Ltd filed Critical Shenzhen Mainway Technology Co ltd
Priority to CN202111546059.7A priority Critical patent/CN114564348B/zh
Publication of CN114564348A publication Critical patent/CN114564348A/zh
Application granted granted Critical
Publication of CN114564348B publication Critical patent/CN114564348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading

Abstract

本发明公开了一种代码层监测node.js第三方应用的方法及系统,该方法包括:创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;通过所述代理入口文件启动运行在所述node.js上的第三方应用,并通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测;通过上述方法,在通过node.js进行软件开发时,通过该代理入口文件来启动第三方应用,最终实现node.js先加载代理入口文件的代码逻辑,然后再启动第三方应用,从而通过查阅该代理入口文件中的日志记录即可实现对该第三方应用的运行代码的监测,有效实现在基于node.js进行软件开发时,不改变第三方应用源码的前提下对该第三方应用的监测,简单、易实现,省时省力,而且还可降低出错率。

Description

代码层监测node.js第三方应用的方法及系统
技术领域
本发明涉及网络软件开发应用程序监测技术领域,尤其涉及一种代码层监测node.js第三方应用的方法及系统。
背景技术
Node.js是一个基于Chrome V8引擎的JavaScript运行环境。Node.js对一些特殊用例进行优化,提供替代的API,使得V8在非浏览器环境下运行得更好,V8引擎执行Javascript的速度非常快,性能非常好,基于Chrome JavaScript运行时建立的平台,用于方便地搭建响应速度快、易于扩展的网络应用。随着Node.js的普遍使用,它的安全性也越来越被关注,在基于Node.js进行网络软件开发时,第三方应用的安全性是影响Node.js运行安全的主要因素,因此,需要对运行在Node.js上的第三方应用进行代码层的监测。目前普遍使用插桩技术对第三方应用源码进行监测,但这会改变第三方应用的源码,需要用户对第三方应用的源码比较清楚,在实现过程中比较费时费力,尤其是对于新手来说,还容易出错。
发明内容
本发明的目的是为解决上述技术问题而提供一种基于node.js应用开发的在不改变第三方应用源码的前提下对第三方应用进行有效监测的代码层监测node.js第三方应用的方法及系统。
为了实现上述目的,本发明公开了一种代码层监测node.js第三方应用的方法,其包括:
创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;
通过所述代理入口文件启动运行在所述node.js上的第三方应用,并通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测。
较佳地,通过打包工具将所述入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中。
较佳地,采用node.js所属打包工具npm对所述代理入口文件打包。
本发明还公开一种代码层监测node.js第三方应用的系统,其包括代理入口创建模块、启动模块和监测模块;
所述代理入口创建模块,用于创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;
所述启动模块,用于通过所述代理入口文件启动运行在所述node.js上的第三方应用;
所述监测模块,用于通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测。
较佳地,还包括打包模块,所述打包模块用于通过打包工具将所述入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中。
较佳地,所述打包模块采用node.js所属打包工具npm对所述代理入口文件打包。
本发明还公开另一种代码层监测node.js第三方应用的系统,其包括:
一个或多个处理器;
存储器;
以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的代码层监测node.js第三方应用的方法的指令。
本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的代码层监测node.js第三方应用的方法。
与现有技术相比,本发明代码层监测node.js第三方应用的方法,创建一用于代理node.js启动的代理入口文件,因此,在通过node.js进行软件开发时,通过该代理入口文件来启动第三方应用,最终实现node.js先加载代理入口文件的代码逻辑,然后再启动第三方应用,从而通过查阅该代理入口文件中的日志记录即可实现对该第三方应用的运行代码的监测;由此可知,通过上述方法,有效实现在基于node.js进行软件开发时,不改变第三方应用源码的前提下对该第三方应用的监测,简单、易实现,省时省力,而且还可降低出错率。
具体实施方式
为详细说明本发明的技术内容、构造特征、所实现目的及效果,以下结合实施方式详予说明。
本实施例公开了一种代码层监测node.js第三方应用的方法,以对基于node.js进行软件开发过程中的第三方应用的运行代码进行监测,从而有效确保node.js开发平台运行的安全性和稳定性,该方法包括:
创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;
通过所述代理入口文件启动运行在所述node.js上的第三方应用,并通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测。
具体地,node.js自身的启动应用入口文件为app.js,命令行启动方式为nodeapp.js,启动应用时,执行源码为:Module.runMain()->Module._load(process.argv[1]),process.argv[1]为入口文件“app.js”。所以当执行node app.js时,源码中会触发Module.runMain方法,并使用process.argv[1]作为启动参数。
因此,在创建代理入口文件engine.js时,需要在engine.js中获取process.argv值为[“node.exe”,“engine.js”,“app.js”],process.argv[1]值为“engine.js”,修改process.argv[1]值为“app.js”,然后再执行一遍Module.runMain()方法,那么就可以做到在engine.js中启动app.js,等同于运行node app.js这一命令。
进一步地,为方便执行启动第三方应用的操作,通过打包工具将所述入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中。具体地,通过node自带的打包工具npm对所述代理入口文件engine.js打包,将engine.js打包成engine.tgz,也即执行命令:npm install engine.tgz-g,那么全局cmd就可以执行“engine”命令,从而通过engine来启动第三方应用app.js,如:engine app.js(第三方应用入口文件)。
由此可知,通过node.js进行软件开发时,通过代理入口文件engine.js来启动第三方应用app.js,最终实现node.js先加载engine.js的代码逻辑,然后再启动app.js,从而通过查阅该载engine.js中的日志记录即可实现对该第三方应用的运行代码的监测。通过上述方法,有效实现在基于node.js进行软件开发时,不改变第三方应用源码的前提下对该第三方应用的监测,简单、易实现,省时省力,而且还可降低出错率。
本发明另一较佳实施例中,还公开一种代码层监测node.js第三方应用的系统,其包括代理入口创建模块、启动模块和监测模块。
所述代理入口创建模块,用于创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件。
所述启动模块,用于通过所述代理入口文件启动运行在所述node.js上的第三方应用。
所述监测模块,用于通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测。
进一步地,该系统还包括打包模块,所述打包模块用于通过打包工具将所述入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中。
较佳地,所述打包模块采用node.js所属打包工具npm对所述代理入口文件打包。
本发明还公开另一种代码层监测node.js第三方应用的系统,其包括一个或多个处理器、存储器以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如上所述的代码层监测node.js第三方应用的方法的指令。处理器可以采用通用的中央处理器(CentralProcessing Unit,CPU),微处理器,应用专用集成电路(Application SpecificIntegrated Circuit,ASIC),或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的代码层监测node.js第三方应用的系统中的模块所需执行的功能,或者执行本申请方法实施例的代码层监测node.js第三方应用的方法。
本发明还公开一种计算机可读存储介质,其包括计算机程序,所述计算机程序可被处理器执行以完成如上所述的代码层监测node.js第三方应用的方法。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是只读存储器(read-onlymemory,ROM),或随机存取存储器(random access memory,RAM),或磁性介质,例如,软盘、硬盘、磁带、磁碟、或光介质,例如,数字通用光盘(digital versatile disc,DVD)、或者半导体介质,例如,固态硬盘(solid state disk,SSD)等。
以上所揭露的仅为本发明的优选实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明申请专利范围所作的等同变化,仍属本发明所涵盖的范围。

Claims (6)

1.一种代码层监测node.js第三方应用的方法,其特征在于,包括:
创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;
通过所述代理入口文件启动运行在所述node.js上的第三方应用,并通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测;通过打包工具将所述代理入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中;
代理启动的执行过程包括:当所述node.js自身的启动应用入口文件为app.js时,命令行启动方式为node app.js,启动应用时,执行源码为:Module.runMain()->Module._load(process.argv[1]),process.argv[1]为入口文件“app.js”,在创建node.js的代理入口文件engine.js时,在engine.js中获取process.argv值为[“node.exe”,“engine.js”,“app.js”],process.argv[1]值为“engine.js”,修改process.argv[1]值为“app.js”。
2.根据权利要求1所述的代码层监测node.js第三方应用的方法,其特征在于,采用node.js所属打包工具npm对所述代理入口文件打包。
3.一种代码层监测node.js第三方应用的系统,其特征在于,包括代理入口创建模块、启动模块和监测模块;
所述代理入口创建模块,用于创建node.js的代理入口文件,所述代理入口文件用于代理所述node.js启动的入口文件;当所述node.js自身的启动应用入口文件为app.js时,命令行启动方式为node app.js,启动第三方应用时,执行源码为:Module.runMain()->Module._load(process.argv[1]),process.argv[1]为入口文件“app.js”,在创建node.js的代理入口文件engine.js时,在engine.js中获取process.argv值为[“node.exe”,“engine.js”,“app.js”],process.argv[1]值为“engine.js”,并修改process.argv[1]值为“app.js”;
所述启动模块,用于通过所述代理入口文件启动运行在所述node.js上的第三方应用;
所述监测模块,用于通过所述代理入口文件中的日志记录对所述第三方应用的运行代码进行监测;还包括打包模块,所述打包模块用于通过打包工具将所述代理入口文件打包成安装文件,并将该安装文件安装到全局CMD环境中。
4.根据权利要求3所述的代码层监测node.js第三方应用的系统,其特征在于,所述打包模块采用node.js所属打包工具npm对所述代理入口文件打包。
5.一种代码层监测node.js第三方应用的系统,其特征在于,包括:
一个或多个处理器;
存储器;
以及一个或多个程序,其中一个或多个程序被存储在所述存储器中,并且被配置成由所述一个或多个处理器执行,所述程序包括用于执行如权利要求1至2任一项所述的代码层监测node.js第三方应用的方法的指令。
6.一种计算机可读存储介质,其特征在于,包括计算机程序,所述计算机程序可被处理器执行以完成如权利要求1至2任一项所述的代码层监测node.js第三方应用的方法。
CN202111546059.7A 2021-12-16 2021-12-16 代码层监测node.js第三方应用的方法及系统 Active CN114564348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111546059.7A CN114564348B (zh) 2021-12-16 2021-12-16 代码层监测node.js第三方应用的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111546059.7A CN114564348B (zh) 2021-12-16 2021-12-16 代码层监测node.js第三方应用的方法及系统

Publications (2)

Publication Number Publication Date
CN114564348A CN114564348A (zh) 2022-05-31
CN114564348B true CN114564348B (zh) 2023-04-04

Family

ID=81711655

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111546059.7A Active CN114564348B (zh) 2021-12-16 2021-12-16 代码层监测node.js第三方应用的方法及系统

Country Status (1)

Country Link
CN (1) CN114564348B (zh)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436831A (zh) * 2016-05-26 2017-12-05 北京京东尚科信息技术有限公司 用于客户端服务器系统的监控方法和装置
CN110941534A (zh) * 2019-11-19 2020-03-31 深圳开源互联网安全技术有限公司 检测web应用第三方代码调用的方法及系统

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110858142A (zh) * 2018-08-07 2020-03-03 北京优酷科技有限公司 一种应用的启动方法及装置
CN109218407B (zh) * 2018-08-14 2022-10-25 平安普惠企业管理有限公司 基于日志监控技术的代码管控方法及终端设备
CN110147656B (zh) * 2019-05-10 2020-10-30 重庆迅燕科技有限公司 一种Node.js的代码加密及底层运行时解密办法
US20210011835A1 (en) * 2019-07-12 2021-01-14 HCL America Inc. System and method for debugging source code of an application

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107436831A (zh) * 2016-05-26 2017-12-05 北京京东尚科信息技术有限公司 用于客户端服务器系统的监控方法和装置
CN110941534A (zh) * 2019-11-19 2020-03-31 深圳开源互联网安全技术有限公司 检测web应用第三方代码调用的方法及系统

Also Published As

Publication number Publication date
CN114564348A (zh) 2022-05-31

Similar Documents

Publication Publication Date Title
US20150161381A1 (en) Detecting java sandbox escaping attacks based on java bytecode instrumentation and java method hooking
KR102023223B1 (ko) 실행 중인 프로세스로의 동적 코드 주입 기법
US20120210299A1 (en) Method And Apparatus for Generating Persistent Variables In A Shell Environment
CN114676424B (zh) 一种容器逃逸检测与阻断方法、装置、设备及存储介质
CN111290949A (zh) 一种进程守护方法及设备
US11055416B2 (en) Detecting vulnerabilities in applications during execution
CN111562929A (zh) 补丁文件的生成方法、装置、设备及存储介质
CN115688106A (zh) 一种Java agent无文件注入内存马的检测方法及装置
CN107562499A (zh) 应用加载的方法、装置和计算机可读存储介质
CN114371859A (zh) 应用软件rasp程序更新方法、服务器、电子设备及存储介质
CN114564348B (zh) 代码层监测node.js第三方应用的方法及系统
CN114443043A (zh) Maven源码包第三方组件的检测方法及系统
US11416614B2 (en) Statistical detection of firmware-level compromises
US20150268976A1 (en) Sharing Applications in a Java Virtual Machine
CN111309402B (zh) 数据监测及针对应用程序的处理方法、装置及设备
CN111367505A (zh) 一种JavaScript源代码保密方法、装置、设备及存储介质
CN106203087B (zh) 注入防护方法、系统、终端以及存储介质
US20120174078A1 (en) Smart cache for a server test environment in an application development tool
CN113961366A (zh) 操作系统的内核函数调用方法及计算机设备
CN106897588B (zh) 一种标签函数的处理方法及装置
CN115617496B (zh) 用户模式与内核模式通信的方法、装置、电子设备和介质
CN111625463B (zh) 一种程序状态检测方法和装置
CN116303096B (zh) 一种低代码设计器本地组件代码调试的方法
LU102412B1 (en) A Method and Apparatus for Embedding Codes in an Application, and an Electronic Device
CN114266037B (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
GR01 Patent grant
GR01 Patent grant