ai-security-toolkit 1.1.0__tar.gz → 1.1.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/PKG-INFO +1 -1
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/modules/backdoor_trigger_attack.py +5 -11
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/modules/fgsm_mobilenet.py +4 -10
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/modules/label_flip_attack.py +5 -11
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/modules/membership_inference_attack.py +1 -7
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/modules/simulate_inversion.py +1 -5
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/modules/steal_model.py +6 -10
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/modules/train_mnist_model.py +5 -9
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/run.py +6 -3
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit.egg-info/PKG-INFO +1 -1
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/pyproject.toml +5 -1
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/README.md +0 -0
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/__init__.py +0 -0
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/modules/__init__.py +0 -0
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/shared/__init__.py +0 -0
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/shared/log_utils.py +0 -0
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit.egg-info/SOURCES.txt +0 -0
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit.egg-info/dependency_links.txt +0 -0
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit.egg-info/entry_points.txt +0 -0
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit.egg-info/requires.txt +0 -0
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit.egg-info/top_level.txt +0 -0
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/setup.cfg +0 -0
- {ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/setup.py +0 -0
@@ -1,5 +1,10 @@
|
|
1
|
+
import tensorflow as tf
|
1
2
|
import numpy as np
|
2
3
|
import matplotlib.pyplot as plt
|
4
|
+
from tensorflow.keras.datasets import mnist
|
5
|
+
from tensorflow.keras.models import Sequential
|
6
|
+
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
|
7
|
+
from tensorflow.keras.utils import to_categorical
|
3
8
|
import os
|
4
9
|
import random
|
5
10
|
from datetime import datetime
|
@@ -9,17 +14,6 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
|
9
14
|
from ai_security_toolkit.shared.log_utils import append_report_row, save_plot
|
10
15
|
|
11
16
|
def main():
|
12
|
-
|
13
|
-
try:
|
14
|
-
import tensorflow as tf
|
15
|
-
from tensorflow.keras.datasets import mnist
|
16
|
-
from tensorflow.keras.models import Sequential
|
17
|
-
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
|
18
|
-
from tensorflow.keras.utils import to_categorical
|
19
|
-
except ImportError:
|
20
|
-
print("❌ TensorFlow not found. Run: pip install tensorflow")
|
21
|
-
return
|
22
|
-
|
23
17
|
# Parameters
|
24
18
|
trigger_label_target = 7
|
25
19
|
trigger_class_source = 1
|
@@ -1,22 +1,16 @@
|
|
1
|
+
import tensorflow as tf
|
1
2
|
import numpy as np
|
2
3
|
import matplotlib.pyplot as plt
|
3
4
|
from datetime import datetime
|
5
|
+
from tensorflow.keras.applications.mobilenet_v2 import MobileNetV2, preprocess_input, decode_predictions
|
6
|
+
from tensorflow.keras.preprocessing import image
|
7
|
+
from cleverhans.tf2.attacks.fast_gradient_method import fast_gradient_method
|
4
8
|
import sys
|
5
9
|
import os
|
6
10
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
7
11
|
from ai_security_toolkit.shared.log_utils import append_report_row, save_plot
|
8
12
|
|
9
13
|
def main():
|
10
|
-
|
11
|
-
try:
|
12
|
-
import tensorflow as tf
|
13
|
-
from tensorflow.keras.applications.mobilenet_v2 import MobileNetV2, preprocess_input, decode_predictions
|
14
|
-
from tensorflow.keras.preprocessing import image
|
15
|
-
from cleverhans.tf2.attacks.fast_gradient_method import fast_gradient_method
|
16
|
-
except ImportError:
|
17
|
-
print("❌ TensorFlow not found. Run: pip install tensorflow")
|
18
|
-
return
|
19
|
-
|
20
14
|
# Load MobileNetV2 pretrained on ImageNet
|
21
15
|
model = MobileNetV2(weights='imagenet')
|
22
16
|
model.trainable = False
|
@@ -1,3 +1,8 @@
|
|
1
|
+
import tensorflow as tf
|
2
|
+
from tensorflow.keras.datasets import mnist
|
3
|
+
from tensorflow.keras.models import Sequential
|
4
|
+
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
|
5
|
+
from tensorflow.keras.utils import to_categorical
|
1
6
|
import numpy as np
|
2
7
|
from datetime import datetime
|
3
8
|
import sys
|
@@ -6,17 +11,6 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
|
6
11
|
from ai_security_toolkit.shared.log_utils import append_report_row, log_metrics
|
7
12
|
|
8
13
|
def main():
|
9
|
-
|
10
|
-
try:
|
11
|
-
import tensorflow as tf
|
12
|
-
from tensorflow.keras.datasets import mnist
|
13
|
-
from tensorflow.keras.models import Sequential
|
14
|
-
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
|
15
|
-
from tensorflow.keras.utils import to_categorical
|
16
|
-
except ImportError:
|
17
|
-
print("❌ TensorFlow not found. Run: pip install tensorflow")
|
18
|
-
return
|
19
|
-
|
20
14
|
# Build a simple CNN
|
21
15
|
def build_model():
|
22
16
|
model = Sequential([
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import tensorflow as tf
|
1
2
|
import numpy as np
|
2
3
|
import matplotlib.pyplot as plt
|
3
4
|
from datetime import datetime
|
@@ -7,13 +8,6 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
|
7
8
|
from ai_security_toolkit.shared.log_utils import save_plot, append_report_row, log_metrics
|
8
9
|
|
9
10
|
def main():
|
10
|
-
|
11
|
-
try:
|
12
|
-
import tensorflow as tf
|
13
|
-
except ImportError:
|
14
|
-
print("❌ TensorFlow not found. Run: pip install tensorflow")
|
15
|
-
return
|
16
|
-
|
17
11
|
# Load model
|
18
12
|
model = tf.keras.models.load_model("shared/models/mnist_cnn_model.keras")
|
19
13
|
print("✅ Loaded model from .keras file.")
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import tensorflow as tf
|
1
2
|
import numpy as np
|
2
3
|
import matplotlib.pyplot as plt
|
3
4
|
from datetime import datetime
|
@@ -8,11 +9,6 @@ sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
|
8
9
|
from ai_security_toolkit.shared.log_utils import append_report_row, save_plot
|
9
10
|
|
10
11
|
def main():
|
11
|
-
try:
|
12
|
-
import tensorflow as tf
|
13
|
-
except ImportError:
|
14
|
-
print("❌ TensorFlow not found. Run: pip install tensorflow")
|
15
|
-
return
|
16
12
|
# Load trained model
|
17
13
|
model = tf.keras.models.load_model("shared/models/mnist_cnn_model.keras")
|
18
14
|
model.trainable = False
|
{ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/modules/steal_model.py
RENAMED
@@ -1,21 +1,17 @@
|
|
1
|
+
import tensorflow as tf
|
1
2
|
import numpy as np
|
2
3
|
from datetime import datetime
|
4
|
+
from tensorflow.keras.datasets import mnist
|
5
|
+
from tensorflow.keras.models import Sequential
|
6
|
+
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
|
7
|
+
from tensorflow.keras.utils import to_categorical
|
8
|
+
from tensorflow.keras.models import load_model
|
3
9
|
import sys
|
4
10
|
import os
|
5
11
|
sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
6
12
|
from ai_security_toolkit.shared.log_utils import append_report_row, log_metrics
|
7
13
|
|
8
14
|
def main():
|
9
|
-
try:
|
10
|
-
import tensorflow as tf
|
11
|
-
from tensorflow.keras.datasets import mnist
|
12
|
-
from tensorflow.keras.models import Sequential
|
13
|
-
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
|
14
|
-
from tensorflow.keras.utils import to_categorical
|
15
|
-
from tensorflow.keras.models import load_model
|
16
|
-
except ImportError:
|
17
|
-
print("❌ TensorFlow not found. Run: pip install tensorflow")
|
18
|
-
return
|
19
15
|
# Step 1: Load original (victim) model
|
20
16
|
victim_model = load_model("shared/models/mnist_cnn_model.keras")
|
21
17
|
victim_model.trainable = False
|
@@ -1,15 +1,11 @@
|
|
1
|
+
import tensorflow as tf
|
2
|
+
from tensorflow.keras.datasets import mnist
|
3
|
+
from tensorflow.keras.models import Sequential
|
4
|
+
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
|
5
|
+
from tensorflow.keras.utils import to_categorical
|
1
6
|
import os
|
2
7
|
|
3
8
|
def main():
|
4
|
-
try:
|
5
|
-
import tensorflow as tf
|
6
|
-
from tensorflow.keras.datasets import mnist
|
7
|
-
from tensorflow.keras.models import Sequential
|
8
|
-
from tensorflow.keras.layers import Conv2D, MaxPooling2D, Flatten, Dense
|
9
|
-
from tensorflow.keras.utils import to_categorical
|
10
|
-
except ImportError:
|
11
|
-
print("❌ TensorFlow not found. Run: pip install tensorflow")
|
12
|
-
return
|
13
9
|
# Load and preprocess MNIST data
|
14
10
|
(x_train, y_train), (x_test, y_test) = mnist.load_data()
|
15
11
|
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import importlib
|
2
2
|
import sys
|
3
3
|
import os
|
4
|
-
|
5
4
|
import platform
|
6
5
|
|
7
6
|
if platform.system() == "Windows":
|
@@ -32,8 +31,9 @@ def print_menu():
|
|
32
31
|
def run_selected_module(choice_idx):
|
33
32
|
try:
|
34
33
|
label = list(available_modules.keys())[choice_idx - 1]
|
35
|
-
module_name = f"modules.{available_modules[label]}"
|
34
|
+
module_name = f"ai_security_toolkit.modules.{available_modules[label]}"
|
36
35
|
print(f"\n🔍 Running: {label} ({module_name})...\n")
|
36
|
+
|
37
37
|
mod = importlib.import_module(module_name)
|
38
38
|
|
39
39
|
if hasattr(mod, "main"):
|
@@ -42,8 +42,11 @@ def run_selected_module(choice_idx):
|
|
42
42
|
print("⚠️ No 'main()' found — running file as script...")
|
43
43
|
exec(open(mod.__file__).read())
|
44
44
|
|
45
|
+
except ModuleNotFoundError:
|
46
|
+
print(f"❌ Could not find module: {module_name}")
|
47
|
+
print("💡 Make sure the package is installed correctly via pip.")
|
45
48
|
except Exception as e:
|
46
|
-
print(f"❌
|
49
|
+
print(f"❌ Unexpected error: {e}")
|
47
50
|
|
48
51
|
def main():
|
49
52
|
while True:
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
4
4
|
|
5
5
|
[project]
|
6
6
|
name = "ai-security-toolkit"
|
7
|
-
version = "1.1.
|
7
|
+
version = "1.1.1"
|
8
8
|
description = "A red-team AI security framework with adversarial attack modules"
|
9
9
|
readme = "README.md"
|
10
10
|
authors = [
|
@@ -28,3 +28,7 @@ ai-toolkit = "ai_security_toolkit.run:main"
|
|
28
28
|
tensorflow = ["tensorflow"]
|
29
29
|
cleverhans = ["cleverhans"]
|
30
30
|
|
31
|
+
[tool.setuptools.packages.find]
|
32
|
+
include = ["ai_security_toolkit*"]
|
33
|
+
|
34
|
+
|
File without changes
|
File without changes
|
{ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/modules/__init__.py
RENAMED
File without changes
|
{ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/shared/__init__.py
RENAMED
File without changes
|
{ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit/shared/log_utils.py
RENAMED
File without changes
|
{ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit.egg-info/SOURCES.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|
{ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit.egg-info/requires.txt
RENAMED
File without changes
|
{ai_security_toolkit-1.1.0 → ai_security_toolkit-1.1.1}/ai_security_toolkit.egg-info/top_level.txt
RENAMED
File without changes
|
File without changes
|
File without changes
|