CHAPTER1: Introduction
1.1 Context and Preliminary Investigation
1.1.1 Topic Background
This system is not designed by keeping any particular organization/corporate in mind. Almost all corporate/organization can use this proposed system for centrally managing their clients along with increased level of security for their organization/corporate systems.
With the advancement of technology, there is an explosion in the number of computers that are up and active. The number of computers has reached 2 Billion and the number of internet users has crossed 1.5 Billion. As the number of hosts increase by the day, the networks are becoming larger and more bulky. The common challenges people face as network administrators, are addressing the immediate problems of managing workstations, and networks, but also dealing with the resulting real world results of success or failure of the task. As the networks are growing, so are the problems with them, but with little or no increase in the number of network administrators.
Net Applications has released their August 2009 figures which show that Windows XP still commands 71% market share. Even after eight years Windows XP still remains the operating system of choice. Vista was only able to garner 18% market share with Windows 7 at 1%. (Ron Schenone “Windows Xp still holds 71% market share” lockergnome.com: 1st Nov 09 11:20 am)
(Image source : www.jacobpierce.com)
The figures above clearly indicate that the majority of the workstations have Windows XP as the operating system. Thus the developer decided to make a windows based application that would be extremely easy to use and also advanced in terms of features.
1.1.2 Topic of the System
Net Buddy (Network Admin tool) is an application being designed to completely automate the work of a Network Administrator. Side by side, it would also provide for basic network security.
In the modern world, security has become a major concern for every organization. Government Organization, Public Buildings, Schools, Corporate Offices, Defense Establishments, Residential Apartments etc; the level of security needs might differ but effectively security management is the need of the day.[1]
(Image source: delamagente.wordpress.com)
Thus the developer has made the application in the view of incorporating it in a corporate network where security and automation can be taken care of from one central location.
The main purpose of this system is to let the administrator centrally manage the network, block outside users and notify about new system's entering into corporate network. It would entirely automate the work done manually by a network administrator.
The developer made system would also provide control over network hardware in the corporate/organizations. A corporate/organization will have a large number of users working on the same network. It is not always feasible for the Network Administrator to go around to each workstation, and perform tasks that can be done remotely. The proposed system is going to provide such type of functionality by which administrator will manage the corporate IT resources centrally. System will also provide for the urgent notification of any unauthorized access into the network.
1.1.3 Purpose of Implementation
In an organization where the workstations are generally apart from each other, often distributed in various floors, manual work becomes too bulky to handle and tasks such as shutting them down are added duties to the already hectic needs of troubleshooting the workstations.
Most of the problems are minor in nature and can be worked out if the communication gap is decreased between the network administrator and the user at the workstation. The most common solution among is the installation of a specific software at the client workstation after having a chat with the user. This generally requires the administrator to manually go to the specific workstation and then copy the software to the client's workstation and then install it. This method wastes a lot of time.
This calls for an automation of the job of the network administrator. This tool, “The Net Buddy” would provide the network administrators the freedom to sit on one place and still address any problem on the entire network. The users at each workstation would be able to interact with the administrator through the tool. It would provide comprehensive admin and maintenance of workstations, with access to systems while they are unattended or in the background while in use. It would be of great help in managing the systems on or off from one user friendly interface. Such kind of a system would also enable the admin to remotely see the problem through the software.
The system would also provide for the control over access to media in through hardware blocking.
1.1.4 Target Users of the System
The Organizations where the system would find implementations are the following:-
i. Corporate organizations which are looking for an effective solution for the automation of the network administrator tasks, and to avoid basic trespass of the network.
ii. School/Universities us who want intrusion detection, troubleshooting and communication functionalities.
iii. IT related Organization offices where the workstations/ administrator ratio is high and so is the confidentiality of data.
All the above institutions need to have the hardware and software requirements of the system.
The proposed software is meant to be installed at every workstation in the LAN, so as to enable the Network Administrator to control its functionalities. The prime users of the system based on the login credentials that they provide would be:
System Administrator:
System Administrators would be able to login from any workstation and do the administrative tasks remotely. This would include Network Administrators and Network Managers.
Workstation Users: End users are responsible for notifying the administrator about the problem.
1.1.5 Problem Context
In case of any problem with the workstation or the network, there is little or no scope for the user to get an immediate response, if the network administrator is on the move. In case there is a file to be sent to a specific number of workstations, in an organization, it would kill a lot of time of the network administrator to do it manually. A faster way has to be devised.
Leakage of confidential data through USB drives or CD's is a common phenomenon. There is generally strict manual security enforced to look into the following, but an affordable computerized solution is needed.
The bulky size of the organization, nowadays, restricts the network administrators to perform power management. An effective solution has to be sought out.
As the size of the network increases, so does the number of users, and so does its vulnerability. With the unsocial elements looking for open networks, it is very essential to have a way of detection of unwanted workstation over the network.
1.1.6 Rational behind the system
The above mentioned problems can be solved by a network admin tool that would be able to monitor the LAN computers from anywhere in the network and also give instructions to them whenever necessary. A good networking software/system has is highly scalable, robust high on performance and has no relative downtime. The developer has ensured that the features listed are present in the proposed system. The software would provide the following primary benefits.
1.1.7 Tangible Benefits
These are the quantifiable benefits that a corporate/organization will get by using the proposed system.
i. Reduce Software Cost: In corporate, the software cost is significantly reduced as the remote desktop software and the network administrator software can be both replaced by “Net Buddy”.
ii. Less human power cost: Enabling and disabling of hardware and the shutting down of workstations in bulk, at once, from one workstation significantly reduces the amount of time to do so. Thus reducing the total human effort and ultimately reducing cost.
iii. Decreased Training Cost: The new system would provide significantly reduce the cost for training of users as the interaction would be user friendly and the software would be easy to use even for the novice users.
iv. Reduced Network Hardware cost: The added need to maintain hardware for sharing of data and executables would be significantly reduced as the network administrator would be able to copy files from anywhere on the LAN to the specific workstation he/she wishes to.
1.1.8 In-Tangible Benefits
These are the indirect benefits which cannot be measured. Such types of benefits are:-
i. Increase employee productivity: By using the proposed system, the administrator would be able to handle multiple user problems at once and also solve them in significantly less time, thus letting the user concentrate on his work and increasing employee productivity.
ii. Reduce illegal activity: In any organization, data on the network has to be routinely monitored to assure that there is no illegal usage of the resources. This tool would try to curb down the illegal internet packets by monitoring them and notifying the administrator whenever such an incident is detected.
iii. Time Saving: With the tasks such as the shutting down and disabling hardware, remote installation the network administrator and users would benefit from the network
iv. Better Security: The proposed system would provide for security in an environment where the MAC ID is static. The proposed system would try to detect any intrusion in the network and notify the administrator accordingly.
v. Less user training: The administrator will have very user-friendly environment in terms of functionalities and will be very flexible for usage.
1.1.9 Goal of System Development
1.1.9.1 Project Goal
The overall goal of the project is to study, analyze, design and implement a windows based application which would provide basic communication facilities between the network administrator, and the workstation users. The prime functionality is however to enable the administrator to login from anywhere and let him manage the network centrally. Besides these, the system would also provide notification about any unauthorized users in the network and would enable the administrator to manage the hardware on the network.
1.1.9.2 Academic goal
The main academic goal is to gain skills, knowledge and experience in project management and programming of a network system which integrates a variety of features to solve a real life problem (Automation of the task of the network administrator).
It is essential to complete the project within the specified time and budget and produce the deliverables throughout the development of the system and carefully document the product and processes from inception to the transition phase. From the academic viewpoint, the study of new technologies, languages, database concepts, and project management skills are very important. This being a chief project of our curriculum, the developer has to build a system according to the industry standards.
1.1.10 Objectives of System Development
1.1. 10.1 Project Objectives
The prime objectives of the proposed system are the following:-
1) Enable Communication between the network users and the Administrator.
2) Let the Administrator log in from any workstation on the LAN
3) Provide the Administrator the functionalities of Remotely Shutting Down network workstations simultaneously.
4) Allow the Administrator to remotely enable and disable hardware.
5) Try to resolve the DNS of a packet and notify if the content is prohibited.
6) Try to detect any possible intrusion into the network by comparing the list of bound MAC ID's and the ones present on the network.
1.1. 10.2 Academic Objectives
The developer has to follow a standard procedure and complete the deliverables according to the chosen methodology. The system to be implemented requires the combination of programming skill, development, and a friendly interface design. This project would enable the developer
1.1.11 Success Criteria
The following are the minimal criteria for evaluating the success of the project:
1. Meeting user requirements: The Network Administrator would be able to do the core functionalities and will try to implement the enhanced and special features. Evaluator: Supervisor, Developer, End User.
2. Functional Requirements: Whether each and every module of the project is operating as intended will determine the degree of success of the project. Each and every module has a certain role in the project. When all the modules will function as desired, the project will be considered successful. Evaluator: Supervisor, Developer.
3. Passing the test cases: Certain tests have been mentioned in the previous section. If the project passes the test criteria, it will be considered as successful.
1.1.12 Scope and Function of the Project
1.1.12.1 Core Functionalities
1) Chat Client - A LAN based chat client for the users to communicate with the admin and a way to notify the admin as soon as he logs in.
2) Anyplace login: The administrator can login from any workstation in the network and do his duties through the software.
3) File Sending - Sending the files to a remote PC and saving them at a preferred location.
4) Hardware Monitoring - The administrator can monitor the hardware of the computers on the network and also receive notification as to on which workstations, the specific media is inserted. E.g. Inserting Pen Drive
1.1.12.2 Enhanced Functionalities
1) Remote Power management - Remotely shutting down, rebooting or setting multiple PC's to go to sleep from one location.
2) Process Initiation - Initiation of a setup or process on the client workstation, in the background.
1.1.12.3 Special Functionalities
1) Intrusion Detection - In a scenario where the MAC addresses would be bound to the IP addresses, any change will be tracked down and notified.
2) Windows Service - The process would work as a windows service and it would require authentication
1.1.13 Evidence for limiting project scope
Although the developer could add a lot many functionalities to the project, it was rather not feasible in the given time duration. The project scope is limited to resolve the problems in the given amount of time following the methodology chosen and finally end up completing all the functionalities stated. Any more functionality can be viewed as future enhancements of the project.
1.1.14 Major Deliverables
The developer is entitled to produce the following as the deliverables according to the schedule made.
1) PPF and PSF
2) Planning and Research Documents
3) Complete System
4) Full Documentation
5) User Manual
6) Presentation
1.2. Problem Description
1) In case of any problem with the workstation or the network, there is little or no scope for the user to get an immediate response, if the network administrator is on the move.
Justification: The Network administrator being a busy guy, is mostly not in the cabin or the workstation assigned to him. Whenever, there is a problem to a particular user, there should be some notification sent to the network admin to come as soon as possible.
2) In case there is a file to be sent to a specific number of workstations, in an organization, it would kill a lot of time of the network administrator to do it manually. A faster way has to be devised.
3) Leakage of confidential data through USB drives or CD's is a common phenomenon. There is generally strict manual security enforced to look into the following, but an affordable computerized solution is needed.
4) The bulky size of the organization, nowadays, restricts the network administrators to perform power management. An effective solution has to be sought out.
5) As the size of the network increases, so does the number of users, and so does its vulnerability. With the unsocial elements looking for open networks, it is very essential to have a way of detection of unwanted workstation over the network.
1.2.5.1 Test Plan
1.2.5.1.1 Introduction to Testing
The Rational Unified Process proposes an iterative approach, which means that you test throughout the project. This allows one to find defects as early as possible, which radically reduces the cost of fixing the defect. Tests are carried out along four quality dimensions: reliability, functionality, application performance, and system performance.
According to the RUP model the purpose of testing while using an object oriented model would be the following:
* To verify the interaction between objects.
* To verify the proper integration of all components of the software.
* To verify that all requirements have been correctly implemented.
* To identify and ensure that defects are addressed prior to the deployment of the software
Ensure that all the defects are fixed, retested and closed
1.2.5.1.2 Introduction to Testing
To ensure the proper kind of evaluation and the fulfillment of the above criteria the following testing techniques have been chosen:-
1.1 White Box testing
White-Box testing is a program based testing which uses program statements and data dependencies to derive test cases. This type of testing is done by the developer and generally is on a code fragment that implements logic, of the system.
Unit Testing: Unit testing will be done as soon as the code of a particular logic is done, to ensure that the logic works as per required.
1.2 Black Box Testing
Black Box testing is the one which is done is an un-controlled environment, by someone other than the developer. To him/her the code is not visible and the tests are done to replicate the user functionality.
Functional testing: This is user acceptance testing done to ensure that the system functionalities matches the requirement of the user.
1.2.8 Risk Management
Risk
Risk Impact
Contingency Plan
Probability
Impact
Risk Exposure
System not in compliance to necessities
Schedule
Performance
Adherence to QA procedures.
Strictly follow the specs given by Client
Probable
Medium
Medium
Unable to meet delivery deadlines, as estimated
Schedule
The developer is following the Gantt chart. If they are not feasible, then discuss with supervisor.
Probable
HIGH
HIGH
Loss of physical facilities (Breakdown of power supply)
Schedule
Alternate power source obtainable.
Medium
Medium
Medium
Complexity of application
Schedule
Performance
Deploy skilled people
Ensure ongoing knowledge transfer
Medium
Medium
Medium
Unclear Requirements
Performance
Review prototype with customer
Medium
Medium
Medium
Methods and tool selection
Schedule
Performance
Discussed the Issue with the Client and settle down everything before starting
Medium
Medium
Medium
Part 2: MAIN BODY CHAPTER 3: LITERATURE REVIEW
Research is considered to be the most important phase of the development cycle. It is this which determines how relevant the proposed system is. A good research sets the foundation for a strong system. It is this first step that tells whether developing the desired functionalities would be possible or not.
The developer has carried out a lot of research on the following topics which would constitute the main functionalities of the system. It has also been taken into account that similar software is available in the market, so a comparative study is also in the cards.
2.3.1 Secondary Research
2.3.1.1 Academic Research
The following table represents the boom of the internet in Asia and around the world. The point to note here is that the number of workstations is increasing in private networks, but still the troubleshooting and maintenance jobs do not have an effective solution despite the network becoming a big and bulky one to handle.
INTERNET USERS AND POPULATION STATISTICS FOR ASIA
ASIA REGION
Population
( 2009 Est. )
% Pop.
of World
Internet Users,
Latest Data
Penetration
(% Population)
User Growth
( 2000-2009 )
Users %
of World
Asia Only
3,808,070,503
56.3 %
704,213,930
18.5 %
516.1 %
42.2 %
Rest of the World
2,959,734,705
43.7 %
964,656,478
32.6 %
291,1 %
57.8 %
WORLD TOTAL
6,767,805,208
100.0 %
1,668,870,408
24.7 %
362.3 %
100.0 %
(Source : http://internetworldstats.com/stats.htm, 2009)
2.3.1.1 Domain Analysis
The core domain that needs to be studied in this project is all about networking and windows registry tweaks implementation. The developer did a first hand research on the following topics to get an idea of how to use them in his proposed system.
1) Packet Structure and use of Port numbers - Just on preliminary research, it was found out that the major part of the project would need socket programming.
i. Sockets
In socket-based network programming, you don't directly access the network interface device to send and receive packets. Instead, an intermediary connector is created to handle the programming interface to the network. Assume that a socket is a connector that connects your application to a network interface of your computer. For sending and receiving data to and from the network you should call the socket's methods. (C# network programming', written by Richard Blum)
ii) Socket programming in C#
The 'System.Net.Sockets' namespace contains the classes that provide the actual .NET interface to the low-level Winsock APIs. In network programming, apart from which programming language to use there are some common concepts like the IP address and port. IP address is a unique identifier of a computer on a network and port is like a gate through which applications communicate with each other. In brief, when we want to communicate with a remote computer or a device over the network, we should know its IP address. Then, we must open a gate (Port) to that IP and then send and receive the required data.
2) ARP list - The ARP list is a list of entries kept in the memory of the computer with a windows operating system. It contains the MAC id's and the associated IP addresses of all the workstations on the network. This would help in the identification of the unauthorized personnel in to the network. Since the ARP contains the MAC id's of the workstations of the network, a direct comparison between the authorized users and their MAC id's and that available through the ARP list would reveal any unidentified unauthorized user.
Using the ARP list in the system
The two functions exist in the Microsoft library inetmib1.dll, the developer found out that the function SnmpExtensionQuery is used to resolve the SNMP requests, but before using it, one must call the SnmpExtensionInit function to initialize the SNMP extension agent DLL. So, at the class construction, I load this library and get the addresses of these functions, and then call SnmpExtensionInit to initialize the SNMP extension agent DLL.
(http://msdn.microsoft.com/en-us/library/aa378021(VS.85).aspx)
3) DNS Resolution
• DNS is the table maintained by the DNS servers, either locally or on the internet, that keep a record of the IP addresses and the associated hostnames. The developer came to notice that if he could resolve the DNS for packets than it would be easy to keep a record of and ultimately get hold of a user accessing restricted sites. Domain names are used generally as a convenient way of locating information and reaching others on the Internet. DNS Resolution is the procedure used to resolve an IP address from a domain name
www.networkclue.com/files/Domain%20Name%20Resolution.ppt
4) Windows Registry tweaking
The developer understood that the functionalities like the blocking of hardware would need to edit the registry of the target workstation. The registry keys store the important values that determine the working of applications and hardware on the windows platform. The developer found out that through a minor number of registry changes, the desired task can be accomplished. It was also taken into notice that these changes would not be possible remotely, so a trick to do the same is upon the developer now.
http://www.pctools.com/guides/registry/id/3/
Architecture for the proposed system
Client-server software architecture is a 2 tier, distributed system model which shows how data and processing is distributed across a range of components. Two tier architecture means that the client acts as one tier, and the application in combination with server (Business logic + database) acts as another tier. This architecture model distinguishes the client systems from server systems and enables their communication (sharing of files and resources) over a computer network.
Clients most often are the web browsers. Servers typically include web servers, database servers and mail servers.
Each instance of the client program makes service requests to one or more connected servers. In turn, the servers accept these requests, process them, and return the requested information to the client. For ex, a web browser is a client program at the user computer that may access information at any web server in the world.
Characteristics of a client:
- Initiates requests
- Waits for replies
- Receives replies
- Usually connects to a small number of servers at one time
- Typically interacts directly with end-users using a graphical user interface
Characteristics of a server:
- Never initiates requests or activities
- Waits for and replies to requests from connected clients 2-tier architecture of Client/Server model
- A server can remotely install/uninstall applications and transfer data to the intended clients.
The interaction between client and server is often described using sequence diagrams. When both the client- and server-software are running on the same computer, this is called a single seat setup.
The client/server model has become one of the central ideas of network computing and is therefore used by most business applications today. Standard networked functions such as email exchange, web access and database access, are based on the client/server model.
3 - Tier Architecture
Diagrammatical Representation:
Why selected Client-Sever Architecture for the project? (Advantages):
Centralized data-storage: All data-resources and functionalities can be administered from one central computer since business logic layer and the database both resides at the server. All updates from different computers finally goes to the centralized database (i.e. the File Server) which makes the client machines across the network, have a faster and error-free data access as compared to a P2P paradigm.
Data Security: All data are stored on the servers, which generally have far greater security controls than most clients. Servers can better control access and resources, to guarantee that only those clients with the appropriate permissions may access and change data.
Data Integrity: All requests for add, delete, update, calculate, store functionalities goes to the server which are further replicated to all the client machines.
High performance and scalability: Business logic and database are physically close, which provides higher performance. Thousands of users can access the same database at the same time & get the latest updated information. Adequate performance for low to medium volume environments.
Versatile: Can function with multiple clients of different capabilities (system-configurations).
Ease of maintenance: Possible to upgrade, repair, replace, or even relocate a server while its clients remain both unaware and unaffected by that change.
No need of direct information interchange among clients: Since all updates are saved at the server therefore there is no need to facilitate any information sharing among end-users at client machines (like in peer-to-peer model), so as to reduce complexity. Direct information interchange is much faster and flexible to access between the server & clients. This satisfies the approach of the client-server model.
Handles both LAN and Internet clients: LAN clients- inter-organisation client machines in one office. Internet clients- if the clients are geographically separated or have travelled to some other location.
Other Advantages: straightforward distribution of data, 'friendliness' of the user interface, ease of use, makes effective use of networked systems, may require cheaper hardware, recommended for networks requiring a high degree of reliability.
In view of the above advantages and the compatibility with the proposed solution, the developr decided to use Client Server architecture.
CHAPTER 4: Research Methods
The developer had conducted immense study that is documented and shown in Chapter 4. Now, if a research work is done then it should also be analyzed so as to understand how the research proves importance to the proposed system.
. This chapter includes the detailed discussion and analysis of the primary research conducted by the developer. The findings are also justified with the detail analysis of secondary research carried out by the developer with justification. This section will help the developer in designing the business modeling and implementing the entire system.
4.1 Primary Research Analysis
Primary research was conducted in a variety of ways. The result and justification of the questionnaires and the interview questions are as follows. Analysis of both data gathering techniques is as follows
QUESTIONNAIRE ANALYSIS
2 In your views, what type of medium is most preferable for data transfer
(Please check all that apply)
i) USB Drive
ii) Floppy Drive
iii) Computer Sharing
iv) CD/DVD
v) Other, please mention______________________
Justification: This question would help the developer to determine the most used media by the users to carry their data in and out of the organization. Net Buddy would keep an eye on such workstations where data is very sensitive and would disable the USB Drive and CD Drive.
Analysis: The users use the USB devices to carry data around. A small fraction of them use CD's and DVD's too, but little or no use is of the other ways. Thus it would be sufficient to block the USB Drive and the CD Drive.
3 Have you anytime wished to communicate with your Network Admin spontaneously in a time of breakdown of our workstation?
Justification: The developer wished to know whether the users actually require the urgent attention of the Network Administrator or not.
Analysis: The users really need to communicate with the Network Admin as soon as possible. Net Buddy would enable the users to send notification to the administrator, by various means, thus ensuring that the problem is brought in front of the concerned person right through.
4 Do you have any firewall installed in your workstation? ?
If yes, please name it? ___________________________________________
Justification: The developer wished to find out whether there would be any firewall restricting the traffic on the network or on the client workstation.
Analysis: The developer found out that there is no third party firewall installed on the workstations. The only firewall is the windows firewall which is turned off.
5 How frequently have you faced the problem of software you require, and are not available on your workstation?
i) Very frequently
ii) Occasionally
iii) Rarely
Justification: This question will help the developer confirm the intensity of the problem of a particular software installation that is needed.
Analysis: The problem of a much needed software installation is quite frequent. Net Buddy would take care of the software installation from now on.
6 How do you get your network configuration on your workstation?
i) Statically configured by administrator
ii) Dynamically assigned by DHCP
iii) Don't know
Justification: The above question would help the developer determine whether the functionality of changing network configuration is required in the system or not.
Analysis: It turns out that majority of the users have a statically configured workstation, thus such a functionality of changing network configuration is not much needed.
7 Do you ever wish to communicate with your peers in the same organization?
Justification: The question would help the developer determine whether a chat functionality shall be given to the peers or not.
Analysis: The peers wish to communicate with each other, thus giving the users the functionality of chatting peer to peer can be given a second thought.
8 Have you ever faced problems with network configuration in your system?
i) Very frequently
ii) Occasionally
iii) Rarely
Justification: The above question would help the developer decide whether the functionality of the network configuration change is required or not.
Analysis: It was found out that such problems are occasional. Thus Net Buddy would try to add the functionality if possible.
9 Which operating system do you frequently use on your workstation?
i) Windows XP
ii) Windows Vista
iii) Linux
iv) Others
Justification: The developer wishes to confirm that a windows based application would do fine with the workstations.
Analysis: Most of the users use Windows XP as expected and the minority of them who use others, agreed that they too spend most of their time on an XP platform. Thus Net Buddy is entirely windows based application.
INTERVIEW QUESTIONS
1. Does higher management get any confirmation when any important data is sent out from your organization without their permission?
Justification: The developer is trying to know if there is any way that the organization can keep track of the media being used and by whom to retrieve data at what time.
Analysis: The developer found out that the management does not get any report or any notification about the data being copied through media.
2. Do you keep record of the systems coming into your corporate network? If yes, how do you manage?
Justification: The developer gets to know whether there is any existing system or method that is keeping track of the number of systems on the network.
Analysis: The developer came to know that there is no such system in place. The Net Buddy would soon change this and make the organization a safe network.
3. Do you have record of all the systems currently connected to your organization network?
Justification: The developer wished to know that whether the organization keeps a list of assigned IP addresses and the associated MAC id's.
Analysis: The organizations the developer surveyed, kept lists of the assigned IP addresses and MAC addresses along with the name of the owners of the computers they were assigned to.
4. Describe the security measures that are used to prevent unauthorized access to your network
Justification: The developer wished to know what the various security checks on the unauthorized users were.
Analysis: It is finally known that the only way of access security that was being followed was static IP addresses and subnet masking. This needs to be looked into.
4.2 Academic Research
4.2.1 Technical Research
Java Networking Programming:
Java is a platform independent programming language which was the first one to have provided secure network application. Its salient features like security and object oriented nature make it a very good language for the development of networking software.
[Source http://java.sun.com/docs/books/tutorial/getStarted/intro/definition.html]
The source code with the java extension is first of all compiled and then is converted to bite codes by the javac compiler.
Advantages of java
1. Java is Platform Independent & portability: Java enables the developer to write down the codes in any operating system and then run it on any other different operating system such as Linux, Microsoft windows operating system etc . Thus there is a
2. Java is Multithreaded. [Pradnya Choudhari, 2001]. Within the application java perform several tasks simultaneously
3. Security: Java platform is unique which allow the user to download the code from the network and run it in secure environment in such a way it does not affect the system from the virus.
4. Network centric programming:
Java platform is network centric in which we can create network application using client/server and multi-tier architecture.
5. Dynamic and Extensible programs: Java is dynamic and extensible which means that java code is classified into modular object oriented unit class and these classes stored into separate files after that when ever these class files is needed then it is loaded into java interpreter. http://arizonacommunity.com/articles/java_32001.shtml [Nov 24, 2008]
5.2.1.2.2 Types of library for capturing the Packets
WinPcap: WinPcap is the standard tool that allows the operating system to access the low-level network layers, it means that to capture and transmit the network packets.
Sharp P-Cap: Sharp P-Cap is a packet capturing library for dot environment 4.3.1.3 Visual C# (C Sharp)
When it comes to programming language, the developer can also make choice of c# for development of proposed system Net Buddy, as C# comes with .NET package which offers lots of rich libraries and API, which helps in development of more robust and code efficient applications. The features of C# are mentioned below:-
1. Stylish object oriented design: C# is a purely object oriented language and thus incorporates all the OOPL features.
2. Protection and efficiency: C# is a type safe language. It neither does allow the execution of unprotected code nor is type unsafe. Moreover, its efficiency is high on a Windows operating system as they are the products of Microsoft, so tight bondage.
3. Name spaces: C# uses hierarchical namespaces that have to be included before the coding can begin.
4. Garbage collection: Garbage collection is a thread that keeps on running and thus removes any objects from memory that do not carry any reference.
5. Data types: C# has a large number of built in data types as integral type, char type, structure type, floating- point type, Boolean type, decimal type, and enumeration type and also provides provision for the user defined data types.
6. Versioning: Versioning is a feature supported by C#. Developer can specify version dependencies to solve .NET versioning problem between different pieces of software.
7. Indexes: C# has indexes which help to access value in a class with an array like syntax.
8. Exception handling: .Exceptions are well handled in the dot net IDE. It also has good features for debugging such as breakpoints, etc.
9. Error Elimination: The intellisense provided is a huge help in error elimination.
10. Flexibility & Power: Typed and extensible metadata makes C# more flexible. They can be applied to any object. A project architect can define Domain-specific attributes can be defined by a project architect. We can apply them to any language, interfaces, classes and element (M.R., (ud.).).
5.2.1.2.5 Conclusion for Networking Programming Research
After detail research on each platform system developer decided to go for Dot framework using C# to build the proposed system. The detailed analysis of the programming research that is Dot framework using C# is chosen by the system developer for the development of Net Buddy.
5.2.1.3 BACKEND RESEARCH
Oracle 9i Database
DBMS Type
Transaction relation database server
Advantages
High reliable and support major database access standards
Disadvantages
Difficult to understand and document it.
Limitation
None Known
Reliability
Point to point Recovery and its having other enterprise class reliability features
Security
Integrated user authentication
5.2.1.3.2 Microsoft SQL server
1. Microsoft is a Client/Server RDMS and it is easily suitable for developing large multi user application.
2. It is network enabled database.
DBMS Type
Transaction relation database server
Advantages
It is reliable and can run multiple databases in one server.
Disadvantages
Required Windows Server 2000 and difficult to administrator.
Limitation
Limit of approximately 2-billion object in database
Reliability
Point to point recovery and it can be automatically stop
Security
User authentication having option to integrate database security with windows 2000.
Justification for using SQL Server:
* Stores large databases : Microsoft SQL Server allows you to store large volumes of data which include items like photographs, video, text, numbers and much much more.
* Scalability : Scalability advancements in SQL Server include table partitioning, replication enhancements.
* Security Enhancements : SQL Server has been designed to help provide the highest level of security for enterprise data through features such as database encryption, more secure default settings, password policy enforcement, granular permissions control, and an enhanced security model.
* Reporting Services : SQL Server Reporting Services is a comprehensive, server-based reporting solution designed to help you author, manage, and deliver both paper-based and interactive Web-based reports.
* Backup Maintenance: Microsoft SQL Server can be setup to automatically back up. It can also do incremental backups which means it can backup during the day rather than just once at night. This feature helps from losing the latest updated information in the database.
ud. (2005). Features of SQL Server 2005. Available: http://www.microsoft.com/sqlserver/2005/en/us/features.aspx. Last accessed 5 April 2009
4.2.1.1 System Development Methodology
The waterfall model sometimes called the life cycle model is a sequential software development model which involves a phased progression of activities, marked by feedback loops, leading to the release of a software product. It suggest a well-structured and systematic approach in which development is seen as flowing steadily downwards (like a waterfall) through the phases of requirements analysis, design, implementation, testing (validation), integration, and maintenance. (ud, 2004)
Structure:
The waterfall model provides a structured approach; the model itself progresses linearly through discrete, easily understandable and explainable phases and thus is easy to understand. Following are the phases of the waterfall model followed in order:
1. Requirements analysis: involves gathering information about customer needs and product expectations. Analysis includes understanding the customer's business context & constraints, product functionalities, its performance levels, & external systems it must be compatible with. Information gathering methods include customer interviews, use cases, and "shopping lists" of software features. Results of the analysis are captured in a formal requirements specification, which serves as input to the next step.
2. Design: Consists of defining the hardware and software architecture, components, modules (database & data structure designs), interfaces (navigation & accessibility) , and data to satisfy specified requirements. The logical system of the product is developed here. Output of this stage is one or more design specifications, which are used in the next stage of implementation.
3. Implementation: involves construction of the product as per the design specifications developed in the previous step. It is performed by a development team consisting of programmers, interface designers and other specialists, using programming tools such as compilers, debuggers, interpreters and media editors. The output of this step is one or more product components, built according to a pre-defined coding standard and debugged, tested and integrated to satisfy the system architecture requirements.
4. Testing: The system components are methodically verified to ensure that they are error-free and fully meet the requirements outlined in the first step. Defects, if found, are logged and feedback is provided to the implementation team to enable correction. This is also the stage at which product documentation, such as a user manual, is prepared, reviewed and published.
5. Installation: involves preparing the system or product for installation and use at the customer site. Delivery may take place via the Internet or physical media..
6. Maintenance: involves making modifications to the system or an individual component to alter attributes or improve performance. Modifications may arise either due to change requests initiated by the customer, or defects uncovered during live use of the system. Every change made to the product during the maintenance cycle is recorded. (Melonfire,2007)
Purpose (Why the developer did not select this model?):
ü All Requirements are clearly stated at the beginning of the project in our project specification and they are not rapidly changing in nature i.e. stable requirement, but the functionalities were not final until the end of the research phase.
ü The whole project cannot be divided under structured, linear and sequential functional models of the waterfall model which can be carried out one after the other.
ü In the project, the output of the previous stage acts as an input to its next stage as occurs in the waterfall model. Ex- ‘System designing' depends on the requirements that have been determined in the ‘Requirement Analysis' phase. Since the project is in separate modules, the designing of one module does not depend on the others.
ü The emphasis on requirements and design before writing a single line of code ensures minimal wastage of time and effort and reduces the risk of schedule slippage, or of customer expectations not being met. Thus all the modules would have to be designed before they are even tested for functionality.
(2004). Waterfall Model. Available: http://en.wikipedia.org/wiki/Waterfall_model. Last accessed 18 March 2009
Scope:
* Simple and easy to follow- Linear model having separate and distinct phases of specification and development. (Pressman, 1997)
* Enforced disciplined approach - every phase has a defined start and end point, and progress can be conclusively identified (through the use of milestones) by both vendor and client. (Melonfire,2007)
* Feedback from each phase to earlier phases and Testing is inherent in every phase of waterfall model. (Pressman, 1997)
Contributor Melonfire, (2007). Waterfall Model Advantages. Available: http://www.builderau.com.au/strategy/designprinciples/soa/Understanding-the-pros-and-cons-of-the-Waterfall-Model-of-software-development/0,339028846,339273696,00.htm. Last accessed 19 March 2009
Pressman. (1997). The Waterfall Lifecycle Model. Available: http://codecourse.sourceforge.net/materials/The-Waterfall-Lifecycle-Model.html. Last accessed 15 March 2009.
* Misinterpretations may surface early- Errors found during operations may cost one hundred times or more to fix than if caught during Software Requirements Review.
* The emphasis on requirements and design before writing a single line of code ensures minimal wastage of time and effort and reduces the risk of schedule slippage, or of customer expectations not being met. (Melonfire,2007)
* Provides a cost-effective & time-saving approach when the requirements are well understood.
* Efficient knowledge transfer to geographically dispersed team members since all requirements analyzed at starting stage.
* The documents are essential tools for maintaining the product. Every change has to be reflected in the relevant documentation that is provided at each phase. (Pressman, 1997)
………………………………………………………………………………………………
Contributor Melonfire, (2007). Waterfall Model Advantages. Available: http://www.builderau.com.au/strategy/designprinciples/soa/Understanding-the-pros-and-cons-of-the-Waterfall-Model-of-software-development/0,339028846,339273696,00.htm. Last accessed 19 March 2009
Pressman. (1997). The Waterfall Lifecycle Model. Available: http://codecourse.sourceforge.net/materials/The-Waterfall-Lifecycle-Model.html. Last accessed 15 March 2009.
RUP model
The RUP (Rational Unified Process Model) is a prescriptive, well-defined system development process, often used to develop systems based on object and/or component-based technologies. It is based on sound software engineering principles such as taking an iterative, requirements-driven, and architecture-centric approach to software development. It provides several mechanisms, such as relatively short-term iterations with well-defined goals and go/no-go decision points at the end of each phase, to provide management visibility into the development process.
The Rational Unified Process attempts to capture many of modern software development's best practices in a form suitable for a wide range of projects and organizations. This process recognizes that the traditional waterfall approach can be inefficient because it lets the key team members be idle for extended periods of time. Many feel that the waterfall approach also introduces a lot of risk because it defers testing and integration until the end of the project lifecycle. Problems found at this stage are very expense to fix.
By contrast, RUP represents an iterative approach that is superior for a number of reasons:
* It lets you take into account changing requirements which despite the best efforts of all project managers are still a reality on just about every project.
* Integration is not one "big bang" at the end; instead, elements are integrated progressively.
* Risks are usually discovered or addressed during integration. With the iterative approach, you can mitigate risks earlier.
* Iterative development provides management with a means of making tactical changes to the product. It allows you to release a product early with reduced functionality to counter a move by a competitor, or to adopt another vendor for a given technology.
* Iteration facilitates reuse; it is easier to identify common parts as they are partially designed or implemented than to recognize them during planning.
* When you can correct errors over several iterations, the result is a more robust architecture. Performance bottlenecks are discovered at a time when they can still be addressed, instead of creating panic on the eve of delivery.
* Developers can learn along the way, and their various abilities and specialties are more fully employed during the entire lifecycle. Testers start testing early, technical writers begin writing early, and so on.
* The development process itself can be improved and refined along the way. The assessment at the end of an iteration not only looks at the status of the project from a product or schedule perspective,
but also analyzes what should be changed in the organization and in the process to make it perform better in the next iteration.
Comparison with Waterfall model
Waterfall is based on very inaccurate assumptions:
Ø We can freeze requirements.
Ø The waterfall model requires all requirements explicitly, but it is often difficult for the customer to state all requirements explicitly.
Ø Waterfall model tends to consume a lot more time compared to other software development models though it is able to pinpoint definite starting and ending points for a given project.
Ø This model assumes the requirements to remain static during the life of the project, so there is little or no chance of incorporating new changes to the software once work begins. If changes are tried to be incorporated it leads to more confusion and further delays.
Comparison with Incremental Model
The Incremental model which satisfied most of the approaches (including iterative approach) of this project: contradicted on the fact that it does not supports changing requirements and the total cost of system development is costly using this approach.
The various phases of RUP model are as follows:-
Inception Phase
Elaboration phase
Construction Phase
Transition phase
Inception phase:
This shall also include the initial risk assessment against the project implementation. This phase will take around 2-3 weeks (including PSF preparation and approval).
The important features of this phase are.
* Stakeholder concurrence on scope definition and cost/schedule estimates.
* Requirements understanding as evidenced by the fidelity of the primary use cases.
* Credibility of the cost/schedule estimates, priorities, risks, and development process.
* Depth and breadth of any architectural prototype that was developed.
* Establishing a baseline by which to compare actual expenditures versus planned expenditures.
Elaboration phase:
Keeping in view the survey designing process will be started using appropriate UML diagrams and keeping in view the HCI (Human Computer Interaction) principles interface design will be implemented. Second iteration will take four to five weeks.
The important features of this phase are.
* A use-case model in which the use-cases and the actors have been identified and most of the use-case descriptions are developed. The use-case model should be 80% complete.
* A description of the software architecture in a software system development process.
* An executable architecture that realizes architecturally significant use cases.
* Business case and risk list which are revised.
* A development plan for the overall project.
* Prototypes that demonstrably mitigate each identified technical risk.
Construction phase:
This is the phase when the bulk of the coding will take place. After completely implementing the system it will be tested with proper testing technique. This phase produces the first external release of the software. Its conclusion is marked by the Initial Operational Capability Milestone.
Transition phase:
The activities of this phase include training of the end users and maintainers and beta testing of the system to validate it against the end users' expectations. The product is also checked against the quality level set in the Inception phase.
If all objectives are met, the Product Release Milestone is reached and the development cycle ends.
References
Websites
1) Introduction to Network Security
http://www.interhack.net/pubs/network-security/
2) http://www.lockergnome.com/blade/2009/09/04/windows-xp-still-holds-71-market-share/ Friday, September 4th, 2009 by Ron Schenone
3) Trojan TCP/IP Ports http://www.chebucto.ns.ca/~rakerman/trojan-port-table.html
4) WELL KNOWN PORT NUMBERS http://www.stengel.net/tcpports.htm
5) Internet for Dummies, Linux, TCP/IP, port surfing http://www.windowsecurity.com/whitepapers/_Internet_for_Dummies_Linux_TCPIP_port_surfing_.html
6) The TCP/IP Guide http://www.tcpipguide.com/index.htm
7) Optimizing the Windows Registry, the Registry Editor, registry tweaks and tracking changes to the registry http://www.optimizingpc.com/optimize/registryeditor.html
8) Ethical Hacking and Network Security http://networksecurity.weebly.com/network-security.html
9) Network Security http://www.itprc.com/security.htm
Network Security Related Books, Ebooks & Journals
Bragg, Roberta, Rhodes-Ousley, Mark, Strassberg, Keith (2004) The Complete Network Reference: Network Security, New Delhi: Tata McGraw-Hill Publishing Company Limited.
Cole, Eric, Krutz, Ronald, W., Conley, James (2004) Network Security Bible, New Delhi: Wiley Publishing, Inc.
Ciampa, Mark, (ed.) (2004), Security+ Guide to Networking Security Fundamentals, United State: Course Technology
Cobb, Chey, (2003) Network Security for Dummies, New Delhi: Wiley Publishing, Inc.
Maiwald, Eric, (ed.) (2004) Network Security: A Beginner's Guide, New Delhi: Tata McGraw-Hill Publishing Company Limited.
Sheu, Jyh-Jian (2008) "An Efficient Two-phase Spam Filtering Method Based on E-mails Categorization”, International Journal of Network Security, 8(3), pp. 334-343.
Zhang, Yan, Fujise, Masayuki (2006) "Security Management in the Next Generation Wireless Networks”, International Journal of Network Security, 3(1), pp. 1-7.
Registry Editing Guides, Books and Ebooks
Honeycutt, Jerry, (2003) Microsoft Windows XP REGISTRY GUIDE, Washington: Microsoft Press
Hipson, Peter, (2002) Mastering Windows XP Registry, Almeda: SYBEX Inc.
Kokoreva, Olga, (2001) Windows XP Registry: A Complete Guide to Customizing and Optimizing Windows XP, Wayne: A-List Publishing
Honeycutt, Jerry, (2005) Microsoft Windows Registry Guide, Washington: Microsoft Press
Books related to Remote Installation, Remote Management
Kasacavage, Victor, (ed.) (2002) Complete book of Remote Access connectivity and security, USA: CRC Press
Ferguson. Bill, Causey, Brad, (2006) MCDST: Microsoft Certified Desktop Support Technician Study Guide: Exams 70 - 271 and 70 - 27, New Delhi: Wiley Publishing, Inc.
Glenn, Walter, Northrup, Tony,(ed.) (2006) MCDST Self-Paced Training Kit (Exam 70-272): Supporting Users and Troubleshooting Desktop Applications on Microsoft® Windows® XP, Washington: Microsoft Press
Professional C# 2008 By Christian Nagel, Bill Evjen, Jay Glynn, Karli Watson, Morgan Skinner .
Bragg, Roberta, Rhodes-Ousley, Mark, Strassberg, Keith (2004) The Complete Network Reference: Network Security, New Delhi: Tata McGraw-Hill Publishing Company Limited.
Calvert, L., Kenneth, Donahoo, J., Michael, (ed.) (2008) TCP/IP Sockets in Java: Practical Guide For Programmers. United Kingdom: Elsevier Digital Press
Ferguson. Bill, Causey, Brad, (2006) MCDST: Microsoft Certified Desktop Support Technician Study Guide: Exams 70 - 271 and 70 - 27, New Delhi: Wiley Publishing, Inc.
Norton's Peter, Stockman, Michael, (2000). Network Security Fundamentals, USA: Macmillan Computer Publishing
2. Project management:
PDF Documents
http://www.ibm.com/developerworks/rational/library/content/03July/1000/1251/1251_bestpractices_TP026B.pdf Last accessed on 10th September 14, 2009, at 10:24 am.
http://www.sdprocess.com/pdf/S1-Kruchten2004Toronto.pdf Last accessed on 10th September, 2009, at 10:24 am.
http://www.relativitycorp.com/projectmanagement/article1.html Last accessed on 10th September, 2009, at 10:30 am.
http://www.sparxsystems.com/downloads/whitepapers/Pitfalls%20using%20UML%20in%20RUP%20_part%202_.pdf Last accessed on 10th September, 2009, at 12:24 am.