Commit graph

52 commits

Author SHA1 Message Date
Luca
a4047c5a1c Implements flow callbacks and alerts in C++
Scaffolding code of the host scripts

Scaffolding code for host alerts

Adds host_callbacks/ for .cpp files

Implements all classes for host callbacks

Removes pro/enterprise host callbacks

Adds typedefs with callback deltas

Compilation fix

Creates instances of host callbacks in loader

Link fix

Removes redundant/non-necessary host alerts

Merges Scan and Flood callbacks together

Removes outdated API files

Refactors alert keys into entity|id

Refactors all flow alert_{...} into flow_alert_{...}

Refactors C++ flow alert_{...} into flow_alert_{...}

Reworks alert ids to include an entity type

Cleanup and merge alertTypeRaw with getAlertType

Minor fix

Refactors alert definitions and keys into sub directories

Implement host alert callback execution and trigger/release logic

Update callbacks API

Adds base CallbacksLoader for {Host,Flow}CallbacksLoader

Implements load of host user scripts with periodicities

Implements runtime reload of host callbacks

Add logic for periodic callbacks

Add 'expired' flag to host alerts

Implements execution of host callbacks and SYN flood checks

Adds triggerAlertAsync calls to SYNFlood

Implements JSON host alert generation info

Handle callback getPeriod. Optimize callback lookup.

Implements host recipients in C++

Add callback status

Define destructor

Iterator fixes

Cleanup host Lua calls (now performed in C++)

Changes to show new host alerts in SQLite

Adds release/engage action on alert JSON

Move AlertableEntity to OtherAlertableEntity, inheriting from a new AlertableEntity. Add HostAlertableEntity.

Implements SYN Flood Attacker with params

Uses parametrized thresholds to trigger syn flood alerts

Implements build alert of both attacker and victim

Implement HostAlertableEntity

Implements SYN scan attacker/victim alerts

Implements flow flood attacker/victim alerts

Removes a debug flag

Add virtual allocStatus

Add HostAlert disableAutoRelease()

Add Ãexplicit releaseAlert()

Implements SYNFloodHostCallbackStatus

Implements SYNScanHostCallbackStatus

Implements FlowFloodHostCallbackStatus

Change trigger API to handle cli/src score

Implements {DNS,SMTP,NTP}ServerContactsAlert

Reworks ServerContacts host alerts

Implement exclusion bitmaps for host alerts

Implements {SMTP,DNS,NTP}ServerContactsAlert

Adds host_info to the generated alert JSON

Minor cleanup

Optimize access to callback status

Move RepliesRequestsRatio to pro

Rework triggerAlert on host to avoid multiple call and unneeded status data

Compilation fix

Reworked host alerts API (wip)

Cleanup unused host callbacks

Compilation fixes

Finishes backend implementation of host alerts exclusions

Rework host callbacks executor

Implements disable of host alerts

Port SYNFlood to the new api

Cleanup

Reduce duplicated code

Comments

Port ServerContacts to the new api

Clenaup

Adds parsing of configuration for host callbacks

Port SYNScanAlert to the new API

Port FlowFlood to the new API

Cleanup unused HostAlert getName

Reworks DNSRequestsErrorsRatioAlert

Adds JSON for DNSTrafficAlert

Adds FlowsAlert

Adds P2PTrafficAlert

Add RepliesRequestsRatioAlert

Adds ScoreAlert

Adds ThroughputAlert

Adds TrafficAlert

Fixes for scan/flood alerts

DNS ratio alert support

Add HTTP stats getters

Implements deltas for many host callbacks

Host score inc

Adds missing Alert params to host alerts

Release all host alerts on idle

Refactors score classes

Implements class Score to contain scores for hosts, flows, etc

Adds scores to VLANs, Networks, ASes and Countries

Host callbacks can trigger a single alert now

FlowFlood, SYNFloo, SYNScan now inherit from FlowHits

Move severity and score to constructor

Add else branch to hits callbacks

Alert definition update for flows_flood, syn_flood, syn_scan

Update field name

Engaged alert init

Adds score incs/decs for AS, VLAN, country, os and network

Restore network scripts

Restored other alert definitions for floods

Handle decreasing alert score

Removes include

Rename flows_flood to flow_flood for consistency

Restored alert_tcp_syn_flood_victim alert_tcp_syn_scan_victim definitions

Fixes for non-host engaged/release alerts

Cleanup LuaEngineFlow and LuaEngineHost classes

Fixes old calls to host lua during shutdown

Removes AlertCheckLuaEngine instance

Fixes purging of flows

Fixes alerts release upon shutdown causing wrong uses

Removes a debug flag

Fix getNumEngagedAlerts

Cleanup unnecessary host callbacks

Removes array of callback statuses inside host

Bitmap fixes

Refactors Bitmap into Bitmap128

Implements 16-bits bitmaps for host alerts

Adds class HostCallbacksStatus

Moves callback status p2p and DNS inside HostCallbacksStatus

Removes unused callbacks in typedefs

