S-Dreamer commited on
Commit
b9e695b
·
verified ·
1 Parent(s): d632274

Add 3 files

Browse files
Files changed (3) hide show
  1. README.md +7 -5
  2. index.html +754 -19
  3. prompts.txt +0 -0
README.md CHANGED
@@ -1,10 +1,12 @@
1
  ---
2
- title: Playbook Execution
3
- emoji: 👀
4
- colorFrom: gray
5
- colorTo: green
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: playbook-execution
3
+ emoji: 🐳
4
+ colorFrom: purple
5
+ colorTo: red
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite
10
  ---
11
 
12
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
index.html CHANGED
@@ -1,19 +1,754 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>SOAR Platform</title>
7
+ <script src="https://cdn.tailwindcss.com"></script>
8
+ <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
9
+ <style>
10
+ .sidebar {
11
+ transition: all 0.3s ease;
12
+ }
13
+ .sidebar.collapsed {
14
+ width: 70px;
15
+ }
16
+ .sidebar.collapsed .sidebar-text {
17
+ display: none;
18
+ }
19
+ .sidebar.collapsed .logo-text {
20
+ display: none;
21
+ }
22
+ .sidebar.collapsed .nav-item {
23
+ justify-content: center;
24
+ }
25
+ .main-content {
26
+ transition: all 0.3s ease;
27
+ }
28
+ .main-content.expanded {
29
+ margin-left: 70px;
30
+ }
31
+ .severity-critical {
32
+ background-color: #f87171;
33
+ }
34
+ .severity-high {
35
+ background-color: #fca5a5;
36
+ }
37
+ .severity-medium {
38
+ background-color: #fcd34d;
39
+ }
40
+ .severity-low {
41
+ background-color: #86efac;
42
+ }
43
+ .severity-info {
44
+ background-color: #93c5fd;
45
+ }
46
+ .playbook-step {
47
+ border-left: 4px solid #3b82f6;
48
+ }
49
+ .json-viewer {
50
+ font-family: monospace;
51
+ white-space: pre;
52
+ background-color: #f3f4f6;
53
+ padding: 1rem;
54
+ border-radius: 0.5rem;
55
+ max-height: 300px;
56
+ overflow-y: auto;
57
+ }
58
+ </style>
59
+ </head>
60
+ <body class="bg-gray-100">
61
+ <div class="flex h-screen overflow-hidden">
62
+ <!-- Sidebar -->
63
+ <div id="sidebar" class="sidebar bg-gray-800 text-white w-64 flex flex-col">
64
+ <div class="p-4 flex items-center space-x-2 border-b border-gray-700">
65
+ <i class="fas fa-shield-alt text-blue-400 text-2xl"></i>
66
+ <span class="logo-text text-xl font-bold">SOAR Platform</span>
67
+ </div>
68
+ <div class="flex-1 overflow-y-auto">
69
+ <nav class="p-4 space-y-2">
70
+ <a href="#" class="nav-item flex items-center space-x-3 p-2 rounded hover:bg-gray-700 bg-gray-700">
71
+ <i class="fas fa-tachometer-alt"></i>
72
+ <span class="sidebar-text">Dashboard</span>
73
+ </a>
74
+ <a href="#" class="nav-item flex items-center space-x-3 p-2 rounded hover:bg-gray-700">
75
+ <i class="fas fa-bolt"></i>
76
+ <span class="sidebar-text">Trigger Events</span>
77
+ </a>
78
+ <a href="#" class="nav-item flex items-center space-x-3 p-2 rounded hover:bg-gray-700">
79
+ <i class="fas fa-book"></i>
80
+ <span class="sidebar-text">Playbooks</span>
81
+ </a>
82
+ <a href="#" class="nav-item flex items-center space-x-3 p-2 rounded hover:bg-gray-700">
83
+ <i class="fas fa-history"></i>
84
+ <span class="sidebar-text">Executions</span>
85
+ </a>
86
+ <a href="#" class="nav-item flex items-center space-x-3 p-2 rounded hover:bg-gray-700">
87
+ <i class="fas fa-cog"></i>
88
+ <span class="sidebar-text">Settings</span>
89
+ </a>
90
+ </nav>
91
+ <div class="p-4 border-t border-gray-700">
92
+ <h3 class="sidebar-text text-xs uppercase font-semibold text-gray-400 mb-2">Quick Actions</h3>
93
+ <div class="space-y-2">
94
+ <button onclick="showCreatePlaybookModal()" class="w-full flex items-center space-x-3 p-2 rounded hover:bg-gray-700 text-sm">
95
+ <i class="fas fa-plus"></i>
96
+ <span class="sidebar-text">New Playbook</span>
97
+ </button>
98
+ <button onclick="showTriggerEventModal()" class="w-full flex items-center space-x-3 p-2 rounded hover:bg-gray-700 text-sm">
99
+ <i class="fas fa-play"></i>
100
+ <span class="sidebar-text">Trigger Event</span>
101
+ </button>
102
+ </div>
103
+ </div>
104
+ </div>
105
+ <div class="p-4 border-t border-gray-700 flex items-center justify-between">
106
+ <div class="flex items-center space-x-3">
107
+ <div class="w-8 h-8 rounded-full bg-blue-500 flex items-center justify-center">
108
+ <span class="text-white font-bold">AD</span>
109
+ </div>
110
+ <div class="sidebar-text">
111
+ <div class="font-medium">Admin User</div>
112
+ <div class="text-xs text-gray-400">admin@soar.local</div>
113
+ </div>
114
+ </div>
115
+ <button onclick="toggleSidebar()" class="text-gray-400 hover:text-white">
116
+ <i class="fas fa-chevron-left"></i>
117
+ </button>
118
+ </div>
119
+ </div>
120
+
121
+ <!-- Main Content -->
122
+ <div id="main-content" class="main-content flex-1 overflow-auto">
123
+ <!-- Top Navigation -->
124
+ <header class="bg-white shadow-sm">
125
+ <div class="px-4 py-3 flex items-center justify-between">
126
+ <div class="flex items-center space-x-4">
127
+ <button onclick="toggleSidebar()" class="text-gray-600 hover:text-gray-900">
128
+ <i class="fas fa-bars"></i>
129
+ </button>
130
+ <h1 class="text-xl font-semibold text-gray-800">Playbook Executions</h1>
131
+ </div>
132
+ <div class="flex items-center space-x-4">
133
+ <div class="relative">
134
+ <input type="text" placeholder="Search..." class="pl-10 pr-4 py-2 border rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500">
135
+ <i class="fas fa-search absolute left-3 top-3 text-gray-400"></i>
136
+ </div>
137
+ <button class="p-2 text-gray-600 hover:text-gray-900 relative">
138
+ <i class="fas fa-bell"></i>
139
+ <span class="absolute top-0 right-0 w-2 h-2 bg-red-500 rounded-full"></span>
140
+ </button>
141
+ </div>
142
+ </div>
143
+ </header>
144
+
145
+ <!-- Content -->
146
+ <main class="p-6">
147
+ <!-- Stats Cards -->
148
+ <div class="grid grid-cols-1 md:grid-cols-4 gap-6 mb-6">
149
+ <div class="bg-white rounded-lg shadow p-6">
150
+ <div class="flex items-center justify-between">
151
+ <div>
152
+ <p class="text-gray-500">Total Events</p>
153
+ <h3 class="text-2xl font-bold">1,248</h3>
154
+ </div>
155
+ <div class="p-3 rounded-full bg-blue-100 text-blue-600">
156
+ <i class="fas fa-bolt"></i>
157
+ </div>
158
+ </div>
159
+ </div>
160
+ <div class="bg-white rounded-lg shadow p-6">
161
+ <div class="flex items-center justify-between">
162
+ <div>
163
+ <p class="text-gray-500">Active Playbooks</p>
164
+ <h3 class="text-2xl font-bold">42</h3>
165
+ </div>
166
+ <div class="p-3 rounded-full bg-green-100 text-green-600">
167
+ <i class="fas fa-book"></i>
168
+ </div>
169
+ </div>
170
+ </div>
171
+ <div class="bg-white rounded-lg shadow p-6">
172
+ <div class="flex items-center justify-between">
173
+ <div>
174
+ <p class="text-gray-500">Today's Executions</p>
175
+ <h3 class="text-2xl font-bold">87</h3>
176
+ </div>
177
+ <div class="p-3 rounded-full bg-purple-100 text-purple-600">
178
+ <i class="fas fa-history"></i>
179
+ </div>
180
+ </div>
181
+ </div>
182
+ <div class="bg-white rounded-lg shadow p-6">
183
+ <div class="flex items-center justify-between">
184
+ <div>
185
+ <p class="text-gray-500">Avg Response Time</p>
186
+ <h3 class="text-2xl font-bold">2.4s</h3>
187
+ </div>
188
+ <div class="p-3 rounded-full bg-yellow-100 text-yellow-600">
189
+ <i class="fas fa-stopwatch"></i>
190
+ </div>
191
+ </div>
192
+ </div>
193
+ </div>
194
+
195
+ <!-- Recent Executions -->
196
+ <div class="bg-white rounded-lg shadow overflow-hidden mb-6">
197
+ <div class="px-6 py-4 border-b border-gray-200 flex justify-between items-center">
198
+ <h2 class="text-lg font-semibold text-gray-800">Recent Executions</h2>
199
+ <button class="text-blue-600 hover:text-blue-800 text-sm font-medium">View All</button>
200
+ </div>
201
+ <div class="overflow-x-auto">
202
+ <table class="min-w-full divide-y divide-gray-200">
203
+ <thead class="bg-gray-50">
204
+ <tr>
205
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Execution ID</th>
206
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Playbook</th>
207
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Trigger Event</th>
208
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Status</th>
209
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Duration</th>
210
+ <th class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Actions</th>
211
+ </tr>
212
+ </thead>
213
+ <tbody class="bg-white divide-y divide-gray-200">
214
+ <tr>
215
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">#EX-1001</td>
216
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Credential Dumping Response</td>
217
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">EVT-2023-06-15-001</td>
218
+ <td class="px-6 py-4 whitespace-nowrap">
219
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Completed</span>
220
+ </td>
221
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">4.2s</td>
222
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
223
+ <button onclick="showExecutionDetails('EX-1001')" class="text-blue-600 hover:text-blue-900 mr-3"><i class="fas fa-eye"></i></button>
224
+ <button class="text-gray-600 hover:text-gray-900"><i class="fas fa-redo"></i></button>
225
+ </td>
226
+ </tr>
227
+ <tr>
228
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">#EX-1000</td>
229
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Ransomware Detection</td>
230
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">EVT-2023-06-15-002</td>
231
+ <td class="px-6 py-4 whitespace-nowrap">
232
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-yellow-100 text-yellow-800">Running</span>
233
+ </td>
234
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">12.7s</td>
235
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
236
+ <button onclick="showExecutionDetails('EX-1000')" class="text-blue-600 hover:text-blue-900 mr-3"><i class="fas fa-eye"></i></button>
237
+ <button class="text-red-600 hover:text-red-900"><i class="fas fa-stop"></i></button>
238
+ </td>
239
+ </tr>
240
+ <tr>
241
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">#EX-0999</td>
242
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Phishing Response</td>
243
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">EVT-2023-06-14-005</td>
244
+ <td class="px-6 py-4 whitespace-nowrap">
245
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Completed</span>
246
+ </td>
247
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">2.1s</td>
248
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
249
+ <button onclick="showExecutionDetails('EX-0999')" class="text-blue-600 hover:text-blue-900 mr-3"><i class="fas fa-eye"></i></button>
250
+ <button class="text-gray-600 hover:text-gray-900"><i class="fas fa-redo"></i></button>
251
+ </td>
252
+ </tr>
253
+ <tr>
254
+ <td class="px-6 py-4 whitespace-nowrap text-sm font-medium text-gray-900">#EX-0998</td>
255
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">Brute Force Protection</td>
256
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">EVT-2023-06-14-003</td>
257
+ <td class="px-6 py-4 whitespace-nowrap">
258
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">Failed</span>
259
+ </td>
260
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">8.5s</td>
261
+ <td class="px-6 py-4 whitespace-nowrap text-sm text-gray-500">
262
+ <button onclick="showExecutionDetails('EX-0998')" class="text-blue-600 hover:text-blue-900 mr-3"><i class="fas fa-eye"></i></button>
263
+ <button class="text-gray-600 hover:text-gray-900"><i class="fas fa-redo"></i></button>
264
+ </td>
265
+ </tr>
266
+ </tbody>
267
+ </table>
268
+ </div>
269
+ </div>
270
+
271
+ <!-- Recent Events -->
272
+ <div class="bg-white rounded-lg shadow overflow-hidden">
273
+ <div class="px-6 py-4 border-b border-gray-200 flex justify-between items-center">
274
+ <h2 class="text-lg font-semibold text-gray-800">Recent Security Events</h2>
275
+ <button class="text-blue-600 hover:text-blue-800 text-sm font-medium">View All</button>
276
+ </div>
277
+ <div class="divide-y divide-gray-200">
278
+ <div class="p-4 hover:bg-gray-50 cursor-pointer" onclick="showEventDetails('EVT-2023-06-15-001')">
279
+ <div class="flex items-start">
280
+ <div class="flex-shrink-0 pt-1">
281
+ <div class="severity-high h-3 w-3 rounded-full"></div>
282
+ </div>
283
+ <div class="ml-3 flex-1">
284
+ <div class="flex items-center justify-between">
285
+ <p class="text-sm font-medium text-gray-900">Credential dumping detected</p>
286
+ <p class="text-sm text-gray-500">2 min ago</p>
287
+ </div>
288
+ <p class="text-sm text-gray-500">Host: WIN-SERVER-01 (192.168.1.100)</p>
289
+ </div>
290
+ </div>
291
+ </div>
292
+ <div class="p-4 hover:bg-gray-50 cursor-pointer" onclick="showEventDetails('EVT-2023-06-15-002')">
293
+ <div class="flex items-start">
294
+ <div class="flex-shrink-0 pt-1">
295
+ <div class="severity-critical h-3 w-3 rounded-full"></div>
296
+ </div>
297
+ <div class="ml-3 flex-1">
298
+ <div class="flex items-center justify-between">
299
+ <p class="text-sm font-medium text-gray-900">Ransomware activity detected</p>
300
+ <p class="text-sm text-gray-500">15 min ago</p>
301
+ </div>
302
+ <p class="text-sm text-gray-500">Host: WIN-WORKSTATION-42 (192.168.1.42)</p>
303
+ </div>
304
+ </div>
305
+ </div>
306
+ <div class="p-4 hover:bg-gray-50 cursor-pointer" onclick="showEventDetails('EVT-2023-06-14-005')">
307
+ <div class="flex items-start">
308
+ <div class="flex-shrink-0 pt-1">
309
+ <div class="severity-medium h-3 w-3 rounded-full"></div>
310
+ </div>
311
+ <div class="ml-3 flex-1">
312
+ <div class="flex items-center justify-between">
313
+ <p class="text-sm font-medium text-gray-900">Phishing email reported</p>
314
+ <p class="text-sm text-gray-500">3 hours ago</p>
315
+ </div>
316
+ <p class="text-sm text-gray-500">User: jsmith@domain.com</p>
317
+ </div>
318
+ </div>
319
+ </div>
320
+ <div class="p-4 hover:bg-gray-50 cursor-pointer" onclick="showEventDetails('EVT-2023-06-14-003')">
321
+ <div class="flex items-start">
322
+ <div class="flex-shrink-0 pt-1">
323
+ <div class="severity-high h-3 w-3 rounded-full"></div>
324
+ </div>
325
+ <div class="ml-3 flex-1">
326
+ <div class="flex items-center justify-between">
327
+ <p class="text-sm font-medium text-gray-900">Brute force attack detected</p>
328
+ <p class="text-sm text-gray-500">5 hours ago</p>
329
+ </div>
330
+ <p class="text-sm text-gray-500">Source IP: 45.227.253.109</p>
331
+ </div>
332
+ </div>
333
+ </div>
334
+ </div>
335
+ </div>
336
+ </main>
337
+ </div>
338
+ </div>
339
+
340
+ <!-- Modals -->
341
+ <!-- Create Playbook Modal -->
342
+ <div id="create-playbook-modal" class="fixed inset-0 bg-gray-600 bg-opacity-50 flex items-center justify-center hidden z-50">
343
+ <div class="bg-white rounded-lg shadow-xl w-full max-w-4xl">
344
+ <div class="px-6 py-4 border-b border-gray-200 flex justify-between items-center">
345
+ <h3 class="text-lg font-semibold text-gray-800">Create New Playbook</h3>
346
+ <button onclick="hideModal('create-playbook-modal')" class="text-gray-400 hover:text-gray-500">
347
+ <i class="fas fa-times"></i>
348
+ </button>
349
+ </div>
350
+ <div class="p-6">
351
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-6">
352
+ <div>
353
+ <label class="block text-sm font-medium text-gray-700 mb-1">Playbook ID</label>
354
+ <input type="text" class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="e.g., credential-dumping-response">
355
+ </div>
356
+ <div>
357
+ <label class="block text-sm font-medium text-gray-700 mb-1">Playbook Name</label>
358
+ <input type="text" class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="e.g., Credential Dumping Response">
359
+ </div>
360
+ </div>
361
+ <div class="mb-6">
362
+ <label class="block text-sm font-medium text-gray-700 mb-1">Description</label>
363
+ <textarea class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500" rows="3" placeholder="Describe what this playbook does..."></textarea>
364
+ </div>
365
+ <div class="mb-6">
366
+ <label class="block text-sm font-medium text-gray-700 mb-1">Trigger Type</label>
367
+ <select class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500">
368
+ <option>Log Event</option>
369
+ <option>Alert</option>
370
+ <option>API Call</option>
371
+ <option>Schedule</option>
372
+ </select>
373
+ </div>
374
+ <div class="mb-6">
375
+ <label class="block text-sm font-medium text-gray-700 mb-1">Trigger Condition (Jinja2 Template)</label>
376
+ <textarea class="w-full font-mono text-sm border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500" rows="4" placeholder="event.log.source == 'Security' and event.log.event_id == 4688">event.log.source == 'Security' and 'sekurlsa::logonpasswords' in event.log.message</textarea>
377
+ </div>
378
+ <div class="mb-6">
379
+ <label class="block text-sm font-medium text-gray-700 mb-1">Tags</label>
380
+ <div class="flex flex-wrap gap-2">
381
+ <span class="inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-blue-100 text-blue-800">credential-access</span>
382
+ <span class="inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-green-100 text-green-800">t1003</span>
383
+ <span class="inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-purple-100 text-purple-800">windows</span>
384
+ <button class="inline-flex items-center px-2 py-1 rounded-full text-xs font-medium bg-gray-100 text-gray-800">
385
+ <i class="fas fa-plus mr-1"></i> Add Tag
386
+ </button>
387
+ </div>
388
+ </div>
389
+ <div class="mb-6">
390
+ <div class="flex justify-between items-center mb-2">
391
+ <label class="block text-sm font-medium text-gray-700">Steps</label>
392
+ <button onclick="addPlaybookStep()" class="text-sm text-blue-600 hover:text-blue-800 font-medium">
393
+ <i class="fas fa-plus mr-1"></i> Add Step
394
+ </button>
395
+ </div>
396
+ <div id="playbook-steps" class="space-y-4">
397
+ <div class="playbook-step p-4 bg-gray-50 rounded-lg">
398
+ <div class="flex justify-between items-start mb-2">
399
+ <div class="w-full">
400
+ <label class="block text-sm font-medium text-gray-700 mb-1">Action</label>
401
+ <select class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500">
402
+ <option>Notify</option>
403
+ <option>EDR Isolate</option>
404
+ <option>Create Ticket</option>
405
+ <option>Run Script</option>
406
+ <option>Block IP</option>
407
+ </select>
408
+ </div>
409
+ <button class="ml-2 text-red-500 hover:text-red-700 mt-7">
410
+ <i class="fas fa-trash"></i>
411
+ </button>
412
+ </div>
413
+ <div class="mb-2">
414
+ <label class="block text-sm font-medium text-gray-700 mb-1">Name</label>
415
+ <input type="text" class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="Step name">
416
+ </div>
417
+ <div>
418
+ <label class="block text-sm font-medium text-gray-700 mb-1">Parameters (YAML)</label>
419
+ <textarea class="w-full font-mono text-sm border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500" rows="4" placeholder="channel: 'soc_teams'
420
+ message: 'Credential dumping detected on {{ event.host }}'">channel: 'soc_teams'
421
+ message: 'Credential dumping detected on {{ event.host }}'</textarea>
422
+ </div>
423
+ </div>
424
+ <div class="playbook-step p-4 bg-gray-50 rounded-lg">
425
+ <div class="flex justify-between items-start mb-2">
426
+ <div class="w-full">
427
+ <label class="block text-sm font-medium text-gray-700 mb-1">Action</label>
428
+ <select class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500">
429
+ <option>Notify</option>
430
+ <option selected>EDR Isolate</option>
431
+ <option>Create Ticket</option>
432
+ <option>Run Script</option>
433
+ <option>Block IP</option>
434
+ </select>
435
+ </div>
436
+ <button class="ml-2 text-red-500 hover:text-red-700 mt-7">
437
+ <i class="fas fa-trash"></i>
438
+ </button>
439
+ </div>
440
+ <div class="mb-2">
441
+ <label class="block text-sm font-medium text-gray-700 mb-1">Name</label>
442
+ <input type="text" class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="Step name" value="Isolate Host">
443
+ </div>
444
+ <div>
445
+ <label class="block text-sm font-medium text-gray-700 mb-1">Parameters (YAML)</label>
446
+ <textarea class="w-full font-mono text-sm border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500" rows="4">host_id: '{{ event.host_id }}'
447
+ reason: 'Credential dumping detected'</textarea>
448
+ </div>
449
+ </div>
450
+ </div>
451
+ </div>
452
+ </div>
453
+ <div class="px-6 py-4 border-t border-gray-200 flex justify-end space-x-3">
454
+ <button onclick="hideModal('create-playbook-modal')" class="px-4 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50">Cancel</button>
455
+ <button class="px-4 py-2 bg-blue-600 rounded-lg text-white hover:bg-blue-700">Create Playbook</button>
456
+ </div>
457
+ </div>
458
+ </div>
459
+
460
+ <!-- Trigger Event Modal -->
461
+ <div id="trigger-event-modal" class="fixed inset-0 bg-gray-600 bg-opacity-50 flex items-center justify-center hidden z-50">
462
+ <div class="bg-white rounded-lg shadow-xl w-full max-w-3xl">
463
+ <div class="px-6 py-4 border-b border-gray-200 flex justify-between items-center">
464
+ <h3 class="text-lg font-semibold text-gray-800">Trigger New Event</h3>
465
+ <button onclick="hideModal('trigger-event-modal')" class="text-gray-400 hover:text-gray-500">
466
+ <i class="fas fa-times"></i>
467
+ </button>
468
+ </div>
469
+ <div class="p-6">
470
+ <div class="mb-6">
471
+ <label class="block text-sm font-medium text-gray-700 mb-1">Playbook</label>
472
+ <select class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500">
473
+ <option>Credential Dumping Response</option>
474
+ <option>Ransomware Detection</option>
475
+ <option>Phishing Response</option>
476
+ <option>Brute Force Protection</option>
477
+ </select>
478
+ </div>
479
+ <div class="mb-6">
480
+ <label class="block text-sm font-medium text-gray-700 mb-1">Event Data (JSON)</label>
481
+ <div class="json-viewer" id="event-data-preview">{
482
+ "event_id": "EVT-2023-06-15-001",
483
+ "host": "WIN-SERVER-01",
484
+ "host_id": "host_12345",
485
+ "source_ip": "192.168.1.100",
486
+ "log": {
487
+ "source": "Security",
488
+ "event_id": 4688,
489
+ "message": "sekurlsa::logonpasswords detected",
490
+ "timestamp": "2023-06-15T10:30:00Z"
491
+ },
492
+ "severity": "high"
493
+ }</div>
494
+ </div>
495
+ <div class="flex items-center">
496
+ <input type="checkbox" id="use-sample-data" class="h-4 w-4 text-blue-600 focus:ring-blue-500 border-gray-300 rounded">
497
+ <label for="use-sample-data" class="ml-2 block text-sm text-gray-700">Use sample event data</label>
498
+ </div>
499
+ </div>
500
+ <div class="px-6 py-4 border-t border-gray-200 flex justify-end space-x-3">
501
+ <button onclick="hideModal('trigger-event-modal')" class="px-4 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50">Cancel</button>
502
+ <button class="px-4 py-2 bg-blue-600 rounded-lg text-white hover:bg-blue-700">Trigger Event</button>
503
+ </div>
504
+ </div>
505
+ </div>
506
+
507
+ <!-- Execution Details Modal -->
508
+ <div id="execution-details-modal" class="fixed inset-0 bg-gray-600 bg-opacity-50 flex items-center justify-center hidden z-50">
509
+ <div class="bg-white rounded-lg shadow-xl w-full max-w-4xl">
510
+ <div class="px-6 py-4 border-b border-gray-200 flex justify-between items-center">
511
+ <h3 class="text-lg font-semibold text-gray-800">Execution Details - #EX-1001</h3>
512
+ <button onclick="hideModal('execution-details-modal')" class="text-gray-400 hover:text-gray-500">
513
+ <i class="fas fa-times"></i>
514
+ </button>
515
+ </div>
516
+ <div class="p-6">
517
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-6">
518
+ <div>
519
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Playbook</h4>
520
+ <p class="text-base font-medium text-gray-900">Credential Dumping Response</p>
521
+ </div>
522
+ <div>
523
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Status</h4>
524
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800">Completed</span>
525
+ </div>
526
+ <div>
527
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Trigger Event</h4>
528
+ <p class="text-base font-medium text-gray-900">EVT-2023-06-15-001</p>
529
+ </div>
530
+ <div>
531
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Duration</h4>
532
+ <p class="text-base font-medium text-gray-900">4.2 seconds</p>
533
+ </div>
534
+ <div>
535
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Started At</h4>
536
+ <p class="text-base font-medium text-gray-900">2023-06-15 10:30:05 UTC</p>
537
+ </div>
538
+ <div>
539
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Completed At</h4>
540
+ <p class="text-base font-medium text-gray-900">2023-06-15 10:30:09 UTC</p>
541
+ </div>
542
+ </div>
543
+ <div class="mb-6">
544
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Trigger Event Data</h4>
545
+ <div class="json-viewer">{
546
+ "event_id": "EVT-2023-06-15-001",
547
+ "host": "WIN-SERVER-01",
548
+ "host_id": "host_12345",
549
+ "source_ip": "192.168.1.100",
550
+ "log": {
551
+ "source": "Security",
552
+ "event_id": 4688,
553
+ "message": "sekurlsa::logonpasswords detected",
554
+ "timestamp": "2023-06-15T10:30:00Z"
555
+ },
556
+ "severity": "high"
557
+ }</div>
558
+ </div>
559
+ <div class="mb-6">
560
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Execution Steps</h4>
561
+ <div class="space-y-3">
562
+ <div class="p-3 bg-green-50 rounded-lg border border-green-100">
563
+ <div class="flex items-center justify-between mb-1">
564
+ <div class="font-medium text-green-800">1. Alert Analyst</div>
565
+ <div class="text-xs text-green-600">Success (1.2s)</div>
566
+ </div>
567
+ <div class="text-sm text-green-700">Notified SOC team via Teams channel</div>
568
+ </div>
569
+ <div class="p-3 bg-green-50 rounded-lg border border-green-100">
570
+ <div class="flex items-center justify-between mb-1">
571
+ <div class="font-medium text-green-800">2. Isolate Host</div>
572
+ <div class="text-xs text-green-600">Success (2.1s)</div>
573
+ </div>
574
+ <div class="text-sm text-green-700">Isolated host WIN-SERVER-01 via EDR</div>
575
+ </div>
576
+ <div class="p-3 bg-green-50 rounded-lg border border-green-100">
577
+ <div class="flex items-center justify-between mb-1">
578
+ <div class="font-medium text-green-800">3. Create Ticket</div>
579
+ <div class="text-xs text-green-600">Success (0.9s)</div>
580
+ </div>
581
+ <div class="text-sm text-green-700">Created ticket #INC-12345 in ServiceNow</div>
582
+ </div>
583
+ </div>
584
+ </div>
585
+ </div>
586
+ <div class="px-6 py-4 border-t border-gray-200 flex justify-end">
587
+ <button onclick="hideModal('execution-details-modal')" class="px-4 py-2 bg-blue-600 rounded-lg text-white hover:bg-blue-700">Close</button>
588
+ </div>
589
+ </div>
590
+ </div>
591
+
592
+ <!-- Event Details Modal -->
593
+ <div id="event-details-modal" class="fixed inset-0 bg-gray-600 bg-opacity-50 flex items-center justify-center hidden z-50">
594
+ <div class="bg-white rounded-lg shadow-xl w-full max-w-4xl">
595
+ <div class="px-6 py-4 border-b border-gray-200 flex justify-between items-center">
596
+ <h3 class="text-lg font-semibold text-gray-800">Event Details - EVT-2023-06-15-001</h3>
597
+ <button onclick="hideModal('event-details-modal')" class="text-gray-400 hover:text-gray-500">
598
+ <i class="fas fa-times"></i>
599
+ </button>
600
+ </div>
601
+ <div class="p-6">
602
+ <div class="grid grid-cols-1 md:grid-cols-2 gap-6 mb-6">
603
+ <div>
604
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Event ID</h4>
605
+ <p class="text-base font-medium text-gray-900">EVT-2023-06-15-001</p>
606
+ </div>
607
+ <div>
608
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Severity</h4>
609
+ <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800">High</span>
610
+ </div>
611
+ <div>
612
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Host</h4>
613
+ <p class="text-base font-medium text-gray-900">WIN-SERVER-01 (host_12345)</p>
614
+ </div>
615
+ <div>
616
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Source IP</h4>
617
+ <p class="text-base font-medium text-gray-900">192.168.1.100</p>
618
+ </div>
619
+ <div>
620
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Timestamp</h4>
621
+ <p class="text-base font-medium text-gray-900">2023-06-15 10:30:00 UTC</p>
622
+ </div>
623
+ <div>
624
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Related Executions</h4>
625
+ <p class="text-base font-medium text-gray-900">1 execution</p>
626
+ </div>
627
+ </div>
628
+ <div class="mb-6">
629
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Event Data</h4>
630
+ <div class="json-viewer">{
631
+ "event_id": "EVT-2023-06-15-001",
632
+ "host": "WIN-SERVER-01",
633
+ "host_id": "host_12345",
634
+ "source_ip": "192.168.1.100",
635
+ "log": {
636
+ "source": "Security",
637
+ "event_id": 4688,
638
+ "message": "sekurlsa::logonpasswords detected",
639
+ "timestamp": "2023-06-15T10:30:00Z"
640
+ },
641
+ "severity": "high"
642
+ }</div>
643
+ </div>
644
+ <div class="mb-6">
645
+ <h4 class="text-sm font-medium text-gray-500 mb-2">Triggered Playbooks</h4>
646
+ <div class="space-y-3">
647
+ <div class="p-3 bg-blue-50 rounded-lg border border-blue-100">
648
+ <div class="flex items-center justify-between">
649
+ <div>
650
+ <div class="font-medium text-blue-800">Credential Dumping Response</div>
651
+ <div class="text-sm text-blue-700">Automated response to credential dumping activity</div>
652
+ </div>
653
+ <button class="px-3 py-1 bg-blue-600 rounded-lg text-white text-sm hover:bg-blue-700">View Execution</button>
654
+ </div>
655
+ </div>
656
+ </div>
657
+ </div>
658
+ </div>
659
+ <div class="px-6 py-4 border-t border-gray-200 flex justify-end space-x-3">
660
+ <button onclick="hideModal('event-details-modal')" class="px-4 py-2 border border-gray-300 rounded-lg text-gray-700 hover:bg-gray-50">Close</button>
661
+ <button class="px-4 py-2 bg-blue-600 rounded-lg text-white hover:bg-blue-700">Create Playbook</button>
662
+ </div>
663
+ </div>
664
+ </div>
665
+
666
+ <script>
667
+ // Toggle sidebar
668
+ function toggleSidebar() {
669
+ const sidebar = document.getElementById('sidebar');
670
+ const mainContent = document.getElementById('main-content');
671
+
672
+ sidebar.classList.toggle('collapsed');
673
+ mainContent.classList.toggle('expanded');
674
+
675
+ // Change the chevron icon direction
676
+ const toggleBtn = sidebar.querySelector('button');
677
+ const icon = toggleBtn.querySelector('i');
678
+
679
+ if (sidebar.classList.contains('collapsed')) {
680
+ icon.classList.remove('fa-chevron-left');
681
+ icon.classList.add('fa-chevron-right');
682
+ } else {
683
+ icon.classList.remove('fa-chevron-right');
684
+ icon.classList.add('fa-chevron-left');
685
+ }
686
+ }
687
+
688
+ // Modal functions
689
+ function showCreatePlaybookModal() {
690
+ document.getElementById('create-playbook-modal').classList.remove('hidden');
691
+ }
692
+
693
+ function showTriggerEventModal() {
694
+ document.getElementById('trigger-event-modal').classList.remove('hidden');
695
+ }
696
+
697
+ function showExecutionDetails(id) {
698
+ // In a real app, we would fetch the execution details based on the ID
699
+ document.getElementById('execution-details-modal').classList.remove('hidden');
700
+ }
701
+
702
+ function showEventDetails(id) {
703
+ // In a real app, we would fetch the event details based on the ID
704
+ document.getElementById('event-details-modal').classList.remove('hidden');
705
+ }
706
+
707
+ function hideModal(modalId) {
708
+ document.getElementById(modalId).classList.add('hidden');
709
+ }
710
+
711
+ // Add playbook step
712
+ function addPlaybookStep() {
713
+ const stepsContainer = document.getElementById('playbook-steps');
714
+
715
+ const stepDiv = document.createElement('div');
716
+ stepDiv.className = 'playbook-step p-4 bg-gray-50 rounded-lg';
717
+ stepDiv.innerHTML = `
718
+ <div class="flex justify-between items-start mb-2">
719
+ <div class="w-full">
720
+ <label class="block text-sm font-medium text-gray-700 mb-1">Action</label>
721
+ <select class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500">
722
+ <option>Notify</option>
723
+ <option>EDR Isolate</option>
724
+ <option>Create Ticket</option>
725
+ <option>Run Script</option>
726
+ <option>Block IP</option>
727
+ </select>
728
+ </div>
729
+ <button onclick="this.parentNode.parentNode.parentNode.remove()" class="ml-2 text-red-500 hover:text-red-700 mt-7">
730
+ <i class="fas fa-trash"></i>
731
+ </button>
732
+ </div>
733
+ <div class="mb-2">
734
+ <label class="block text-sm font-medium text-gray-700 mb-1">Name</label>
735
+ <input type="text" class="w-full border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500" placeholder="Step name">
736
+ </div>
737
+ <div>
738
+ <label class="block text-sm font-medium text-gray-700 mb-1">Parameters (YAML)</label>
739
+ <textarea class="w-full font-mono text-sm border rounded-lg px-3 py-2 focus:outline-none focus:ring-2 focus:ring-blue-500" rows="4" placeholder="key: value"></textarea>
740
+ </div>
741
+ `;
742
+
743
+ stepsContainer.appendChild(stepDiv);
744
+ }
745
+
746
+ // Close modals when clicking outside
747
+ window.addEventListener('click', function(event) {
748
+ if (event.target.classList.contains('fixed')) {
749
+ event.target.classList.add('hidden');
750
+ }
751
+ });
752
+ </script>
753
+ <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=S-Dreamer/playbook-execution" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
754
+ </html>
prompts.txt ADDED
File without changes