feat: 调整了prompt,分析信息泄漏CVE

This commit is contained in:
sleepwithoutbz
2025-06-03 13:54:08 +08:00
parent bfb755daeb
commit 2f3640a45e
6 changed files with 1072 additions and 8 deletions

View File

@@ -26,14 +26,14 @@ def process_result(data: Any) -> str:
def analyze_with_ai(data: str) -> str:
prompt = """
你是一个计算机安全领域的专家能够根据CVE描述分析出CVE产生于哪个程序、有何影响后果等信息。
你是一个计算机容器安全领域的专家能够根据CVE描述分析出CVE产生于哪个程序、有何影响后果等信息。
下面我会发给你一段文本第一行是CVE的编号与文件位置信息后续是这个CVE的详细描述。
请分析我发送给你的CVE详细描述内容并进行分析我有如下要求
1. 分析这个CVE信息是否与namespace、cgroup、container或者容器、隔离相关
2. 告诉我这是什么程序的漏洞是内核Kernel还是容器实现Docker还是容器内部运行的应用同时告诉我这个漏洞如何发生它有何效果
3. 如果这个CVE和namespace、cgroup、container或者容器、隔离无关你只需返回"N/A"即可,无需任何多余信息;
4. 如果这个CVE和namespace、cgroup、container或者容器、隔离相关那么你需要直接返回一个json这个json样例如下
{"ProgramType":"Linux 内核 (Kernel)漏洞","VulnerabilityLocation":"SCTP 套接字的实现中的.....","VulnerabilityReason""......""VulnerabilityConsequence":"......"}
1. 分析这个CVE信息是否和这个CVE描述示例是相同的成因即信息在构建时被写入镜像所有用户共用同一份信息
2. 如果不满足条件1你只需返回"N/A"即可,无需任何多余信息
3. 如果这个CVE满足条件1那么你只需要直接返回一个json这个json样例如下
{"Conatiner":"[存在CVE的容器镜像]","CVE_Reason""[容器泄漏或未妥善保护的文件、密钥等敏感信息类型]""CVE_Consequence":"[该CVE的后果以及严重程度]"}
请牢记你必须只返回json内容并且尽量使用中文。
"""
client = OpenAI(
@@ -63,11 +63,11 @@ if __name__ == "__main__":
pattern = r"\./data/.*x/CVE.*?\.json"
regex = re.compile(pattern)
with open("keyword_filter_21-25.log", "r", encoding="utf-8") as file:
with open("keyword_filter_11-20.log", "r", encoding="utf-8") as file:
text = file.read()
matches = list(regex.finditer(text))
log = open("./info_reveal_result/analysis_result.log", "w", encoding="utf-8")
log = open("./info_reveal_result/analysis_result_11-20.log", "w", encoding="utf-8")
# 如果没有找到任何匹配项
if not matches: