CN111949992B - Web应用程序的自动化安全监测方法及系统 - Google Patents

Web应用程序的自动化安全监测方法及系统 Download PDF

Info

Publication number
CN111949992B
CN111949992B CN202010824178.3A CN202010824178A CN111949992B CN 111949992 B CN111949992 B CN 111949992B CN 202010824178 A CN202010824178 A CN 202010824178A CN 111949992 B CN111949992 B CN 111949992B
Authority
CN
China
Prior art keywords
application
login
information
data
application program
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
CN202010824178.3A
Other languages
English (en)
Other versions
CN111949992A (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.)
Industrial and Commercial Bank of China Ltd ICBC
Original Assignee
Industrial and Commercial Bank of China Ltd ICBC
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 Industrial and Commercial Bank of China Ltd ICBC filed Critical Industrial and Commercial Bank of China Ltd ICBC
Priority to CN202010824178.3A priority Critical patent/CN111949992B/zh
Publication of CN111949992A publication Critical patent/CN111949992A/zh
Application granted granted Critical
Publication of CN111949992B publication Critical patent/CN111949992B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本发明提供了一种WEB应用程序的自动化安全监测方法及系统,可用于人工智能技术领域,所述方法包括:根据预设应用程序登陆信息通过浏览器登陆界面链接至应用程序服务器;通过预设攻击检测信息对所述应用程序服务器进行攻击测试,并获取攻击测试时浏览器和应用程序服务器的运行数据;根据所述运行数据对所述应用程序服务器进行安全诊断得到诊断结果,本发明可无感知且高效精准的进行应用程序的安全测试,并自动化预测分析安全问题,提高测试效率。

Description

