and some solutions that have been presented in the
literature. More specifically, we introduce Intrusion
Detections Systems, agents, software watermarking
techniques and the main existing proposals about
IDS based on autonomous agents, including a
security analysis.
2.1 Intrusion Detection Systems
An Intrusion Detection System tries to detect and to
alert about suspicious activities and possible
intrusions in a system or particular network. An
intrusion is an unauthorized or non wished activity
that attacks confidentiality, integrity and/or
availability of the information or computer
resources. To reach its goal an IDS monitors the
traffic in the network or gets information from
another source such as log files. The IDS analyzes
this information and sends an alarm to the system
administrator. The system administrator decides to
avoid, to correct or to prevent the intrusion.
Basically an IDS has an events generator, an
analyzer or sensor and a response module. The event
generator sends the packets to the events collection
module that communicates with the sensor. The
sensor filters the information and discards irrelevant
data. The response module decides whether to send
or not an alarm according to the policy held in its
database (
Goyal, Sitaraman, and Krishnamurthy 2003).
An IDS can be classified according to its location, it
can be Network based IDS (NIDS) or Host based
IDS (HIDS); according to the detection mechanisms,
it can be misuse detection or anomaly detection; and
according to its nature it can be passive or reactive.
2.2 Agents
There are different definitions of agents
(
Balasubramaniyan et al, 1998), (Nwana, 1996), (Jansen
et al, 2000)
. In general, an agent is a software entity
that works autonomous and continuously gathering
data to accomplish an action on behalf of a person or
another agent. Autonomously means that it can work
without direct intervention of a human or other
system and has the control of its internal state and its
actions.
2.3 Software Watermarking
Watermarking techniques have been basically used
to ensure the protection of digital contents. With
these techniques, some information (usually called
mark), is embedded into a digital content like video,
audio, software, (Figure 1). The main objective is to
keep this information imperceptible in all copies of
the content that we protect in such a way that we can
later demand the authorship rights over these copies.
In software watermarking, the mark must not
interfere with the software functionalities. The mark
can be: static, when it is introduced in the source
code, or dynamic, when it is stored in the program
execution states.
Figure 1: Software Watermarking.
There are three basic aspects to consider when a
watermarking technique is designed: the required
data rate, the type of source to mark (native binary
code, bytecode, etc.) and the expected threat model
(translation, optimization, obfuscation of code, etc.).
To retrieve the watermark we need a recognizer.
Recognizers are designed to extract the watermark
from the program execution with a specific input.
Recognizers can be defined from trivial (does not
assure that the watermark can be retrieved) to strong
or ideal (resistant against all kind of
transformations). And according their operation,
recognizers can classified from static, when only the
source code is analyzed, to pure dynamic, when
only program execution state is examined.
2.4 IDS based on Autonomous Agents
According to (Jansen et al, 2000), (Lange et al, 1998)
and (
Dorothy et al, 1987), there are several advantages
of mobile agents that make them appropriate to IDS:
scalability, resilience to failures, independence,
reduction of network traffic, when another agent is
generated it is not necessary to restart the system,
solution to complex tasks, etc.
The architecture for IDS based on autonomous
agents has the following components: monitors,
transceivers, agents and filters. Definition of each
component and further information can be found in
(
Balasubramaniyan, 2003). The AAFID system
(Balasubramaniyan et al, 1998) includes a user
interface and several components of its architecture.
User interfaces use APIs that the monitor exports, to
ask for information and to provide instructions. In
the AAFID system there are three types of static
entities: monitors, transceivers and agents,
hierarchically organised with a tree infrastructure.
Watermar-
king
DATA
Watermar-
king Encoder
Application
running
MARKED
DATA
DISTRI-
BUTION
Watermar-
king
Encoder
SECRYPT 2007 - International Conference on Security and Cryptography
42