[发明专利]docker容器环境下注入应用探针的方法和装置有效
申请号: | 202010687893.7 | 申请日: | 2020-07-16 |
公开(公告)号: | CN111813646B | 公开(公告)日: | 2023-07-18 |
发明(设计)人: | 熊伟;高娟娟 | 申请(专利权)人: | 华北电力大学(保定) |
主分类号: | G06F11/34 | 分类号: | G06F11/34 |
代理公司: | 河北知亦可为专利代理事务所(特殊普通合伙) 13115 | 代理人: | 周大伟 |
地址: | 071000 河北*** | 国省代码: | 河北;13 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | docker 容器 环境 注入 应用 探针 方法 装置 | ||
1.一种docker容器环境下注入应用探针的方法,用于将宿主机操作系统的应用探针注入docker容器的应用进程中,其特征在于,包括
进程探测的步骤:
调用ptrace函数设置系统函数回调,建立对docker容器管理进程的监控,并接收有关docker容器管理进程中发生的事件的通知;
在监控到有新容器启动时,在回调函数内mount文件到docker进程,操纵容器环境,调整新容器的文件系统,将应用探针模块所在的文件目录自动挂载到新容器的文件系统内的对应目录下;在挂载应用探针模块后,在新容器的执行环境内启动自动注入模块,执行自动注入探针的步骤;
自动注入探针的步骤:
在/etc/ld.so.preload 文件中插入自动注入动态扩展库,当docker容器内有新的应用进程启动时,自动加载所述自动注入动态扩展库;
通过自动注入动态扩展库分析新应用进程的执行环境,以确定新应用进程是否满足自动注入应用探针的条件;
当新应用进程满足自动注入应用探针时,调用预先配置好的注入规则设置进程的环境变量或更改进程的启动参数,并在真正执行新应用进程的业务逻辑之前注入对应的应用探针;
所述调用预先配置好的注入规则设置进程的环境变量或更改进程的启动参数,具体包括:
识别应用进程命令行名称及参数,通过命令行名称及参数中的特定字符来识别java和.Net Core进程,在java应用中,可执行文件名称的特征是等于字符串“java”,注入规则为更改当前java进程的命令行参数,追加-javaagent=挂载后的java探针路径,在.NetCore应用中,可执行文件名称的特征是等于字符串“dotnet”,注入规则为追加多条应用的环境变量;
识别应用进程加载的动态扩展库,通过动态扩展库名称中的特定字符来识别php进程,利用hook机制拦截php进程枚举php扩展的函数,追加挂载后的php应用探针路径到枚举函数,同时利用hook机制拦截php进程读取php.ini文件,追加extenstion=php应用探针名,使php应用探针对应用生效。
2.根据权利要求1所述的docker容器环境下注入应用探针的方法,其特征在于,进程探测的步骤之前,还包括进程守护的步骤,具体为:
定时枚举操作系统内的进程信息,分析进程的执行环境,以确定进程是否是docker容器管理进程;
在确定进程是docker容器管理进程后,启动进程探测的步骤。
3.根据权利要求2所述的docker容器环境下注入应用探针的方法,其特征在于,所述操作系统为Linux操作系统,定时枚举操作系统内的进程信息具体为:
通过ps命令获取宿主机上所有进程的进程编号pid;
获取/proc/[pid]/cmdline中可执行文件的名称及参数;
根据可执行文件的名称及参数识别docker容器管理进程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华北电力大学(保定),未经华北电力大学(保定)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010687893.7/1.html,转载请声明来源钻瓜专利网。