DataCon2024解题报告WriteUp—漏洞分析赛道
DataCon2024解题报告WriteUp—漏洞分析赛道
0817iotg战队 DataCon大数据安全分析竞赛 2025-01-18 03:30
2024年11月28日,DataCon2024大数据安全分析竞赛落下帷幕。比赛共吸引706支战队、1556人报名参与。在历经多日的激烈角逐后,最终诞生了五大赛道的冠军、亚军和季军。来自武汉大学的“0817iotg”战队荣获漏洞分析赛道冠军,本期为大家分享“0817iotg”战队的解题报告。
[篇幅较长,建议点赞收藏]
一、大模型应用——情报提取
1.1 题目背景
在进行漏洞挖掘工作时,对特定目标的历史漏洞挖掘经验的学习是至关重要的一步。然而,传统的搜索引擎在面对海量数据时往往显得效率低下,难以快速有效地获取所需的关键信息。近年来,随着人工智能大模型技术的发展及其在自然语言处理方面的显著进步,利用大模型从海量漏洞分析文章中提取关键知识已经成为一种可行的方法。本挑战要求选手利用大模型技术,对漏洞分析文章进行高效梳理,从中提取出有价值的摘要信息,任务包括但不限于:文献整理、文本预处理、关键信息提取、摘要生成、结果验证等。
1.2 实验/项目环境
– 操作系统:
Ubuntu 22.04 / Windows 10
-
开发语言:
Python 3.10 -
第三方库:
langchain、BeautifulSoup4、paddle
1.3 技术实现的核心思路
– 使用BeautifulSoup4解析html文件,去除图片等无用信息。
-
运用提示工程方法生成精细化提示,拆分输出维度,使用两次大模型调用分别判定不同输出维度。
-
运用投票模型检查结果,减少大模型输出内容的不确定性,并且去除不合理结果。
-
扩展框架功能与识别范围,使其能够识别版本、修复建议;提取POC/EXP代码;以及支持图片内容识别。
1.4 技术实现的具体步骤
1.4.1 步骤1:环境配置
python或python虚拟环境运行
:
使用pip安装langchain、langchain_openai、BeautifulSoup4、paddle(仅被用于读取HTML中图片信息),配置test.py中的data_dir、answer_dir、key_env和base_env,然后使用python调用test.py运行
使用docker运行
:
使用下述代码导入镜像,挂载数据集目录与输出目录,提供API_key并运行镜像
1.4.2 步骤2:html文件信息提取
在提取html文件信息内容时,我们主要关注以下几点:(1)如何完整提取文本的具体内容与相关代码;(2)在提取的过程中尽可能筛除无关信息,来防止提示词超出token上限;(3)如果超出了8000词的token上限,该如何处理;(4)如何在不丢失完整文本语义的情况下,处理长文本内容。接下来是我们解决方案的详细介绍:
简单的文件信息提取:
通过BeautifulSoup库来进行html文件内容的解析
在解析之后,我们主要关注html中更具价值的
、
等标签的提取,而html文件中的无关内容,如