1.一种针对HTTP协议模板化提取资产信息的方法,其特征在于,三大部分流程,分别为模板的编写、模板的解析、报文的匹配;
所述模板的解析部分包括以下步骤:
步骤2.1-加载模板并分析模板,通过对模板内容加载到内存中,并将文件载体将结构分析成“协议标志块”、“DPI识别块”、“内容提取块”三个结构块,供后续步骤使用;
步骤2.2-构造DPI,依据“DPI识别块”提供的信息,将HOST和URI和METHOD构成正则表达式,大量的正则表达式构成DFA自动状态机;
步骤2.3-构造语法树,依据模板中的“内容提取块”提供的文本内容,分析文法,并将构建成一颗解析树;
步骤2.4-建立匹配库,待所有模板分析完成,将步骤2.2中构建的正则表达式作为“匹配正则表达式”、步骤2.3中构建的“语法树”作为数据内容进行一一对应,整合到“正则表达式”引擎中,形成匹配库;
所述报文的匹配部分包括以下步骤:
步骤3.1-匹配库DPI识别,系统将HTTP构造日志中的“HOST”、“URI”和“METHOD”信息提取,放入匹配库中进行匹配,将匹配结果取出并传递至语法树引擎进行下一步匹配;
步骤3.2-语法树匹配,将整个HTTP报文传入语法树,按照前序遍历进行解析,语法树中的OutputValue函数会将所需的“资产信息”输出到队列中,进行资产输出日志阶段;
步骤3.3-输出日志,将输出队列中获取到对应的key-value值,与对应的IP地址拼成json字符串格式,即为资产信息,与IP地址对应后,部分“虚拟资产”信息即可代表“实体资产”,将json字符串存入数据库,展现在页面上。
2.根据权利要求1所述的一种针对HTTP协议模板化提取资产信息的方法,其特征在于,所述模板的部分结构主要分为以下三块:协议标志块,包含依赖协议的名称,用于确定资产信息依赖的协议;
DPI识别块,包含可以识别出包含资产信息的特征内容,即HOST内容、URI内容、HTTP的METHOD,用于筛选资产信息是否包含在报文中;
内容提取块,存储着模板语法,用于解析提取资产信息。
3.根据权利要求1所述的一种针对HTTP协议模板化提取资产信息的方法,其特征在于,所述步骤2.3-构造语法树中涉及的文法结构依赖于tiny-c文法,其内置的函数包括以下类别:内置结构,采用MIME格式解析结构;
HTTP报文获取,其包含用于获取HTTP的URI文本串的GetUri()、依据key值获取HTTP头部的文本串的GetHeader(key)、用于获取HTTP身体报文文本串的GetRequestBody()等结构/函数;
内置常规算法,其包含URLEncode(string)、URLDecode(string)、Base64Encode(string)和Base64Declde(steing)、Base64Decode(string)、以及SpliteString(string,splite_words)、以MIME格式分析字符串的Mime AnalyseMime(string)、将资产信息输出到队列中的key值的OutputValue(key,string)等结构/函数。