Intrusion Detection System
An intrusion detection system (IDS) is a software application that monitors a network or systems for malicious activity or policy violations. An IDS specifically does not aim to prevent malicious actions but instead to monitor and log every event, and in cases where a rule has been defined, take a predefined action.* As of Tiki 18, Exposé is available as a package to provide website threat identification for Tiki.
"An IDS system should not be relied upon for sole protection in your environment! It should only be used in the first level of threat identification. Please read up on Defense in Depth for more information on a layered security approach" (from https://github.com/enygma/expose ).
"Here's a quick list (of features):
I tried to make it so that anyone that's used PHPIDS will feel pretty at home using Expose."
Exposé isn't bundled with Tiki as an external library by default. Instead, it can be installed "on demand" via the Packages feature.
php temp/composer.phar require enygma/expose
Configuration and use
After the Exposé package is installed, go to Site Acccess tab on the Security Admin page (tiki-admin.php?page=security#content_admin1-4).
Custom rules file
Exposé uses the PHPIDS project's ruleset for detecting potential threats. This can be extended with custom rules. The default location and name of the custom rules file is temp/ids_custom_rules.json.
Intrusion detection system mode
The IDS operation mode needs to be defined, and there are two choices here: Log only and Log and block requests. Log and block requests will block an intrusion whose impact is over a given threshold. "As the impact scores in Expose are numeric (0 through whatever, depending on the rules matched) you can easily set a threshold to prevent low-level, annoying notifications being delivered" (https://expose.readthedocs.io/en/latest/).
Intrusion detection system threshold
This is to define the IDS threshold as a numerical value, when in the "Log and block requests" mode. "Some applications know for a fact that they’ll always be getting a certain amount of traffic that’s in the 1-2 impact score range. Getting notifications for every one of these requests would get annoying pretty quickly, so you can set your threshold a bit higher." Setting the threshold to 8 means that Expose will only send notifications when the score is greater than or equal to 8. There’s no concept of “high”, “medium” or “low” in Expose as the meanings of these terms vary greatly by environment and application. "NOTE: Currently notifications are the only thing that setting a threshold changes. Logging and other processing is unchanged" (ibid).
Log to file
Events are logged to a file the default name of which is "ids.log".
History of this Tiki feature:
PHPIDS (PHP-Intrusion Detection System)
This is somewhat similar to ModSecurity but in PHP, and thus configurable via Tiki.
"PHPIDS (PHP-Intrusion Detection System) is a simple to use, well structured, fast and state-of-the-art security layer for your PHP based web application. The IDS neither strips, sanitizes nor filters any malicious input, it simply recognizes when an attacker tries to break your site and reacts in exactly the way you want it to. Based on a set of approved and heavily tested filter rules any attack is given a numerical impact rating which makes it easy to decide what kind of action should follow the hacking attempt. This could range from simple logging to sending out an emergency mail to the development team, displaying a warning message for the attacker or even ending the user’s session.
PHPIDS enables you to see who’s attacking your site and how and all without the tedious trawling of logfiles or searching hacker forums for your domain. Last but not least it’s licensed under the LGPL!"
To configure, visit tiki-admin.php?page=security -> PHPIDS