WEB应用程序的自动化安全监测方法及系统
技术领域
本发明涉及信息安全技术领域,特别涉及人工智能技术领域,尤其涉及一种WEB应用程序的自动化安全监测方法及系统。
背景技术
在高速发展的互联网业务时代,通常采用敏捷、迭代等开发方法保证开发效率,在这种快速上线快速交付的模式下,如何使用高效的测试方法保证项目中的安全测试环节,缩短项目测试周期显得尤为重要。目前对Java web应用进行安全测试存在多种常规方法,如使用AppScan工具进行黑盒扫描,使用sonar进行白盒检查,或使用一些渗透测试工具例如Nessus,通过篡改请求等对数据进行安全分析。上述常规安全测试方法都需要测试人员手动进行应用链接爬取以及对发起请求进行改造,但是由于发起请求改造同时可能会对系统造成某种不可逆的伤害,例如系统宕机、数据库持久化数据被删除,可能会影响到应用程序的正常功能、流程和性能测试等过程,这无疑会对测试人员造成了很大负担,测试时间大大增加。同时在对测试问题修复后,测试人员需要再次去迭代测试,测试成本大大提高。
发明内容
为了解决以上问题的至少之一,本发明的一个目的在于提供一种WEB应用程序的自动化安全监测方法,无感知且高效精准的进行应用程序的安全测试,并自动化预测分析安全问题,提高测试效率。本发明的另一个目的在于提供一种WEB应用程序的自动化安全监测系统。本发明的再一个目的在于提供一种计算机设备。本发明的还一个目的在于提供一种可读介质。
为了达到以上目的,本发明一方面公开了一种WEB应用程序的自动化安全监测方法,包括:
根据预设应用程序登陆信息通过浏览器登陆界面链接至应用程序服务器;
通过预设攻击检测信息对所述应用程序服务器进行攻击测试,并获取攻击测试时浏览器和应用程序服务器的运行数据;
根据所述运行数据对所述应用程序服务器进行安全诊断得到诊断结果。
优选的,进一步包括:
通过预设至少一种诊断误报判断模型对所述诊断结果进行误报判断,得到所述诊断结果是否为误报的判断结果。
优选的,进一步包括:
根据所述诊断结果确定所述应用程序是否为安全;
若否,根据所述诊断结果确定漏洞类型,根据所述漏洞类型在预设的漏洞解决方案集中匹配对应的漏洞解决方案;
根据所述漏洞解决方案对所述应用程序进行漏洞修正。
优选的,所述根据预设应用程序登陆信息通过浏览器登陆界面链接至应用程序服务器具体包括:
根据预设应用程序登陆信息得到应用程序信息及对应的用户登陆验证信息、登陆控件信息和应用程序登陆界面信息;
根据所述应用程序登陆界面信息访问应用程序登陆界面;
根据登陆控件信息将用户登陆验证信息输入登陆控件以将所述用户登陆验证信息传输至应用服务器进行登陆验证,若登陆验证成功,应用程序服务器与浏览器建立连接。
优选的,所述获取攻击测试时浏览器的运行数据具体包括:
当攻击测试时,通过数据爬虫技术爬取应用程序的前台链接和动态ajax页面得到基础运行数据;
通过预设在应用程序服务器中的代理程序获取应用程序服务器的流量传输数据得到流量补充数据;
根据所述基础运行数据和所述流量补充数据得到所述运行数据。
优选的,所述根据所述运行数据对所述应用程序服务器进行安全诊断得到诊断结果具体包括:
对所述运行数据序列化;
采用TCP网络通讯方式,对序列化后的运行数据进行反序列化;
通过预设至少一个数据分析模型对反序列化后的数据进行检测得到诊断结果。
本发明还公开了一种WEB应用程序的自动化安全监测系统,包括:
自动登陆模块,用于根据预设应用程序登陆信息通过浏览器登陆界面链接至应用程序服务器;
数据采集模块,用于通过预设攻击检测信息对所述应用程序服务器进行攻击测试,并获取攻击测试时浏览器和应用程序服务器的运行数据;
安全诊断模块,用于根据所述运行数据对所述应用程序服务器进行安全诊断得到诊断结果。
优选的,进一步包括误报判断模块,用于通过预设至少一种诊断误报判断模型对所述诊断结果进行误报判断,得到所述诊断结果是否为误报的判断结果。
优选的,进一步包括优化修正模块,用于根据所述诊断结果确定所述应用程序是否为安全;
若否,根据所述诊断结果确定漏洞类型,根据所述漏洞类型在预设的漏洞解决方案集中匹配对应的漏洞解决方案,根据所述漏洞解决方案对所述应用程序进行漏洞修正。
优选的,所述自动登陆模块具体用于根据预设应用程序登陆信息得到应用程序信息及对应的用户登陆验证信息、登陆控件信息和应用程序登陆界面信息,根据所述应用程序登陆界面信息访问应用程序登陆界面,根据登陆控件信息将用户登陆验证信息输入登陆控件以将所述用户登陆验证信息传输至应用服务器进行登陆验证,若登陆验证成功,应用程序服务器与浏览器建立连接。
优选的,所述数据采集模块具体用于当攻击测试时,通过数据爬虫技术爬取应用程序的前台链接和动态ajax页面得到基础运行数据,通过预设在应用程序服务器中的代理程序获取应用程序服务器的流量传输数据得到流量补充数据,根据所述基础运行数据和所述流量补充数据得到所述运行数据。
优选的,所述安全诊断模块具体用于对所述运行数据序列化,采用TCP网络通讯方式,对序列化后的运行数据进行反序列化,通过预设至少一个数据分析模型对反序列化后的数据进行检测得到诊断结果。
本发明还公开了一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,
所述处理器执行所述程序时实现如上所述方法。
本发明还公开了一种计算机可读介质,其上存储有计算机程序,
该程序被处理器执行时实现如上所述方法。
本发明通过预设应用程序登陆信息通过浏览器模拟用户的登陆过程链接至应用程序服务器,使应用程序服务器与浏览器间可以进行正常的信息交互。进一步通过预设的攻击检测信息对应用程序服务器进行攻击测试,自动获取攻击测试时浏览器和应用程序服务器的运行数据,可对运行数据进行安全诊断得到应用程序服务器的诊断结果。本发明的WEB应用程序安全监测方法无需对发起请求进行改造,避免测试过程对系统造成不可逆的伤害,可无感知且高效精准的进行应用程序的安全测试,并自动化预测分析安全问题,提高测试效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出本发明WEB应用程序的自动化安全监测方法一个具体实施例的流程图;
图2示出本发明WEB应用程序的自动化安全监测方法一个具体实施例S100的流程图;
图3示出本发明WEB应用程序的自动化安全监测方法一个具体实施例S200的流程图;
图4示出本发明WEB应用程序的自动化安全监测方法一个具体实施例S300的流程图;
图5示出本发明WEB应用程序的自动化安全监测方法一个具体实施例S500的流程图;
图6示出本发明WEB应用程序的自动化安全监测方法一个具体例子的流程图;
图7示出本发明WEB应用程序的自动化安全监测系统一个具体实施例的结构图;
图8示出本发明WEB应用程序的自动化安全监测系统一个具体实施例包括误报判断模块的结构图;
图9示出本发明WEB应用程序的自动化安全监测系统一个具体实施例包括优化修正模块的结构图;
图10示出适于用来实现本发明实施例的计算机设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本申请可用于人工智能技术领域,也可用于除人工智能技术领域之外的任意领域,本申请的应用技术领域不作限定。
根据本发明的一个方面,本实施例公开了一种WEB应用程序的自动化安全监测方法。如图1所示,本实施例中,所述方法包括:
S100:根据预设应用程序登陆信息通过浏览器登陆界面链接至应用程序服务器。
S200:通过预设攻击检测信息对所述应用程序服务器进行攻击测试,并获取攻击测试时浏览器和应用程序服务器的运行数据。
S300:根据所述运行数据对所述应用程序服务器进行安全诊断得到诊断结果。
本发明通过预设应用程序登陆信息通过浏览器模拟用户的登陆过程链接至应用程序服务器,使应用程序服务器与浏览器间可以进行正常的信息交互。进一步通过预设的攻击检测信息对应用程序服务器进行攻击测试,自动获取攻击测试时浏览器和应用程序服务器的运行数据,可对运行数据进行安全诊断得到应用程序服务器的诊断结果。本发明的WEB应用程序安全监测方法无需对发起请求进行改造,避免测试过程对系统造成不可逆的伤害,可无感知且高效精准的进行应用程序的安全测试,并自动化预测分析安全问题,提高测试效率。
在优选的实施方式中,如图2所示,所述S100根据预设应用程序登陆信息通过浏览器登陆界面链接至应用程序服务器具体包括:
S110:根据预设应用程序登陆信息得到应用程序信息及对应的用户登陆验证信息、登陆控件信息和应用程序登陆界面信息。
S120:根据所述应用程序登陆界面信息访问应用程序登陆界面。
S130:根据登陆控件信息将用户登陆验证信息输入登陆控件以将所述用户登陆验证信息传输至应用服务器进行登陆验证,若登陆验证成功,应用程序服务器与浏览器建立连接。
具体的,可以理解的是,测试人员可预先在配置文件中设置应用程序登陆信息,在模拟用户通过浏览器登陆界面登陆应用程序服务器的登陆行为时,通过调用预先设置的配置文件可得到应用程序登陆信息。在其他实施方式中,也可以通过其他方式获取应用程序登陆信息,本发明对此并不作限定。
进一步的,根据从配置文件中解析得到的应用程序登陆信息可以得到应用程序信息及对应的用户登陆验证信息、登陆控件信息和应用程序登陆界面信息。通过得到的用户登陆验证信息、登陆控件信息和应用程序登陆界面信息可以模拟测试人员的登陆应用程序的登陆操作,从而测试人员无需手动测试WEB应用程序通过浏览器向用户提供服务的每个界面的功能。其中,应用程序信息可包括应用名和版本号等应用属性信息。用户登陆验证信息可包括用户名和密码等验证信息,登陆控件信息可包括用户名控件和密码控件等控件信息,应用程序登陆界面信息可包括登陆地址和主页地址等登陆的必要信息。
具体的,在一个例子中,可通过形成自动化登录脚本的方式根据预设应用程序登陆信息通过浏览器登陆界面链接至应用程序服务器。首先,可基于给定的浏览器代理,例如,InternetExplorer或者chrome浏览器提供的浏览器代理功能,使用浏览器驱动程序进行自动搭建会话认证框架。然后,自动化登录脚本与浏览器可进行会话的信息交互。自动化登录脚本可从配置文件中解析得到应用程序登陆信息,然后根据预设应用程序登陆信息得到应用程序信息及对应的用户登陆验证信息、登陆控件信息和应用程序登陆界面信息。根据所述应用程序登陆界面信息访问应用程序登陆界面,根据登陆控件信息将用户登陆验证信息输入登陆控件以将所述用户登陆验证信息传输至应用服务器进行登陆验证,若登陆验证成功,应用程序服务器与浏览器建立连接。应用程序服务器在登陆验证成功后与浏览器建立通信连接,可与浏览器进行信息交互,以通过浏览器WEB界面与用户交互,为用户提供各种服务。进一步,优选的,可使用断言技术判断web应用是否登录成功。
应用程序登陆信息还可包括是否支持登录、是否需要进行敏感信息检测等条件信息和是否接入统一登录的API界面等信息。在可选的实施方式中,可设置条件验证过程,根据条件验证的结果调整WEB应用程序自动化安全监测的作业流程。例如,对条件信息中是否通过模拟用户登陆的形式进行检测的条件进行验证,若否,则无法对WEB应用程序进行安全诊断,应用程序的安全诊断过程由于无法继续而结束。或者,在模拟用户登陆之前进行敏感信息检测的条件验证,若是,需要对应用程序登陆信息等指定信息进行敏感信息的检测,若检测到敏感信息,可通过脱敏处理等形式对信息处理后再继续应用程序的安全诊断过程。
在优选的实施方式中,如图3所示,所述S200中获取攻击测试时浏览器的运行数据具体包括:
S210:当攻击测试时,通过数据爬虫技术爬取应用程序的前台链接和动态ajax页面得到基础运行数据。
S220:通过预设在应用程序服务器中的代理程序获取应用程序服务器的流量传输数据得到流量补充数据。
S230:根据所述基础运行数据和所述流量补充数据得到所述运行数据。
具体的,可以理解的是,可预先设置存储有常见的或测试人员自定义的安全攻击向量的威胁矢量库。在攻击测试时,可采用安全攻击向量的负载(payload)形成攻击检测信息对应用程序服务器进行攻击测试。然后采用数据爬虫的方式去爬取应用的前台链接,静态解析前台页面中链接,并对动态ajax页面进行爬取,实现静态数据和动态数据相结合的数据获取和监测方式对WEB应用程序进行安全诊断。其中,安全攻击向量payload优选的可包括现有的owasp top10所有漏洞,还可以包含sql注入中的基于时间的盲注和基于布尔的盲注等、命令注入、CLRF注入、LDAP协议注入攻击和敏感信息模型等安全攻击向量。通过对攻击测试时浏览器和应用程序服务器的运行数据的采集,可以对WEB应用程序应用安全漏洞进行初步安全诊断。
由于应用分支和业务数据相关,自动爬取不可避免会漏爬掉相关业务分支。比如,应用程序对应的浏览器界面中一个文本框需要填写手机号才可以进去单独分支,但自动爬取无法知道该文本框的业务含义,因此会漏爬掉相关业务分支。因此,在该优选的实施方式中,结合java字节码技术,预先形成自动化挂接到web应用服务器的代理程序agent,通过agent自动化捕获攻击测试时应用程序服务器的流量传输数据得到流量补充数据,以对自动爬取的数据进行流量补充。
在优选的实施方式中,如图4所示,所述S300中根据所述运行数据对所述应用程序服务器进行安全诊断得到诊断结果具体包括:
S310:对所述运行数据序列化。
S320:采用TCP网络通讯方式,对序列化后的运行数据进行反序列化。优选的,可按照JSON格式对序列化后的运行数据进行反序列化。
S330:通过预设至少一个数据分析模型对反序列化后的数据进行检测得到诊断结果。
具体的,在该优选的实施方式中,通过收接收的运行数据进行序列化和反序列化,对运行数据进行流量回放,对流量回放的运行数据进行安全诊断,避免对WEB应用程序产生影响。对于反序列化后的数据,可通过预设的数据分析模型进行检测得到诊断结果。比如,可通过数据分析模型匹配攻击检测信息和反序列化的数据,如果数据分析模型匹配成功,则诊断结果为存在漏洞。例如,在一个具体例子中,通过注入<script>,的攻击检测信息检测反序列化后的数据中是否含有<script>,如果含有,则说明应用存在跨站脚本攻击漏洞。更优选的,还可设置白名单,白名单分为系统级白名单和应用级白名单,可把一些由于引入公共框架导致的安全漏洞加入白名单。当得到的诊断结果为存在漏洞且漏洞为白名单中的安全漏洞,则认为是由于公共框架等开发技术带来的漏洞,而并非WEB应用程序设计和开发错误形成的漏洞,进而认为白名单中记载的安全漏洞不计入诊断结果存在安全问题的安全漏洞中,即白名单中的安全漏洞不再认为是安全漏洞,通过白名单的设置提高了自动化安全监测的可配置性,本发明的WEB应用程序的自动化安全监测方法具有广泛适用性。
其中,数据分析模型可通过深度学习算法得到。具体的,通过长时间的安全监测和数据收集,安全问题分析,可以获得很多具有价值的数据。针对获取到的运行数据以及对应的安全漏洞信息,可以通过训练学习形成智能的数据分析模型。例如,在一个具体例子中,通过深度神经网络算法对运行数据进行挖掘和分析,将所有收集到的运行数据按照预先定义的标准格式和属性特征进行提取得到特征值参数。将所有的诊断结果进行分类,可分为越权、敏感信息、不安全的加密算法等多种安全漏洞类型的诊断结果,将海量的历史运行数据,利用python的深度学习算法进行训练,可得到训练好的数据分析模型。通过深度学习算法得到的数据分析模型可以运用到分析海量的运行数据中,当下次在对特定应用进行安全监控的过程中,就通过训练好的数据分析模型算出对应的诊断结果,给出智能的指导意见。可以很好的守护生产安全,且在人力和成本上大大降低投入。
在优选的实施方式中,所述方法进一步包括:
S400:通过预设至少一种诊断误报判断模型对所述诊断结果进行误报判断,得到所述诊断结果是否为误报的判断结果。
具体的,在该优选的实施方式中,通过形成误报判断模型对诊断结果进行修正,利用该模型对该诊断结果进行二次诊断,实现安全问题“零误报”以及发现可能存在的深层次潜在安全问题,实现研发过程的全流程安全保障,有效提升安全研发效能。比如诊断结果中核心攻击payload param参数为空,那么默认该次诊断为误报;诊断结果中攻击payloadparam注入在url请求header中,默认为误报;诊断结果为存在sql注入漏洞,经过判断发现攻击的一对payload为一对为相反布尔值的判断,但请求返回为两种不同的报错,都是与攻击矢量无关的报错,则该诊断为误诊断。通过诊断误报判断模型二次诊断为误报判断的诊断结果,不再向测试人员反馈,从而实现诊断结果的自动化检查,提高安全监测结果的准确性。优选的,在一个或多个实施例中,误报判断模型可选择表1所列模型中的至少一个。
表1
在优选的实施方式中,如图5所示,所述方法还包括S500:
S510:根据所述诊断结果确定所述应用程序是否为安全。
S520:若否,根据所述诊断结果确定漏洞类型,根据所述漏洞类型在预设的漏洞解决方案集中匹配对应的漏洞解决方案。
S530:根据所述漏洞解决方案对所述应用程序进行漏洞修正。
具体的,可以理解的是,若诊断结果为存在安全漏洞时,可对诊断结果进行进一步的分析,确定安全漏洞的类型。对于一些常见的漏洞类型,可预先形成漏洞解决方案,形成漏洞解决方案集。当分析诊断结果得到WEB应用程序存在的安全漏洞类型后,可从漏洞解决方案集中匹配对应的漏洞解决方案对所述应用程序进行漏洞修正,表2示出了一个漏洞解决方案的具体内容。
表2
下面通过一个具体例子来对本发明作进一步的说明。如图6所示,在该具体例子中,WEB应用程序的自动化安全监测方法可包括以下步骤:
步骤S1001:应用程序登陆信息等相关信息配置,启动浏览器访问。
步骤S1002:开始进行攻击测试任务配置,涵盖应用的认证信息,主页地址等。
步骤S1003:形成待监控应用清单。
步骤S1004:开始执行任务,主要包括浏览器自动登录技术自动登录,web爬虫技术链接爬取,字节码技术流量补充以及核心监控引擎构造payload进行攻击。
步骤S1005:使用持续集成进行自动化调度,采集数据并将采集得到的运行数据持久化至数据库中。
步骤S1006:开始执行模型优化任务,将误报判断后的诊断结果展示给测试人员。
在优选的实施方式中,可使用jenkins持续集成模型进行定时的安全诊断,并加入邮件推送模块,将诊断结果推送到测试人员/开发人员邮箱,极大降低安全测试门槛。
本发明通过浏览器自动化技术手段获取自动进行会话认证,使用安全诊断引擎流量爬取模块请求流量爬取,并采用字节码技术进行流量补充,解决自动爬取数据不够全面的痛点,然后采用主动扫描引擎和被动扫描引擎对应用进行智能攻击,并采用自建的诊断结果修正模型进行结果修正,有效降低误报率。在无需开发测试人员手动进行的情况下,获取系统的安全指标情况和以及更为细粒度的漏洞描述,具体的漏洞详细信息和漏洞整改方案,获取的数据可以进行整体数据分析和数据挖掘,不需要再通过人工去进行安全漏洞测试的检验和分析。通过程序可以智能的检测安全问题,相比目前常用的安全自动化测试的各种常规方案,不仅能获取到更多维度的安全测试数据,而且具备智能分析无需人工作业,去人力且高效的优势。
基于相同原理,本实施例还公开了一种WEB应用程序的自动化安全监测系统。如图7所示,本实施例中,所述系统包括自动登陆模块11、数据采集模块12和安全诊断模块13。
其中,自动登陆模块11用于根据预设应用程序登陆信息通过浏览器登陆界面链接至应用程序服务器。
数据采集模块12用于通过预设攻击检测信息对所述应用程序服务器进行攻击测试,并获取攻击测试时浏览器和应用程序服务器的运行数据。
安全诊断模块13用于根据所述运行数据对所述应用程序服务器进行安全诊断得到诊断结果。
在优选的实施方式中,如图8所示,所述系统进一步包括误报判断模块14。误报判断模块14用于通过预设至少一种诊断误报判断模型对所述诊断结果进行误报判断,得到所述诊断结果是否为误报的判断结果。
在优选的实施方式中,如图9所示,所述系统进一步包括优化修正模块15。优化修正模块15用于根据所述诊断结果确定所述应用程序是否为安全,若否,根据所述诊断结果确定漏洞类型,根据所述漏洞类型在预设的漏洞解决方案集中匹配对应的漏洞解决方案,根据所述漏洞解决方案对所述应用程序进行漏洞修正。
在优选的实施方式中,所述自动登陆模块11具体用于根据预设应用程序登陆信息得到应用程序信息及对应的用户登陆验证信息、登陆控件信息和应用程序登陆界面信息,根据所述应用程序登陆界面信息访问应用程序登陆界面,根据登陆控件信息将用户登陆验证信息输入登陆控件以将所述用户登陆验证信息传输至应用服务器进行登陆验证,若登陆验证成功,应用程序服务器与浏览器建立连接。
在优选的实施方式中,所述数据采集模块12具体用于当攻击测试时,通过数据爬虫技术爬取应用程序的前台链接和动态ajax页面得到基础运行数据,通过预设在应用程序服务器中的代理程序获取应用程序服务器的流量传输数据得到流量补充数据,根据所述基础运行数据和所述流量补充数据得到所述运行数据。
在优选的实施方式中,所述安全诊断模块13具体用于对所述运行数据序列化,采用TCP网络通讯方式,对序列化后的运行数据进行反序列化,通过预设至少一个数据分析模型对反序列化后的数据进行检测得到诊断结果。
由于该系统解决问题的原理与以上方法类似,因此本系统的实施可以参见方法的实施,在此不再赘述。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机设备,具体的,计算机设备例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
在一个典型的实例中计算机设备具体包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上所述的由客户端执行的方法,或者,所述处理器执行所述程序时实现如上所述的由服务器执行的方法。
下面参考图10,其示出了适于用来实现本申请实施例的计算机设备600的结构示意图。
如图10所示,计算机设备600包括中央处理单元(CPU)601,其可以根据存储在只读存储器(ROM)602中的程序或者从存储部分608加载到随机访问存储器(RAM))603中的程序而执行各种适当的工作和处理。在RAM603中,还存储有系统600操作所需的各种程序和数据。CPU601、ROM602、以及RAM603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总线604。
以下部件连接至I/O接口605:包括键盘、鼠标等的输入部分606;包括诸如阴极射线管(CRT)、液晶反馈器(LCD)等以及扬声器等的输出部分607;包括硬盘等的存储部分608;以及包括诸如LAN卡,调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根据需要被安装如存储部分608。
特别地,根据本发明的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明的实施例包括一种计算机程序产品,其包括有形地包含在机器可读介质上的计算机程序,所述计算机程序包括用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质611被安装。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种WEB应用程序的自动化安全监测方法,其特征在于,包括:
根据预设应用程序登陆信息通过浏览器登陆界面链接至应用程序服务器;
通过预设攻击检测信息对所述应用程序服务器进行攻击测试,并获取攻击测试时浏览器和应用程序服务器的运行数据;
根据所述运行数据对所述应用程序服务器进行安全诊断得到诊断结果;
所述获取攻击测试时浏览器的运行数据具体包括:
当攻击测试时,通过数据爬虫技术爬取应用程序的前台链接和动态ajax页面得到基础运行数据;
通过预设在应用程序服务器中的代理程序获取应用程序服务器的流量传输数据得到流量补充数据;
根据所述基础运行数据和所述流量补充数据得到所述运行数据;
所述根据所述运行数据对所述应用程序服务器进行安全诊断得到诊断结果具体包括:
对所述运行数据序列化;
采用TCP网络通讯方式,对序列化后的运行数据进行反序列化;
通过预设至少一个数据分析模型对反序列化后的数据进行检测得到诊断结果。
2.根据权利要求1所述的WEB应用程序的自动化安全监测方法,其特征在于,进一步包括:
通过预设至少一种诊断误报判断模型对所述诊断结果进行误报判断,得到所述诊断结果是否为误报的判断结果。
3.根据权利要求1所述的WEB应用程序的自动化安全监测方法,其特征在于,进一步包括:
根据所述诊断结果确定所述应用程序是否为安全;
若否,根据所述诊断结果确定漏洞类型,根据所述漏洞类型在预设的漏洞解决方案集中匹配对应的漏洞解决方案;
根据所述漏洞解决方案对所述应用程序进行漏洞修正。
4.根据权利要求1所述的WEB应用程序的自动化安全监测方法,其特征在于,所述根据预设应用程序登陆信息通过浏览器登陆界面链接至应用程序服务器具体包括:
根据预设应用程序登陆信息得到应用程序信息及对应的用户登陆验证信息、登陆控件信息和应用程序登陆界面信息;
根据所述应用程序登陆界面信息访问应用程序登陆界面;
根据登陆控件信息将用户登陆验证信息输入登陆控件以将所述用户登陆验证信息传输至应用服务器进行登陆验证,若登陆验证成功,应用程序服务器与浏览器建立连接。
5.一种WEB应用程序的自动化安全监测系统,其特征在于,包括:
自动登陆模块,用于根据预设应用程序登陆信息通过浏览器登陆界面链接至应用程序服务器;
数据采集模块,用于通过预设攻击检测信息对所述应用程序服务器进行攻击测试,并获取攻击测试时浏览器和应用程序服务器的运行数据;
安全诊断模块,用于根据所述运行数据对所述应用程序服务器进行安全诊断得到诊断结果;
所述数据采集模块具体用于当攻击测试时,通过数据爬虫技术爬取应用程序的前台链接和动态ajax页面得到基础运行数据,通过预设在应用程序服务器中的代理程序获取应用程序服务器的流量传输数据得到流量补充数据,根据所述基础运行数据和所述流量补充数据得到所述运行数据;
所述安全诊断模块具体用于对所述运行数据序列化,采用TCP网络通讯方式,对序列化后的运行数据进行反序列化,通过预设至少一个数据分析模型对反序列化后的数据进行检测得到诊断结果。
6.根据权利要求5所述的WEB应用程序的自动化安全监测系统,其特征在于,进一步包括误报判断模块,用于通过预设至少一种诊断误报判断模型对所述诊断结果进行误报判断,得到所述诊断结果是否为误报的判断结果。
7.根据权利要求5所述的WEB应用程序的自动化安全监测系统,其特征在于,进一步包括优化修正模块,用于根据所述诊断结果确定所述应用程序是否为安全,若否,根据所述诊断结果确定漏洞类型,根据所述漏洞类型在预设的漏洞解决方案集中匹配对应的漏洞解决方案,根据所述漏洞解决方案对所述应用程序进行漏洞修正。
8.根据权利要求5所述的WEB应用程序的自动化安全监测系统,其特征在于,所述自动登陆模块具体用于根据预设应用程序登陆信息得到应用程序信息及对应的用户登陆验证信息、登陆控件信息和应用程序登陆界面信息,根据所述应用程序登陆界面信息访问应用程序登陆界面,根据登陆控件信息将用户登陆验证信息输入登陆控件以将所述用户登陆验证信息传输至应用服务器进行登陆验证,若登陆验证成功,应用程序服务器与浏览器建立连接。
9.一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,
所述处理器执行所述程序时实现如权利要求1-4任一项所述方法。
10.一种计算机可读介质,其上存储有计算机程序,其特征在于,
该程序被处理器执行时实现如权利要求1-4任一项所述方法。
CN202010824178.3A 2020-08-17 2020-08-17 Web应用程序的自动化安全监测方法及系统 Active CN111949992B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010824178.3A CN111949992B (zh) 2020-08-17 2020-08-17 Web应用程序的自动化安全监测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010824178.3A CN111949992B (zh) 2020-08-17 2020-08-17 Web应用程序的自动化安全监测方法及系统

