AI redTeaming Python library
Project description
AIxploit
AIxploit is a powerful tool designed for analyzing and exploiting vulnerabilities in AI systems. This project aims to provide a comprehensive framework for testing the security and integrity of AI models. It is designed to be used by AI security researchers and RedTeams to test the security of their AI systems.
See more in the Documentation
Installation
To get started with AIxploit download the package:
pip install aixploit
and set the environment variables:
export OPENAI_KEY="sk-xxxxx"
export OLLAMA_URL="hxxp:"
export OLLAMA_API_KEY="ollama"
Usage
To use AIxploit, follow these steps:
-
Choose the type of attack you want to perform: integrity, privacy, availability, or abuse. The full list of attackers is available in the plugins folder.
from aixploit.plugins import PromptInjection
-
Choose your targets and the associated attackers.
target = ["Ollama", "http://localhost:11434/v1", "mistral"] attackers = [ Privacy("quick"), Integrity("full"), Availability("quick"), Abuse("custom"), ]
-
Run your attack and analyze the results:
run(attackers, target, os.getenv("OLLAMA_API_KEY"))
Example test.py:
import os
from datetime import datetime
from aixploit.plugins import PromptInjection, Privacy, Integrity, Availability, Abuse
from aixploit.core import run
target = ["Openai", "", "gpt-3.5-turbo"]
attackers = [
PromptInjection("quick"),
Privacy("quick"),
Integrity("quick"),
Availability("quick"),
Abuse("quick"),
#PromptInjection("full")
]
start_time = datetime.now()
print("Redteaming exercise started at : ", start_time.strftime("%H:%M:%S"))
(
conversation,
attack_prompts,
success_rates_percentage,
total_tokens,
total_cost,
) = run(attackers, target, os.getenv("OPENAI_KEY"))
for idx, attacker in enumerate(attackers): # {{ edit_1 }}
try:
print("Attacker: ", attacker.__class__.__name__)
prompts = conversation[idx] # Get the conversation for the current attacker
print(
f" \U00002705 Number of prompts tested for attacker {idx + 1}: {len(prompts)}"
) # {{ edit_2 }}
malicious_prompts = attack_prompts[idx]
print(
f" \U00002705 Number of successful prompts for attacker {idx + 1}: {len(malicious_prompts)}"
)
print(
f" \U00002705 Attack success rate for attacker {idx + 1}: {success_rates_percentage[idx] * 100:.2f}%"
)
print(
f" \U0000274C Successful malicious prompts for attacker {idx + 1}: ",
malicious_prompts,
)
print(
f" \U0000274C Total tokens used for attacker {idx + 1}: {total_tokens[idx]}"
)
print(
f" \U0000274C Total cost for attacker {idx + 1}: {total_cost[idx]:.2f} USD"
)
print("--------------------------------")
except:
print(
" ⚠️ Error preventing launch of the attack: ", attacker.__class__.__name__
)
print("Redteaming exercise ended at : ", datetime.now().strftime("%H:%M:%S"))
print("Total time taken: ", datetime.now() - start_time)
Contributing
We welcome contributions to AIxploit! If you would like to contribute, please follow these steps:
- Fork the repository.
- Create a new branch (
git checkout -b feature-branch). - Make your changes and commit them (
git commit -m 'Add new feature'). - Push to the branch (
git push origin feature-branch). - Open a pull request.
Please ensure that your code adheres to the project's coding standards and includes appropriate tests.
Contact
For any inquiries or feedback, please contact:
- Contact AINTRUST AI - contact@aintrust.ai
- Project Link: AIxploit GitHub Repository
Thank you for your interest in AIxploit! We hope you find it useful.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aixploit-1.2.8.2.tar.gz.
File metadata
- Download URL: aixploit-1.2.8.2.tar.gz
- Upload date:
- Size: 29.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fe54971521cd0a5ffa89f363afec21c424af7e63c830f34a5bc49e0e552c8974
|
|
| MD5 |
1673b9b8b9e1062fd8b9e34dc4c4c75b
|
|
| BLAKE2b-256 |
d76a9bef5f87bbc02b5e3fda32cd342cd68dc7331551d3cc99f118f60d0d9a29
|
File details
Details for the file aixploit-1.2.8.2-py3-none-any.whl.
File metadata
- Download URL: aixploit-1.2.8.2-py3-none-any.whl
- Upload date:
- Size: 44.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.11.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a450dfe4165aef5d0f8e875ab824ea9441bbaca4aaab15002e69e025b9661554
|
|
| MD5 |
cc276546bd66f62dde1526e367fa733d
|
|
| BLAKE2b-256 |
e6fc178c2e5b9c283eaa13967e6d745cb540d1baf61699bad7a9ec5b4573725a
|