ISEAGE Network Specification and Report System

Final Report

Client

ISU Information Assurance Center

Faculty Adviser

Dr. Douglas W. Jacobson

Team May 05_25

David C. N. Rodgers ComS, CprE

Lijin Varghese CprE

Derek J. Light CprE

Justin Magnini CprE

DISCLAIMER: This document was developed as a part of the requirements of an electrical and computer engineering course at Iowa State University, Ames, Iowa. This document does not constitute a professional engineering design or a professional land surveying document. Although the information is intended to be accurate, the associated students, faculty, and Iowa State University make no claims, promises, or guarantees about the accuracy, completeness, quality, or adequacy of the information. The user of this document shall ensure that any such use does not violate any laws with regard to professional licensing and certification requirements. This use includes any work resulting from this student-prepared document that is required to be under the responsible charge of a licensed engineer or surveyor. This document is copyrighted by the students who produced this document and the associated faculty advisors. No part may be reproduced without the written permission of the senior design course coordinator.

Submission Date

05/03/05

iii

Table of Contents

iii

1.Project Approach and Results 1

1.1.Executive Summary 1

1.1.1.Need for Project 1

1.1.2.Actual Project Activities 1

1.1.3.Final Results 2

1.1.4.Recommendations for Future Work 3

1.2.Problem Statement 3

1.2.1.General Problem Statement 3

1.2.2.General Solution Approach 4

1.3.Operating Environment 4

1.4.Intended Uses and Intended Users 4

1.4.1.Intended Uses 4

1.4.2.Intended Users 4

1.5.Assumptions and Limitations 4

1.5.1.Updated Assumptions List 5

1.5.2.Updated Limitations List 5

1.6.Expected End Product and Deliverables 5

2.Project Approach and Results 6

2.1. Functional requirements for the end product 6

2.2.Resultant Design Constraints 6

2.3.Approach considered and one selected 6

2.4.Considered GIS Software 7

2.4.1.ArcGIS Desktop 7

2.4.2.MapServer 7

2.4.3.Selected GIS Software 7

2.4.4.Reason for Selection 7

2.5.Considered Graphical Packages 7

2.5.1.wxWidgets 7

2.5.2.GIS in ArcGIS Desktop with a parser 8

2.5.3.Selected Graphical Package 9

2.5.4.Reason for Selection 9

2.6.Considered Databases 9

2.6.1. Geodatabase 10

2.6.2. GML 10

2.6.3.XML 10

2.6.4.Selected Database 10

2.6.5.Reason for Selection 10

2.7.Considered Database Languages 11

2.7.1.C++ 11

2.7.2.Kweelt 11

2.7.3.XQuery 11

2.7.4.Selected Database Language 11

2.7.5.Reason for Selection 11

2.8.Considered Programming Languages 11

2.8.1.C 11

2.8.2.C++ 12

2.8.3.C# 12

2.8.4.Java 12

2.8.5.Selected Language 12

2.8.6.Reason for Selection 12

2.9.Considered Technical Approaches 13

2.9.1.Coding Standards 13

2.9.2.Brackets 13

2.9.3.Creation of Variables 13

2.9.4.Function Declarations 14

2.9.5.Line Length 14

2.9.6.Loops 14

2.9.7.Operations 15

2.9.8.Semicolons 15

2.9.9.Testing 15

2.10.Detailed design 15

2.10.1.XML Parser/ISEAGE Compiler 15

2.10.2. ArcGIS Usage 20

2.11.Implementation Process Description 21

2.12.Testing of End Product and its Results 22

2.13.End Product Results 23

2.13.1.User Guide Evaluation Form 24

3.Resources and Schedules 25

3.1.Resource Requirements 25

3.1.1.Personnel effort 26

3.1.2.Other Resources 28

3.1.3.Financial Costs 29

3.1.3.1.Miscellaneous Parts 29

3.1.3.2.Use in Design Document 29

3.1.3.3.Binding 29

3.1.3.4.Non-Poster Printing 29

3.1.3.5.Poster 29

3.1.3.6.Current Use 29

3.1.3.7.Binding 29

3.1.3.8.Non-Poster Printing 29

3.1.3.9.Poster 30

3.1.3.10.Computers 30

3.1.3.11.ArcGIS License 30

3.1.3.12.Windows XP Professional License 30

3.1.3.13.Future Total Projected Costs 30

3.1.3.14.Binding 30

3.1.3.15.Non-Poster Printing 30

3.1.3.16.Poster 30

3.2.Schedules 30

3.2.1.Project schedules 31

3.2.2.Deliverable schedules. 32

4.Closure Materials 33

4.1.Project Evaluation 33

4.1.1.Project Definition 33

4.1.2.Technology Considerations and Selection 33

4.1.3.End-product Design 33

4.1.4.End-product Implementation 34

4.1.5.End-product Testing 34

4.1.6.End-product Documentation 34

