-
Notifications
You must be signed in to change notification settings - Fork 7
/
Copy pathREADME.txt
121 lines (83 loc) · 4.29 KB
/
README.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
CS 6301-503 Software Defined Networking
Professor:
Timothy Culver
Team Members:
Stephen Blystone
Taniya Riar
Juhi Bhandari
Ishwank Singh
Project Name:
Machine Learning Approach for an Anomaly Intrusion Detection System using ONOS
Project Report:
Machine Learning Approach for an Anomaly IDS using ONOS.docx
Project Presentation:
Project Presentation.pptx
======================================================================
SETTING UP THE PROJECT
For the ONOS VM:
Follow the instructions in the "ONOS 1.12 installation Guide.docx" Guide.
For the Mininet VM:
Follow the instructions in the "Mininet VM Guide.docx" Guide.
For the Application VM:
Follow the instructions in the "App Installation Guide.docx" Guide.
======================================================================
RUNNING THE PROJECT
Follow the instructions to run the project and to stop running the project in the "Run Applications Guide.docx" Guide.
======================================================================
FILES IN PROJECT DIRECTORY
• Elasticsearchdata_csv.ipynb
iPython Jupyter Notebook used to visualize the ElasticsearchNormaldata.csv and use elbow graph to determine K value.
• ElasticsearchNormaldata.csv
"Normal" traffic data stored in Elasticsearch.
• Flow Diagram.pptx
Diagrams used in presentations.
• Important Netflow Fields.txt
Sample NetFlow data captured with only important fields remaining.
• Machine Learning Approach for an Anomaly IDS using ONOS.docx
Project Report
• Netflow Field Explanations.txt
Explanation of NetFlow fields.
• Project Presentation.pptx
Project Presentation.
• README.txt
This README file.
• sampleNetflowData.txt
Sample raw NetFlow data.
• SDN Project Proposal.docx
Our Project Proposal.
• SDNProjectDemoFinal.mp4
Demo Video showing how to launch each application, starting the "Normal" traffic, viewing visualizations in Kibana, triggering "anomalies", and how to view flow rules in the ONOS web gui.
======================================================================
PROJECT GUIDES (located in the "Guides" directory)
• App Installation Guide.docx
How to install and configure everything in the Application VM.
• Mininet VM Guide.docx
Install required packages into the VM to run Mininet and trigger the anomalies.
• NetFlow Guide.docx
Guide for how to configure NetFlow on Open vSwitch.
• ONOS 1.12 installation Guide.docx
3 methods of installing and configuring ONOS:
Option 1 installs an OVA file and provides a link to a Distributed ONOS tutorial.
Option 2 installs ONOS as a service (I did not get this to work).
Option 3 is the recommended option. There is also information for configuring IntelliJ if building an Internal ONOS application.
• ONOS Rest API Guide.docx
Contains information on how to view a nice webpage on localhost (after launching ONOS) to query the ONOS REST API.
• Run Applications Guide.docx
How to start and stop all applications in the Big Data pipeline and run the demo.
======================================================================
CODE DESCRIPTIONS (located in the "Code/src" directory)
NOTE: All code files use UNIX EOL characters (line-feed "\n"). Opening these files in most Windows programs will not maintain the formatting, since Windows expects carriage-return line-feed "\r\n". If you use Windows, opening the files using Notepad++ will maintain the correct formatting.
• Client.py
Generates random “Normal” traffic.
• index_ES.txt
Information placed into Kibana Dev Tool to create our Elasticsearch index.
• scapyPortScan.py
Use Python library Scapy to perform a UDP port scan from port 1 to port 65535 on the target device.
• Server.py
Receives messages from Client.py from other hosts and responds.
• setup_topo.py
Setup Mininet topology, configure Open vSwitches with NetFlow, call Client.py and Server.py for each Mininet host.
• sparkKafka.py
Perform feature engineering to get our features and send to Elasticsearch.
• sparkMachineLearning.py
Train K-Means algorithm on data in Elasticsearch, perform feature engineering on new data, standardize new data and check if anomaly. If anomaly detected, send REST API call to ONOS.