Detecting and Preventing Prompt Injection Attacks in AI-Integrated Applications

Guidelines for identifying and mitigating prompt injection vulnerabilities in applications utilizing generative AI models.

0 likes
11 views

Rule Content

---
description: Enforce secure coding practices to prevent prompt injection vulnerabilities in AI-integrated applications.
globs: ['**/*.py', '**/*.js', '**/*.ts']
tags: [security, ai, prompt-injection]
priority: 1
version: 1.0.0
---

# Detecting and Preventing Prompt Injection Attacks in AI-Integrated Applications

## Context
- Applicable to all code handling user inputs for AI models.
- Essential for applications utilizing generative AI to ensure security against prompt injection attacks.

## Requirements
- **Input Validation and Sanitization**: Implement strict validation and sanitization of all user inputs to prevent malicious content.
  - Use regular expressions to filter out special characters and patterns that could be used in injection attacks.
  - Enforce input length restrictions to mitigate buffer overflow risks.
- **Role-Based Access Control (RBAC)**: Restrict access to AI functionalities based on user roles to minimize exposure to potential attacks.
  - Define clear roles and permissions for all users interacting with AI systems.
  - Regularly review and update these permissions to reflect changes in roles or responsibilities.
- **Secure Prompt Engineering**: Design prompts and AI interactions with security in mind to reduce the risk of injection attacks.
  - Incorporate security considerations into the design phase of AI development.
  - Use techniques such as prompt partitioning, where user input is strictly separated from the control logic of prompts.
- **Continuous Monitoring and Anomaly Detection**: Implement real-time monitoring of AI system interactions to detect and respond to potential prompt injection attacks.
  - Deploy monitoring solutions that can track and analyze user interactions with AI systems at a granular level.
  - Use machine learning-based anomaly detection to identify unusual patterns that may indicate an attack.
- **Regular Security Audits and Testing**: Conduct regular security audits and penetration testing to identify and mitigate vulnerabilities.
  - Simulate various attack scenarios to see how the model responds to malicious input.
  - Update and retrain models regularly to improve their resistance to new and evolving attack techniques.

## Examples

<example>
# Good Example: Input validation and sanitization
import re

def sanitize_input(user_input):
    # Remove special characters
    sanitized = re.sub(r'[^a-zA-Z0-9 ]', '', user_input)
    # Enforce length restriction
    if len(sanitized) > 100:
        raise ValueError("Input too long")
    return sanitized
</example>

<example type="invalid">
# Bad Example: Lack of input validation
def process_input(user_input):
    # Directly using user input without validation
    result = ai_model.generate(user_input)
    return result
</example>