LibpreludeDB and IDMEF wrapper functions



 

What is it?

LibpreludeDB is a new database handling layer for Prelude IDS. The project aims at creating a shared library allowing application to store and retrieve IDMEF alerts from databases in various formats and various storage types (SQL servers, files, etc.). The first version has been done as an end-of-semester project for my SQL class, however later the code has been totally rewritten.

See description, structure diagram (in dia), IDMEF draft v.0.6 (which currently Prelude is based on), IDMEF draft v.0.10 (latest).

This work is integrated with implementation of IDMEF wrapper functions in libprelude. For performance reasons, Prelude does internal processing of IDMEF data using its own data structures, rather then XML. The purpose of IDMEF wrapper functions is to create a set of functions allowing programmer to access Prelude's IDMEF data structures, abstracting these structures themselves, thus allowing future changes to IDMEF implementation.
 

Code status:

The code is under development in separate CVS branch. This branch has been forked off HEAD soon after release of 0.8.x version, so it should be mostly compatible. However all sensors have to be recompiled to in order to work with modified libprelude correctly. This is an experimental work. Use at your own risk. You have been warned.

Currently the following capabilities are provided:

Code availability:

The code can be checked out from db-work branch of Prelude CVS using following commands:

Libprelude with IDMEF wrappers:
cvs -d:pserver:anonymous@cvs.prelude-ids.org:/cvsroot/prelude co -r db-work libprelude
You can browse it via CVSWeb here.

LibpreludeDB:
cvs -d:pserver:anonymous@cvs.prelude-ids.org:/cvsroot/prelude co libpreludedb
You can browse it via CVSWeb here.

Prelude Manager modified to use libpreludeDB and IDMEF wrappers:
cvs -d:pserver:anonymous@cvs.prelude-ids.org:/cvsroot/prelude co -r db-work prelude-manager
You can browse it via CVSWeb here. For using the libpreludeDB-based db output plugin it may be a good idea to review the description of DB interface parameters in libpreludeDB's README.

Other useful code:

Recent important changes:

(detailed CVS change log can be found here, here and here ):



Back to my home page.

This page is Copyright (C) 2003 Krzysztof Zaraska <kzaraska (at) student.uci.agh.edu.pl>. All rights reserved.