实战 | 自动化日志分析工具的研究及应用

VSole2022-10-09 14:29:50

测试用例作为软件测试过程中最重要的资产之一,对于保证软件质量起到了至关重要的作用。随着自动化测试技术的不断发展,测试用例的数量也日益增多,并广泛应用于项目测试中。实际的测试工作中,执行失败用例的人工分析往往耗时耗力。目前,业界主流日志分析工具主要用于系统性能分析,缺少错误信息的分析及总结。然而当前普遍存在的问题是,随着执行测试用例数量的增长,对报错测试用例的分析成本变得更高,导致缺陷修复效率低。

本文提出了一种自动化日志分析模式,通过配置日志存放的服务器路径,获取日志文件,自动化检测日志文件中的错误关键字,对执行失败的案例进行分类并进行分析,帮助测试人员快速定位错误根源,提高缺陷修复效率。

自动化日志分析机制

“自动化日志分析”快速定位模式由日志文件获取模块、日志文本解析模块及关键词抓取模块、报错信息分类模块、日志报错信息特征库组成。自动化日志分析模型如图1所示。

图1    自动化日志分析模型

1.日志文件获取模块。一个项目的程序及批量脚本执行日志通常具有存放路径集中、日志名称格式统一等特点,通过配置测试环境服务器的地址和执行日志存放路径,当程序或脚本执行之后,在指定服务器的指定路径下获取日志文件,取至本地,传入工具中。

图2    日志文件上传与文件路径图

2.日志文本解析及关键词抓取模块。执行结果日志通常大且复杂,必须通过解析才能获取有用信息。该模块根据日志文本的编码格式,提取出文本内容,将文本中的信息抽取成一条一条的日志报错信息串,然后根据设定的特征值标签,抓取文本关键词作为特征词条,并按照组成特征向量各个维度,将每一条信息串表示成向量形式。

3.报错信息分类模块。对待分类的报错信息特征向量进行计算和分析,将其与日志报错信息特征库中已明确分类的错误信息特征向量的相似度一一计算出来,根据计算结果将特征向量分到相应类别中。根据各维度特征值,输出分析结果文档:报错位置、错误类别、错误详情等信息。

图3    日志输出结果展示

4.日志报错信息特征库。日志报错信息特征库存放已明确分类,具有代表性的错误信息特征向量,作为样本提供比较和分类的依据。日志报错信息主要包括数据库报错、程序异常、通讯问题、环境问题等,将各类报错样本的共同特征:函数名、错误码、错误信息、堆栈跟踪信息等提炼出来,作为组成特征向量的各维度分量,将各条样本表示成特征向量的形式,存放在日志报错信息特征库中。

自动化日志分析应用

在开展自动化测试时,测试用例数量庞大,即使失败率很低,失败用例的绝对数量也经常达到几十或几百个;批量交易测试时,一个项目的批量脚本量通常为几十到几百个,并且执行结果依赖开发人员判断及分析,测试人员难以主动把握测试结果。如果用传统的人工分析手段,就需要研发工程师投入大量时间和精力,效率低。本文提出的自动化日志分析机制可有效解决以上问题,且可广泛应用于以下三种情况。

1.回归测试。每一个系统的日志文件错误类型有其特点,特征信息库相对变化较少,当适应其他功能改造,本身产品功能没有改动时,执行大量的自动化案例进行回归测试,借助自动化日志分析工具,可清晰抓取出错误信息,提升回归测试效率。

2.批量交易测试。一个大型项目中,批量脚本通常达到几十到几百,一个作业链中可能有多个节点,调用多个程序或脚本。执行结果失败经常无法确定错误发生在哪个环节,借助自动化日志分析,减少开发和测试的沟通成本,加速问题定位。

3.对比测试。当架构调整、系统迁移、基础软硬件升级时,需要迁移前后的交易对比测试,迁移项目通常涉及开发人员多、交易繁杂,新旧系统基础语言及数据库差异大,引入自动化日志分析,可减少测试工作量,节约时间,保障大型迁移项目的顺利推进。

总结与展望

日志文件作为排查和定位程序及脚本问题的主要工具,涵盖了大量的有用信息。直接对日志进行分析存在缺陷无法直观分类展示,缺陷定位和追踪难度大等问题。相比于传统的人工分析模式,在自动化日志分析框架下,通过采用内部算法,根据设定的特征值,检测该路径下相关日志文件中的错误关键字,对失败的案例进行分类,可以输出分析结果文档,进而降低开发和测试的沟通成本,提升缺陷修复效率、彰显测试价值。

