-
Notifications
You must be signed in to change notification settings - Fork 0
/
requirements_list.txt
51 lines (45 loc) · 2.59 KB
/
requirements_list.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
Requirements List
Project Concept: Honey Pot
3 Main Parts to the Project: Framework/Plugins, Database, Display/Data Analytics
Program Requirements:
- The program must listen to port requests, record the information from those requests in a databse, and respond accordingly to those requests
- The database must record the following information about the incoming requests, at a minimum:
- Source of the requests
- Destination of the request
- IP Address of the source
- Port that was queried/accessed
- The data that was transmitted during the port request, this includes:
- Header information
- Username/Password for SSH requests
- The information from the database will then be displayed in such a manner that tracking and trending are possibilities.
- Required plugins:
- Telnet
- SSH
- HTML
- Optional plugins:
- "Mop-up"
Design Constraints:
- The framework and plugins must be written in Python.
- The application must be deployable upon a Linux based system, Debian and Redhat packages.
- The display and data analytics must submit requests requests to the database in Json, and it must respond to the requests in Json.
- The entire program must be one touch installation capable.
- The program and database must be slim enough to be deployed upon a Raspberry Pi.
- Any port listening will use TCP when relevant, no UCP.
- It is recommended to use SQL for the database.
- Must have .rpm and .deb files.
Functional Requirements:
- There must be two methods to access the honey pot:
- Outward facing access: requests to ports that will then be monitored, recorded, and responded to accordingly.
- Inward facing access: used to access the database in order to display the information and related data analytics .
- The framework will open sockets from the plugins, accept the connections, and spawn connections of the type related to the specific plugin/port.
- Each plugin will have:
- Its own table for database storage
- Its own scheme
- The ability to override the standard port settings for the plugin
- The display of the data will be a dynamic display, with either a standard or modifiable time between requests to the database.
- The application must have a configuration file (also written in Python).
- Application must include startup scripts (Professor volunteered to write if necessary).
Non-functional Requirements:
- Possible deployment upon Windows or iOS machines.
- Speed of the application must be limited only by system cabilities, such as CPU
- Unit tests must also be provided.