ACARM-ng WUI Sample Alert 1
   HOME

TheInfoList



OR:

ACARM-ng (Alert Correlation, Assessment and Reaction Module - next generation) is an
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use and view the source code, design documents, or content of the product. The open source model is a decentrali ...
IDS IDS may refer to: Computing * IBM Informix Dynamic Server, a relational database management system * Ideographic Description Sequence, describing a Unihan character as a combination of other characters * Integrated Data Store, one of the first d ...
/ IPS system. ACARM-ng is an alert correlation software which can significantly facilitate analyses of traffic in computer networks. It is responsible for collection and correlation of alerts sent by network and host sensors, also referred to as NIDS and HIDS respectively. Correlation process aims to reduce the total number of messages that need to be viewed by a
system administrator An IT administrator, system administrator, sysadmin, or admin is a person who is responsible for the upkeep, configuration, and reliable operation of computer systems, especially multi-user computers, such as Server (computing), servers. The ...
to as few as possible by merging similar events into groups representing logical pieces of malicious activity.


History

The initial version of ACARM was being developed in the frame of POSITIF European research project between 2004 and 2007. It has been written in
Java Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
as a practical
proof of concept A proof of concept (POC or PoC), also known as proof of principle, is an inchoate realization of a certain idea or method in order to demonstrate its feasibility or viability. A proof of concept is usually small and may or may not be complete ...
, presented in the article. Despite its poor scalability and efficiency issues, the software proved to be highly useful. At the end of 2009 it became obvious that the current design had serious shortcomings with poor performance in the first place. As a result of that the project was discontinued. Later that year, a new project nicknamed ACARM-ng was launched aiming to replace the original ACARM. ACARM-ng was to bring the alert correlation to a new dimension thank to its scalability and plug-in-based architecture. It has been actively developed since 2009 by Wroclaw Centre for Networking and Supercomputing as a part of the PL-Grid project.


Features

ACARM-ng's main features include: * generic framework (system can be easily extended with plug-ins) * multi-threaded implementation * low
CPU A central processing unit (CPU), also called a central processor, main processor, or just processor, is the primary processor in a given computer. Its electronic circuitry executes instructions of a computer program, such as arithmetic, log ...
utilisation and
memory footprint Memory footprint refers to the amount of main memory that a program uses or references while running. The word footprint generally refers to the extent of physical dimensions that an object occupies, giving a sense of its size. In computing, t ...
* implementation using state-of-art, object oriented design methods * recurrent alerts processing * real-time informing and reaction * web-based data visualisation * long correlation time windows, that do not delay reporting


Architecture

ACARM-ng consists of 3 main elements: correlation
daemon A demon is a malevolent supernatural being, evil spirit or fiend in religion, occultism, literature, fiction, mythology and folklore. Demon, daemon or dæmon may also refer to: Entertainment Fictional entities * Daemon (G.I. Joe), a character ...
, WUI and (optional) a
database engine A database engine (or storage engine) is the underlying software component that a database management system (DBMS) uses to create, read, update and delete (CRUD) data from a database. Most database management systems include their own application ...
. ACARM-ng's daemon has been designed from scratch as a framework solution. It provides core system functionalities, like logging, alerts and correlated meta-alerts passing between system parts, error recovery, multi-threading, etc.. The rest of the package are plug-ins, separated into following classes: * persistency (data abstraction) * input (data gathering) * filter (data correlation and modification) * trigger (automatic reporting and reaction) Built-in software
watchdog Watchdog or watch dog may refer to: Animals *Guard dog, a dog that barks to alert its owners of an intruder's presence * Portuguese Watchdog, Cão de Castro Laboreiro, a dog breed * Moscow Watchdog, a breed of dog that was bred in the Soviet U ...
provides up-to-date information on system status. WUI makes browsing of correlated data easy via graphical and tabular representation of gathered and correlated events. System administrator can easily see what is going on at every moment of system's lifetime. The WUI and the daemon interoperate through a database. Daemon stores gathered data along with the correlation results and its runtime configuration. WUI is entitled to read and display this data. Notice that even though data base engine is not required for running daemon, it is strongly recommended to save data persistently. Rejecting to use database makes it impossible to obtain system information via WUI and leads to a loss of historical data when system is restarted. Events that are no longer processed by the daemon are discarded as well.


Preprocessor

It is often required to limit the amount of incoming data (for example: remove alerts raised periodically by
cron The cron command-line utility is a job scheduler on Unix-like operating systems. Users who set up and maintain software environments use cron to schedule jobs (commands or shell scripts), also known as cron jobs, to run periodically at fixed t ...
scripts). In order to allow users to adapt system's input to their own needs a special "preprocessor" component is provided. It allows to define a chain of accept-if-match and reject-if-match rules to accept or reject incoming alerts before they enter the correlation engine.


Plugins

ACARM-ng's daemon allows addition and removal of new plug-ins without the need to recompile the core package. It makes system development and testing much easier. Each plug-in to be used, has to be configured in the main configuration file first.


Persistency

