Purdue University Center for Education and Research in Information Assurance and Security Building a distributed intrusion detection system with Perl Diego.

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

Connecting to Databases. relational databases tables and relations accessed using SQL database -specific functionality –transaction processing commit.
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
When is Orientated Programming NOT? Mike Fitzpatrick.
Chapter 19: Network Management Business Data Communications, 5e.
Web Applications Development Using Coldbox Platform Eddie Johnston.
1 Layers Data from IBM-Rational and Craig Larman’s text integrated into these slides. These are great references… Slides from these sources have been modified.
Chapter 19: Network Management Business Data Communications, 4e.
Performed by: Yair Sommer Rea Yeheskel Instructor: Idan Katz In Cooperation with:Motorola הטכניון - מכון טכנולוגי לישראל הפקולטה להנדסת חשמל Technion -
A CHAT CLIENT-SERVER MODULE IN JAVA BY MAHTAB M HUSSAIN MAYANK MOHAN ISE 582 FALL 2003 PROJECT.
1 ITC242 – Introduction to Data Communications Week 12 Topic 18 Chapter 19 Network Management.
Lecture 23: Software Architectures
COMP205 Comparative Programming Languages Part 1: Introduction to programming languages Lecture 3: Managing and reducing complexity, program processing.
Security Considerations in Adaptive Middleware Security and Mobile Agents Ajanta – Mobile Agent’s research project papers (
VB in Context Michael B. Spring Department of Information Science and Telecommunications University of Pittsburgh Pittsburgh, Pa 15260
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition Chapter 2: Operating-System Structures Modified from the text book.
Programming. Software is made by programmers Computers need all kinds of software, from operating systems to applications People learn how to tell the.
1 An introduction to design patterns Based on material produced by John Vlissides and Douglas C. Schmidt.
Lesson 4 Computer Software
Linux Operations and Administration
Introduction to the Enterprise Library. Sounds familiar? Writing a component to encapsulate data access Building a component that allows you to log errors.
Wolfgang Friebel, April AFS Administration Framework.
Framework for Automated Builds Natalia Ratnikova CHEP’03.
1 Shawlands Academy Higher Computing Software Development Unit.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
OS provide a user-friendly environment and manage resources of the computer system. Operating systems manage: –Processes –Memory –Storage –I/O subsystem.
 Chapter 6 Architecture 1. What is Architecture?  Overall Structure of system  First Stage in Design process 2.
Extensible Plug-ins for Aspect-Oriented Programming Macneil Shonle*Ankit Shah.
DCE (distributed computing environment) DCE (distributed computing environment)
1 The Software Development Process  Systems analysis  Systems design  Implementation  Testing  Documentation  Evaluation  Maintenance.
Chapter 14 Part II: Architectural Adaptation BY: AARON MCKAY.
CSE 219 Computer Science III Program Design Principles.
Question of the Day  On a game show you’re given the choice of three doors: Behind one door is a car; behind the others, goats. After you pick a door,
Oracle Data Integrator Procedures, Advanced Workflows.
Guide to Programming with Python Chapter One Getting Started: The Game Over Program.
Chapter 14: Exception Handling. Objectives In this chapter, you will: – Learn what an exception is – Learn how to handle exceptions within a program –
IT Just Works ©2008 BigFix, Inc. Practical Guide to Relevance Ben Kus – 1/31/2008.
CE Operating Systems Lecture 21 Operating Systems Protection with examples from Linux & Windows.
Distributed System Concepts and Architectures 2.3 Services Fall 2011 Student: Fan Bai
Chapter 12 Handling Exceptions and Events. Chapter Objectives Learn what an exception is Become aware of the hierarchy of exception classes Learn about.
LHCb Software Week November 2003 Gennady Kuznetsov Production Manager Tools (New Architecture)
Software Design: Principles, Process, and Concepts Getting Started with Design.
The Software Development Process
The Process Manager in the ATLAS DAQ System G. Avolio, M. Dobson, G. Lehmann Miotto, M. Wiesmann (CERN)
Application Communities Phase II Technical Progress, Instrumentation, System Design, Plans March 10, 2009.
Form Processing Week Four. Form Processing Concepts The principal tool used to process Web forms stored on UNIX servers is a CGI (Common Gateway Interface)
Lecture 4 Mechanisms & Kernel for NOSs. Mechanisms for Network Operating Systems  Network operating systems provide three basic mechanisms that support.
DØ Offline Reconstruction and Analysis Control Framework J.Kowalkowski, H.Greenlee, Q.Li, S.Protopopescu, G.Watts, V.White, J.Yu.
Source Level Debugging of Parallel Programs Roland Wismüller LRR-TUM, TU München Germany.
Implementing Remote Procedure Call Landon Cox February 12, 2016.
Scott D. Metzler, CaltechCHEP 2000, Padova, IT Feb Production Experience with CORBA in the BaBar Experiment Scott D. Metzler California Institute.
Procedural programming Procedural programming is where you specify the steps required. You do this by making the program in steps. Procedural programming.
Ganga/Dirac Data Management meeting October 2003 Gennady Kuznetsov Production Manager Tools and Ganga (New Architecture)
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
Chapter 29: Program Security Dr. Wayne Summers Department of Computer Science Columbus State University
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Operating System Structures
Types for Programs and Proofs
CSCI-235 Micro-Computer Applications
PERL.
Introduction to Event-Driven Programming
Top Reasons to Choose Angular. Angular is well known for developing robust and adaptable Single Page Applications (SPA). The Application structure is.
Chapter 2: System Structures
Operating Systems Lecture 3.
Outline Chapter 2 (cont) OS Design OS structure
Chapter 29: Program Security
System calls….. C-program->POSIX call
Overview Activities from additional UP disciplines are needed to bring a system into being Implementation Testing Deployment Configuration and change management.
Games Development 2 Entity / Architecture Review
Presentation transcript:

Purdue University Center for Education and Research in Information Assurance and Security Building a distributed intrusion detection system with Perl Diego Zamboni CERIAS, Purdue University

What is AAFID? Autonomous Agents for Intrusion Detection Architecture for distributed monitoring Test bed for intrusion detection techniques and algorithms Basis for a prototype implementation

System Architecture D E C B A UI Agents Monitors Transceivers Control Data Filters

System architecture UI A B C D E

Some design objectives All entities must run both as stand-alone programs and as loadable modules All infrastructure functionality must be provided by base entities Different types of entities have different functionality requirements

Why Perl? Ease of prototyping Portability

Our object hierarchy (AAFID::) Entity ControllerEntity AgentFilter MonitorTransceiver Message Log Config Constants Common ReactorComm Event handling/communication Individual agents Individual filters

Event handler Comm::Reactor implements a general event handler Can react to file, time and signal events Arbitrary callbacks (code refs) Implemented using IO::Select Using class methods instead of instance methods caused some nasty bugs

Cool uses of Perl #1: defining new commands Entities react to commands Command CMD is defined by a subroutine called command_CMD New commands can be added with very little effort just by defining the appropriate subroutines

Cool uses of Perl #2: named parameters Entity objects are represented by a hash reference Entity parameters are stored as elements in that hash Each entity is tied to a hash to allow easy access to parameters ( $Params{param} instead of $self->{param} )

Cool uses of Perl #3: hash syntax Allows having a very general data field in AAFID messages: command add_fs … FS=>/, Limit=>85 Data::Dumper and eval do all the work for generating and interpreting data fields Eval: potential security problems

Cool uses of Perl #4: code generation tool Reads a description file, writes Perl code Inserts # line file comments to produce meaningful error messages Allows definition of new commands with named parameters

A very simple agent NAME: CheckRoot AUTHOR: Diego Zamboni DESCRIPTION: Check root dir permissions VERSION: 0.1 PERIOD: 10 CHECK: if (-w /) { return(10,Root dir is writable); else { return(0,Everything ok); }

Communication mechanisms Transceiver-agent: Unix pipes Monitor-transceiver: TCP Both are transparently used as IO::Handles (at least in Unix) All communications are encapsulated, so they are easy to replace or upgrade

Other aspects Graphical User Interface –Uses Tk package –Very early stages –Subject for a lot of future research

AAFID GUI

Some CPAN modules we used IO::{Handle,Select,Socket,File} Data::Dumper Resources Log::Topics Tk

Did Perl live up to our original expectations? Ease of prototyping –Yes: we had the first working entities in ~2 weeks Portability –So-so: we are still struggling with NT

Some lessons learned (1) Perl made it easy to build a large system quickly Perl was the right choice for most entities (data manipulation) Object-oriented design made growth much easier

Some lessons learned (2) Big resource usage for our needs –We need tens, maybe hundreds of agents per host Even within the Unix domain, some things differ (Linux/Solaris, for example)

Some things we learned (3) Its difficult to debug a distributed system –A detailed debug log mode helps In a big system, Perl requires programmers to be very careful

Current state AAFID2 is now in its second public release projects/aafid/ Runs on (havent tested in 5.6.0)

The future Try using threads instead of separate processes Combine Perl components with low- level sensors Fix all those bugs

Purdue University Center for Education and Research in Information Assurance and Security Thank you