4.1.7.End-product Demonstration 34

4.1.8.Project Reporting 34

4.1.9.Final Project Score 35

4.2.Commercialization 35

4.3.Recommendations for Future Work 35

4.3.1.Optimizations 35

4.3.2.Interactive Software Tutorial and Help Guides 35

4.3.3.Pseudo-real-time reporting 36

4.4.Lessons Learned 36

4.4.1.What Went Well 36

4.4.2.What Did Not Go Well 36

4.4.3.What Technical Knowledge Was Gained 36

4.4.4.What Non-Technical Knowledge Was Gained 36

4.4.5.What To Do Differently If Starting Again 36

4.5.Risk and risk management 37

4.5.1.Anticipated potential risks and planned management 37

4.5.2.Anticipated potential risks encountered and success in management 37

4.5.3.Unanticipated risks encountered 37

4.5.4.Resultant changes in risk management made because of encountered unanticipated risks 37

4.6.Project Team Information 37

4.6.1.Client Information 38

4.6.2.Faculty Advisor 38

4.6.3.Team Members 38

4.7.Closing summary 39

4.8.References 39

5. 45

7.Appendix 2 45

7.1.Overview 46

7.1.1.Internal router data structures 47

7.3.Mapper binary Configuration file 47

7.4.Mk_map 48

7.5.Text Configuration file format 48

iii

iii

iii

iii

iii

List of Figures

4

Figure 1 – ISEAGE Phase 1 Architecture 2

Figure 2 – Simulated Model of Internet 3

Figure 3 – ArcGIS Map With Roads, Streets, Rivers etc. . . . 9

Figure 4 - Standard for Bracket Usage 13

Figure 5 - Standard for Variable Declarations 14

Figure 6 - Standard for Function Declarations 14

Figure 7 - Standard for Line Length 14

Figure 8 - Standard for Loop Usage 14

Figure 9 - ISEAGE Attributes modeled into an ArcGIS data layer. 21

Figure 10 - Personnel effort 28

Figure 11 - Financial costs 30

Figure 12 - Project schedules 31

Figure 13 - Deliverables schedules 32

Figure 14 - Evaluation Scores for Milestone Completion 33

Figure 15 - Editor Toolbar 41

Figure 16 - Editor Toolbar Menu 42

Figure 17 - Attributes Window 42

Figure 18 - Save Edits 42

Figure 19 - Exporting XML 43

4

4

4

4

4

List of Definitions

Allegro – A cross-platform GUI library with many features.

Classes – Basic construct in object-oriented methods that categorizes elements of the problem.

Compiler – A program designed with the intent of translating one language for another; in this project, the compiler transforms XML from ArcGIS into a file readable by ISEAGE.

CVS – Acronym for Concurrent Versioning System, a tool to manage code development.

FLTK – A cross-platform C++ GUI toolkit for UNIX, Linux, Microsoft Windows, and MacOS X.

FOX – A C++ based toolkit for developing GUI’s easily and effectively across a range of platforms.

FreeBSD – A variant of the Berkeley Software Distribution (BSD) which implements the UNIX operating system and its utilities.

GIS – Acronym for Geographical Information Systems, a database used to spatially locate any location on the Earth.

GNU – Acronym for GNU’s Not Unix and refers to software that is free for use.

GPL – Acronym for General Public License, a standard published for freely

distributed software.

GTK – A multi-platform toolkit for creating GUIs.

Internet2 – A project aiming to facilitate research and education through

advanced network applications using the Internet.

ISEAGE – A network simulator designed and built at Iowa State University for the purpose of analyzing Internet traffic.

IPv4, IPv6 – Internet Protocol versions 4 and 6 used by the Internet and other

networks.

Java Swing – A set of Java class libraries that support building GUIs and

graphics functionality for client applications that will run on multiple

platforms.

Kylix – A rapid application development tool that provides components

for quick development of GUIs, database connectivity, and internet

content.

Landspeed Record – An open competition to achieve the highest bandwidth

over the greatest distance on the Internet.

Linux – A popular version of UNIX that is open source software and freely

available over the Internet.

Mac OS X – An operating system for the Apple Macintosh, built on Unix.

MFC – A framework on which applications can be developed for Windows.

Mozilla Framework – A comprehensive multi-platform framework used,

among other things, to develop GUIs.

NetBSD – Secure, multi-platform UNIX-like open source operating system.

Notus – A multi-platform GUI library.

OpenBSD – A free variant of the Berkeley Software Distribution (BSD) which

implements the UNIX operating system and its utilities.

Open Source – Software that is free for use and modification.

Parser – A program to determine if given text is in a language; in this program, it analyzes XML to determine if the compiler can function on it.

QT – A complete C++ application development framework which includes a class library and tools for cross-platform development and internationalization.

SDL – A library written in C++ for displaying and GUIs.

UNIX – A computer operating system designed to be used by many

