本发明涉及java数据库连接操作安全性的监控,具体为一种针对java数据库连接操作安全性的监控系统。
背景技术:
1、java数据库连接的全称是java数据库连接,它是一套用于执行sql语句的javaapi。应用程序可通过这套api连接到关系数据库,并使用sql语句来完成对数据库中数据的查询、更新和删除等操作。
2、绝大部分以java作为开发语言实现的应用程序都是通过java数据库连接连接到关系数据库,不同关系数据库提供不同java数据库连接驱动,这些java数据库连接驱动都遵循java数据库连接标准。关系数据库在应用程序承担数据存储作用,对软件系统来说至关重要,但应用程序所处运行的环境、承担的功能、质量等要素千变万化,各不相同。因此在开发、测试、运行等阶段,我们需要掌握应用程序对关系数据库的操作,发现其中是否存在性能、安全、操作不当等情况,从而帮助提高软件系统的质量,以及提前发现风险。
3、现有技术一般有几个技术方向来实现对java数据库连接操作的监控。如:
4、技术方案一:使用java数据库连接标准中api类代理的方式,然后在代理类中通过埋点、拦截、过滤等技术手段,实现对java数据库连接操作基本信息的监控,sql注入等安全检测。
5、技术方案二:通过静态或动态字节码技术,对常见java数据库连接驱动进行增强,然后在增强类中通过埋点,实现对java数据库连接操作基本信息的监控。
6、现有技术中存在一些缺点,如:
7、技术方案一缺点:
8、1、仅能做到最基本的监控和安全检测,即:仅能做到对单次操作(如:一个sql执行)监控和安全检测;
9、2、针对已有系统有一定的迁移、改造成本;
10、3、无法针对特定业务完成监控和安全检测;
11、技术方案二缺点:
12、1、不同数据库提供的java数据库连接驱动不同,因此该方案需要针对性的适配,且java数据库连接驱动版本不同也可能会导致监控数据的缺失,从而无法适应不同应用程序;
13、2、缺乏有效的监控和安全检测机制,使得监控和安全检测的作用大打折扣;
14、3、无法针对特定业务完成监控和安全检测,因此,亟待一种改进的技术来解决现有技术中所存在的这一问题。
技术实现思路
1、本发明的目的在于提供一种解决了现有技术中存在的应用程序java数据库连接监控适用范围宅,便利度较低的问题,提供了多种监控接入方式、多种存储方式、智能诊断模块、丰富的ui使得便利程度大大提高针对java数据库连接操作安全性的监控系统,以解决上述背景技术中提出的问题。
2、为实现上述目的,本发明提供如下技术方案:一种针对java数据库连接操作安全性的监控系统,所述
3、java数据库连接的drivermanager中注册代理驱动,并替换java数据库连接驱动包提供的驱动;
4、在应用程序不重启的情况下,动态的加载到应用程序中,也可以通过在应用程序的启动命令中添加参数使得agent随应用程序启动;
5、监控系统运行时解析配置、以及解释自定义规则,提供组合逻辑,形成自定义规则,监控系统将这些规则解释为具体的策略模型;
6、java数据库连接操作的过程数据会记录在不同的存储引擎中,提供基于spi机制的扩展机制,对应用程度java数据库连接操作过程进行追溯,并形成操作信息链;
7、监控系统会从数据库连接、线程号、业务表、事务等不同的维度对数据进行分析、诊断,并识别是否存在风险与不当操作;
8、监控系统通过多种维度对监控数据进行展示,并对风险与不当操作等信息进行预警通知。
9、优选的,所述根据步骤一
10、通过该代理驱动创建的连接以及后续创建的关键实例作为代理实例;
11、代理实例在关键api进行了埋点,并提供基础filter、intercept功能,并提供了filter-chain扩展实现。
12、优选的,所述根据步骤二
13、扫描应用程序,获取应用程序的java数据库连接操作;
14、基于jdbs api扫描java数据库连接驱动包中的实现类,初步对风险操作进行拦截,并过滤记录关键数据;
15、解析、过滤java数据库连接驱动包中的实现类,对部分数据经过简单处理后,并进行展示;
16、对java数据库连接驱动包中的实现类的字节码进行解析,并修改字节码;
17、替换java数据库连接驱动包中的实现类,使其接入埋点、过滤、拦截。
18、优选的,所述根据步骤三
19、监控系统将java数据库连接标准中对象以及sql语义中的部分元素作为自定义规则的要素,并提供组合逻辑,形成自定义规则;
20、监控系统将这些规则解释为具体的策略模型;
21、当应用程序在java数据库连接操作过程中,监控系统会对根据这些策略过滤数据、转储数据,并进行安全检测,并提供阻止、预警等功能。
22、优选的,所述根据步骤六
23、监控系统在收到命令后,如果是设置或控制命令,监控系统将相关内容传递到应用程序中;
24、如果查看命令,监控系统中的数据通过不同的形式进行展示。
25、与现有技术相比,本发明的有益效果是:
26、(1)java数据库连接驱动包中的驱动进行代理后,创建的数据库连接也将会被代理以及后续java数据库连接操作类都可以被代理,在代理类上通过切面编程模式,并提供filter、intercept等基础组件,即可实现埋点、过滤、拦截等功能;
27、(2)应用程序在java数据库连接操作过程中,监控系统会对根据这些策略过滤数据、转储数据,并进行安全检测,并提供阻止、预警等功能;
28、(3)该java数据库连接操作安全性的监控系统解决了现有技术中存在的应用程序java数据库连接监控适用范围宅,便利度较低的问题,提供了多种监控接入方式,包括:驱动代理、agent字节码增强技术,不同接入方式适用不同的应用程序使得监控适用范围更广,本java数据库连接操作安全性的监控系统提供了多种监控、安全检测策略、多种存储方式、智能诊断模块、丰富的ui、风险告警使得便利程度大大提高。
29、java数据库连接操作安全性的监控系统解决了现有技术中存在的监控、安全检测功能简单,且无法针对特定业务进行监控和安全检测的问题,提供了配置、自定义规则等方式,并提供了filter-chain、存储spi等扩展机制,使得监控、安全检测更加丰富与完善。
1.一种针对java数据库连接操作安全性的监控系统,其特征在于:所述java数据库连接的drivermanager中注册代理驱动,并替换java数据库连接驱动包提供的驱动;
2.根据权利要求1所述的一种针对java数据库连接操作安全性的监控系统,其特征在于:在所述java数据库连接的drivermanager中注册代理驱动,并替换java数据库连接驱动包提供的驱动,
3.根据权利要求1所述的一种针对java数据库连接操作安全性的监控系统,其特征在于:所述根据步骤二
4.根据权利要求1所述的一种针对java数据库连接操作安全性的监控系统,其特征在于:所述根据步骤三
5.根据权利要求1所述的一种针对java数据库连接操作安全性的监控系统,其特征在于:所述根据步骤六