Minor cleanup

Adds trigger/release for DNS/p2p alerts

Reworks UI of hosts user scripts

Rename HostCallbackType to HostCallbackID, getType to getID, others
2021-04-03 09:53:15 +02:00
Simone Mainardi
aea9138bfb Implements flow callbacks and alerts in C++ 2021-03-22 09:51:36 +01:00
Alfredo Cardigliano
fa311e3ade Rework user script working sets (a single configset is supported now) 2021-03-01 15:37:45 +01:00
Matteo Biscosi
7102c2814b Removed debug prints 2021-03-01 12:14:12 +01:00
Matteo Biscosi
e241227342 Added server/client name and community ID to flow alerts 2021-03-01 12:14:12 +01:00
gabryon99
1a4c7c2388 put the date on two lines (#5065) 2021-02-28 12:23:52 +01:00
Simone Mainardi
696bcb33e5 Implements alert exclusions for hosts, interfaces, local networks 2021-02-23 15:36:14 +01:00
Matteo Biscosi
92345e04d5 Removed unused code from exclusion list 2021-02-19 10:55:19 +01:00
Matteo Biscosi
eac59ae1d5 Fixes date/time len and disabled ex list for flow alerts
Fixed len of date/time column to 5% and disable exclusion list
for the alerts already disabled
2021-02-18 11:42:23 +01:00
Simone Mainardi
209a9be5e6 Implements info-based flow alert exclusion filters 2021-02-16 16:22:06 +01:00
Matteo Biscosi
d6d0780507 Implements add the ability to suppress specific alerts
Implements #4942
2021-02-11 17:13:07 +01:00
Matteo Biscosi
769658268f Implements add the ability to suppress specific alerts
Implements #4942

Partially implemented alerts exclusion list

Added User Script exclusion list to settings

Implements add the ability to suppress specific alerts
Implements #4942
2021-02-10 15:35:54 +01:00
Matteo Biscosi
041a5de8b9 Implements #4941 Flow Alerts: Add L7 Column and Filter Menu 2021-01-29 09:45:01 +01:00
Luca Deri
a1178a0791 Updated (C) 2021-01-02 12:08:23 +01:00
Alfredo Cardigliano
f65f4bbb1f Fix type conversion 2020-11-11 19:22:03 +01:00
Alfredo Cardigliano
e6fb45d9a9 Add PCAP download button to flow alerts 2020-11-11 18:06:51 +01:00
Alfredo Cardigliano
38fa365c51 Traffic recording fixes 2020-11-11 10:20:18 +01:00
gabryon99
3a90817f1d updated datatable button style (#4501) 2020-10-15 08:30:47 +02:00
Simone Mainardi
b7bdd1edaf Massive cleanup of alerts (disabled/suppressed)
Fixes #4504
2020-10-01 18:40:11 +02:00
emanuele-f
6f2f9b223f Fix drilldown interval 2020-04-16 15:59:22 +02:00
emanuele-f
b6d10f2d2a Rework formatAlertMessage json decoding 2020-04-15 15:49:27 +02:00
Simone Mainardi
e487427aab Refactors alert_utils and enterprise_alert_utils
Addresses #3720

Alerts Refactor: alert_utils as module

Alerts Refactor: notify_ntopng_start and notify_ntopng_stop

Alerts Refactor: processAlertNotifications

Alerts Refactor: checkStoreAlertsFromC

Alerts Refactor: formatAlertNotification

Alerts Refactor: notification_timestamp_rev

Alerts Refactor: formatAlertMessage

Alerts Refactor: getConfigsetAlertLink

Alerts Refactor: alertNotificationActionToLabel

Alerts Refactor: flushAlertsData

Alerts Refactor: disableAlertsGeneration

Alerts Refactor: newAlertsWorkingStatus and other

Alerts Refactor: drawAlerts

Alerts Refactor: drawAlertTables

Alerts Refactor: printAlertTables

Alerts Refactor: checkDeleteStoredAlerts

Alerts Refactor: getUnpagedAlertOptions

Alerts Refactor: getTabParameters

Alerts Refactor: getAlerts

Alerts Refactor: getNumAlerts

Alerts Refactor: performAlertsQuery

Alerts Refactor: sec2granularity

Alerts Refactor: granularity2id

Alerts Refactor: granularity2sec

Alerts Refactor: alertEngineLabel

Alerts Refactor: alertEngine

Alerts Refactor: alertEngineRaw

Alerts Refactor: alertTypeDescription

Alerts Refactor: alertType

Alerts Refactor: alertTypeLabel

Alerts Refactor: alertTypeRaw

Alerts Refactor: alertSeverity

Alerts Refactor: alertSeverityLabel

Alerts Refactor: alertSeverityRaw

Alerts Refactor: get_make_room_keys

Alerts Refactor: enterprise_alert_utils
2020-04-10 14:03:20 +02:00
Simone Mainardi
3744ace4f8 Refactors graph_utils and nv_graph_utils
Addresses #3720

Refactor: create module graph_utils

Refactor: get_timeseries_layout

Refactor: get_default_timeseries

Refactor: getDeviceCommonTimeseries

Refactor: printCategoryDropdownButton

Refactor: printPoolChangeDropdown

Refactor: poolDropdown

Refactor: printProtocolQuota

Refactor: printGraphTopFlows

Refactor: drawGraphs

Refactor: printNotes

Refactor: getMinZoomResolution

Refactor: printSeries

Refactor: zoom_vals

Refactor: getZoomDuration

Refactor: getZoomAtPos

Refactor: stackedProgressBars

Refactor: percentageBar

Refactor: breakdownBar

Refactor: getProtoVolume

Refactor: normalizeSeriesPoints

Refactor: nv_graph_utils

Refactor: extendLabels

Refactor: getAlertGraphLink

Refactor: performCustomQuery

Refactor: drawProGraph

Refactor: unifies nv_graph_utils and graph_utils
2020-04-10 09:47:32 +02:00
Alfredo Cardigliano
2425134f05 Replace isEnterprise with isEnterpriseM 2020-04-02 12:36:34 +00:00
emanuele-f
611dc3d499 Remove historical flow explorer link for score alerts
Host having an high score does not imply that the host has alerted flows. When no
flow alerts are present, adding a link to the explorer is wrong.
2020-03-25 15:40:33 +01:00
Simone Mainardi
4ed8cfecc3 Implements merge of multiple identical alerts
Implements #3430
2020-02-25 18:14:28 +01:00
emanuele-f
3b3b8a1705 Fix explore button missing and add explore for host score 2020-02-10 18:52:14 +01:00
emanuele-f
9d59aa67be Add flow alerts score column 2020-02-10 11:51:00 +01:00
Luca Deri
170bc60f19 Updated (C) 2020-01-08 23:52:51 +01:00
Alfredo Cardigliano
5d3cdc490c Removed duration (e.g. '< 1 sec') for alerts with no duration 2020-01-08 20:00:23 +01:00
Simone Mainardi
dacaa7e3db Migrates font-awesome 5 fa to fas 2019-12-18 11:50:02 +01:00
emanuele-f
a96a90b65f Optimize disabled alerts bitmap redis access 2019-11-05 12:29:08 +01:00
Simone Mainardi
f942ec3a1c Fixes wrong alerts sort column causing queries to fail
Fixes #3006
2019-10-25 14:11:49 +02:00
emanuele-f
10aa5542f8 Rework alertEntity functions to avoid modules circular dependencies
Fixes #2975
2019-10-23 13:01:57 +02:00
emanuele-f
873b96c20a Split alert types definitions in multiple files 2019-10-16 12:04:07 +02:00
emanuele-f
b217909966 Split flow status definitions in multiple files 2019-10-15 17:28:45 +02:00
emanuele-f
2fdc860ed2 Add support for custom flow alerts in user scripts 2019-10-11 19:48:11 +02:00
emanuele-f
b62e4183f0 Add ability to manually release an alert 2019-09-04 12:29:13 +02:00
Simone Mainardi
606e681d8e Fixes flow alerts exploration
Fixes #2782
2019-08-27 15:42:35 +02:00
Simone Mainardi
81f93ad882 Implements Icinga2 check plugin for host and host flow alerts 2019-08-23 14:53:12 +02:00
emanuele-f
444916fa14 Fix wrong engaged alerts number when a filter is applied 2019-07-31 15:05:26 +02:00
emanuele-f
ee9e5ec9de Unify alerts and alerts notifications format 2019-07-30 18:12:58 +02:00
emanuele-f
c183a577be Alerts API cleanup and JSON migration 2019-07-29 15:17:22 +02:00
emanuele-f
a3942831b8 Fix issues with engaged alert counters and other improvements 2019-07-24 15:40:43 +02:00
emanuele-f
09fb8667e2 Add ability to disable specific alert types on alertables 2019-07-22 23:37:23 +02:00
emanuele-f
ecdf88b8a0 Host alerts migration to new api 2019-07-09 18:50:45 +02:00
emanuele-f
a9d3c78587 Alerts changes
NOTE: database schema changed. Existing alerts will be lost.

- Unified engaged and closed tables
- Simplified hosts engaged alert counters handling: periodically set by lua
- Removed alert engine and replaced with alert periodicity
- Now engage is implicitly derived from the alert end timestamp and periodicity
- New alerts_api.lua to easily emit alerts
- Removed past alerts counter aggregation by hash
- Alert notifications for non-flow alerts are now removed from C and triggered by lua
2019-06-28 10:47:17 +02:00
emanuele-f
6234245773 Move InfluxDB monitoring to separate entry 2019-06-10 12:47:10 +02:00
Emanuele Faranda
5f9e8b17df
Implement System interface
The system interface now holds system wide alerts and timeseries
2019-06-03 08:53:26 +00:00
Simone Mainardi
ddd3015db1 Implements alerts mitigation for stored alerts 2019-04-12 16:20:55 +02:00