|
--- |
|
license: mit |
|
base_model: prithivMLmods/Codepy-Deepthink-3B |
|
language: |
|
- en |
|
library_name: transformers |
|
tags: |
|
- text-generation |
|
- code-generation |
|
- vulnerability-injection |
|
- security |
|
- vaitp |
|
- finetuned |
|
pretty_name: "FBogaerts/Codepy-Deepthink-3B-Finetuned Finetuned for Vulnerability Injection" |
|
--- |
|
|
|
# FBogaerts/Codepy-Deepthink-3B Finetuned for Vulnerability Injection (VAITP) |
|
|
|
This model is a fine-tuned version of **prithivMLmods/Codepy-Deepthink-3B** specialized for the task of security vulnerability injection in Python code. It has been trained to follow a specific instruction format to precisely modify code snippets and introduce vulnerabilities. |
|
|
|
This model was developed as part of the research for our paper: *(coming soon)*. |
|
|
|
The VAITP CLI Framework and related resources can be found at our [GitHub repository](coming soon). |
|
|
|
## Model Description |
|
|
|
This model was fine-tuned to act as a "Coder" LLM. It takes a specific instruction set and a piece of original Python code, and its objective is to return the modified code with the requested vulnerability injected. |
|
|
|
The model excels when prompted using the specific format it was trained on. |
|
|
|
## Intended Uses & Limitations |
|
|
|
**Intended Use** |
|
|
|
This model is intended for research purposes in the field of automated security testing, SAST/DAST tool evaluation, and the generation of training data for security-aware models. It should be used within a sandboxed environment to inject vulnerabilities into non-production code for analysis. |
|
|
|
**Out-of-Scope Uses** |
|
|
|
This model should **NOT** be used for: |
|
- Generating malicious code for use in real-world attacks. |
|
- Directly modifying production codebases. |
|
- Any application outside of controlled, ethical security research. |
|
|
|
The generated code should always be manually reviewed before use. |
|
|
|
## How to Use |
|
|
|
This model expects a very specific prompt format, which we call the `FINETUNED_STYLE` in our paper. The format is: |
|
|
|
`{instruction} _BREAK_ {original_code}` |
|
|
|
Here is an example using `transformers`: |
|
|
|
```python |
|
from transformers import AutoTokenizer, AutoModelForCausalLM |
|
|
|
model_name = "FBogaerts/Codepy-Deepthink-3B-Finetuned" |
|
tokenizer = AutoTokenizer.from_pretrained(model_name) |
|
model = AutoModelForCausalLM.from_pretrained(model_name) |
|
|
|
instruction = "Modify the function to introduce a OS Command Injection vulnerability. The vulnerable code must contain the pattern: 'User-controlled input is used in a subprocess call with shell=True'." |
|
original_code = "import subprocess\ndef execute(cmd):\n subprocess.run(cmd, shell=False)" |
|
|
|
prompt = f"{instruction} _BREAK_ {original_code}" |
|
|
|
inputs = tokenizer(prompt, return_tensors="pt") |
|
outputs = model.generate(**inputs, max_new_tokens=256) |
|
|
|
vulnerable_code = tokenizer.decode(outputs[0], skip_special_tokens=True) |
|
# The model will output the full modified code block. |
|
# Further cleaning may be needed to extract only the code. |
|
print(vulnerable_code) |
|
``` |
|
Training Procedure |
|
|
|
Training Data |
|
|
|
The model was fine-tuned on a dataset of 1,406 examples derived from the DeVAITP Vulnerability Corpus. Each example consists of a triplet: (instruction, original_code, vulnerable_code). The instructions were generated using the meta-prompting technique described in our paper, with meta-llama/Meta-Llama-3.1-8B-Instruct serving as the Planner model. |
|
|
|
Training Hyperparameters |
|
|
|
The model was fine-tuned using the following key hyperparameters: |
|
|
|
Framework: Hugging Face TRL |
|
|
|
Learning Rate: 2e-5 |
|
|
|
Number of Epochs: 1 |
|
|
|
Batch Size: 1 |
|
|
|
Hardware: Google Colab (L4 GPU) |
|
|
|
Evaluation |
|
|
|
(coming soon) |
|
|
|
Citation |
|
|
|
If you use this model in your research, please cite our paper: |
|
(BibTeX entry will be provided upon publication) |
|
|
|
|
|
|