特征向量
本作品采用《CC 协议》,转载必须注明作者和本文链接
开发人员在编写代码的过程中,通常会希望知道某个API的具体使用方法(也就是使用示例)。过去的研究主要是通过聚类和总结的方法从代码库中提取相关的代码片段来生成示例代码,也就是说:将源代码转换成方法调用序列或特征向量;这种方法只对源代码的部分进行建模,因此容易产生不准确的示例。
在野流量中经常会看到一批 IP 地址使用相同的 User-Agent 或者将 Payload 部署到相同的 Web 路径,尽管存在部分差异,但仍然非常相似。相似度实现首先要将 GreyNoise 中记录的数据转换为特征向量,但数据中包含大量非结构化与半结构化文本数据。为了转换为固定大小的数字特征向量,需要使用 Token 化与特征哈希两种技术进行处理。将文本进行哈希计算import hashlibbucket_size = 16
测试结果表明,勒索病毒检测器检测准确率达到了 97%,勒索病毒家族分类器分类准确率达到了 94%。随着网络犯罪的组织化、规模化,隐匿行为攻击的复杂化和商业化,目前,隐匿高危勒索病毒呈蔓延之势。为了保证计算机网络和计算机应用系统的正常运行,电力企业需要对隐匿高危勒索病毒的攻击作出应对。对抗隐匿高危勒索病毒攻击,保护用户数据的关键措施在于预防,即在勒索软件攻入受害者主机但尚未造成实质性破坏前及时检测并拦截攻击。
以准确、高效地检测工控设备异常为目的,研究基于数据挖掘与关联分析的工控设备异常运行状态自动化检测方法。以采集的某电厂 DCS 网络全流量数据形成的工控设备运行状态日志序列为输入,通过预处理、特征提取等方式获取待监测的工控设备运行状态数据的特征向量,通过凝聚型层次聚类算法聚类特征向量初步区分工控设备正常、异常运行状态数据,再利用基于矩阵的 Apriori 算法,挖掘工控设备正常运行状态构建正常行为模
近日,由聚铭网络申报的**《一种基于变长记录的安全日志压缩存储和检索方法》与《一种基于神经网络的网络恶意行为识别方法》**两项发明专利通过国家知识产权局授权,正式获得国家发明专利证书!未来,聚铭网络将继续深耕网络安全领域,加大产品研发力度,充分利用人才、设备等资源优势,积极探索前沿技术,不断加强科研创新,提升企业核心竞争力,为广大政企客户提供更优质的产品和服务。
机器学习模型对这种变化称为概念漂移,使用旧数据训练的模型在处理前所未见的新样本时挑战极大。为了构建有效且稳健的分类器,必须能够检测同一恶意软件家族中漂移的 IoT 变种,并解释漂移的成因。通过 VirusTotal 的分析报告,使用 AVClass 对其进行处理聚合家族归属。一共确定了 44 个 Mirai 的变种与 11 个 Gafgyt 的变种。相比 Gafgyt 来说,Mirai 的连接更为紧密。
反人脸识别技术概述
2023-06-16 09:27:10
虽然这两个系统使用了类似的技术来分析面部图像,但面部验证系统需要用户明确同意才能部署,而许多人脸识别系统在未经用户同意的情况下运行。通过使用反识别工具,用户 P 可以采取针对性的防御措施,以保护其隐私并防止被商业人脸识别系统识别出来。
相似度检查相似度检查会使用余弦相似度来计算程序提取的所有向量与数据库中的所有签名向量之间的相似性,得出相似性排名。表1 Tracer检测到的新漏洞列表表 2 各个工具对比表2前三行显示,大多数真正例在报告中排名很高。实验结果表明,该方法能够有效地检测出语义上重复出现的漏洞。VUDDYS报告了10个假警报,CCAligner报告了150个函数克隆,但没有检测到任何漏洞。VUDDY和CCAligner都无法检测到大多数由Tracer检测到的重复漏洞。
https://capev2.readthedocs.io/en/latest/安全厂商沙箱二.基于逻辑回归的恶意家族检测前面的系列文章详细介绍如何提取恶意软件的静态和动态特征,包括API序列。接下来将构建机器学习模型学习API序列实现分类。基本流程如下:1.数据集整个数据集包括5类恶意家族的样本,每个样本经过先前的CAPE工具成功提取的动态API序列。
VSole
网络安全专家