Canstralian commited on
Commit
9f9dcd8
·
verified ·
0 Parent(s):

initial commit

Browse files
Files changed (4) hide show
  1. .gitattributes +35 -0
  2. README.md +13 -0
  3. app.py +68 -0
  4. requirements.txt +2 -0
.gitattributes ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
README.md ADDED
@@ -0,0 +1,13 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ title: Team Purplle
3
+ emoji: 🐠
4
+ colorFrom: gray
5
+ colorTo: indigo
6
+ sdk: gradio
7
+ sdk_version: 5.12.0
8
+ app_file: app.py
9
+ pinned: false
10
+ license: mit
11
+ ---
12
+
13
+ Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
app.py ADDED
@@ -0,0 +1,68 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import pandas as pd
3
+ import plotly.express as px
4
+ from transformers import pipeline
5
+
6
+ # Sample data for CVEs
7
+ cve_data = {
8
+ 'CVE ID': ['CVE-2023-0001', 'CVE-2023-0002', 'CVE-2023-0003', 'CVE-2023-0004', 'CVE-2023-0005'],
9
+ 'Severity': ['High', 'Medium', 'Low', 'High', 'Medium'],
10
+ 'Description': [
11
+ 'A critical vulnerability in the web application framework.',
12
+ 'A medium-severity vulnerability in the database management system.',
13
+ 'A low-severity vulnerability in the network firewall.',
14
+ 'A critical vulnerability in the operating system kernel.',
15
+ 'A medium-severity vulnerability in the web server.'
16
+ ],
17
+ 'Published Date': ['2023-01-01', '2023-01-02', '2023-01-03', '2023-01-04', '2023-01-05']
18
+ }
19
+
20
+ # Convert the data to a DataFrame
21
+ cve_df = pd.DataFrame(cve_data)
22
+
23
+ # Function to filter CVEs by severity
24
+ def filter_cves(severity):
25
+ filtered_df = cve_df[cve_df['Severity'] == severity]
26
+ return filtered_df
27
+
28
+ # Function to generate a bar chart of CVEs by severity
29
+ def generate_cve_chart():
30
+ fig = px.bar(cve_df, x='Severity', y='CVE ID', color='Severity', title='CVEs by Severity')
31
+ return fig
32
+
33
+ # Function to analyze the sentiment of a CVE description
34
+ def analyze_sentiment(description):
35
+ sentiment_pipeline = pipeline('sentiment-analysis')
36
+ result = sentiment_pipeline(description)
37
+ return result
38
+
39
+ # Create the Gradio app
40
+ with gr.Blocks() as demo:
41
+ # Title and description
42
+ gr.Markdown("# Purple Teaming Cyber Security Dashboard")
43
+ gr.Markdown("This dashboard provides threat intelligence and CVEs for purple teaming.")
44
+
45
+ # CVE Filter
46
+ with gr.Row():
47
+ severity_filter = gr.Dropdown(choices=['High', 'Medium', 'Low'], label='Filter by Severity')
48
+ cve_table = gr.Dataframe(label='CVEs', value=cve_df)
49
+
50
+ # Event listener for severity filter
51
+ severity_filter.change(fn=filter_cves, inputs=severity_filter, outputs=cve_table)
52
+
53
+ # CVE Chart
54
+ with gr.Row():
55
+ cve_chart = gr.Plot(label='CVEs by Severity')
56
+ cve_chart.plot(generate_cve_chart)
57
+
58
+ # Sentiment Analysis
59
+ with gr.Row():
60
+ description_input = gr.Textbox(label='CVE Description')
61
+ sentiment_output = gr.JSON(label='Sentiment Analysis')
62
+ analyze_btn = gr.Button('Analyze Sentiment')
63
+
64
+ # Event listener for sentiment analysis
65
+ analyze_btn.click(fn=analyze_sentiment, inputs=description_input, outputs=sentiment_output)
66
+
67
+ # Launch the app
68
+ demo.launch(share=True)
requirements.txt ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ pandas
2
+ matplotlib