MSR_20_Code_vulnerability_CSV_Dataset 教程
1. 项目目录结构及介绍
该项目是一个C/C++代码漏洞数据集,包含了代码变更和CVE(Common Vulnerabilities and Exposures)摘要。目录结构如下:
.
├── notebooks # 包含IPython笔记本,用于数据分析
│ └── all_cpp_c_project_with_chrome_android.ipynb # 示例脚本
├── other_data # 其他相关数据
└── scripts # 脚本文件
├── get_commit_info.py # 获取提交信息
└── scrape_all_the_cve.py # 抓取CVE条目
notebooks
目录提供了数据分析的工作流示例,scripts
包含了处理CVE和获取Git提交信息的脚本。
2. 项目启动文件介绍
scrape_all_the_cve.py
这是主要的脚本,用于从CVE Details网站抓取所有CVE条目的信息。要运行该脚本,确保已安装Python3、BeautifulSoup和Pandas库。在终端中执行以下命令:
python3 scripts/scrape_all_the_cve.py
get_commit_info.py
这个脚本用于根据CVE条目的提交信息,从GitHub或其他版本控制系统中获取相关的源代码更改和补丁文件。你需要提供正确的Git仓库URL并适配你的环境。在终端中运行:
python3 scripts/get_commit_info.py
3. 项目配置文件介绍
虽然项目本身没有特定的配置文件,但是你可以创建自定义的配置文件来存储如GitHub API访问令牌或抓取过程中的其他参数。例如,可以创建一个名为config.ini
的文件,包含如下内容:
[git]
user = <your_github_username>
token = <your_github_access_token>
[cve]
start_year = 2002
end_year = 2019
然后,在scrape_all_the_cve.py
和get_commit_info.py
中引入这些设置以自定义抓取行为。记得在导入配置之前,确保相应的Python库(如configparser
)已经安装。
请注意,由于GitHub的API速率限制,你可能需要一个个人访问令牌(token
)来增加请求频率。生成访问令牌并将其添加到配置文件中,以避免抓取过程中遇到限制。
使用这些脚本和数据集时,建议了解CSV文件的结构,并使用Pandas等工具进行分析。另外,查阅项目README中的详细说明,以确保正确地处理数据并遵循适当的版权和许可证要求。