Publications (2)

Publication Number Publication Date
CN111949992A CN111949992A (zh) 2020-11-17
CN111949992B true CN111949992B (zh) 2023-09-29

Family

ID=73343084

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010824178.3A Active CN111949992B (zh) 2020-08-17 2020-08-17 Web应用程序的自动化安全监测方法及系统

Country Status (1)

Country Link
CN (1) CN111949992B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112333206B (zh) * 2020-12-24 2021-03-30 长沙树根互联技术有限公司 安全测试方法、装置及电子设备
CN112631577B (zh) * 2021-03-10 2021-05-28 北京瑞莱智慧科技有限公司 一种模型的调度方法、模型调度器以及模型安全测试平台

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063309A (zh) * 2013-03-22 2014-09-24 南京理工大学常熟研究院有限公司 基于模拟攻击的Web应用程序漏洞检测方法
CN104468459A (zh) * 2013-09-12 2015-03-25 深圳市腾讯计算机系统有限公司 一种漏洞检测方法及装置
CN105791261A (zh) * 2015-12-28 2016-07-20 华为技术有限公司 一种跨站脚本攻击的检测方法和检测设备
CN106022135A (zh) * 2016-02-23 2016-10-12 北京工业大学 一种可动态判断xss漏洞的自动化检测系统
WO2018043832A1 (ko) * 2016-09-05 2018-03-08 이형근 보안 웹브라우저 동작 방법
CN109033838A (zh) * 2018-07-27 2018-12-18 平安科技(深圳)有限公司 网站安全检测方法和装置
CN109165507A (zh) * 2018-07-09 2019-01-08 深圳开源互联网安全技术有限公司 跨站脚本攻击漏洞检测方法、装置及终端设备
CN109600371A (zh) * 2018-12-08 2019-04-09 公安部第三研究所 一种网络层漏洞检测系统及方法
CN109831465A (zh) * 2019-04-12 2019-05-31 重庆天蓬网络有限公司 一种基于大数据日志分析的网站入侵检测方法
CN110309073A (zh) * 2019-06-28 2019-10-08 上海交通大学 移动应用程序用户界面错误自动化检测方法、系统及终端

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104063309A (zh) * 2013-03-22 2014-09-24 南京理工大学常熟研究院有限公司 基于模拟攻击的Web应用程序漏洞检测方法
CN104468459A (zh) * 2013-09-12 2015-03-25 深圳市腾讯计算机系统有限公司 一种漏洞检测方法及装置
CN105791261A (zh) * 2015-12-28 2016-07-20 华为技术有限公司 一种跨站脚本攻击的检测方法和检测设备
CN106022135A (zh) * 2016-02-23 2016-10-12 北京工业大学 一种可动态判断xss漏洞的自动化检测系统
WO2018043832A1 (ko) * 2016-09-05 2018-03-08 이형근 보안 웹브라우저 동작 방법
CN109165507A (zh) * 2018-07-09 2019-01-08 深圳开源互联网安全技术有限公司 跨站脚本攻击漏洞检测方法、装置及终端设备
CN109033838A (zh) * 2018-07-27 2018-12-18 平安科技(深圳)有限公司 网站安全检测方法和装置
CN109600371A (zh) * 2018-12-08 2019-04-09 公安部第三研究所 一种网络层漏洞检测系统及方法
CN109831465A (zh) * 2019-04-12 2019-05-31 重庆天蓬网络有限公司 一种基于大数据日志分析的网站入侵检测方法
CN110309073A (zh) * 2019-06-28 2019-10-08 上海交通大学 移动应用程序用户界面错误自动化检测方法、系统及终端

