
VulTriage का कोड: LLM-आधारित भेद्यता पहचान के लिए ट्रिपल-पाथ संदर्भ संवर्धन

लार्ज लैंग्वेज मॉडल और स्टैटिक कोड विश्लेषण पर आधारित एक बुद्धिमान भेद्यता पहचान फ्रेमवर्क, जो मल्टी-डेटासेट मूल्यांकन और एब्लेशन अध्ययन का समर्थन करता है।

यह प्रोजेक्ट GPT-4o और BGE-M3 मॉडल पर आधारित एक बुद्धिमान भेद्यता पहचान फ्रेमवर्क है, जो निम्नलिखित को जोड़ता है:
pip install -r requirements.txt
मॉडल स्वचालित रूप से डाउनलोड हो जाएगा, या आप इसे मैन्युअल रूप से डाउनलोड कर सकते हैं:
git clone https://huggingface.co/BAAI/bge-m3
# Note: BGE-M3 related dependencies can be installed via FlagEmbedding. For details, refer to: pip install -U FlagEmbedding
सुनिश्चित करें कि cwec_latest.xml/cwec_v4.19.1.xml और 1435.csv/1435_filtered_columns.csv (CWE इंडेक्स डेटा) फ़ाइलें प्रोजेक्ट रूट डायरेक्टरी में मौजूद हैं।
नोट: यह प्रोजेक्ट CWE Top 25 सबसे खतरनाक सॉफ़्टवेयर कमज़ोरियों का उपयोग करता है। संबंधित फ़ाइलें प्रोजेक्ट रूट डायरेक्टरी में पहले से शामिल हैं।
निम्नलिखित फ़ाइलों को प्रोजेक्ट रूट डायरेक्टरी में रखें:
primevul_test_paired.jsonl (PrimeVul डेटासेट)LLM4Vul-main/LLM4Vul-main/data/kotlin_data.csv (Kotlin डेटासेट)main.py या hyperparam_exp.py में OpenAI API कॉन्फ़िगरेशन संशोधित करें:
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://api.poixe.com/v1"
)
नोट: वर्तमान URL
https://api.poixe.com/v1पार्स करने में विफल रहा। यह एक असमर्थित वेबपेज प्रकार या टूटा हुआ लिंक हो सकता है। कृपया लिंक की वैधता सत्यापित करें या किसी अन्य API प्रदाता पर स्विच करें।
python main.py --wotask all --jsonl_file primevul_test_paired.jsonl
# Without control flow information
python main.py --wotask wo_ctrl_info_pth --jsonl_file primevul_test_paired.jsonl
# Without RAG knowledge
python main.py --wotask wo_rag_pth --jsonl_file primevul_test_paired.jsonl
# Without code understanding
python main.py --wotask wo_exp_pth --jsonl_file primevul_test_paired.jsonl
# Without any auxiliary information
python main.py --wotask nan --jsonl_file primevul_test_paired.jsonl
# Pairwise evaluation mode
python hyperparam_exp.py --mode pairwise --input_file primevul_test_paired.jsonl --detail_level C --info_comb all --desc_level concise --max_vuln 2
# Single-sample evaluation mode
python hyperparam_exp.py --mode single --input_file LLM4Vul-main/LLM4Vul-main/data/kotlin_data.csv
डिटेक्शन परिणाम रियल-टाइम में metrics_log.txt में सहेजे जाते हैं और अंतिम मूल्यांकन सारांश टर्मिनल पर आउटपुट होते हैं:
| स्क्रिप्ट | उद्देश्य |
|---|---|
main.py | मुख्य भेद्यता पहचान स्क्रिप्ट जिसमें एब्लेशन अध्ययन समर्थन शामिल है |
hyperparam_exp.py | हाइपरपैरामीटर प्रयोग और मल्टी-मोड मूल्यांकन |
retrieval.py | CWE नॉलेज बेस रिट्रीवल मॉड्यूल (BGE-M3 मॉडल पर आधारित हाइब्रिड रिट्रीवल) |
metrics_tracker.py | रियल-टाइम मेट्रिक्स ट्रैकर जिसमें लॉग सेविंग और विज़ुअलाइज़ेशन समर्थन शामिल है |
| पैरामीटर | डिफ़ॉल्ट | विवरण |
|---|---|---|
--wotask | all | एब्लेशन मोड: all (पूर्ण कार्यक्षमता), wo_ctrl_info_pth (कोई स्टैटिक संरचना जानकारी नहीं), wo_rag_pth (कोई RAG ज्ञान नहीं), wo_exp_pth (कोई कोड समझ नहीं), nan (कोई सहायक जानकारी नहीं) |
--jsonl_file | primevul_test_paired.jsonl | JSONL डेटासेट पथ |
--metrics_file | metrics_log.txt | मेट्रिक्स आउटपुट फ़ाइल |
| पैरामीटर | डिफ़ॉल्ट | विवरण |
|---|---|---|
--mode | pairwise | मूल्यांकन मोड: pairwise या single |
--input_file | आवश्यक | इनपुट फ़ाइल पथ (JSONL या CSV प्रारूप) |
--detail_level | C | कोड विश्लेषण विवरण स्तर: C (पूर्ण), B (मानक), A (संक्षिप्त) |
--info_comb | all | सूचना संयोजन: all, no_ast, no_cfg, no_dfg |
--desc_level | concise | विवरण स्तर: concise (संक्षिप्त), normal (सामान्य), detailed (विस्तृत) |
--max_vuln | 2 | अधिकतम भेद्यता संख्या: 2 या 4 |
func और target फ़ील्ड शामिल हैं)code और label कॉलम शामिल हैं)| लाइब्रेरी | संस्करण | लाइसेंस |
|---|---|---|
| FlagEmbedding | 1.4.0 | MIT |
| openai | 2.26.0 | Apache 2.0 |
main.py या hyperparam_exp.py में base_url और api_key संशोधित करें।
1435.csv/1435_filtered_columns.csv सही ढंग से लोड हुआ है और सुनिश्चित करें कि CWE इंडेक्स डेटा प्रारूप सही है;git clone https://huggingface.co/BAAI/bge-m3 के माध्यम से मैन्युअल रूप से डाउनलोड कर सकते हैं;मेट्रिक गणना तर्क जोड़ने या समायोजित करने के लिए metrics_tracker.py में update_pair_metrics विधि को संशोधित करें।
मॉडल फ़ाइलों को सीधे HuggingFace वेबसाइट से डाउनलोड करें, उन्हें प्रोजेक्ट रूट डायरेक्टरी में निकालें, या अपने नेटवर्क कनेक्शन की जाँच करें और git clone https://huggingface.co/BAAI/bge-m3 कमांड को फिर से चलाएँ।