解决方案:AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)

优采云 发布时间: 2022-10-16 05:17

  解决方案:AJAX异步从优酷专辑中采集所有视频及信息(JavaScript代码)

  个人不是很满意,因为VB.NET在.NET环境下执行采集,产生的网络连接和正则匹配消耗太大,我最后的申请是在视频采集提交,所以考虑使用JS的AJAX+正则表达式来完成这个目标。

  之前没有系统学习过JS和正则化,所以用的时间比预想的要长。折腾了一晚上,把下面的代码给骗了。=..=

  

  复制代码代码如下:

  思路和上次基本一样,就不赘述了。

  

  VB.NET中一个页面的采集时间一般在1秒左右,而这段代码依赖于客户端脚本,每个页面采集在0.3~0.5秒左右,具体取决于用户的电脑配置。.

  个人用IE7测试通过了,但是代码比较随意,所以兼容性不是很好。如需使用,请自行修改代码。

  解决方案:面向开源软件的自动化漏洞数据采集与处理技术研究

  漏洞数据分散在数百个资源中,数据碎片化、无格式,导致采集不便、处理复杂。然而,人工构建的漏洞数据集样本类型简单、特征单一,难以支撑真实软件漏洞检测的研究。因此,软件安全领域缺乏*敏*感*词*、真实、有效的漏洞数据集。针对这一问题,本文提出了一种开源软件漏洞数据自动化采集及处理系统,能够自动实现来自多源平台的采集补丁文件,进行冗余处理和一致性处理。得到一个缩减的数据集,进一步生成大量的漏洞样本。与现有研究相比,本文构建的系统可以采集更多源平台的漏洞数据,漏洞数据更丰富,样本质量更高。通过深度学习漏洞检测实验证明,本文在数据集上训练的模型在实际软件漏洞检测中更为有效。

  该成果已在实验室github组织下开源,相关内容请访问。

  背景和动机

  在软件安全领域,漏洞检测技术是一个具有挑战性的问题。为了减少人工参与,提高漏洞的检测规模和检测速度,基于深度学习的漏洞检测模型应运而生。然而,漏洞检测领域缺乏*敏*感*词*的、真实的漏洞数据集。一方面,目前公开的人工构建的数据集,如SARD数据集,只能作为学术研究的对象,对真实漏洞的研究辅助相对有限。漏洞检测不是很有效。另一方面,漏洞数据分散在数百个资源上,没有统一的访问渠道,而且这些数据是碎片化的、无格式的,这给数据采集和处理带来了挑战。此外,不同来源的漏洞数据质量参差不齐,其中一些是安全缺陷,不一定是漏洞补丁。传统的采集方法依赖安全专家通过人工分析进行过滤,耗时耗力、效率低、成本高。为了解决这些问题,本文构建了漏洞数据自动化采集处理系统,旨在总结漏洞数据的分布规律和内容特征,突破漏洞数据准确提取等关键点。自动过滤漏洞补丁链接。技术,解决自动化问题采集和多源漏洞补丁采集 大数据环境下海量异构的漏洞信息,从而实现构建*敏*感*词*、高质量的漏洞数据集,为深度学习漏洞检测提供有效的训练数据,提高模型检测精度。设计与实现如图1所示。系统主要有三个模块: 1)Data采集模块,输入为美国国家漏洞数据库NVD和一般漏洞,输出为漏洞信息和补丁文件;2)数据处理模块,输入为多源采集的补丁文件,输出为处理后的简化补丁库;3)数据生成模块,输入为补丁库和上一步输出的开源项目的源代码,

  图 1 系统架构图

  在data采集模块中,我们对权威漏洞库NVD的数据进行解析提取,得到结构化的漏洞属性信息。进一步系统分析研究主流开源软件的漏洞参考链接,找出存在漏洞的平台链接,获取不同安全发布平台的漏洞补丁文件,从而获取漏洞样本,为深度学习漏洞检测提供数据支持研究。. 我们提出了一种基于多源补丁的数据自动化采集 模型,通过三种方法自动化采集补丁。首先是从补丁的安全漏洞公告平台获取补丁,软件厂商自己的漏洞公告平台,和代码管理仓库。在对数百个补丁发布平台进行系统分析总结后,总结出20多种补丁自动化。采集网站,如图2。二是通过“CVE”过滤GitHub的历史修改Commits " 关键词,查找CVE的修改记录,自动过滤历史修改。三是在bug追踪平台Bugzilla的NVD Reference中搜索与CVE匹配的bugid,得到对应的bug修复文件或补丁。

  

  图2 补丁源平台

  在数据处理模块中,我们系统地分析了多源补丁的结构和格式,总结了标准的补丁文件结构和内容信息,并对通过多种采集方法得到的补丁文件进行了合并和去冗余。相同软件版本冗余如图3,不同版本软件冗余如图4。我们提出了一套基于多种信息的补丁有效性评估机制,并结合提取的漏洞文件名,函数名和补丁源平台,判断补丁文件和漏洞的相关性。如果补丁是直接针对漏洞功能的补丁,则认为是最准确的类型1;如果补丁是针对漏洞文件的补丁,被认为是第二准类型2;如果补丁无法判断是打漏洞函数还是漏洞文件,则可以判断补丁是针对CVE的,则为type 3;现有信息不能直接判断,需要进一步人工处理的,暂按第4类处理。

  图 3 相同软件版本的补丁冗余

  图 4 不同软件版本的补丁冗余

  

  在数据生成模块中,我们将补丁文件与代码库进行匹配,以获取函数级别和文件级别的细粒度漏洞样本。由于源代码漏洞数据集均为线性文本形式,无法反映代码程序的控制依赖信息和层次结构信息,缺乏程序语义与漏洞特征的关系,难以获得准确的语法结构信息通过进一步分析。具有更多语义信息的中间语言形式的漏洞数据可以提供更全面、更直接的代码表示,提高漏洞检测模型的检测能力和准确性。本模块搭建各版本主流软件的编译环境,查找编译漏洞文件所需的头文件、库文件等依赖项,并使用编译器以中间语言的形式生成漏洞样本。目前已经对19个开源软件进行了数据采集和处理,得到了有效的细粒度漏洞样本库。补丁库涵盖 4643 个 CVE,收录 8685 个补丁文件。漏洞样本库有6847个漏洞文件样本、6573个无漏洞文件样本、10412个漏洞函数/非漏洞函数程序样本。统计结果见表1。并使用编译器以中间语言的形式生成漏洞样本。目前已经对19个开源软件进行了数据采集和处理,得到了有效的细粒度漏洞样本库。补丁库涵盖 4643 个 CVE,收录 8685 个补丁文件。漏洞样本库有6847个漏洞文件样本、6573个无漏洞文件样本、10412个漏洞函数/非漏洞函数程序样本。统计结果见表1。并使用编译器以中间语言的形式生成漏洞样本。目前已经对19个开源软件进行了数据采集和处理,得到了有效的细粒度漏洞样本库。补丁库涵盖 4643 个 CVE,收录 8685 个补丁文件。漏洞样本库有6847个漏洞文件样本、6573个无漏洞文件样本、10412个漏洞函数/非漏洞函数程序样本。统计结果见表1。847个漏洞文件样本,6573个无漏洞文件样本,10412个漏洞函数/非漏洞函数程序样本。统计结果见表1。847个漏洞文件样本,6573个无漏洞文件样本,10412个漏洞函数/非漏洞函数程序样本。统计结果见表1。

  表 1 数据集统计

  采用基于深度学习的漏洞检测框架 SySeVR() 训练最有效的模型 BGRU。实验一是原创数据集在真实漏洞数据NVD上的检测结果。原创数据集有14000个SARD程序和1591个NVD程序,包括13906个SADR易受攻击程序(包括易受攻击的函数和修补函数),94个非易受攻击程序,874个NVD易受攻击程序,717个无bug程序。实验2使用一个新的数据集,使用原创数据集中来自SARD的数据集,将部分NVD数据集替换为本文构建的6847个易受攻击程序和6573个非易受攻击程序,并在真实数据集上进行测试软件漏洞数据集 NVD。测试结果如表2所示。

  表2 漏洞检测实验结果对比

  可以看出,用系统构建的数据集训练的模型在真实数据集的漏洞检测方面表现更好。这体现在假阴性率和假阳性率的降低,以及准确率、准确率和召回率的提高上。这是因为在模型训练中加入了大量真实的软件漏洞数据,提供了丰富的漏洞样本,使得模型可以用于漏洞特征进行更全面的学习。

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线