Persistency provides abstraction at the storage level. This generic interface can be used to implement any data-saving back-end, as long as transaction mechanism is provided. Recent, stable release of ACARM-ng provides following persistency implementations: * stubs (ignores all write requests - data is not saved) * postgres (uses
PostgreSQL PostgreSQL ( ) also known as Postgres, is a free and open-source software, free and open-source relational database management system (RDBMS) emphasizing extensibility and SQL compliance. PostgreSQL features transaction processing, transactions ...
data base for storing information)


Input

An input provides an abstraction of a data gathering mechanism. The only requirement on the implementation is to output alerts in an ACARM-ng-compatible form. Recent, stable release of ACARM-ng provides following input implementations: * file (reads
XML Extensible Markup Language (XML) is a markup language and file format for storing, transmitting, and reconstructing data. It defines a set of rules for encoding electronic document, documents in a format that is both human-readable and Machine-r ...
files in IDMEF format) * prelude (read alerts from Prelude-Manager data gathering point)


Filter

A filter provides an abstraction of the correlation and data update mechanism. There are no restrictions on what the filter can do with the meta-alert, though the most common use is to correlate similar alerts (specially tuned
API An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
is provided for this special case). Recent, stable release of ACARM-ng provides following filter implementations: * one to one (correlates events between a pair of hosts) * one to many (correlates events, where the source host is the same for all alerts) * many to one (correlates events, where the destination host is the same for all alerts) * many to many (correlates events, where a set of source and destination hosts of correlated alerts are similar) *
DNS The Domain Name System (DNS) is a hierarchical and distributed name service that provides a naming system for computers, services, and other resources on the Internet or other Internet Protocol (IP) networks. It associates various informatio ...
resolver (resolves IP addresses to DNS names, if possible) * IP black list (changes the priority of alerts with source/destination addresses belonging to suspicious networks) * same name (correlates events with the same name) * event chain (correlates events that happened in a chronological order, on next-in-line machines; such a solution is rare and may indicate "scan, brake-in, escalation" sequence) * users monitor (correlates events triggered by actions of one user) * similarity (correlates events similar to each other, above a given threshold; all data is taken into consideration during comparison of two elements) * new event (changes priority of events, that were not previously seen on the system) * python (uses user-provided
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
script for event correlation)


Trigger

A trigger provides an abstraction of the reporting and reaction mechanism. Triggers by design, are not allowed to change the content of the data, but initiate a response to alerts. Typical use is real-time reporting of suspicious events to administrators (for example via e-mail) and automatic reaction to the detected thread (for example blocking malicious host on a firewall). Recent, stable release of ACARM-ng provides following trigger implementations: * informing administrator about suspicious events: ** file (creates files in IDMEF format, with correlated events) ** gg (uses
Gadu-Gadu Gadu-Gadu ( Polish for "chit-chat"; commonly known as GG or gg) is a Polish instant messaging client using a proprietary protocol. At one time, Gadu-Gadu was the most popular IM service in Poland, with over 15 million registered accounts and ...
instant messenger Instant messaging (IM) technology is a type of synchronous computer-mediated communication involving the immediate ( real-time) transmission of messages between two or more parties over the Internet or another computer network. Originally involv ...
's protocol) ** jabber (uses
XMPP Extensible Messaging and Presence Protocol (abbreviation XMPP, originally named Jabber) is an Open standard, open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Ext ...
(formerly named Jabber)
instant messenger Instant messaging (IM) technology is a type of synchronous computer-mediated communication involving the immediate ( real-time) transmission of messages between two or more parties over the Internet or another computer network. Originally involv ...
's protocol) ** mail (sends
electronic mail Electronic mail (usually shortened to email; alternatively hyphenated e-mail) is a method of transmitting and receiving Digital media, digital messages using electronics, electronic devices over a computer network. It was conceived in the ...
) * providing means of automatic reaction: ** extapp (executes external application/script, passing all correlated events as a parameter) ** python (uses user-provided
Python Python may refer to: Snakes * Pythonidae, a family of nonvenomous snakes found in Africa, Asia, and Australia ** ''Python'' (genus), a genus of Pythonidae found in Africa and Asia * Python (mythology), a mythical serpent Computing * Python (prog ...
script for event correlation) ** snort sam (reconfigures many types of firewalls using Snort's Snort Sam plug-in) Each trigger can be set independently to react to a specific threshold, correlated alerts count, or any other rule, defined the same way as daemon's main preprocessor. Such approach gives a fully configurable solution, allowing to define arbitrary complex rules, to minimize false-positives, especially when system is configured to perform autonomous reaction on the suspicious events.


See also

*
Intrusion detection system An intrusion detection system (IDS) is a device or software application that monitors a network or systems for malicious activity or policy violations. Any intrusion activity or violation is typically either reported to an administrator or collec ...
(IDS) *
Intrusion prevention system An intrusion detection system (IDS) is a device or software application that monitors a network or systems for malicious activity or policy violations. Any intrusion activity or violation is typically either reported to an administrator or collec ...
(IPS) * Prelude Hybrid IDS * Snort


References


External links

*
ACARM-ng on sourceforgemain development branch
(
bazaar A bazaar or souk is a marketplace consisting of multiple small Market stall, stalls or shops, especially in the Middle East, the Balkans, Central Asia, North Africa and South Asia. They are traditionally located in vaulted or covered streets th ...
repository)
POSITIF folder
{{DEFAULTSORT:ACARM-ng (Software) Free security software Computer network security Unix security software