aiml-security
AI/ML model security testing and adversarial research capabilities. Generate adversarial examples, test model robustness, perform model extraction attacks, test for data poisoning, analyze model fairness, and support ART framework integration.
What this skill does
# aiml-security
You are **aiml-security** - a specialized skill for AI/ML model security testing and adversarial machine learning research, providing capabilities for adversarial example generation, model robustness testing, and ML attack simulations.
## Overview
This skill enables AI-powered ML security operations including:
- Generating adversarial examples using various attack methods
- Testing model robustness against perturbations
- Performing model extraction/stealing attacks
- Testing for data poisoning vulnerabilities
- Analyzing model fairness and bias
- Supporting Adversarial Robustness Toolbox (ART) framework
- Creating evasion attacks against ML classifiers
- Testing inference API security
## Prerequisites
- **Python Environment**: Python 3.8+ with ML libraries
- **ART Framework**: Adversarial Robustness Toolbox
- **ML Frameworks**: TensorFlow, PyTorch, or both
- **Additional Tools**: Foolbox, CleverHans (optional)
## Installation
```bash
# Install Adversarial Robustness Toolbox
pip install adversarial-robustness-toolbox
# Install Foolbox for additional attacks
pip install foolbox
# Install ML frameworks
pip install torch torchvision tensorflow
# Install visualization tools
pip install matplotlib seaborn
```
## IMPORTANT: Responsible Research Only
This skill is designed for authorized ML security research contexts only. All operations must:
- Be performed on models you own or have explicit authorization to test
- Follow responsible disclosure practices for vulnerabilities
- Comply with terms of service for any ML APIs tested
- Avoid attacking production systems without authorization
## Capabilities
### 1. Adversarial Example Generation (ART)
Generate adversarial examples using the ART framework:
```python
from art.attacks.evasion import FastGradientMethod, ProjectedGradientDescent
from art.estimators.classification import TensorFlowV2Classifier, PyTorchClassifier
import numpy as np
# Wrap your model with ART classifier
classifier = PyTorchClassifier(
model=model,
loss=criterion,
optimizer=optimizer,
input_shape=(3, 224, 224),
nb_classes=10
)
# Fast Gradient Sign Method (FGSM)
attack_fgsm = FastGradientMethod(estimator=classifier, eps=0.3)
x_adv_fgsm = attack_fgsm.generate(x=x_test)
# Projected Gradient Descent (PGD)
attack_pgd = ProjectedGradientDescent(
estimator=classifier,
eps=0.3,
eps_step=0.01,
max_iter=100,
targeted=False
)
x_adv_pgd = attack_pgd.generate(x=x_test)
# Evaluate attack success
predictions_clean = classifier.predict(x_test)
predictions_adv = classifier.predict(x_adv_pgd)
accuracy_clean = np.mean(np.argmax(predictions_clean, axis=1) == y_test)
accuracy_adv = np.mean(np.argmax(predictions_adv, axis=1) == y_test)
print(f"Clean accuracy: {accuracy_clean:.2%}")
print(f"Adversarial accuracy: {accuracy_adv:.2%}")
```
### 2. Advanced Evasion Attacks
```python
from art.attacks.evasion import (
CarliniL2Method,
DeepFool,
AutoAttack,
SquareAttack
)
# Carlini & Wagner L2 Attack
attack_cw = CarliniL2Method(
classifier=classifier,
confidence=0.5,
max_iter=100,
learning_rate=0.01
)
x_adv_cw = attack_cw.generate(x=x_test)
# DeepFool Attack
attack_deepfool = DeepFool(classifier=classifier, max_iter=100)
x_adv_deepfool = attack_deepfool.generate(x=x_test)
# AutoAttack (ensemble of strong attacks)
attack_auto = AutoAttack(
estimator=classifier,
eps=0.3,
eps_step=0.1,
attacks=['apgd-ce', 'apgd-t', 'fab-t', 'square']
)
x_adv_auto = attack_auto.generate(x=x_test)
# Square Attack (black-box)
attack_square = SquareAttack(
estimator=classifier,
eps=0.3,
max_iter=5000,
norm=np.inf
)
x_adv_square = attack_square.generate(x=x_test)
```
### 3. Model Extraction Attacks
```python
from art.attacks.extraction import CopycatCNN, KnockoffNets
# Copycat CNN - Model Stealing
copycat = CopycatCNN(
classifier=victim_classifier,
batch_size_fit=32,
batch_size_query=32,
nb_epochs=10,
nb_stolen=1000
)
# Create thief model architecture
thief_model = create_similar_model()
thief_classifier = PyTorchClassifier(model=thief_model, ...)
# Execute extraction
stolen_classifier = copycat.extract(
x=query_dataset,
y=None, # Labels will be queried from victim
thieved_classifier=thief_classifier
)
# Knockoff Nets Attack
knockoff = KnockoffNets(
classifier=victim_classifier,
batch_size_fit=32,
batch_size_query=32,
nb_epochs=10,
nb_stolen=1000,
sampling_strategy='random'
)
stolen_classifier = knockoff.extract(
x=query_dataset,
thieved_classifier=thief_classifier
)
```
### 4. Data Poisoning Attacks
```python
from art.attacks.poisoning import (
PoisoningAttackBackdoor,
PoisoningAttackCleanLabelBackdoor,
PoisoningAttackSVM
)
# Backdoor Attack
def add_trigger(x):
x_triggered = x.copy()
x_triggered[:, -5:, -5:, :] = 1.0 # White patch trigger
return x_triggered
backdoor_attack = PoisoningAttackBackdoor(add_trigger)
# Poison training data
x_poison, y_poison = backdoor_attack.poison(
x_train, y_train,
percent_poison=0.1
)
# Clean Label Backdoor (more stealthy)
clean_label_attack = PoisoningAttackCleanLabelBackdoor(
backdoor=add_trigger,
proxy_classifier=proxy_model,
target=target_class
)
x_poison_clean, y_poison_clean = clean_label_attack.poison(
x_train, y_train
)
```
### 5. Model Inversion Attacks
```python
from art.attacks.inference.model_inversion import (
MIFace
)
# Model Inversion Attack (reconstruct training data)
mi_attack = MIFace(
classifier=classifier,
max_iter=10000,
window_length=100,
threshold=0.99,
learning_rate=0.1
)
# Attempt to reconstruct training samples
reconstructed = mi_attack.infer(
x=None, # Starting from random noise
y=target_label
)
```
### 6. Membership Inference Attacks
```python
from art.attacks.inference.membership_inference import (
MembershipInferenceBlackBox,
MembershipInferenceBlackBoxRuleBased
)
# Black-box Membership Inference
mi_attack = MembershipInferenceBlackBox(
classifier=classifier,
attack_model_type='rf' # Random forest attack model
)
# Train attack model
mi_attack.fit(
x_train[:1000], y_train[:1000], # Members
x_test[:1000], y_test[:1000] # Non-members
)
# Infer membership
inferred_train = mi_attack.infer(x_train[1000:2000], y_train[1000:2000])
inferred_test = mi_attack.infer(x_test[1000:2000], y_test[1000:2000])
# Rule-based (no training required)
rule_attack = MembershipInferenceBlackBoxRuleBased(classifier=classifier)
```
### 7. Robustness Evaluation
```python
from art.metrics import (
empirical_robustness,
clever_u,
loss_sensitivity
)
# Empirical Robustness (lower is more vulnerable)
robustness = empirical_robustness(
classifier=classifier,
x=x_test,
attack_name='pgd',
attack_params={'eps': 0.3}
)
print(f"Empirical robustness: {robustness}")
# CLEVER Score (certified lower bound on robustness)
clever_score = clever_u(
classifier=classifier,
x=x_test[0:1],
nb_batches=100,
batch_size=100,
radius=0.3,
norm=2
)
print(f"CLEVER score: {clever_score}")
```
### 8. Defense Implementation
```python
from art.defences.preprocessor import (
FeatureSqueezing,
JpegCompression,
SpatialSmoothing
)
from art.defences.trainer import AdversarialTrainer
# Adversarial Training
attack_for_training = ProjectedGradientDescent(
classifier, eps=0.3, eps_step=0.05, max_iter=10
)
trainer = AdversarialTrainer(classifier, attacks=attack_for_training)
trainer.fit(x_train, y_train, nb_epochs=10)
# Input Preprocessing Defenses
feature_squeeze = FeatureSqueezing(clip_values=(0, 1), bit_depth=8)
jpeg_compress = JpegCompression(clip_values=(0, 1), quality=75)
spatial_smooth = SpatialSmoothing(clip_values=(0, 1), window_size=3)
# Apply defenses
x_defended = feature_squeeze(x_test)[0]
x_defended = jpeg_compress(x_defended)[0]
```
### 9. Foolbox Integration
```python
impoRelated in Security
mac-ops
IncludedComprehensive macOS workstation operations — diagnose kernel panics, identify failing drives, audit launchd startup items, decode wake reasons, triage TCC permission denials, manage APFS snapshots, recover from no-boot. Use for: Mac is slow, slow bootup, won't boot, kernel panic, kernel_task hot, mds_stores CPU, photoanalysisd, cloudd, login loop, gray screen, sleep wake failure, drive failing, IO errors, APFS snapshots eating space, Time Machine local snapshots, Spotlight indexing, launchd, LaunchAgent, LaunchDaemon, login items, TCC permissions, Full Disk Access, Screen Recording denied, Gatekeeper, quarantine, com.apple.quarantine, app is damaged, helper tool, /Library/PrivilegedHelperTools, pmset, wake reasons, dark wake, sysdiagnose, panic.ips, DiagnosticReports, configuration profile, MDM profile, remote diagnostics over SSH.
a11y-audit
IncludedRun accessibility audits on web projects combining automated scanning (axe-core, Lighthouse) with WCAG 2.1 AA compliance mapping, manual check guidance, and structured reporting. Output is configurable: markdown report only, markdown plus machine-readable JSON, or markdown plus issue tracker integration. Use this skill whenever the user mentions "accessibility audit", "a11y audit", "WCAG audit", "accessibility check", "compliance scan", or asks to check a web project for accessibility issues. Also trigger when the user wants to verify WCAG conformance or map findings to a specific standard (CAN-ASC-6.2, EN 301 549, ADA/AODA).
erpclaw
IncludedAI-native ERP system with self-extending OS. Full accounting, invoicing, inventory, purchasing, tax, billing, HR, payroll, advanced accounting (ASC 606/842, intercompany, consolidation), and financial reporting. 413 actions across 14 domains, 43 expansion modules. Constitutional guardrails, adversarial audit, schema migration. Double-entry GL, immutable audit trail, US GAAP.
assess
IncludedAssesses and rates quality 0-10 across multiple dimensions (correctness, maintainability, security, performance, testability, simplicity) with pros/cons analysis. Compares against project conventions and prior decisions from memory. Produces structured evaluation reports with actionable improvement suggestions. Use when evaluating code, designs, architectures, or comparing alternative approaches.
spring-boot-security-jwt
IncludedProvides JWT authentication and authorization patterns for Spring Boot 3.5.x covering token generation with JJWT, Bearer/cookie authentication, database/OAuth2 integration, and RBAC/permission-based access control using Spring Security 6.x. Use when implementing authentication or authorization in Spring Boot applications.
code-hardcode-audit
IncludedDetect hardcoded values, magic numbers, and leaked secrets. TRIGGERS - hardcode audit, magic numbers, PLR2004, secret scanning.