people at the same time.

wxWidgets - A single, easy-to-use application program interface for writing GUI

applications on multiple platforms.

X11 – A recent version of X Windows.

XML – Acronym for eXtensible Markup Language, a flexible way to define

formats for data, and make both the format and the data available on the Internet.

X Windows – The X Window System is a network transparent window system

which runs on a wide range of computing and graphics machines.

vi

1  Project Approach and Results

This section aims to give the reader a brief look at the entire project without getting too technical. Among the various sections are the executive summary aimed at decision-makers who need simply an overall understanding of the project, a problem statement section talking about what the problem this project was trying to solve, and the intended users and uses.

1.1  Executive Summary

This section serves as a summary of the entire report and is broken down into several sections including the motivation behind the project, project activities, results and recommendations for the future.

1.1.1  Need for Project

The overall motivation behind the ISEAGE project, of which the end product is a subset, is to build a system that people can use to design and test out their own security ideas to evaluate their effectiveness. Normally, network simulations are done entirely through software and don't do an accurate job of representing the actual Internet environment. In ISEAGE, however, actual hardware is used to route traffic to simulate a very realistic image of the Internet. Such a system is especially needed today because of the threat of cybercrime faced by the U.S. after 9/11. The structure of ISEAGE is diagrammed in Figure 1.

The project specifically aimed at letting a user design a virtual network graphically, export the configuration to the ISEAGE system, and run out various scenarios against the virtual network. Also involved was a report system to let the user know the results of the simulation in either pseudo-real time or post-mortem.

1.1.2  Actual Project Activities

The project activities centered around the problem of needing a virtual network configuration tool for ISEAGE. Since this is most easily done graphically, the team decided to build a GUI. After doing some research, the team discovered that the ArcGIS software that the team had to use to meet the GIS needs of the software would function well as the graphical interface for network configuration. To supplement the ArcGIS software, the team will develop an instruction manual by the deadline. Testing will be done both on the instruction manual as well as other software components at that point.

Figure 1 – ISEAGE Phase 1 Architecture

1.1.3  Final Results

While the project is still in the process of being completed, the end product will include an extensive user guide to supplement the ArcGIS tools needed to configure a virtual network. The documentation will include instructions on creating a network in ArcMap, exporting the configuration file, running it through ISEAGE, and interpreting the reports. This documentation will be in electronic form and the team is considering producing a hardcopy version as well. A compiler was also created that parses through the XML network specification created by the user through ArcGIS and makes it more appropriate for the ISEAGE system. The last tool that comprises the end product is a ArcGIS layer created specifically for computer network components like routers.

1.1.4  Recommendations for Future Work

Since the project was an attempt at creating a working network configuration utility, it doesn't have all the desired, but not required, features. For example, one desirable feature was that the configuration tool be cross-platform. The team did look into this option but decided to not use it since ArcGIS was at the time only supported on Windows. This should change fairly soon, however, and it is encouraged that future teams to try to make the software as platform-independent as possible. Real-time reporting is another desirable feature for the software. Currently, the project reports back in either post-mortem or pseudo-real time. If users can see the results right as they're evaluated on ISEAGE, it would enhance the simulation process.

1.2  Problem Statement

This section talks generally about what the problem was and what solution the team adopted in order to do the project.

1.2.1  General Problem Statement

ISEAGE is a system designed to allow computer network analysis. Before a network can be analyzed, it must be specified and the end results of the analysis must be presented in a human readable form. This project is aimed at allowing both the specification and examination of the analysis by humans.

The client had required that the end product support GIS specification of routers as well as a topology. The networks may be real-world or fictitious. The internal functionality of ISEAGE is diagrammed in Figure 2.

Figure 2 – Simulated Model of Internet

1.2.2  General Solution Approach

There are many GIS products on the market already so rather than attempt to design one from scratch, the team elected to adapt one to ISEAGE. This would fulfill the GIS-based requirement and, using a blank map, allow the end user to map network topologies. The team elected to use ArcGIS since it allows for C++ extensions and is site licensed by Iowa State University.

1.3  Operating Environment

While ISEAGE requires a cluster of computers, specifying a network can be done on any machine capable of running ArcGIS. Conventionally, this is a Windows XP system, but as long as ArcGIS runs, the specification system does as well. The report system is much more basic, being only a text document and therefore will be supported by anything capable of displaying ASCII characters.

1.4  Intended Uses and Intended Users

This section discusses the intended uses and the intended users of the end product.

1.4.1  Intended Uses

The intended users include any individual or group desiring to simulate a computer network to evaluate security. These networks may range from as small as two computers (e.g., to simulate fast file transfers, such as the research being done on Internet2 to gain the land speed record) to the entire State of Iowa. Creators of small networks include small business owners and student projects. The largest network will be created by Iowa’s Department of Homeland Security to simulate the entire State of Iowa.