Nelson Shaw Design Project

From CSSEMediaWiki
(Difference between revisions)
Jump to: navigation, search
Line 21: Line 21:
  
 
== Initial Design ==
 
== Initial Design ==
This is my current UML diagram -- a work in progress.
+
This is my current UML diagram -- a work in progress. I think I have the basic structure, but obviously there are a few class attributes and functions missing.
  
 
[[Image:infoWarfare.png]]
 
[[Image:infoWarfare.png]]
  
 
=== Description of Classes ===
 
=== Description of Classes ===
Controller is the main class of the control module. An observer pattern is used with the GUI and Controller.
+
ControlUnit is the main class of the control module. An observer pattern is used with the GUI and Controller.
Communicator is used to set up a connection between the control and remote modules. The type of encryption can be set, and some
+
Communicator is used to set up a connection between the control and remote modules. The type of encryption can be set, by passing an EncryptionStandard object.
design is still required in terms on the encryption mechanism.
+
The use of EncryptionStandard with the various subclasses allows the program to be extended to incorporate various encryption types. The main way the remote and control
 +
units will communicate, is by serializing and sending Task objects. Once an object is serialized it is then encrypted and sent. When received it is first decrypted and then
 +
deserialized. By using the strategy pattern for the Task class, it allows easy modification to add new functionality to the program. Once a task is performed by the
 +
remote program, data is added to the task which is then sent back to the control unit. The data class can be one of various types, and the control unit will contain a list
 +
of these data objects which can then be displayed by the GUI.
  
A considerable design issue is the idea of tasks that the module can perform. At the moment, various implementations of a task
 
can be created using sub classing. At the moment this design is not optimal and future refinement is intended.
 
  
 
Data is a class that is intended will carry information between the modules.
 
Data is a class that is intended will carry information between the modules.

Revision as of 09:29, 31 July 2010

Contents

Trojan Project

As part of the COSC429 Information Warfare course, development of a Trojan module is required.

The software should have command and remote modules, which are connected together via sockets. Functionality such as screen capture, key log capture and remote file browsing is required.

A more formal description is shown below.

Design Study

A current log of work spent on the project can be found here Design Project Log

Requirements

  1. Secure - Components and communication of software should be secure and unable to modify
  2. Maintainability - Easy to add new functionality (e.g. Multiple remote modules)
  3. Extensible - Add additional software components easily (e.g. Software to deliver remote module onto target system)

Constraints

Remote and control module communication, processing speed and associated overhead costs.

Initial Design

This is my current UML diagram -- a work in progress. I think I have the basic structure, but obviously there are a few class attributes and functions missing.

InfoWarfare.png

Description of Classes

ControlUnit is the main class of the control module. An observer pattern is used with the GUI and Controller. Communicator is used to set up a connection between the control and remote modules. The type of encryption can be set, by passing an EncryptionStandard object. The use of EncryptionStandard with the various subclasses allows the program to be extended to incorporate various encryption types. The main way the remote and control units will communicate, is by serializing and sending Task objects. Once an object is serialized it is then encrypted and sent. When received it is first decrypted and then deserialized. By using the strategy pattern for the Task class, it allows easy modification to add new functionality to the program. Once a task is performed by the remote program, data is added to the task which is then sent back to the control unit. The data class can be one of various types, and the control unit will contain a list of these data objects which can then be displayed by the GUI.


Data is a class that is intended will carry information between the modules.

Design Critique

Criticism of design goes here.

Design Improvements

Possible improvements.

Thanks to User: James Ashford for the project page template.

Personal tools