Also Published As

Publication number Publication date
CN111949992A (zh) 2020-11-17

Similar Documents

Publication Publication Date Title
CN109886290B (zh) 用户请求的检测方法、装置、计算机设备及存储介质
CN105426760A (zh) 一种安卓恶意应用的检测方法及装置
CN109660502A (zh) 异常行为的检测方法、装置、设备及存储介质
CN112560045A (zh) 应用程序漏洞检测方法、装置、计算机设备和存储介质
CN111949992B (zh) Web应用程序的自动化安全监测方法及系统
CN103593609A (zh) 一种可信行为识别的方法和装置
CN113342639B (zh) 小程序安全风险评估方法和电子设备
KR101902747B1 (ko) 클라이언트 측 웹 취약점 분석 방법 및 장치
CN108667770A (zh) 一种网站的漏洞测试方法、服务器及系统
CN114036059A (zh) 面向电网系统的自动化渗透测试系统、方法和计算机设备
CN112764758A (zh) 代码坏味道检测方法和装置
US11765199B2 (en) Computer-based system for analyzing and quantifying cyber threat patterns and methods of use thereof
CN116980162A (zh) 云审计的数据检测方法、装置、设备、介质及程序产品
CN113535577A (zh) 基于知识图谱的应用测试方法、装置、电子设备和介质
US20220046039A1 (en) Method, device, and computer program product for abnormality detection
CN115221033A (zh) 接口协议测试方法、装置、计算机可读介质及电子设备
CN112671724A (zh) 一种终端安全检测分析方法、装置、设备及可读存储介质
CN116303069A (zh) 一种车载终端的测试方法、装置、上位机、系统及介质
CN113569255A (zh) 基于后台rpc接口的漏洞检测方法及装置
CN113364766B (zh) 一种apt攻击的检测方法及装置
CN114238140A (zh) 一种准入测试方法及装置
CN114513329A (zh) 一种工业互联网信息安全评估方法及装置
CN114546857A (zh) 接口测试用例生成方法及装置、电子设备、存储介质
CN103220179A (zh) 基于统计模型检验的不稳定网络鲁棒性评测方法
CN113542238A (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