ITTO20090365A1 - METHOD OF DETECTION OF ANOMALIES IN A COMMUNICATION NETWORK AND NETWORK DEVICE THAT IMPLEMENTS THIS METHOD - Google Patents
METHOD OF DETECTION OF ANOMALIES IN A COMMUNICATION NETWORK AND NETWORK DEVICE THAT IMPLEMENTS THIS METHOD Download PDFInfo
- Publication number
- ITTO20090365A1 ITTO20090365A1 IT000365A ITTO20090365A ITTO20090365A1 IT TO20090365 A1 ITTO20090365 A1 IT TO20090365A1 IT 000365 A IT000365 A IT 000365A IT TO20090365 A ITTO20090365 A IT TO20090365A IT TO20090365 A1 ITTO20090365 A1 IT TO20090365A1
- Authority
- IT
- Italy
- Prior art keywords
- field
- weight
- metadata
- event
- cell
- Prior art date
Links
- 238000001514 detection method Methods 0.000 title claims description 78
- 238000000034 method Methods 0.000 title claims description 33
- 238000004891 communication Methods 0.000 title claims description 18
- 230000009471 action Effects 0.000 claims description 88
- 230000006870 function Effects 0.000 claims description 84
- 230000002688 persistence Effects 0.000 claims description 25
- 238000003780 insertion Methods 0.000 claims description 15
- 230000037431 insertion Effects 0.000 claims description 15
- 230000011664 signaling Effects 0.000 claims description 4
- 230000000875 corresponding effect Effects 0.000 description 122
- 230000002155 anti-virotic effect Effects 0.000 description 15
- 230000001681 protective effect Effects 0.000 description 11
- 230000002123 temporal effect Effects 0.000 description 7
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 5
- 241000700605 Viruses Species 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000035945 sensitivity Effects 0.000 description 3
- 230000007257 malfunction Effects 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 101100004031 Mus musculus Aven gene Proteins 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000005352 clarification Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013479 data entry Methods 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1408—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
- H04L63/1416—Event detection, e.g. attack signature detection
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Communication Control (AREA)
Description
“METODO DI RILEVAZIONE DI ANOMALIE IN UNA RETE DI COMUNICAZIONE E DISPOSITIVO DI RETE CHE IMPLEMENTA TALE METODO†⠀ œMETHOD FOR DETECTION OF ANOMALIES IN A COMMUNICATION NETWORK AND NETWORK DEVICE IMPLEMENTING THIS METHODâ €
La presente invenzione à ̈ relativa ad un metodo di rilevazione di anomalie in una rete di comunicazione e ad un dispositivo di rete che implementa tale metodo. The present invention relates to a method for detecting anomalies in a communication network and to a network device that implements this method.
Come à ̈ noto, data una rete di dispositivi elettronici (calcolatori, router, ecc.) che comunicano tra di loro, cui nel seguito ci si riferisce anche come dispositivi di rete, à ̈ particolarmente sentita l’esigenza di garantire il corretto funzionamento della rete in termini di sicurezza, cioà ̈ di monitorare e, se possibile, prevenire azioni illecite da parte degli utenti della rete. As is known, given a network of electronic devices (computers, routers, etc.) that communicate with each other, which are also referred to in the following as network devices, the need is particularly felt to guarantee correct operation. of the network in terms of security, that is to monitor and, if possible, prevent illegal actions by network users.
A tal fine, sono ad oggi disponibili numerosi dispositivi di protezione, sia di tipo software che di tipo hardware, atti ad essere collegati in rete e ad assolvere funzioni di sicurezza. A titolo puramente esemplificativo, sono noti i cosiddetti “antivirus†, cioà ̈ programmi per calcolatore che, quando eseguiti, consentono di rilevare e, in parte, prevenire lo svolgimento di azioni illecite nel calcolatore in cui sono eseguiti (ad esempio, rilevando ed eliminando, se possibile, file malevoli quali i cosiddetti virus, malware, spyware, ecc.). Tipicamente, gli antivirus operano ricercando, all’interno di file presenti nel file system, sequenze di byte indicative della presenza di virus. To this end, numerous protection devices are currently available, both of the software and hardware type, capable of being networked and performing safety functions. By way of example only, the so-called `` antivirus '' are known, i.e. computer programs which, when executed, allow to detect and, in part, prevent the carrying out of illegal actions in the computer in which they are performed (for example, by detecting and eliminating, if possible, malicious files such as so-called viruses, malware, spyware, etc.). Typically, antivirus work by searching for sequences of bytes indicating the presence of viruses within files present in the file system.
Similmente, sono noti i cosiddetti “firewall†, cioà ̈ apparati di rete che filtrano, sulla base di criteri (anche detti politiche o regole) stabiliti tipicamente da un amministratore di rete, pacchetti provenienti da o diretti verso una porzione della rete (sottorete), oppure pacchetti provenienti da o diretti verso un dispositivo di rete. In questo modo, i firewall controllano le connessioni che si stabiliscono tra diversi dispositivi di rete, cioà ̈ controllano le comunicazioni che avvengono tra diversi dispositivi di rete. Similarly, the so-called `` firewalls '' are known, i.e. network devices that filter, on the basis of criteria (also called policies or rules) typically established by a network administrator, packets coming from or directed towards a portion of the network (subnet ), or packets coming from or going to a network device. In this way, firewalls control the connections that are established between different network devices, that is, they control the communications that take place between different network devices.
Sono altresì noti i cosiddetti sistemi di rilevamento di intrusione (“Intrusion Detection System†, IDS), cioà ̈ apparati di rete che consentono di identificare accessi e tentativi di accesso non autorizzati a calcolatori e a reti di comunicazione, quali ad esempio attacchi compiuti mediante esecuzione di applicazioni malevole, o tentativi di accesso a calcolatori mediante innalzamento illecito di privilegi utente. Operativamente, i sistemi IDS funzionano mediante ricerca di firme indicative di attacchi, in modo da discriminare tra azioni lecite ed illecite. The so-called intrusion detection systems (â € œIntrusion Detection Systemâ €, IDS) are also known, i.e. network devices that allow the identification of unauthorized access and access attempts to computers and communication networks, such as for example attacks carried out through the execution of malicious applications, or attempts to access computers by illegally raising user privileges. Operationally, the IDS systems work by searching for signatures indicative of attacks, in order to discriminate between lawful and illegal actions.
Ancora a titolo esemplificativo, sono inoltre noti i cosiddetti sistemi di prevenzione di intrusione (“Intrusion Prevention System†, IPS), cioà ̈ sistemi analoghi ai sistemi IDS, ma capaci di operare attivamente per bloccare o prevenire azioni illecite, implementando regole più complesse rispetto a quanto avviene, ad esempio, nei firewall. Still by way of example, the so-called intrusion prevention systems (â € œIntrusion Prevention Systemâ €, IPS) are also known, i.e. systems similar to IDS systems, but capable of actively operating to block or prevent illegal actions, implementing more complex rules compared to what happens, for example, in firewalls.
Ciascun dispositivo di protezione può determinare l’illiceità di azioni solamente di un certo tipo, o comunque di un numero limitato di tipi; a tal fine, ciascun dispositivo di protezione rileva azioni di tale tipo (o di tale numero limitato di tipi). Ad esempio, nel caso dei firewall le azioni rilevate sono comunicazioni tra dispositivi di rete, mentre, nel caso degli antivirus, tali azioni sono operazioni svolte nel calcolatore in cui l’antivirus à ̈ eseguito. Più precisamente, i firewall consentono/vietano comunicazioni tra dispositivi di rete confrontando dati scambiati durante tali comunicazioni (ad esempio, indirizzi IP di pacchetti dati) con le proprie regole, mentre gli antivirus effettuano controlli di dati presenti all’interno dei calcolatori in cui sono installati. Per quanto concerne, invece, i sistemi IDS e IPS, essi controllano le azioni svolte all’interno di una rete nel suo complesso. Each protection device can determine the illegality of actions of only a certain type, or in any case of a limited number of types; for this purpose, each protective device detects actions of this type (or of this limited number of types). For example, in the case of firewalls, the detected actions are communications between network devices, while, in the case of antivirus, these actions are operations carried out in the computer where the antivirus is run. More precisely, firewalls allow / prohibit communications between network devices by comparing data exchanged during such communications (for example, IP addresses of data packets) with their own rules, while antivirus checks perform data checks inside the computers in which are installed. As regards, instead, the IDS and IPS systems, they control the actions carried out within a network as a whole.
Ogni qual volta un dispositivo di protezione rileva un’azione, esso la classifica in lecita o illecita, applicando regole specifiche del dispositivo di protezione stesso. Ad esempio, nel caso di un firewall, le regole esplicitano direttamente elenchi di connessioni permesse ed elenchi di connessioni proibite, dunque l’applicazione delle regole consiste nel confrontare ogni connessione, cioà ̈ ogni pacchetto ricevuto dal firewall, con tali elenchi, al fine di stabilirne la liceità . Invece, nel caso di dispositivi di protezione che operano mediante ricerca di firme, come ad esempio alcuni antivirus, le regole sono generalmente implicite, cioà ̈ consistono sostanzialmente nel verificare la presenza delle firme ricercate. Ai fini della presente invenzione, i dettagli relativi all’implementazione pratica delle regole nei dispositivi di protezione non sono rilevanti. Whenever a protective device detects an action, it classifies it as lawful or illegal, applying specific rules of the protective device itself. For example, in the case of a firewall, the rules directly explicate lists of allowed connections and lists of forbidden connections, therefore the application of the rules consists in comparing each connection, that is, each packet received by the firewall, with these lists, in order to establish its lawfulness. On the other hand, in the case of protection devices that operate by searching for signatures, such as for example some antivirus, the rules are generally implicit, that is, they basically consist in verifying the presence of the sought signatures. For the purposes of the present invention, the details relating to the practical implementation of the rules in the protective devices are not relevant.
In uso, i dispositivi di protezione generano un rispettivo file di registro, generalmente noto come “log†, in cui sono contenute informazioni relative ad azioni rilevate e classificate. In dettaglio, dato un dispositivo di protezione all’interno di una rete (dunque, provvisto di un rispettivo indirizzo di rete), per ogni azione rilevata e classificata esso inserisce sequenzialmente nel proprio log una corrispondente voce (“entry†), tipicamente in formato proprietario. La voce contiene informazioni differenti a seconda del tipo di azione cui si riferisce, tali informazioni essendo generalmente contenute in corrispondenti campi della voce, intendendo con campo di una voce una porzione di voce dedicata a contenere una corrispondente informazione, e prescindendo dal formato effettivamente impiegato dal singolo dispositivo di protezione per codificare tale corrispondente informazione. Pertanto, dispositivi di protezione di tipo differente generano log le cui voci presentano campi differenti. Esistono tuttavia alcune informazioni comuni alle voci di tutti i dispositivi di protezione, quindi esistono campi che sono comuni ai dispositivi di protezione. Infatti, data una voce generata da un generico dispositivo di protezione dopo aver rilevato e classificato un’azione, quindi dopo aver applicato le proprie regole, essa contiene almeno i seguenti campi (figura 1): In use, the protective devices generate a respective log file, generally known as â € œlogâ €, which contains information relating to detected and classified actions. In detail, given a protection device inside a network (therefore, provided with a respective network address), for each detected and classified action it sequentially inserts a corresponding entry (â € œentryâ €) in its log, typically in proprietary format. The item contains different information depending on the type of action to which it refers, such information being generally contained in corresponding fields of the item, meaning with an item field a portion of the item dedicated to containing a corresponding information, and regardless of the format actually used by the item. single protection device to encode this corresponding information. Therefore, different types of protection devices generate logs whose entries have different fields. However, there is some information common to all protective device entries, so there are fields that are common to protective devices. In fact, given an entry generated by a generic protection device after having detected and classified an action, therefore after having applied its rules, it contains at least the following fields (figure 1):
- un campo di valore temporale 101, contenente un istante di tempo associato all’azione, tipicamente l’istante di rilevazione dell’azione, oppure l’istante in cui il dispositivo di protezione considerato ha applicato le regole per classificare l’azione; - a time value field 101, containing an instant of time associated with the action, typically the instant of detection of the action, or the instant in which the protective device considered has applied the rules to classify the action € ™ action;
- un campo di indirizzo 102, contenente un indirizzo di rete di un dispositivo di rete; - an address field 102, containing a network address of a network device;
- un campo di risultato 103, contenente l’esito dell’applicazione delle regole, cioà ̈ un’indicazione relativa al fatto che l’azione sia stata classificata come lecita o illecita; - a result field 103, containing the outcome of the application of the rules, ie an indication as to whether the action has been classified as lawful or unlawful;
- un campo di azione 104, contenente un identificatore di azione determinato in funzione del tipo di azione rilevata. - an action field 104, containing an action identifier determined according to the type of action detected.
Circa il campo di indirizzo 102, l’indirizzo di rete ivi contenuto à ̈ differente a seconda del dispositivo di protezione che ha generato la voce. Ad esempio, nel caso di antivirus, il campo di indirizzo 102 contiene l’indirizzo di rete del calcolatore in cui à ̈ installato l’antivirus. Nel caso di firewall, dunque nel caso di un dispositivo di protezione che monitora connessioni tra coppie di dispositivi di rete, cioà ̈ trasmissioni di pacchetti di dati (“data packet†) da un dispositivo sorgente ad un dispositivo destinazione, il campo di indirizzo 102 contiene invece l’indirizzo di rete del dispositivo sorgente. Ad esempio, nel caso di reti IP, nel campo di indirizzo 102 à ̈ presente l’indirizzo IP del dispositivo sorgente. Regarding the address field 102, the network address contained therein differs according to the protection device that generated the voice. For example, in the case of antivirus, the address field 102 contains the network address of the computer in which the antivirus is installed. In the case of a firewall, therefore in the case of a protection device that monitors connections between pairs of network devices, i.e. transmissions of data packets (`` data packet '') from a source device to a destination device, the address field 102 instead contains the network address of the source device. For example, in the case of IP networks, the IP address of the source device is present in the address field 102.
Circa il campo di risultato 103, nel caso di azione illecita esso può contenere un’indicazione generica di illiceità , oppure può contenere un’indicazione specifica di illiceità , tipicamente indicativa di un’azione svolta dal dispositivo di protezione stesso in risposta all’azione rilevata. Ad esempio, nel caso di firewall, in caso di azione illecita il campo di risultato 103 può contenere un’indicazione relativa al rifiuto di un pacchetto (“reject†), oppure all’emissione di un’allerta (“alert†) da parte del firewall stesso. Regarding the result field 103, in the case of an unlawful action it can contain a generic indication of illegality, or it can contain a specific indication of illegality, typically indicative of an action carried out by the protective device itself in response to the € ™ action detected. For example, in the case of firewalls, in the event of an illegal action, the result field 103 may contain an indication relating to the refusal of a packet (â € œrejectâ €), or to the issuance of an alert (â € œalertâ €) by the firewall itself.
Circa il campo di azione 104, esso contiene un identificativo che consente di identificare con precisione l’azione cui la voce corrisponde. Ad esempio, nel caso di voce generata da un firewall in seguito al rilevamento di una comunicazione tramite protocollo ftp, il campo di azione 104 può contenere un identificativo relativo al protocollo di trasporto TCP (“Transport Control Protocol†) ed alla porta ventuno, impiegati dal protocollo ftp. Regarding the action field 104, it contains an identifier that allows you to precisely identify the action to which the item corresponds. For example, in the case of an entry generated by a firewall following the detection of a communication via ftp protocol, the action field 104 can contain an identifier relating to the TCP transport protocol (â € œTransport Control Protocolâ €) and to port twenty-one, used by the ftp protocol.
Oltre ai summenzionati campi, le voci possono comprendere ulteriori campi (in figura 1 indicati genericamente con 105), a seconda dei dispositivi di protezione che le hanno generate. Ad esempio, nel caso dei firewall e dei sistemi IDS/IPS, le voci comprendono, tra l’altro, un ulteriore campo di indirizzo, contenente l’indirizzo di rete del dispositivo destinazione della trasmissione cui la voce si riferisce. Nel caso di antivirus di tipo tradizionale, cioà ̈ operante sul file system del calcolatore in cui à ̈ installato, tale ulteriore campo di indirizzo à ̈ assente. Tuttavia, l’ulteriore campo di indirizzo può essere presente nel caso di antivirus del tipo (noto) capace di analizzare il contenuto di pacchetti dati diretti verso il calcolatore stesso, nel qual caso il campo di indirizzo 102 contiene l’indirizzo di rete del calcolatore in cui l’antivirus à ̈ installato, mentre l’ulteriore campo di indirizzo contiene generalmente un indirizzo di rete di un altro dispositivo di rete. In addition to the aforementioned fields, the items may include further fields (in figure 1 indicated generically with 105), depending on the protection devices that generated them. For example, in the case of firewalls and IDS / IPS systems, the entries include, among other things, an additional address field, containing the network address of the transmission destination device to which the entry refers. In the case of traditional anti-virus, ie operating on the file system of the computer in which it is installed, this additional address field is absent. However, the further address field may be present in the case of antivirus of the (known) type capable of analyzing the content of data packets directed towards the computer itself, in which case the address field 102 contains the network address of the computer in which the antivirus is installed, while the additional address field generally contains a network address of another network device.
Operativamente, data una rete in cui sono presenti dispositivi di protezione di tipo differente (ad esempio, una pluralità di antivirus, uno o più firewall, ecc.), ciascun dispositivo di protezione rileva e classifica una rispettiva pluralità di azioni, in maniera sostanzialmente indipendente da ciò che viene rilevato dagli altri dispositivi di protezione. Inoltre, tipicamente ciascun dispositivo di protezione rileva e classifica singole azioni, senza fornire informazioni relative ad aggregati di azioni, cioà ̈ informazioni relative ad eventuali correlazioni esistenti tra due o più azioni rilevate. Ancora, generalmente le singole azioni sono classificate in lecite e illecite, senza che sia possibile disporre di informazioni circa la gravità delle eventuali azioni illecite. Operationally, given a network in which there are different types of protection devices (for example, a plurality of antivirus, one or more firewalls, etc.), each protection device detects and classifies a respective plurality of actions, in a substantially independent manner what is detected by the other protective devices. Furthermore, typically each protection device detects and classifies individual actions, without providing information relating to aggregates of actions, ie information relating to any correlations existing between two or more detected actions. Furthermore, the individual actions are generally classified as lawful and illegal, without it being possible to have information about the seriousness of any illegal actions.
Dal punto di vista della sicurezza della rete, la classificazione di singole azioni, e quindi la determinazione dell’illiceità di singole azioni, non à ̈ sufficiente e garantire la sicurezza della rete. Piuttosto, à ̈ sentita l’esigenza di disporre di informazioni relative al verificarsi di violazioni diffuse di regole applicate dai dispositivi di protezione della rete, oltre che di informazioni relative alla gravità delle azioni illecite. In dettaglio, à ̈ sentita l’esigenza di disporre di informazioni relative al verificarsi, all’interno della rete, di cosiddette anomalie, intendendo con anomalia il verificarsi di un insieme di violazioni di regole, cioà ̈ di azioni illecite, con tempistiche e gravità impostabili a priori. From the point of view of network security, the classification of single actions, and therefore the determination of the illegality of single actions, is not enough to guarantee the security of the network. Rather, the need is felt to have information relating to the occurrence of widespread violations of the rules applied by the network protection devices, as well as information relating to the seriousness of the illegal actions. In detail, the need is felt to have information relating to the occurrence, within the network, of so-called anomalies, meaning by anomaly the occurrence of a set of violations of rules, i.e. of illegal actions, with timescales and gravity settable in advance.
I problemi descritti sono risolti solo in parte da alcuni recenti sistemi di sicurezza informatica, i quali sono collegabili in rete e sono configurati in modo da interfacciarsi con i dispositivi di protezione della rete, scaricare periodicamente i log e fornire analisi statistiche delle informazioni raccolte. Sulla base di tali informazioni statistiche à ̈ poi possibile identificare, ad esempio, il ripetersi di un determinato tipo di azioni illecite, rilevate da parte di uno o più dispositivi di protezione. The problems described are only partially solved by some recent IT security systems, which can be connected to the network and are configured to interface with the network protection devices, periodically download the logs and provide statistical analysis of the information collected. On the basis of this statistical information, it is then possible to identify, for example, the repetition of a certain type of illegal action, detected by one or more protective devices.
Tuttavia, tali sistemi di sicurezza impiegano capienti basi di dati (“database†), in cui riversano periodicamente il contenuto dei log scaricati dai dispositivi di protezione, in vista della successiva analisi. Pertanto, tali sistemi si avvalgono di elementi addizionali (database) rispetto alla rete da monitorare, per di più estremamente costosi, a causa della grande mole di dati che devono contenere. A ciò si aggiunge il fatto che i tempi di scrittura e di accesso ai dati contenuti nei database rendono particolarmente lente le operazioni svolte da tali sistemi di sicurezza. However, these security systems use large data bases (â € œdatabasesâ €), into which they periodically pour the contents of the logs downloaded from the protection devices, in view of the subsequent analysis. Therefore, these systems make use of additional elements (databases) with respect to the network to be monitored, which are extremely expensive, due to the large amount of data they must contain. To this is added the fact that the times of writing and accessing the data contained in the databases make the operations carried out by these security systems particularly slow.
Inoltre, dal momento che si appoggiano a dei database, i sistemi di sicurezza di tipo noto non elaborano il contenuto di ciascun log in flusso continuo (“on-line†), cioà ̈ non appena tale contenuto à ̈ a disposizione, bensì analizzano i dati contenuti nei database in successivi istanti di tempo, con conseguenti ritardi nell’analisi dei dati stessi. Ne consegue che, quando si inizia una prima elaborazione del contenuto del database, ad esempio in un dato istante Tstart, si elaborano i dati contenuti nel database all’istante Tstart, senza che sia possibile elaborare i dati che sono ricevuti durante la prima elaborazione stessa, successivamente all’istante Tstart. Per poter analizzare anche tali dati, à ̈ necessario iniziare una nuova elaborazione, successiva alla prima elaborazione, la quale avrà per oggetto non solo tali dati ricevuti durante la prima elaborazione, bensì anche i dati contenuti nel database all’istante Tstart, dunque già oggetto della prima elaborazione. Furthermore, since they rely on databases, known security systems do not process the content of each log in a continuous flow (â € œon-lineâ €), that is, as soon as this content is available, but rather they analyze the data contained in the databases in subsequent instants of time, with consequent delays in the analysis of the data. It follows that, when a first processing of the database content is started, for example at a given Tstart instant, the data contained in the database is processed at the Tstart instant, without it being possible to process the data received during the first processing. itself, subsequently to the instant Tstart. In order to also analyze these data, it is necessary to start a new processing, subsequent to the first processing, which will have as its object not only these data received during the first processing, but also the data contained in the database at the Tstart instant, therefore already object of the first elaboration.
Infine, per effettuare le analisi, i sistemi di sicurezza noti utilizzano una quantità di risorse computazionali che tipicamente dipendono dalla quantità di dati contenuti nei database, cioà ̈ effettuano un numero di operazioni dipendente dal numero di dati in ingresso (le voci) da analizzare. Finally, to carry out the analyzes, the known security systems use a quantity of computational resources that typically depend on the quantity of data contained in the databases, that is, they perform a number of operations depending on the number of input data (the entries) to be analyzed.
Scopo delle presente invenzione à ̈ realizzare un metodo di rilevazione di anomalie in una rete di comunicazione ed un dispositivo di rete che consentano di risolvere almeno in parte gli inconvenienti dell’arte nota. The purpose of the present invention is to provide a method for detecting anomalies in a communication network and a network device which allow to solve at least in part the drawbacks of the known art.
Secondo la presente invenzione, sono forniti un metodo di rilevazione di anomalie in una rete di comunicazione, un dispositivo di protezione che implementa tale metodo ed un prodotto software, come definiti, rispettivamente, nelle rivendicazioni 1, 33 e 34. According to the present invention, a method for detecting anomalies in a communication network, a protection device implementing this method and a software product are provided, as defined, respectively, in claims 1, 33 and 34.
Per una migliore comprensione dell’invenzione, ne vengono ora descritte forme di realizzazione, a puro titolo di esempio non limitativo e con riferimento ai disegni allegati, nei quali: For a better understanding of the invention, embodiments are now described, purely by way of non-limiting example and with reference to the attached drawings, in which:
- la figura 1 mostra una struttura di una voce di un log secondo l’arte nota; - figure 1 shows a structure of an entry of a log according to the known art;
- la figura 2 mostra schematicamente una struttura dati secondo la presente invenzione; Figure 2 schematically shows a data structure according to the present invention;
- la figura 3 mostra schematicamente una struttura di una cella di una struttura dati secondo la presente invenzione; Figure 3 schematically shows a structure of a cell of a data structure according to the present invention;
- la figura 4 mostra un diagramma di flusso di una funzione di ricerca relativa ad una struttura dati secondo la presente invenzione; Figure 4 shows a flow diagram of a search function relating to a data structure according to the present invention;
- la figura 5 mostra un diagramma di flusso di una funzione di cancellazione relativa ad una struttura dati secondo la presente invenzione; figure 5 shows a flow diagram of an erasing function relating to a data structure according to the present invention;
- la figura 6 mostra un diagramma di flusso di una funzione di aggiornamento relativa ad una struttura dati secondo la presente invenzione; figure 6 shows a flow diagram of an updating function relating to a data structure according to the present invention;
- la figura 7 mostra un diagramma di flusso di una funzione di inserimento relativa ad una struttura dati secondo la presente invenzione; figure 7 shows a flow diagram of an insertion function relating to a data structure according to the present invention;
- la figura 8 mostra un mostra un diagramma di flusso di una forma di realizzazione del presente metodo di rilevazione di anomalie; Figure 8 shows a flow diagram of an embodiment of the present anomaly detection method;
- la figura 9 mostra schematicamente una struttura di un metadato secondo la presente invenzione; Figure 9 schematically shows a structure of a metadata according to the present invention;
- la figura 10 mostra un diagramma di flusso di operazioni di verifica, secondo la presente invenzione; Figure 10 shows a flow chart of verification operations, according to the present invention;
- le figure 11a, 11b e 12 mostrano schematicamente strutture di celle di strutture dati secondo la presente invenzione; Figures 11a, 11b and 12 schematically show cell structures of data structures according to the present invention;
- le figure 13-15 mostrano diagrammi di flusso di operazioni di aggiornamento di strutture dati, secondo la presente invenzione. Figures 13-15 show flow diagrams of data structure updating operations, according to the present invention.
Come descritto in dettaglio in seguito, il presente metodo di identificazione di anomalie in una rete di comunicazione prevede, a grandi linee, di acquisire voci generate da uno o più dispositivi di protezione in risposta a corrispondenti azioni rilevate dai dispositivi di protezione stessi, e, per ciascuna di tali voci, generare un corrispondente metadato (descritto in dettaglio in seguito), aggregare il metadato in una o più strutture dati sulla base di un insieme di informazioni contenute nel metadato, e determinare la presenza di una o più anomalie sulla base del contenuto di tali strutture dati. As described in detail below, the present method of identifying anomalies in a communication network provides, broadly speaking, to acquire entries generated by one or more protection devices in response to corresponding actions detected by the protection devices themselves, and, for each of these items, generate a corresponding metadata (described in detail below), aggregate the metadata into one or more data structures on the basis of a set of information contained in the metadata, and determine the presence of one or more anomalies on the basis of content of these data structures.
Le strutture dati utilizzate nelle forme di realizzazione della presente invenzione sono del tipo mostrato in figura 2. In dettaglio, una struttura dati 200 comprende un numero D (nell’esempio di figura 2, D=3) di tabelle 201, ciascuna tabella 201 essendo formata da una rispettiva pluralità di celle 202, disposte su un numero H (nell’esempio di figura 2, H=4) di righe 203 ed un numero W (nell’esempio di figura 2, W=8) di colonne 204, che rappresentano rispettivamente l’altezza e la larghezza della tabella 201. Per comodità di descrizione, e senza perdita di generalità , si assume che l’altezza H e la larghezza W di ciascuna tabella, oltre che la posizione delle tabelle 201 all’interno di una struttura dati 200, siano misurate rispetto al sistema di riferimento mostrato in figura 2. Inoltre, per poter individuare singolarmente tutte le celle 202 di una struttura dati 200, si assumono un primo, un secondo ed un terzo indice, rispettivamente denominati come d, h e w, ed aventi funzione di indicare, rispettivamente, le tabelle 201 e, all’interno di ciascuna tabella 201, le righe 203 e le colonne 204 di celle 202. The data structures used in the embodiments of the present invention are of the type shown in Figure 2. In detail, a data structure 200 comprises a number D (in the example of Figure 2, D = 3) of tables 201, each table 201 being formed by a respective plurality of cells 202, arranged on a number H (in the example of figure 2, H = 4) of rows 203 and a number W (in the example of figure 2, W = 8) of columns 204, which respectively represent the height and width of the table 201. For convenience of description, and without loss of generality, it is assumed that the height H and the width W of each table, as well as the position of the tables 201 within a data structure 200, are measured with respect to the reference system shown in figure 2. Furthermore, in order to be able to individually identify all the cells 202 of a data structure 200, a first, a second and a third index are assumed, respectively named as d, h and w, and aven The function is to indicate, respectively, tables 201 and, within each table 201, rows 203 and columns 204 of cells 202.
Ciascuna cella 202 presenta tre campi, illustrati in figura 3 e descritti anch’essi in maggior dettaglio in seguito: un campo di impronta 301, contenente un’impronta Fcl; un campo di marca temporale 302, contenente una marca temporale Tcl; ed un campo di dati 303, atto a contenere dati. Each cell 202 has three fields, illustrated in Figure 3 and also described in greater detail below: a footprint field 301, containing an Fcl footprint; a time stamp field 302, containing a time stamp Tcl; and a data field 303, adapted to contain data.
Operativamente, aggregare i metadati in una struttura dati 200 del tipo mostrato in figura 2 significa che le celle 202 della struttura dati sono selezionate sulla base di porzioni di metadati, cui ci si riferisce come elementi di aggregazione (nel seguito, per brevità , elementi), e possono contenere informazioni relative a più metadati, aventi medesimi elementi. In altre parole, si stabilisce una relazione tra gli elementi e gli indici h e w di ciascuna tabella 201 della struttura dati 200. Pertanto, la struttura dati 200 viene indicizzata in funzione degli elementi. Operationally, aggregating the metadata in a data structure 200 of the type shown in figure 2 means that the cells 202 of the data structure are selected on the basis of portions of metadata, which are referred to as aggregation elements (hereinafter, for the sake of brevity, elements) , and may contain information relating to several metadata, having the same elements. In other words, a relationship is established between the elements and the indices h and w of each table 201 of the data structure 200. Therefore, the data structure 200 is indexed as a function of the elements.
Per quanto concerne, invece, il contenuto delle celle 202, esso à ̈ formato da informazioni desumibili dai metadati, come sarà chiarito in seguito, una volta descritti in maggior dettaglio i metadati stessi. As regards, instead, the content of cells 202, it is made up of information that can be deduced from the metadata, as will be clarified later, once the metadata themselves have been described in greater detail.
L’accesso ad una struttura dati può avvenire quando occorre: a) ricercare la presenza di una cella 202 non vuota (occupata) ed indicata da un elemento, tale cella 202 contenendo informazioni relative all’elemento, o meglio informazioni relative ad uno o più metadati acquisiti ed aventi tutti tale elemento; b) cancellare il contenuto di una cella 202 indicata da un elemento di un metadato; c) aggiornare una cella 202 occupata ed indicata da un elemento di un metadato, con le cui informazioni si vuole aggiornare la cella 202; d) inserire informazioni relative ad un metadato in una cella 202 indicata da un elemento del metadato e precedentemente vuota. Nel seguito, per brevità ci si riferirà alle operazioni a-d) rispettivamente come alle funzioni di ricerca, inserimento, cancellazione ed aggiornamento di un elemento, sottointendendo il riferimento alla relativa cella 202. Access to a data structure can occur when it is necessary: a) to search for the presence of a cell 202 that is not empty (occupied) and indicated by an element, this cell 202 containing information relating to the element, or rather information relating to one or more metadata acquired and all having this element; b) deleting the content of a cell 202 indicated by an element of a metadata; c) updating a cell 202 occupied and indicated by an element of a metadata, with whose information the cell 202 is to be updated; d) inserting information relating to a metadata in a cell 202 indicated by an element of the metadata and previously empty. In the following, for the sake of brevity, operations a-d) will be referred to respectively as the search, insertion, cancellation and updating functions of an element, implying the reference to the relative cell 202.
A titolo esemplificativo, nel caso in cui occorra, dato un elemento X di un metadato, ricercare una corrispondente cella 202 di una struttura dati (funzione a), si effettuano le operazioni illustrate in figura 4. Ai fini di una migliore comprensione, si anticipa in questa sede che il metadato cui l’elemento X si riferisce contiene un istante temporale Tm, descritto in dettaglio in seguito insieme ad altre informazioni contenute nel metadato stesso, non rilevanti ai fini delle operazioni qui descritte. By way of example, if it is necessary, given an element X of a metadata, to search for a corresponding cell 202 of a data structure (function a), the operations illustrated in figure 4 are carried out. here that the metadata to which the element X refers contains a time instant Tm, described in detail below together with other information contained in the metadata itself, not relevant for the purposes of the operations described here.
In dettaglio, si calcola (blocco 401) una funzione cosiddetta di hash, avente per argomento l’elemento X, e fornente in uscita una stringa avente un predeterminato numero nkdi bit, cui nel seguito ci si riferisce come chiave Xkey. Preferibilmente, la funzione di hash à ̈ una funzione appartenente ad una classe di funzioni di per sé note e conosciute come funzioni di hash universali, descritte ad esempio in J. Carter, M.Wegman, “Universal classes of hash functions†, Journal of Computer and System Sciences Vol. 18 Issue 2 (April 1979) 143-154. In detail, a so-called hash function is calculated (block 401), having as argument the element X, and providing as output a string having a predetermined number of bits, which is referred to in the following as the Xkey key. Preferably, the hash function is a function belonging to a class of functions known per se and known as universal hash functions, described for example in J. Carter, M.Wegman, â € œUniversal classes of hash functionsâ €, Journal of Computer and System Sciences Vol. 18 Issue 2 (April 1979) 143-154.
Successivamente, si calcolano (blocco 402) tante permutazioni della chiave Xkeyquante sono le tabelle della struttura dati (nell’esempio di figura 2, tre), ad esempio mediante algoritmi pseudocasuali di per sé noti. Subsequently, (block 402) as many permutations of the key Xkey as the tables of the data structure are calculated (in the example of figure 2, three), for example by means of per se known pseudorandom algorithms.
Quindi, da ciascuna permutazione Pisi determinano, Simone BONGIOVANNI 16<(Iscrizione Albo nr. 615/BM)>mediante estrazione, una prima ed un seconda sottostringa (blocco 403), cui nel seguito ci si riferisce rispettivamente come indice di colonna Cied impronta Fi. In dettaglio, gli indici di colonna Cihanno un numero ncdi bit sufficiente ad indicizzare tutte le colonne 204 delle tabelle 201, dunque dipendente dalla larghezza W delle tabelle 201 stesse. Nel caso della struttura dati 200 illustrata in figura 2, essendo la larghezza W pari a otto, occorrono indici di colonna Cidi tre bit, che possono essere ottenuti selezionando, ad esempio, i primi tre bit di ciascuna permutazione Pi. Le impronte Fihanno un numero nFdi bit, preferibilmente compreso tra 1 e nk-nc, in modo che non vi siano bit in comune tra ciascuna impronta Fied il corrispondente indice di colonna Ci. Therefore, from each permutation Pisi determine, Simone BONGIOVANNI 16 <(Albo Registration nr. 615 / BM)> by extraction, a first and a second substring (block 403), which is referred to in the following as column index C and imprint Fi . In detail, the column indexes Ci have a number ncdi bits sufficient to index all the columns 204 of the tables 201, thus depending on the width W of the tables 201 themselves. In the case of the data structure 200 illustrated in Figure 2, since the width W is equal to eight, column indices C of three bits are required, which can be obtained by selecting, for example, the first three bits of each permutation Pi. The footprints Fi have a number nF of bits, preferably between 1 and nk-nc, so that there are no bits in common between each fingerprint F and the corresponding column index Ci.
Al termine delle operazioni descritte, si dispone di un numero D di coppie di indici di colonna Cie di impronte Fi, ciascuna coppia essendo relativa ad una rispettiva tabella 201 della struttura dati 200. In altre parole, dato un elemento, si dispone di D indici di colonna Cie di D impronte Fi, ciascun indice di colonna Cie ciascuna impronta Ficorrispondente essendo validi solo per la rispettiva tabella 201. At the end of the described operations, there is a number D of pairs of column indices Cie of footprints Fi, each pair being relative to a respective table 201 of the data structure 200. In other words, given an element, one has D indices of column Cie of D footprints Fi, each column index Cie each corresponding footprint F being valid only for the respective table 201.
Operativamente, gli indici di colonna Ciindicano, all’interno delle rispettiva tabella 201, in quale colonna 204 può trovarsi la cella 202 ricercata. Circa le impronte Fi, dal momento che à ̈ possibile che le operazioni di cui ai blocchi 401-403, benché effettuate su elementi differenti, generino, relativamente ad una o più tabelle 201, medesimi indici di colonna Ci(collisioni), ci si avvale delle impronte Fiper minimizzare il rischio che due o più elementi differenti indichino una stessa cella 202, come spiegato di seguito. Operationally, the column indices indicate, within the respective table 201, in which column 204 the searched cell 202 can be found. Regarding the footprints Fi, since it is possible that the operations referred to in blocks 401-403, although carried out on different elements, generate, in relation to one or more tables 201, the same column indices Ci (collisions), uses Fiper fingerprints to minimize the risk that two or more different elements indicate the same cell 202, as explained below.
Di nuovo con riferimento alla figura 4, si ricerca (blocco 404), all’interno delle tabelle 201, una cella candidata, cioà ̈ una cella occupata ed appartenente a una colonna di una tabella indicata dall’indice di colonna Cirelativo alla tabella. In dettaglio, si considerano le celle di ciascuna tabella 201 appartenenti alla prima riga ed indicate dai rispettivi indici di colonna Ci, cominciando ad esempio dalla tabella più a sinistra, cioà ̈ con minor indice d (analoghe considerazioni valgono nel caso in cui si parta dalla tabella più a destra, cioà ̈ con maggior indice d). In altre parole, all’interno della tabella con minor indice d, si considera la cella giacente sulla prima riga ed appartenente alla colonna indicata dall’indice di colonna Ciassociato a tale tabella; nel caso in cui tale cella sia vuota, si ripete l’operazione relativamente alla successiva tabella 201, e così via, fino ad esaurire le tabelle 201, nel qual caso si passa alla seconda riga, e così via fino ad esaurire l’altezza H della struttura dati 200, nel qual caso (uscita NO del blocco 404) la ricerca termina senza esito. Again with reference to figure 4, one searches (block 404), within tables 201, a candidate cell, that is, a cell occupied and belonging to a column of a table indicated by the column index Cir relating to the table . In detail, we consider the cells of each table 201 belonging to the first row and indicated by the respective column indices Ci, starting for example from the table furthest to the left, that is, with the lowest index d (similar considerations apply if starting from table furthest to the right, that is, with greater index d). In other words, within the table with lower index d, the cell lying on the first row and belonging to the column indicated by the column index Ciassociato to that table is considered; if this cell is empty, the operation is repeated in relation to the following table 201, and so on, until the tables 201 are exhausted, in which case the second row is passed, and so on until the € ™ height H of the data structure 200, in which case (NO output of block 404) the search ends without result.
Nel caso in cui si individui una cella candidata (uscita SI del blocco 404), si confronta (blocco 405) la marca temporale Tcldella cella candidata con l’istante temporale Tmdel metadato. If a candidate cell is identified (output YES of block 404), the time stamp Tcld of the candidate cell is compared (block 405) with the time instant Tm of the metadata.
Nel caso in cui la marca temporale Tclsia successiva all’istante temporale Tm(uscita SI del blocco 405), si genera un’eccezione e si interrompono le operazioni; infatti, l’eccezione indica che si à ̈ acquisito un metadato il cui istante temporale Tmà ̈ più vecchio della marca temporale Tcl, fatto impossibile nel caso in cui si assuma che i dispositivi di protezione che generano i log abbiano basi tempi sincronizzate (e crescenti). Viceversa (uscita NO del blocco 405), si verifica (blocco 406) se la differenza tra l’istante temporale Tme la marca temporale Tclà ̈ maggiore di un tempo di persistenza Tp, impostabile a priori. If the time stamp Tcl is subsequent to the time instant Tm (output SI of block 405), an exception is generated and operations are interrupted; in fact, the exception indicates that a metadata has been acquired whose time instant Tm is older than the time stamp Tcl, which is impossible if it is assumed that the protection devices that generate the logs have synchronized time bases (and increasing). Vice versa (output NO of block 405), it occurs (block 406) if the difference between the time instant Tm and the time stamp Tcl is greater than a persistence time Tp, which can be set a priori.
Nel caso in cui si verifichi Tm-Tcl>Tp(uscita SI del blocco 406), il contenuto della cella candidata viene cancellato (blocco 407); viceversa, nel caso in cui si verifichi Tm-Tcl<=Tp(uscita NO del blocco 406), si confronta (blocco 408) l’impronta Fclcontenuta nella cella candidata con l’impronta Firelativa alla tabella 201 cui la cella candidata appartiene. If Tm-Tcl> Tp occurs (YES output of block 406), the content of the candidate cell is deleted (block 407); vice versa, in the event that Tm-Tcl <= Tp (output NO of block 406) occurs, the imprint Fcl contained in the candidate cell is compared (block 408) with the imprint Firelative to table 201 to which the candidate cell belongs .
Nel caso in cui l’impronta Fclcontenuta nella cella candidata sia differente dall’impronta Fi(uscita NO del blocco 408), significa che la cella candidata individuata non corrisponde effettivamente all’elemento X, pertanto si torna al blocco 404, per ricercare una nuova cella candidata, proseguendo la ricerca come descritto in precedenza. If the imprint Fcl contained in the candidate cell is different from the imprint Fi (NO output of block 408), it means that the identified candidate cell does not actually correspond to element X, therefore one returns to block 404, for search for a new candidate cell, continuing the search as described above.
Viceversa, nel caso in cui l’impronta Fclcontenuta nella cella candidata sia uguale all’impronta Fi(uscita SI del blocco 408), significa che all’interno della struttura dati 200 à ̈ effettivamente presente una cella 202 indicata dall’elemento X, cioà ̈ corrispondente all’elemento X. In particolare, la cella corrispondente all’elemento X à ̈ disposta su una colonna 204 di una tabella 201 della struttura dati 200, la colonna 204 essendo indicata dall’indice di colonna Cirelativo alla tabella 201, e contiene la corrispondente impronta Fi; inoltre, la cella 202 ha marca temporale Tclcompresa nell’intervallo [Tm-Tp,Tm]. Conversely, if the imprint Fcl contained in the candidate cell is equal to the imprint Fi (SI output of block 408), it means that inside the data structure 200 there is actually a cell 202 indicated by element X, i.e. corresponding to element X. In particular, the cell corresponding to element X is arranged on a column 204 of a table 201 of the data structure 200, column 204 being indicated by the column index Cirelative to table 201, and contains the corresponding imprint Fi; moreover, cell 202 has time stamp Tcl included in the interval [Tm-Tp, Tm].
In modo del tutto simile a quanto descritto relativamente alla ricerca di un elemento (funzione a), à ̈ possibile cancellare, aggiornare ed inserire elementi (funzioni b-d) all’interno di una struttura dati 200. In a very similar way to that described in relation to the search for an element (function a), it is possible to delete, update and insert elements (functions b-d) inside a data structure 200.
Ad esempio, come mostrato in figura 5, la cancellazione di un elemento X prevede, oltre alle operazioni descritte relativamente alla figura 4 (blocchi 401-408), di cancellare, se presente, la corrispondente cella 202, cioà ̈ prevede un’operazione di cancellazione della cella 202 (blocco 409), successiva all’uscita SI del blocco 408. Nel caso in cui la cella corrispondente 202 non sia presente (uscita NO del blocco 404), la cancellazione à ̈ superflua. Ai fini pratici la cancellazione di un elemento equivale a ricercare la cella corrispondente 202 e, se presente, a cancellarne il contenuto. For example, as shown in figure 5, in addition to the operations described in relation to figure 4 (blocks 401-408), the cancellation of an element X provides for the cancellation, if present, of the corresponding cell 202, which means an operation cancellation of cell 202 (block 409), subsequent to the YES output of block 408. If the corresponding cell 202 is not present (NO output of block 404), the cancellation is superfluous. For practical purposes, deleting an element is equivalent to searching for the corresponding cell 202 and, if present, deleting its content.
Similmente, nel caso in cui occorra aggiornare un elemento, si procede come mostrato in figura 6. In dettaglio, si procede in modo analogo a quanto descritto a proposito della figura 4, con particolare riferimento ai blocchi 401-408, in modo da ricercare all’interno della struttura dati 200 la corrispondente cella 202, il cui contenuto deve essere aggiornato. Nel caso in cui si trovi la cella corrispondente 202 (uscita SI del blocco 408), si procede ad aggiornare la cella corrispondente 202 (blocco 410), ed in particolare ad aggiornare il contenuto del campo di dati 303. Viceversa, nel caso in cui la ricerca non produca risultati (uscita NO del blocco 404), non à ̈ possibile procedere all’aggiornamento (blocco 411). Similarly, if an element needs to be updated, proceed as shown in figure 6. In detail, proceed in the same way as described in figure 4, with particular reference to blocks 401-408, in order to search for the Inside the data structure 200 the corresponding cell 202, the content of which must be updated. If the corresponding cell 202 (output YES of block 408) is found, the corresponding cell 202 (block 410) is updated, and in particular the content of the data field 303 is updated. the search does not produce results (output NO of block 404), it is not possible to proceed with the update (block 411).
Infine, nel caso in cui si voglia inserire un elemento X, si procede come illustrato in figura 7. In dettaglio, si procede in modo analogo a quanto descritto a proposito della figura 4, con particolare riferimento ai blocchi 401-408, in modo da ricercare se all’interno della struttura dati 200 sia già presente una cella corrispondente all’elemento X che si vuole inserire, nel qual caso (uscita SI del blocco 408) non à ̈ possibile effettuare l’inserimento. Finally, if an element X is to be inserted, proceed as illustrated in figure 7. In detail, proceed in the same way as described in respect of figure 4, with particular reference to blocks 401-408, so as to search if inside the data structure 200 there is already a cell corresponding to the element X to be inserted, in which case (output YES of block 408) it is not possible to insert.
Viceversa, se all’interno della struttura dati 200 non à ̈ presente alcuna cella corrispondente all’elemento X (uscita NO del blocco 404), si procede all’inserimento dell’elemento (blocco 412). A tal fine, si considerano le D colonne 204 indicate dagli indici di colonna Ci(determinati nei blocchi 401-403), tali D colonne 204 appartenendo a rispettive tabelle 201, e si seleziona la prima cella non occupata 202 della colonna 204 avente meno celle occupate 202. Ad esempio, contando le righe dal basso, si seleziona la cella non vuota 202 con minor indice di riga h. Nel caso in cui ci siano più colonne 204 aventi minimo numero di celle occupate 202, si seleziona, ad esempio e senza perdita di generalità , la cella della tabella più a sinistra all’interno della struttura dati 200, cioà ̈, con riferimento alla figura 2, la tabella con minor indice di tabella d. Inoltre, l’inserimento prevede che, all’interno della cella 202 selezionata, si inseriscano l’impronta Finel campo di impronta 301, l’istante temporale Tmnel campo di marca temporale 302, ed informazioni contenute nel metadato nel campo di dati 303. Si noti che, come detto in precedenza, l’impronta Fidipende dalla cella 202 selezionata, o meglio dalla tabella 201 cui la cella 202 selezionata appartiene; infatti, delle D impronte Fidisponibili per l’elemento X, si inserisce l’impronta Firelativa alla tabella 201 cui la cella 202 selezionata appartiene. Vice versa, if inside the data structure 200 there is no cell corresponding to element X (output NO of block 404), one proceeds to insert the element (block 412). To this end, the D columns 204 indicated by the column indices Ci (determined in blocks 401-403) are considered, these D columns 204 belonging to respective tables 201, and the first unoccupied cell 202 of column 204 having fewer cells is selected. occupied 202. For example, counting rows from the bottom selects the non-empty cell 202 with the lowest row index h. In the event that there are several columns 204 with a minimum number of occupied cells 202, select, for example and without loss of generality, the leftmost table cell within the data structure 200, that is, with reference to the Figure 2, the table with the lowest table index d. Furthermore, the insertion foresees that, inside the selected cell 202, the imprint Fin in the imprint field 301, the time instant Tm in the timestamp field 302, and information contained in the metadata in the field of data 303. Note that, as previously said, the footprint Fid depends on the selected cell 202, or rather on the table 201 to which the selected cell 202 belongs; in fact, of the D Reliable footprints for element X, the Firelating footprint is inserted in the table 201 to which the selected cell 202 belongs.
Sulla base delle funzioni a-d) descritte, si ottiene che ciascuna cella non vuota 202 contenga una rispettiva marca temporale Tclindicativa del più recente inserimento di dati nella cella 202 stessa, cioà ̈ l’istante temporale Tmmemorizzato nella cella 202 la più recente volta in cui si sono inseriti dati nella cella (precedentemente vuota). On the basis of the functions a-d) described, it is obtained that each non-empty cell 202 contains a respective timestamp T indicative of the most recent data entry in cell 202 itself, i.e. the time instant Tmm stored in cell 202 the most recent time in which you have entered data in the cell (previously empty).
Inoltre, si noti come in tutte le funzioni a-d relative alle strutture dati, ogni qual volta si accede ad una cella 202, cioà ̈ ogni qual volta si individua una cella non vuota 202 (uscita SI del blocco 404), si procede a verificare che lo scarto tra l’istante temporale Tmdel metadato cui l’elemento si riferisce e la marca temporale Tclnon superi il tempo di persistenza Tp(blocco 406), pena la cancellazione del contenuto della cella 202 (blocco 407). Operativamente, ciò significa cancellare il contenuto delle celle 202 nel caso in cui la marca temporale Tclsia più vecchia, rispetto all’istante temporale Tm, del tempo di persistenza Tp. In questo modo, le strutture dati 200 non necessitano di ulteriori operazioni di cancellazione o svuotamento. Infatti, una volta fissati in fase di configurazione il numero di tabelle 201, il numero di righe 203 ed il numero di colonne 204, dimensionando opportunamente il tempo di persistenza Tpà ̈ possibile acquisire voci (cioà ̈ metadati) in flusso continuo, senza che si verifichi il totale riempimento, e la conseguente successiva perdita di dati, delle strutture dati 200. Furthermore, it should be noted that in all the functions a-d relating to data structures, each time a cell 202 is accessed, that is, each time a non-empty cell 202 is identified (output SI of block 404), one proceeds to verify that the difference between the time instant Tm of the metadata to which the element refers and the time stamp Tcl does not exceed the persistence time Tp (block 406), under penalty of cancellation of the contents of cell 202 (block 407). Operationally, this means deleting the contents of cells 202 if the time stamp Tcl is older than the persistence time Tp with respect to the time instant Tm. In this way, the data structures 200 do not require further deletion or emptying operations. In fact, once the number of tables 201, the number of rows 203 and the number of columns 204 have been set during the configuration phase, by appropriately dimensioning the persistence time Tp, it is possible to acquire entries (i.e. metadata) in a continuous flow, without verify the total filling, and the consequent subsequent loss of data, of the data structures 200.
Si noti altresì che le funzioni a-d) richiedono un numero di operazioni che non dipende dal numero di voci da analizzare, bensì dalle dimensioni di ciascuna tabella 201 (in particolare dal numero di righe 203), e dal numero di tabelle 201, cioà ̈ da parametri stabiliti in fase di configurazione. Pertanto, il caso peggiore comporta un numero di operazioni stabilito in fase di configurazione e costante. Si noti che il caso peggiore si verifica quando si ricerca una cella 202 posta nella tabella più a destra (oppure, più a sinistra, qualora si effettuino le ricerche partendo dalla tabella più a destra) e nella riga con indice di riga h pari a H, cioà ̈ l’ultima riga. Note also that the functions a-d) require a number of operations which does not depend on the number of items to be analyzed, but on the size of each table 201 (in particular on the number of rows 203), and on the number of tables 201, that is ̈ by parameters established during the configuration phase. Therefore, the worst case involves a number of operations established in the configuration phase and constant. Note that the worst case occurs when you search for a cell 202 placed in the table furthest to the right (or, further to the left, if you search starting from the table furthest to the right) and in the row with row index h equal to H , that is the last line.
Tutto ciò premesso, la figura 8 mostra una forma di realizzazione del presente metodo di identificazione di anomalie, comprendente le fasi, descritte in dettaglio in seguito, di acquisire una voce (blocco 801), generare (blocco 802) un metadato sulla base di tale voce; successivamente, verificare (blocco 803) se il metadato à ̈ un metadato duplicato (descritto in dettaglio in seguito); nel caso in cui si tratti di un metadato duplicato (uscita SI del blocco 803), acquisire una nuova voce (blocco 801) ed iterare le operazioni svolte nei blocchi 802-803, viceversa (uscita NO del blocco 803) effettuare tre aggiornamenti (blocchi 804, 805 e 806), rispettivamente di tre strutture dati del tipo precedentemente descritto, e successivamente iterare le operazioni di cui al blocco 801. Having said all this, Figure 8 shows an embodiment of the present method of identifying anomalies, comprising the steps, described in detail below, of acquiring an entry (block 801), generating (block 802) a metadata on the basis of this voice; subsequently, check (block 803) if the metadata is a duplicate metadata (described in detail below); if it is a duplicate metadata (YES output of block 803), acquire a new entry (block 801) and iterate the operations carried out in blocks 802-803, vice versa (NO output of block 803) perform three updates (blocks 804, 805 and 806), respectively of three data structures of the type described above, and subsequently iterate the operations referred to in block 801.
In dettaglio, la fase 802 di generare, a partire da una voce, il corrispondente metadato à ̈ anche nota come “normalizzazione†, in quanto consente di creare, a partire da una prima entità (la voce) il cui formato dipende dal tipo di dispositivo di protezione che l’ha generata, cioà ̈ a partire da un’entità che presenta campi in numero e formato dipendenti dal dispositivo di protezione che l’ha generata, una seconda entità (il metadato), che ha campi predeterminati. Pertanto, i metadati così creati fungono da descrittori di dati (le voci), cioà ̈ da sovrastrutture dati che consentono il confronto tra le voci, anche quando le voci sono generate da dispositivi di protezione di tipo differente. In detail, the step 802 of generating, starting from an item, the corresponding metadata is also known as â € œnormalizationâ €, as it allows to create, starting from a first entity (the item) whose format depends on the type of the protection device that generated it, that is, starting from an entity that has fields in number and format depending on the protection device that generated it, a second entity (the metadata), which has fields predetermined. Therefore, the metadata thus created act as data descriptors (the entries), ie data superstructures that allow the comparison between the entries, even when the entries are generated by different types of protection devices.
Come mostrato in figura 9, data una voce generata da un dispositivo di protezione in seguito al rilevamento di un’azione, il corrispondente metadato presenta i seguenti campi: As shown in figure 9, given an entry generated by a protection device following the detection of an action, the corresponding metadata has the following fields:
- un campo di istante temporale 901, in cui à ̈ inserito l’istante temporale Tm, già menzionato in precedenza e pari al contenuto del campo di valore temporale 101 della voce, in modo che il metadato contenga un istante temporale associato all’azione; - a temporal instant field 901, in which the previously mentioned temporal instant Tm is inserted and equal to the content of the temporal value field 101 of the item, so that the metadata contains a temporal instant associated with the action;
- un campo di primo indirizzo 902 ed un campo di secondo indirizzo 903, contenenti rispettivamente un primo ed un secondo indirizzo di rete, già contenuti nella voce e relativi a rispettivi dispositivi di rete, siano essi dispositivi di protezione o meno; - a first address field 902 and a second address field 903, containing respectively a first and a second network address, already contained in the item and relating to respective network devices, whether they are protection devices or not;
- un campo di liceità 904, contenente un’indicazione relativa alla liceità o all’illiceità dell’azione; - a field of lawfulness 904, containing an indication relating to the lawfulness or illegality of the action;
- un campo di evento 905, contenente un identificatore di evento (ID evento), determinato in funzione dell’azione, nella fattispecie in funzione del contenuto del campo di azione 104 della voce, eventualmente associando un medesimo ID evento ad azioni differenti, come descritto di seguito; - an event field 905, containing an event identifier (event ID), determined according to the action, in this case according to the content of the action field 104 of the item, possibly associating the same event ID to different actions, such as described below;
- un campo di peso 906, contenente un peso indicativo dell’importanza che si vuole attribuire a un corrispondente evento, come descritto in seguito. - a 906 weight field, containing an indicative weight of the importance to be attributed to a corresponding event, as described below.
A titolo di ulteriore precisazione circa i campi di primo e di secondo indirizzo 902, 903, se ne danno due esempi, rispettivamente relativi al caso di voce generata da un firewall in risposta ad una trasmissione di un pacchetto di dati da un dispositivo sorgente ad un dispositivo destinazione, e al caso di voce generata da un antivirus. By way of further clarification about the first and second address fields 902, 903, two examples are given, respectively relating to the case of a voice generated by a firewall in response to a transmission of a data packet from a source device to a target device, and in the case of a voice generated by an antivirus.
Nel caso del firewall, il campo di primo indirizzo 902 contiene l’indirizzo di rete del dispositivo sorgente, contenuto nel campo di indirizzo 102 della voce, mentre il campo di secondo indirizzo 903 contiene l’indirizzo di rete del dispositivo destinazione, contenuto nell’ulteriore campo di indirizzo della voce. In the case of the firewall, the first address field 902 contains the network address of the source device, contained in the address field 102 of the item, while the second address field 903 contains the network address of the destination device, contained in the additional address field of the entry.
Nel caso dell’antivirus, occorre distinguere due casi: se la voce contiene l’ulteriore campo di indirizzo, il campo di primo indirizzo 902 à ̈ posto pari al campo di indirizzo 102 della voce, ed il campo di secondo indirizzo 903 à ̈ posto pari all’ulteriore campo di indirizzo della voce; viceversa, e cioà ̈ nel caso in cui la voce presenti il campo di indirizzo 102, ma non l’ulteriore campo di indirizzo, sia il campo di primo indirizzo 902 che il campo di secondo indirizzo 903 sono posti pari a tale campo di indirizzo 102. In the case of antivirus, two cases must be distinguished: if the entry contains the additional address field, the first address field 902 is set equal to the address field 102 of the entry, and the second address field 903 à ̈ set equal to the additional address field of the item; vice versa, and that is, if the entry has the address field 102, but not the further address field, both the first address field 902 and the second address field 903 are set equal to this address field 102.
Per quanto concerne il campo di liceità 904, nel caso in cui il campo di risultato 103 della voce contenga un’indicazione di liceità , esso contiene un’indicazione di liceità . Viceversa, cioà ̈ in caso di azione illecita, indipendentemente dal fatto che il campo di risultato 103 contenga un’indicazione generica di illiceità , oppure un’indicazione specifica di illiceità , il campo di liceità 904 contiene una medesima indicazione di illiceità . As regards the field of lawfulness 904, if the result field 103 of the item contains an indication of lawfulness, it contains an indication of lawfulness. Conversely, that is, in the event of an unlawful action, regardless of whether the result field 103 contains a generic indication of illegality, or a specific indication of illegality, the lawfulness field 904 contains the same indication of illegality.
Per quanto concerne, invece, il campo di evento 905, la determinazione dell’ID evento in funzione dell’azione segue criteri che possono essere impostati a piacere, ad esempio in una fase di configurazione del presente metodo, atta a definire un numero di criteri utili ad implementare il presente metodo. Pertanto, azioni differenti possono generare metadati con un medesimo ID evento, cioà ̈ essere considerate come un medesimo evento. Ad esempio, considerando tre azioni relative, rispettivamente, alla trasmissione di tre pacchetti dati mediante protocollo UDP, ma su tre porte differenti di un dispositivo destinazione, à ̈ possibile associare a tutte e tre le summenzionate azioni un medesimo ID evento, nel caso in cui si vogliano considerare le tre azioni come equivalenti dal punto di vista della sicurezza. Viceversa, un’azione di rilevazione di un virus potrà essere vantaggiosamente associata ad un ID evento differente, in quanto non equivalente, ai fini della sicurezza, alle tre azioni descritte in precedenza. Ancora a titolo esemplificativo, e nuovamente con riferimento al caso della trasmissione di tre pacchetti dati mediante protocollo UDP, à ̈ possibile associare alle tre azioni tre differenti ID evento, ciascun ID evento essendo formato dalla concatenazione del protocollo UDP con la rispettiva porta. As regards, instead, the event field 905, the determination of the event ID according to the action follows criteria that can be set at will, for example in a configuration phase of this method, designed to define a number of criteria useful to implement this method. Therefore, different actions can generate metadata with the same event ID, ie they can be considered as the same event. For example, considering three actions relating, respectively, to the transmission of three data packets using the UDP protocol, but on three different ports of a target device, it is possible to associate the same event ID to all three of the aforementioned actions, in the event that we want to consider the three actions as equivalent from a safety point of view. Conversely, a virus detection action may advantageously be associated with a different event ID, as it is not equivalent, for security purposes, to the three actions described above. Again by way of example, and again with reference to the case of the transmission of three data packets using the UDP protocol, it is possible to associate three different event IDs to the three actions, each event ID being formed by the concatenation of the UDP protocol with the respective port.
Analogamente, la determinazione del peso da inserire nel campo di peso 906 segue criteri che possono essere impostati a piacere, ad esempio durante la summenzionata fase di configurazione. A titolo esemplificativo, i pesi possono essere assegnati in maniera tale da risultare indicativi dell’importanza che si vuole assegnare ai corrispondenti eventi. Ad esempio, possono darsi criteri che prevedono, in caso di eventi illeciti, di assegnare pesi tanto più elevati quanto più gli eventi illeciti sono considerati pericolosi ai fini della sicurezza; in questo caso, associare, ad esempio, un peso nullo ad un ID evento significa considerare irrilevante ai fini della sicurezza il corrispondente evento. Si noti altresì che, dato un metadato, il significato assunto dal peso dipende dal contenuto del campo liceità 904, cioà ̈ dal fatto che l’azione cui il metadato si riferisce sia stata considerata lecita o illecita. In particolare, in caso di evento illecito, il peso à ̈ indicativo della gravità dell’evento, viceversa esso à ̈ indicativo di quanto l’evento sia da considerasi indicativo dell’assenza di azioni illecite. Similarly, the determination of the weight to be entered in the weight field 906 follows criteria that can be set at will, for example during the aforementioned configuration phase. By way of example, the weights can be assigned in such a way as to be indicative of the importance to be assigned to the corresponding events. For example, there may be criteria which envisage, in the event of unlawful events, assigning higher weights the more the unlawful events are considered dangerous for safety purposes; in this case, for example, associating a null weight to an event ID means considering the corresponding event irrelevant for security purposes. Note also that, given a metadata, the meaning assumed by the weight depends on the content of the field lawfulness 904, ie on the fact that the action to which the metadata refers has been considered lawful or unlawful. In particular, in the event of an unlawful event, the weight is indicative of the seriousness of the event, vice versa it is indicative of how much the event is to be considered indicative of the absence of unlawful actions.
Si noti, inoltre, che il significato dell’indicazione contenuta nel campo di liceità 904, originata a partire dall’azione cui il metadato si riferisce, si applica poi all’evento rappresentato dal metadato stesso. Per semplicità , nel seguito ci si riferirà a metadati (ed eventi) leciti e a metadati (ed eventi) illeciti, a seconda dei contenuti dei rispettivi campi liceità 904. It should also be noted that the meaning of the indication contained in the field of lawfulness 904, originating from the action to which the metadata refers, is then applied to the event represented by the metadata itself. For simplicity, in the following we will refer to lawful metadata (and events) and illegal metadata (and events), depending on the contents of the respective lawfulness fields 904.
Nuovamente con riferimento alla figura 8, successivamente alla generazione del metadato (blocco 802), il successivo blocco 803 prevede, al fine di verificare se il metadato à ̈ un metadato duplicato, di ricercare il summenzionato metadato all’interno di una prima o una seconda struttura dati, del tipo precedentemente descritto e denominate rispettivamente ASM_OK e ASM_KO. Again with reference to figure 8, after the generation of the metadata (block 802), the subsequent block 803 provides, in order to verify whether the metadata is a duplicate metadata, to search for the aforementioned metadata within a first or second data structure, of the type described above and respectively named ASM_OK and ASM_KO.
Operativamente, come mostrato in figura 10, si estrae (blocco 1001) dal metadato un elemento, qui indicato con X1, comprendente i contenuti dei campi di primo e di secondo indirizzo 902, 903, e del campo di evento 905. Successivamente, si determina (blocco 1002) se il metadato à ̈ lecito o meno, cioà ̈ si esamina il contenuto del campo liceità 904 del metadato. Se il metadato à ̈ lecito (uscita SI del blocco 1002), il metadato viene ricercato nella struttura dati ASM_OK, viceversa (uscita NO del blocco 1002) il metadato viene ricercato nella struttura dati ASM_KO. Operationally, as shown in Figure 10, an element is extracted (block 1001) from the metadata, indicated here with X1, comprising the contents of the first and second address fields 902, 903, and of the event field 905. Subsequently, it is determined (block 1002) if the metadata is lawful or not, that is, the content of the lawfulness field 904 of the metadata is examined. If the metadata is legal (YES output of block 1002), the metadata is searched in the ASM_OK data structure, vice versa (NO output of block 1002) the metadata is searched in the ASM_KO data structure.
In dettaglio, le celle delle strutture dati ASM_OK e ASM_KO hanno rispettivamente i formati illustrati nelle figure 11a e 11b. In particolare (figura 11a), le celle della struttura dati ASM_OK hanno, oltre ai già descritti campi di impronta 301 e di marca temporale 302, il campo di dati 303 (figura 3) costituito da un campo di peso positivo 304 (“peso OK†). Invece, come mostrato in figura 11b, le celle della struttura dati ASM_KO hanno, oltre ai già descritti campi di impronta 301 e di marca temporale 302, il campo di dati 303 (figura 3) costituito da un campo di peso negativo 305 (“peso KO†). In detail, the cells of the data structures ASM_OK and ASM_KO respectively have the formats illustrated in Figures 11a and 11b. In particular (figure 11a), the cells of the data structure ASM_OK have, in addition to the fields of footprint 301 and time stamp 302 already described, the data field 303 (figure 3) consisting of a positive weight field 304 (â € œweight OKâ €). Instead, as shown in figure 11b, the cells of the data structure ASM_KO have, in addition to the already described fields of footprint 301 and time stamp 302, the data field 303 (figure 3) consisting of a negative weight field 305 (â € œweight KOâ €).
Operativamente, in caso di metadato lecito (uscita SI del blocco 1002), si effettuano i passi mostrati ancora in figura 10. In dettaglio, si ricerca (funzione a precedentemente dettagliata) l’elemento X1all’interno della struttura dati ASM_OK (blocco 1003), previa impostazione di un indicatore (“flag†) a zero (operazione non mostrata). Operationally, in case of lawful metadata (YES output of block 1002), the steps shown again in figure 10 are carried out. 1003), after setting an indicator (â € œflagâ €) to zero (operation not shown).
Nel caso in cui la ricerca non produca risultati (uscita NO del blocco 1003), si pone il flag a uno (operazione non mostrata), e si inserisce l’elemento X1all’interno della struttura dati (blocco 1004), mediante la funzione d) precedentemente descritta; in particolare, si inseriscono nella cella corrispondente l’impronta Fi, l’istante temporale Tmed il peso, rispettivamente nei campi di impronta 301, di marca temporale 302 e di peso positivo 304. Successivamente, si determina (blocco 1005) un peso totale Pt1, ottenuto sommando il contenuto del campo di peso 906 del metadato, cioà ̈ il peso, con il contenuto del campo di peso positivo 304 della cella. If the search does not produce results (output NO of block 1003), the flag is set to one (operation not shown), and the element X1 is inserted inside the data structure (block 1004), by means of the function d) previously described; in particular, the imprint Fi, the time instant Tmed and the weight are entered in the corresponding cell, respectively in the imprint 301, timestamp 302 and positive weight 304 fields. Subsequently, a weight is determined (block 1005) total Pt1, obtained by adding the content of the weight field 906 of the metadata, that is the weight, with the content of the positive weight field 304 of the cell.
Nel caso in cui la ricerca individui una corrispondente cella occupata (uscita SI del blocco 1003), si procede direttamente ad eseguire le operazioni di cui al blocco 1005. If the search identifies a corresponding occupied cell (YES output of block 1003), the operations of block 1005 are carried out directly.
Successivamente, si confronta (blocco 1006) il peso totale Pt1con una soglia PMOK, che può essere impostata in modo statico (ad esempio, durante la fase di configurazione), oppure dinamico. Subsequently, the total weight Pt1 is compared (block 1006) with a PMOK threshold, which can be set statically (for example, during the configuration phase), or dynamically.
Nel caso in cui il peso totale Pt1sia inferiore alla soglia PMOK (uscita NO del blocco 1006), la struttura dati ASM_OK viene aggiornata (blocco 1007), mediante la funzione c) ed in modo che il campo di peso positivo 304 della cella sia posto pari al peso totale Pt1. If the total weight Pt1 is lower than the PMOK threshold (NO output of block 1006), the data structure ASM_OK is updated (block 1007), by means of function c) and so that the positive weight field 304 of the cell is placed equal to the total weight Pt1.
Nel caso in cui il peso totale Pt1sia superiore alla soglia PMOK (uscita SI del blocco 1006), si pone il flag pari a zero (operazione non mostrata), e si cancella l’elemento X1dalla struttura dati ASM_OK (blocco 1008), mediante la funzione b) precedentemente descritta. If the total weight Pt1 is higher than the PMOK threshold (output YES of block 1006), the flag is set equal to zero (operation not shown), and element X1 is deleted from the ASM_OK data structure (block 1008), by means of function b) previously described.
In entrambi i casi (blocchi 1007, 1008) si procede quindi ad effettuare una verifica del valore del flag (blocco 1009), descritta in dettaglio in seguito. In both cases (blocks 1007, 1008) a check of the value of the flag is then carried out (block 1009), described in detail below.
In caso di metadato illecito (uscita NO del blocco 1002), si ricerca l’elemento X1all’interno della struttura dati ASM_KO (blocco 1010), previa impostazione del flag a zero (operazione non mostrata). In case of illicit metadata (NO output of block 1002), the X1 element is searched inside the ASM_KO data structure (block 1010), after setting the flag to zero (operation not shown).
Nel caso in cui la ricerca non produca risultati (uscita NO del blocco 1010), si pone il flag a uno (operazione non mostrata), e si inserisce l’elemento X1all’interno della struttura dati ASM_KO (blocco 1011), mediante la funzione d) precedentemente descritta; in particolare, si inseriscono nella cella corrispondente l’impronta Fi, l’istante temporale Tmed il peso, rispettivamente nei campi di impronta 301, di marca temporale 302 e di peso negativo 305. Successivamente, si determina (blocco 1012) un peso totale Pt2, ottenuto sommando il contenuto del campo di peso 906 del metadato, cioà ̈ il peso, con il contenuto del campo di peso negativo 305 della cella. If the search does not produce results (output NO of block 1010), the flag is set to one (operation not shown), and the element X1 is inserted inside the data structure ASM_KO (block 1011), by means of function d) previously described; in particular, the imprint Fi, the time instant Tmed and the weight are entered in the corresponding cell, respectively in the imprint 301, timestamp 302 and negative weight 305 fields. Subsequently, a weight is determined (block 1012) total Pt2, obtained by adding the content of the weight field 906 of the metadata, that is the weight, with the content of the negative weight field 305 of the cell.
Nel caso in cui la ricerca individui una corrispondente cella occupata (uscita SI del blocco 1010), si procede direttamente ad eseguire le operazioni di cui al blocco 1012. If the search identifies a corresponding occupied cell (YES output of block 1010), the operations referred to in block 1012 are carried out directly.
Successivamente, si confronta (blocco 1013) il peso totale Pt2con una soglia PMKO, che può essere impostata in modo statico (ad esempio, durante la fase di configurazione), oppure dinamico. Subsequently, the total weight Pt2 is compared (block 1013) with a PMKO threshold, which can be set statically (for example, during the configuration phase), or dynamically.
Nel caso in cui il peso totale Pt2sia inferiore alla soglia PMKO (uscita NO del blocco 1013), la struttura dati ASM_KO viene aggiornata (blocco 1014), mediante la funzione c) ed in modo che il campo di peso negativo 305 della cella sia posto pari al peso totale Pt2. If the total weight Pt2 is lower than the PMKO threshold (NO output of block 1013), the data structure ASM_KO is updated (block 1014), by means of function c) and so that the negative weight field 305 of the cell is placed equal to the total weight Pt2.
Nel caso in cui il peso totale Pt2sia superiore alla soglia PMKO (uscita SI del blocco 1013), si pone il flag pari a zero (operazione non mostrata) e si segnala un’anomalia (blocco 1015) associata all’elemento X1, dunque dalla terna formata dal primo e dal secondo indirizzo di rete, e dall’ID evento. La segnalazione dell’anomalia comprende, oltre all’elemento X1, il contenuto del campo di peso negativo 305, utilizzabile come indicatore della gravità dell’anomalia, ed un intervallo temporale di rilevamento, avente come istante di inizio la marca temporale Tcldella cella e come termine l’istante temporale Tm. Successivamente, si cancella l’elemento X1dalla struttura dati ASM_KO (blocco 1016) mediante la funzione b) precedentemente descritta. If the total weight Pt2 is higher than the PMKO threshold (YES output of block 1013), the flag equal to zero is set (operation not shown) and an anomaly is signaled (block 1015) associated with element X1, therefore by the triad formed by the first and second network address, and by the event ID. The signaling of the anomaly includes, in addition to the element X1, the content of the negative weight field 305, which can be used as an indicator of the severity of the anomaly, and a detection time interval, starting with the time stamp Tcldella cell and the time instant Tm as the end. Subsequently, element X1 is deleted from the ASM_KO data structure (block 1016) by means of function b) previously described.
In entrambi i casi (blocchi 1014 e 1016), si procede quindi ad effettuare la verifica del valore del flag (blocco 1009). In both cases (blocks 1014 and 1016), the flag value is then checked (block 1009).
In particolare, se il flag à ̈ nullo (uscita SI del blocco 1009), significa che si tratta di un metadato duplicato. Viceversa, e cioà ̈ se il flag à ̈ pari a uno (uscita NO del blocco 1009), significa che si tratta di un metadato non duplicato, cui nel seguito ci si riferisce anche come metadato radice. In particular, if the flag is null (output SI of block 1009), it means that it is a duplicate metadata. Conversely, and that is, if the flag is equal to one (output NO of block 1009), it means that it is a non-duplicated metadata, which is also referred to in the following as root metadata.
In dettaglio, le operazioni di cui al blocco 803 sono tali per cui si considera come duplicato un metadato i cui campi di primo indirizzo 902, di secondo indirizzo 903, di liceità 904 e di evento 905 sono uguali ai corrispondenti campi di un metadato precedentemente ricevuto ed ancora presente in una struttura dati (alternativamente, la struttura dati ASM_OK o ASM_KO), cioà ̈ un metadato il cui elemento X1à ̈ ancora presente in una struttura dati (ASM_OK o ASM_KO), indicando una corrispondente cella occupata. Un metadato à ̈ invece considerato come un metadato radice qualora esso non sia presente né nella struttura dati ASM_OK né nella struttura dati ASM_KO, ed abbia un peso non superiore alla soglia PMOK (in caso di metadato lecito), oppure alla soglia PMKO (in caso di metadato illecito). In detail, the operations referred to in block 803 are such that a metadata is considered as a duplicate whose first address 902, second address 903, lawfulness 904 and event 905 fields are equal to the corresponding fields of a previously received metadata and still present in a data structure (alternatively, the data structure ASM_OK or ASM_KO), that is a metadata whose element X1 is still present in a data structure (ASM_OK or ASM_KO), indicating a corresponding occupied cell. A metadata is instead considered as a root metadata if it is neither present in the ASM_OK data structure nor in the ASM_KO data structure, and has a weight not exceeding the PMOK threshold (in the case of lawful metadata), or the PMKO threshold ( in case of illegal metadata).
Operativamente, assumendo di acquisire all’istante T0un metadato radice, tutti i metadati con campi di primo e di secondo indirizzo 902, 903, di liceità 904 e di evento 905 uguali ai corrispondenti campi del metadato radice, e ricevuti in un intervallo di tempo immediatamente successivo all’istante T0e di durata pari al tempo di persistenza Tp, cioà ̈ aventi istanti temporali Tmcompresi nell’intervallo [T0,T0+Tp], vengono scartati. Infatti, come mostrato in figura 8, in caso di metadato duplicato (uscita SI del blocco 803), non si processa ulteriormente il metadato, ma si procede ad acquisire una nuova voce (blocco 801). Operationally, assuming to acquire at the instant T0 a root metadata, all the metadata with fields of first and second address 902, 903, of lawfulness 904 and of event 905 equal to the corresponding fields of the root metadata, and received in an interval of time immediately following the instant T0e having a duration equal to the persistence time Tp, ie having temporal instants Tm included in the interval [T0, T0 + Tp], are discarded. In fact, as shown in Figure 8, in the case of duplicated metadata (YES output of block 803), the metadata is not processed further, but a new entry is acquired (block 801).
Si noti però che le operazioni svolte ai blocchi 1005, 1006 e 1007 fanno sì che il ripetersi, entro il tempo di persistenza Tp, di metadati duplicati, leciti e con pesi tali per cui il peso totale Pt1supera la soglia PMOK, causi la cancellazione dell’elemento X1(blocco 1008). Conseguenza della cancellazione dell’elemento X1à ̈ il fatto che un eventuale successivo metadato lecito avente medesimi campi di primo e di secondo indirizzo 902, 903, di evento 905, e con peso inferiore alla soglia PMOK, sarà considerato non duplicato, e quindi non sarà scartato, bensì sarà processato come descritto in seguito. However, it should be noted that the operations carried out in blocks 1005, 1006 and 1007 ensure that the repetition, within the persistence time Tp, of duplicate metadata, legal and with weights such that the total weight Pt1 exceeds the PMOK threshold, causes the cancellation of element X1 (block 1008). Consequence of the cancellation of the X1 element is the fact that any subsequent lawful metadata having the same fields of first and second address 902, 903, of event 905, and with a weight lower than the PMOK threshold, will be considered not duplicated, and therefore not it will be discarded, but it will be processed as described below.
Similmente, le operazioni svolte ai blocchi 1012, 1013 e 1014 fanno sì che il ripetersi, entro il tempo di persistenza Tp, di metadati duplicati, illeciti e con pesi tali per cui il peso totale Pt2supera la soglia PMKO, causi la segnalazione di anomalia (blocco 1015), oltre che la cancellazione dell’elemento X1(blocco 1016). Conseguenza della cancellazione dell’elemento X1à ̈ il fatto che un eventuale successivo metadato illecito avente medesimi campi di primo e di secondo indirizzo 902, 903, e di evento 905, e con peso inferiore alla soglia PMKO, sarà considerato non duplicato, e quindi non sarà scartato, bensì sarà processato come descritto in seguito. Similarly, the operations carried out in blocks 1012, 1013 and 1014 ensure that the repetition, within the persistence time Tp, of duplicate and illegal metadata with weights such that the total weight Pt2 exceeds the PMKO threshold, causes the reporting of an anomaly (block 1015), as well as the deletion of the element X1 (block 1016). Consequence of the cancellation of the X1 element is the fact that any subsequent illegal metadata having the same first and second address fields 902, 903, and event 905, and with a weight lower than the PMKO threshold, will be considered not duplicated, and therefore it will not be discarded, but will be processed as described below.
Si noti altresì che le operazioni di cui ai blocchi 1003, 1004, 1007, 1008 e 1010, 1011, 1014, 1016, ed i conseguenti accessi a celle occupate delle strutture dati ASM_OK e ASM_KO, comportano la cancellazione (si vedano i blocchi 406 e 407) delle celle con marche temporali Tclpiù vecchie, rispetto all’istante temporale Tm, di un tempo maggiore o uguale al tempo di persistenza Tp, così da evitare il completo riempimento delle strutture dati ASM_OK e ASM_OK, e la conseguente impossibilità di gestire metadati acquisiti dopo il summenzionato riempimento. It should also be noted that the operations referred to in blocks 1003, 1004, 1007, 1008 and 1010, 1011, 1014, 1016, and the consequent accesses to cells occupied by the data structures ASM_OK and ASM_KO, involve the cancellation (see blocks 406 and 407) of the cells with time stamps Tcl older, with respect to the time instant Tm, by a time greater than or equal to the persistence time Tp, so as to avoid the complete filling of the data structures ASM_OK and ASM_OK, and the consequent impossibility of manage metadata acquired after the aforementioned filling.
Dal momento che anche le operazioni di cui ai blocchi 1004, 1007, 1008, 1011, 1014 e 1016 prevedono intrinsecamente operazioni di ricerca, quindi operazioni già svolte nei blocchi 1003 e 1010 (calcolo delle funzioni di hash, calcolo delle permutazioni Pie determinazione degli indici di colonna Cie delle impronte Fi, ricerca di una cella occupata, ecc.), per evitare la duplicazione di operazioni, à ̈ possibile implementare, in modo di per sé noto, meccanismi di memorizzazione (“caching†) degli indici di colonna Cie delle impronte Fideterminati durante le operazioni dei blocchi 1003 e 1010. Ad esempio, nel caso in cui una ricerca di uno dei blocchi 1003 e 1010 trovi una cella corrispondente, à ̈ possibile memorizzare il corrispondente indice di colonna Cie la rispettiva impronta Fi, oltre che la tabella in cui la cella si trova, per poter rendere immediatamente disponibili queste informazioni ai blocchi successivi, quali ad esempio i blocchi 1007 e 1008, oppure 1014 e 1016. Since the operations referred to in blocks 1004, 1007, 1008, 1011, 1014 and 1016 intrinsically provide for search operations, therefore operations already carried out in blocks 1003 and 1010 (calculation of hash functions, calculation of permutations Pie determination of indices of the Cie column of the Fi footprints, search for an occupied cell, etc.), to avoid duplication of operations, it is possible to implement, in a per se known way, storage mechanisms (â € œcachingâ €) of the column indexes Cie of the footprints Fidetermined during the operations of blocks 1003 and 1010. For example, in the event that a search of one of the blocks 1003 and 1010 finds a corresponding cell, it is possible to store the corresponding column index Cie the respective footprint Fi, as well as that the table in which the cell is located, in order to make this information immediately available to subsequent blocks, such as blocks 1007 and 1008, or 1014 and 1016.
Si noti, inoltre, come sia possibile verificare se un metadato à ̈ duplicato o radice in modo differente da quanto descritto, ad esempio assegnando al flag valori differenti, oppure avvalendosi di strutture dati e controlli differenti da quanto descritto, in modo di per sé noto. Ciò che rileva ai fini della presente invenzione à ̈ la possibilità di discernere tra metadati duplicati e metadati radice. Also note how it is possible to check if a metadata is duplicated or rooted in a different way from what is described, for example by assigning different values to the flag, or by using data structures and controls different from what is described, in a way per se known. What is relevant for the purposes of the present invention is the possibility of distinguishing between duplicate metadata and root metadata.
Nuovamente con riferimento alla figura 8, nel caso in cui il metadato sia un metadato radice (uscita NO del blocco 803), il metadato viene impiegato per aggiornare tre strutture dati, denominate rispettivamente FSC, FDC e FEC (blocchi 804-806). Nel seguito del presente documento, quando ci si riferisce a metadati con cui si aggiornano le strutture dati FSC, FDC e FEC, cioà ̈ a metadati impiegati nelle operazioni di cui ai blocchi 804-806, si sottointende il fatto che tali metadati siano metadati radice. Again with reference to Figure 8, in the case where the metadata is a root metadata (NO output of block 803), the metadata is used to update three data structures, respectively named FSC, FDC and FEC (blocks 804-806). In the rest of this document, when reference is made to metadata with which the FSC, FDC and FEC data structures are updated, i.e. to metadata used in the operations referred to in blocks 804-806, it is implied that such metadata is root metadata .
Ciascuna delle summenzionate strutture dati FSC, FDC e FEC à ̈ formata da celle del tipo mostrato in figura 12, dunque comprendenti, oltre ai già descritti campi di impronta 301 e di marca temporale 302, un campo di dati 303 formato da un campo di peso lecito 306 ed un campo di peso illecito 307, funzionalmente analoghi ai campi di peso positivo 304 e di peso negativo 305, rispettivamente delle celle delle strutture dati ASM_OK e ASM_KO. Each of the aforementioned data structures FSC, FDC and FEC is formed by cells of the type shown in Figure 12, therefore comprising, in addition to the already described fields of footprint 301 and time stamp 302, a data field 303 formed by a weight field lawful 306 and a field of illegal weight 307, functionally analogous to the fields of positive weight 304 and negative weight 305, respectively of the cells of the data structures ASM_OK and ASM_KO.
Come mostrato in figura 13, per aggiornare la struttura dati FSC (blocco 804) si estrae (blocco 1301) dal metadato un elemento, denominato X2, comprendente il contenuto del campo di primo indirizzo 902 del metadato. Successivamente, si impostano (blocco 1302) i valori di due soglie, denominate soglia FSC e soglia decisionale d-FSC. Tali soglie possono essere impostate in modo dinamico, dunque possono variare ad ogni aggiornamento della struttura dati FSC, oppure possono essere impostate in modo statico, ad esempio durante la fase di configurazione, e restare immutate durante l’esecuzione del presente metodo. As shown in Figure 13, to update the FSC data structure (block 804) an element, called X2, is extracted (block 1301) from the metadata, comprising the content of the first address field 902 of the metadata. Subsequently, the values of two thresholds, called FSC threshold and d-FSC decision threshold, are set (block 1302). These thresholds can be set dynamically, therefore they can vary at each update of the FSC data structure, or they can be set statically, for example during the configuration phase, and remain unchanged during the execution of this method.
Quindi si ricerca l’elemento X2all’interno della struttura dati FSC (blocco 1303), mediante la funzione a) precedentemente descritta. Then the element X2 is searched inside the FSC data structure (block 1303), by means of the function a) previously described.
Nel caso in cui l’elemento X2non sia presente nella struttura dati FSC (uscita NO del blocco 1303), si inserisce l’elemento X2all’interno struttura dati FSC (blocco 1304), mediante la funzione d). In particolare, si inseriscono nella cella corrispondente all’elemento X2l’impronta Fie l’istante temporale Tm, rispettivamente nei campi di impronta 301 e di marca temporale 302. Inoltre, in caso di metadato lecito, si inserisce il peso del metadato (contenuto nel campo di peso 906 del metadato) nel campo di peso lecito 306 della cella, inizializzando a zero il campo di peso illecito 307; viceversa, in caso di metadato illecito, si inserisce il peso nel campo di peso illecito 307 della cella, inizializzando a zero il campo di peso lecito 306. Successivamente, si terminano le operazioni. If element X2 is not present in the FSC data structure (output NO of block 1303), the element X2 is inserted into the internal FSC data structure (block 1304), using function d). In particular, the imprint Fie is entered in the cell corresponding to the element X2 and the time instant Tm, respectively in the imprint 301 and timestamp 302 fields. (contained in the weight field 906 of the metadata) in the lawful weight field 306 of the cell, initializing the illegal weight field 307 to zero; vice versa, in the case of illegal metadata, the weight is entered in the illegal weight field 307 of the cell, initializing the lawful weight field 306 to zero. Subsequently, the operations are terminated.
Viceversa (uscita SI del blocco 1303), cioà ̈ nel caso in cui sia presente una cella corrispondente all’elemento X2, si calcolano (blocco 1305) due grandezze: un peso totale positivo Ptp_FSCed un peso totale negativo Ptn_FSC. In dettaglio, in caso di metadato lecito, il peso totale positivo Ptp_FSCà ̈ dato dalla somma del peso del metadato con il contenuto del campo di peso lecito 306 della cella; invece, il peso totale negativo Ptn_FSCà ̈ dato dal contenuto del campo di peso illecito 307 della cella. In caso di metadato illecito, il peso totale positivo Ptp_FSCà ̈ dato dal contenuto del campo di peso lecito 306 della cella; invece, il peso totale negativo Ptn_FSCà ̈ dato dalla somma del peso del metadato con il contenuto del campo di peso illecito 307 della cella. Vice versa (output YES of block 1303), that is, if there is a cell corresponding to element X2, two quantities are calculated (block 1305): a positive total weight Ptp_FSC and a negative total weight Ptn_FSC. In detail, in the case of lawful metadata, the total positive weight Ptp_FSC is given by the sum of the weight of the metadata with the content of the lawful weight field 306 of the cell; instead, the total negative weight Ptn_FSC is given by the content of the illegal weight field 307 of the cell. In case of illegal metadata, the total positive weight Ptp_FSC is given by the content of the legal weight field 306 of the cell; instead, the total negative weight Ptn_FSC is given by the sum of the weight of the metadata with the content of the illegal weight field 307 of the cell.
Successivamente, si verifica (blocco 1306) se la somma del peso totale positivo Ptp_FSCe del peso totale negativo Ptn_FSCsupera la soglia decisionale d-FSC. Subsequently, it is checked (block 1306) whether the sum of the total positive weight Ptp_FSC and the total negative weight Ptn_FSC exceeds the decision threshold d-FSC.
Nel caso in cui tale somma superi la soglia decisionale d-FSC (uscita SI del blocco 1306), si verifica (blocco 1307) se il rapporto tra il peso totale negativo Ptn_FSCe la summenzionata somma supera la soglia FSC. In the event that this sum exceeds the decision threshold d-FSC (output SI of block 1306), it occurs (block 1307) if the ratio between the total negative weight Ptn_FSC and the aforementioned sum exceeds the FSC threshold.
Nel caso in cui effettivamente il rapporto tra il peso totale negativo Ptn_FSCe la somma del peso totale positivo Ptp_FSCe del peso totale negativo Ptn_FSCsuperi la soglia FSC (uscita SI del blocco 1307), si segnala un’anomalia (blocco 1308) associata all’elemento X2, dunque associata al primo indirizzo di rete. La segnalazione dell’anomalia comprende, oltre all’elemento X2, il contenuto del campo di peso illecito 307, utilizzabile come indicatore della gravità dell’anomalia, ed un intervallo temporale di rilevamento, avente come istante di inizio il contenuto della marca temporale Tcldella cella e come termine l’istante temporale Tm. Successivamente si cancella, mediante la funzione b) precedentemente descritta, l’elemento X2dalla struttura dati FSC (blocco 1309). If the ratio between the total negative weight Ptn_FSC and the sum of the total positive weight Ptp_FSC and the total negative weight Ptn_FSC actually exceeds the FSC threshold (SI output of block 1307), an anomaly (block 1308) associated with the element X2, therefore associated with the first network address. The reporting of the anomaly includes, in addition to the element X2, the content of the illegal weight field 307, which can be used as an indicator of the severity of the anomaly, and a detection time interval, starting with the content of the mark temporal Tcld of the cell and the temporal instant Tm as the end. Subsequently, by means of function b) previously described, element X2 is deleted from the FSC data structure (block 1309).
Viceversa, nel caso in cui il rapporto tra il peso totale negativo Ptn_FSCe la somma del peso totale positivo Ptp_FSCe del peso totale negativo Ptn_FSCsia inferiore alla soglia FSC (uscita NO del blocco 1307), si verifica (blocco 1310) se il rapporto tra il peso totale positivo Ptp_FSCe la somma del peso totale positivo Ptp_FSCe del peso totale negativo Ptn_FSCsupera la soglia FSC. Nel caso in cui il rapporto tra il peso totale positivo Ptp_FSCe la somma del peso totale positivo Ptp_FSCe del peso totale negativo Ptn_FSCsupera la soglia FSC (uscita SI del blocco 1310), si procede ad effettuare le operazioni del blocco 1309, cioà ̈ a cancellare l’elemento X2dalla struttura dati FSC. Viceversa (uscita NO del blocco 1310), si aggiorna (blocco 1311) la cella corrispondente all’elemento X2(occupata) mediante la funzione c) precedentemente descritta, in modo tale per cui il campo di peso lecito 306 ed il campo di peso illecito 307 della cella corrispondente all’elemento X2siano posti pari, rispettivamente, al peso totale positivo Ptp_FSCe al peso totale negativo Ptn_FSC. Vice versa, if the ratio between the total negative weight Ptn_FSC and the sum of the total positive weight Ptp_FSC and the total negative weight Ptn_FSC is lower than the FSC threshold (NO output of block 1307), it occurs (block 1310) if the ratio between the weight total positive Ptp_FSCe the sum of the total positive weight Ptp_FSC and the total negative weight Ptn_FSC exceeds the FSC threshold. If the ratio between the total positive weight Ptp_FSC and the sum of the total positive weight Ptp_FSCe and the total negative weight Ptn_FSC exceeds the FSC threshold (output SI of block 1310), one proceeds to carry out the operations of block 1309, i.e. to cancel the € ™ element X2from the FSC data structure. Vice versa (output NO of block 1310), the cell corresponding to element X2 (occupied) is updated (block 1311) by means of function c) previously described, in such a way that the legal weight range 306 and the weight range illicit 307 of the cell corresponding to element X2 are set equal, respectively, to the total positive weight Ptp_FSC and the total negative weight Ptn_FSC.
Nel caso in cui la somma del peso totale positivo Ptp_FSCe del peso totale negativo Ptn_FSCnon superi la soglia decisionale d-FSC (uscita NO del blocco 1306), si procede direttamente ad effettuare le operazioni del blocco 1311, cioà ̈ ad aggiornare la cella corrispondente all’elemento X2in modo tale per cui il campo di peso lecito 306 ed il campo di peso illecito 307 siano posti pari, rispettivamente, al peso totale positivo Ptp_FSCe al peso totale negativo Ptn_FSC. If the sum of the total positive weight Ptp_FSC and the total negative weight Ptn_FSC does not exceed the d-FSC decision threshold (NO output of block 1306), one proceeds directly to carry out the operations of block 1311, i.e. to update the cell corresponding to the € ™ element X2 in such a way that the legal weight range 306 and the illegal weight range 307 are set equal, respectively, to the total positive weight Ptp_FSC and the total negative weight Ptn_FSC.
In modo analogo a quanto descritto relativamente alla struttura dati FSC, l’aggiornamento della struttura dati FDC avviene come mostrato in figura 14. Similarly to what has been described in relation to the FSC data structure, the updating of the FDC data structure takes place as shown in figure 14.
In dettaglio, per aggiornare la struttura dati FDC (blocco 805) si estrae (blocco 1401) dal metadato un elemento, denominato X3, comprendente il contenuto del campo di secondo indirizzo 903 del metadato. Successivamente, si impostano (blocco 1402) i valori di due soglie, denominate rispettivamente soglia FDC e soglia decisionale d-FDC. Tali soglie possono essere impostate in modo dinamico, dunque possono variare ad ogni aggiornamento della struttura dati FDC, oppure possono essere impostate in modo statico, ad esempio durante la fase di configurazione, e restare immutate durante l’esecuzione del presente metodo. In detail, to update the data structure FDC (block 805) an element, called X3, comprising the content of the second address field 903 of the metadata is extracted (block 1401) from the metadata. Subsequently, the values of two thresholds are set (block 1402), respectively called threshold FDC and decision threshold d-FDC. These thresholds can be set dynamically, therefore they can vary at each update of the FDC data structure, or they can be set statically, for example during the configuration phase, and remain unchanged during the execution of this method.
Quindi si ricerca l’elemento X3all’interno della struttura dati FDC (blocco 1403), mediante la funzione a) precedentemente descritta. Then the element X3 is searched inside the data structure FDC (block 1403), by means of the function a) previously described.
Nel caso in cui l’elemento X3non sia presente nella struttura dati FDC (uscita NO del blocco 1403), si inserisce l’elemento X3all’interno struttura dati FDC (blocco 1404), mediante la funzione d) precedentemente descritta. In particolare, si inseriscono nella cella corrispondente all’elemento X3l’impronta Fie l’istante temporale Tm, rispettivamente nei campi di impronta 301, di marca temporale 302. Inoltre, in caso di metadato lecito, si inserisce il peso del metadato (contenuto nel campo di peso 906 del metadato) nel campo di peso lecito 306 della cella, inizializzando a zero il campo di peso illecito 307; viceversa, in caso di metadato illecito, si inserisce il peso nel campo di peso illecito 307 della cella, inizializzando a zero il campo di peso lecito 306. Successivamente, si terminano le operazioni. If element X3 is not present in the data structure FDC (output NO of block 1403), the element X3 is inserted into the internal data structure FDC (block 1404), by means of function d) previously described. In particular, the imprint Fie is entered in the cell corresponding to the element X3 and the time instant Tm, respectively in the imprint fields 301, with time stamp 302. Furthermore, in the case of lawful metadata, the weight of the metadata is entered (contained in the weight field 906 of the metadata) in the lawful weight field 306 of the cell, initializing the illegal weight field 307 to zero; vice versa, in the case of illegal metadata, the weight is entered in the illegal weight field 307 of the cell, initializing the lawful weight field 306 to zero. Subsequently, the operations are terminated.
Viceversa (uscita SI del blocco 1403), cioà ̈ nel caso in cui sia presente una cella corrispondente all’elemento X3ed occupata, si calcolano (blocco 1405) due grandezze: un peso totale positivo Ptp_FDCed un peso totale negativo Ptn_FDC. In dettaglio, in caso di metadato lecito, il peso totale positivo Ptp_FDCà ̈ dato dalla somma del peso del metadato con il contenuto del campo di peso lecito 306 della cella; invece, il peso totale negativo Ptn_FDCà ̈ dato dal contenuto del campo di peso illecito 307 della cella. In caso di metadato illecito, il peso totale positivo Ptp_FDCà ̈ dato dal contenuto del campo di peso lecito 306 della cella; invece, il peso totale negativo Ptn_FDCà ̈ dato dalla somma del peso del metadato con il contenuto del campo di peso illecito 307 della cella. Vice versa (output YES of block 1403), that is, if there is a cell corresponding to element X3ed occupied, two quantities are calculated (block 1405): a positive total weight Ptp_FDC and a negative total weight Ptn_FDC. In detail, in the case of lawful metadata, the total positive weight Ptp_FDC is given by the sum of the weight of the metadata with the content of the lawful weight field 306 of the cell; instead, the total negative weight Ptn_FDC is given by the content of the illegal weight field 307 of the cell. In case of illegal metadata, the total positive weight Ptp_FDC is given by the content of the legal weight field 306 of the cell; instead, the total negative weight Ptn_FDC is given by the sum of the weight of the metadata with the content of the illegal weight field 307 of the cell.
Successivamente, si verifica (blocco 1406) se la somma del peso totale positivo Ptp_FDCe del peso totale negativo Ptn_FDCsupera la soglia decisionale d-FDC. Subsequently, it is checked (block 1406) whether the sum of the positive total weight Ptp_FDC and the negative total weight Ptn_FDC exceeds the decision threshold d-FDC.
Nel caso in cui tale somma superi la soglia decisionale d-FDC (uscita SI del blocco 1406), si verifica (blocco 1407) se il rapporto tra il peso totale negativo Ptn_FDCe la summenzionata somma supera la soglia FDC. Nel caso in cui effettivamente il rapporto tra il peso totale negativo Ptn_FDCe la somma del peso totale positivo Ptp_FDCe del peso totale negativo Ptn_FDCsuperi la soglia FDC (uscita SI del blocco 1407), si segnala un’anomalia (blocco 1408) associata all’elemento X3, dunque associata al secondo indirizzo di rete. La segnalazione dell’anomalia comprende, oltre all’elemento X3, il contenuto del campo di peso illecito 307, utilizzabile come indicatore della gravità dell’anomalia, ed un intervallo temporale di rilevamento, avente come istante di inizio la marca temporale Tcldella cella e come termine l’istante temporale Tm. Successivamente, si cancella, mediante la funzione b) precedentemente descritta, l’elemento X3dalla struttura dati FDC (blocco 1409). Viceversa, nel caso in cui il rapporto tra il peso totale negativo Ptn_FDCe la somma del peso totale positivo Ptp_FDCe del peso totale negativo Ptn_FDCsia inferiore alla soglia FDC (uscita NO del blocco 1407), si verifica (blocco 1410) se il rapporto tra il peso totale positivo Ptp_FDCe la somma del peso totale positivo Ptp_FDCe del peso totale negativo Ptn_FDCsupera la soglia FDC. Nel caso in cui il rapporto tra il peso totale positivo Ptp_FDCe la somma del peso totale positivo Ptp_FDCe del peso totale negativo Ptn_FDCsupera la soglia FDC (uscita SI del blocco 1410), si procede ad effettuare le operazioni del blocco 1409, cioà ̈ a cancellare l’elemento X3dalla struttura dati FDC. Viceversa (uscita NO del blocco 1410), si aggiorna (blocco 1411) la cella corrispondente all’elemento X3(ed occupata) mediante la funzione c) precedentemente descritta, in modo tale per cui il campo di peso lecito 306 ed il campo di peso illecito 307 della cella corrispondente all’elemento X3siano posti pari, rispettivamente, al peso totale positivo Ptp_FDCe al peso totale negativo Ptn_FDC. In the event that this sum exceeds the decision threshold d-FDC (output SI of block 1406), it occurs (block 1407) if the ratio between the total negative weight Ptn_FDC and the aforementioned sum exceeds the threshold FDC. If the ratio between the total negative weight Ptn_FDC and the sum of the total positive weight Ptp_FDC and the total negative weight Ptn_FDC actually exceeds the FDC threshold (SI output of block 1407), an anomaly (block 1408) associated with the element X3, therefore associated with the second network address. The reporting of the anomaly includes, in addition to the element X3, the content of the illegal weight field 307, which can be used as an indicator of the severity of the anomaly, and a detection time interval, starting with the time stamp Tcldella cell and the time instant Tm as the end. Subsequently, by means of function b) previously described, element X3 is deleted from the data structure FDC (block 1409). Vice versa, if the ratio between the negative total weight Ptn_FDC and the sum of the positive total weight Ptp_FDC and the negative total weight Ptn_FDC is lower than the FDC threshold (NO output of block 1407), it occurs (block 1410) if the ratio between the weight positive total weight Ptp_FDCe the sum of the positive total weight Ptp_FDC and the negative total weight Ptn_FDC exceeds the FDC threshold. If the ratio between the total positive weight Ptp_FDC and the sum of the total positive weight Ptp_FDC and the total negative weight Ptn_FDC exceeds the FDC threshold (output SI of block 1410), one proceeds to carry out the operations of block 1409, i.e. to cancel the € ™ element X3from the FDC data structure. Vice versa (NO output of block 1410), the cell corresponding to element X3 (and occupied) is updated (block 1411) by means of function c) previously described, in such a way that the lawful weight range 306 and the illicit weight 307 of the cell corresponding to element X3 are set equal, respectively, to the total positive weight Ptp_FDC and the total negative weight Ptn_FDC.
Nel caso in cui la somma del peso totale positivo Ptp_FDCe del peso totale negativo Ptn_FDCnon superi la soglia decisionale d-FSC (uscita NO del blocco 1406), si procede direttamente ad effettuare le operazioni del blocco 1411, cioà ̈ ad aggiornare la cella corrispondente all’elemento X3in modo tale per cui il campo di peso lecito 306 ed il campo di peso illecito 307 siano posti pari, rispettivamente, al peso totale positivo Ptp_FDCe al peso totale negativo Ptn_FDC. If the sum of the total positive weight Ptp_FDC and the total negative weight Ptn_FDC does not exceed the d-FSC decision threshold (NO output of block 1406), one proceeds directly to carry out the operations of block 1411, i.e. to update the cell corresponding to the € ™ element X3 in such a way that the legal weight field 306 and the illegal weight field 307 are set equal, respectively, to the total positive weight Ptp_FDC and to the total negative weight Ptn_FDC.
In modo analogo a quanto descritto relativamente alle strutture dati FSC e FDC, l’aggiornamento della struttura dati FEC avviene come mostrato in figura 15. Similarly to what has been described in relation to the FSC and FDC data structures, the updating of the FEC data structure takes place as shown in figure 15.
In dettaglio, per aggiornare la struttura dati FEC (blocco 806) si estrae (blocco 1501) dal metadato un elemento, denominato X4, comprendente il contenuto del campo di evento 905 del metadato, cioà ̈ l’ID evento. Successivamente, si impostano (blocco 1502) i valori di due soglie, denominate rispettivamente soglia FEC e soglia decisionale d-FEC. Tali soglie possono essere impostate in modo dinamico, dunque possono variare ad ogni aggiornamento della struttura dati FEC, oppure possono essere impostate in modo statico, ad esempio durante la fase di configurazione, e restare immutate durante l’esecuzione del presente metodo. In detail, to update the FEC data structure (block 806) an element, called X4, is extracted (block 1501) from the metadata, comprising the content of the event field 905 of the metadata, ie the event ID. Subsequently, the values of two thresholds are set (block 1502), respectively called FEC threshold and d-FEC decision threshold. These thresholds can be set dynamically, therefore they can vary at each update of the FEC data structure, or they can be set statically, for example during the configuration phase, and remain unchanged during the execution of this method.
Quindi si ricerca l’elemento X4all’interno della struttura dati FEC (blocco 1503), mediante la funzione a) precedentemente descritta. Then the element X4 is searched inside the data structure FEC (block 1503), by means of the function a) previously described.
Nel caso in cui l’elemento X4non sia presente nella struttura dati FEC (uscita NO del blocco 1503), si inserisce l’elemento X4all’interno struttura dati FEC (blocco 1504). In particolare, si inseriscono nella cella corrispondente all’elemento X4l’impronta Fie l’istante temporale Tm, rispettivamente nei campi di impronta 301, di marca temporale 302. Inoltre, in caso di metadato lecito, si inserisce il peso del metadato (contenuto nel campo di peso 906 del metadato) nel campo di peso lecito 306 della cella, inizializzando a zero il campo di peso illecito 307; viceversa, in caso di metadato illecito, si inserisce il peso nel campo di peso illecito 307 della cella, inizializzando a zero il campo di peso lecito 306. Successivamente, si terminano le operazioni. If the X4 element is not present in the FEC data structure (NO output of block 1503), the X4 element is inserted into the internal FEC data structure (block 1504). In particular, the imprint Fie is entered in the cell corresponding to element X4 and the time instant Tm, respectively in the imprint fields 301, with time stamp 302. Furthermore, in the case of lawful metadata, the weight of the metadata is entered (contained in the weight field 906 of the metadata) in the lawful weight field 306 of the cell, initializing the illegal weight field 307 to zero; vice versa, in the case of illegal metadata, the weight is entered in the illegal weight field 307 of the cell, initializing the lawful weight field 306 to zero. Subsequently, the operations are terminated.
Viceversa (uscita SI del blocco 1503), cioà ̈ nel caso in cui sia presente una cella corrispondente all’elemento X4ed occupata, si calcolano (blocco 1505) due grandezze: un peso totale positivo Ptp_FECed un peso totale negativo Ptn_FEC. In dettaglio, in caso di metadato lecito, il peso totale positivo Ptp_FECà ̈ dato dalla somma del peso del metadato con il contenuto del campo di peso lecito 306 della cella; invece, il peso totale negativo Ptn_FECà ̈ dato dal contenuto del campo di peso illecito 307 della cella. In caso di metadato illecito, il peso totale positivo Ptp_FECà ̈ dato dal contenuto del campo di peso lecito 306 della cella; invece, il peso totale negativo Ptn_FECà ̈ dato dalla somma del peso del metadato con il contenuto del campo di peso illecito 307 della cella. Vice versa (output YES of block 1503), that is, if there is a cell corresponding to the element X4ed occupied, two quantities are calculated (block 1505): a positive total weight Ptp_FEC and a negative total weight Ptn_FEC. In detail, in the case of lawful metadata, the total positive weight Ptp_FEC is given by the sum of the weight of the metadata with the content of the lawful weight field 306 of the cell; instead, the total negative weight Ptn_FEC is given by the content of the illegal weight field 307 of the cell. In case of illegal metadata, the total positive weight Ptp_FEC is given by the content of the legal weight field 306 of the cell; instead, the total negative weight Ptn_FEC is given by the sum of the weight of the metadata with the content of the illegal weight field 307 of the cell.
Successivamente, si verifica (blocco 1506) se la somma del peso totale positivo Ptp_FECe del peso totale negativo Ptn_FECsupera la soglia decisionale d-FEC. Subsequently, it is checked (block 1506) whether the sum of the positive total weight Ptp_FECe and the negative total weight Ptn_FEC exceeds the decision threshold d-FEC.
Nel caso in cui tale somma superi la soglia decisionale d-FEC (uscita SI del blocco 1506), si verifica (blocco 1507) se il rapporto tra il peso totale negativo Ptn_FECe la summenzionata somma supera la soglia FEC. Nel caso in cui effettivamente il rapporto tra il peso totale negativo Ptn_FECe la somma del peso totale positivo Ptp_FECe del peso totale negativo Ptn_FECsuperi la soglia FEC (uscita SI del blocco 1507), si segnala un’anomalia (blocco 1508) associata all’elemento X4, dunque associata all’ID evento. La segnalazione dell’anomalia comprende, oltre all’elemento X4, il contenuto del campo di peso illecito 307, utilizzabile come indicatore della gravità dell’anomalia, ed un intervallo temporale di rilevamento, avente come istante di inizio la marca temporale Tcldella cella e come termine l’istante temporale Tm. Successivamente, si cancella, mediante la funzione b) precedentemente descritta, l’elemento X4dalla struttura dati FEC (blocco 1509). Viceversa, nel caso in cui il rapporto tra il peso totale negativo Ptn_FECe la somma del peso totale positivo Ptp_FECe del peso totale negativo Ptn_FECsia inferiore alla soglia FEC (uscita NO del blocco 1507), si verifica (blocco 1510) se il rapporto tra il peso totale positivo Ptp_FECe la somma del peso totale positivo Ptp_FECe del peso totale negativo Ptn_FECsupera la soglia FEC. Nel caso in cui il rapporto tra il peso totale positivo Ptp_FECe la somma del peso totale positivo Ptp_FECe del peso totale negativo Ptn_FECsupera la soglia FEC (uscita SI del blocco 1510), si procede ad effettuare le operazioni del blocco 1509, cioà ̈ a cancellare l’elemento X4dalla struttura dati FEC. Viceversa (uscita NO del blocco 1510), si aggiorna (blocco 1511) la cella corrispondente all’elemento X4(occupata) mediante la funzione c) precedentemente descritta, in modo tale per cui il campo di peso lecito 306 ed il campo di peso illecito 307 della cella corrispondente all’elemento X4siano posti pari, rispettivamente, al peso totale positivo Ptp_FECe al peso totale negativo Ptn_FEC. If this sum exceeds the decision threshold d-FEC (output SI of block 1506), it occurs (block 1507) if the ratio between the total negative weight Ptn_FEC and the aforementioned sum exceeds the threshold FEC. If the ratio between the total negative weight Ptn_FEC and the sum of the total positive weight Ptp_FEC and the total negative weight Ptn_FEC actually exceeds the FEC threshold (output SI of block 1507), an anomaly (block 1508) associated with the element X4, therefore associated with the event ID. The reporting of the anomaly includes, in addition to the element X4, the content of the illegal weight field 307, which can be used as an indicator of the severity of the anomaly, and a detection time interval, starting with the time stamp Tcldella cell and the time instant Tm as the end. Subsequently, by means of function b) previously described, element X4 is deleted from the FEC data structure (block 1509). Vice versa, if the ratio between the negative total weight Ptn_FEC and the sum of the positive total weight Ptp_FEC and the negative total weight Ptn_FEC is lower than the FEC threshold (NO output of block 1507), it occurs (block 1510) if the ratio between the weight positive total weight Ptp_FECe the sum of the positive total weight Ptp_FEC and the negative total weight Ptn_FEC exceeds the FEC threshold. If the ratio between the total positive weight Ptp_FEC and the sum of the total positive weight Ptp_FEC and the total negative weight Ptn_FEC exceeds the FEC threshold (output SI of block 1510), one proceeds to carry out the operations of block 1509, i.e. to cancel the € ™ element X4 from the FEC data structure. Vice versa (output NO of block 1510), the cell corresponding to element X4 (occupied) is updated (block 1511) by means of function c) previously described, in such a way that the legal weight range 306 and the weight range illicit 307 of the cell corresponding to element X4 are set equal, respectively, to the total positive weight Ptp_FEC and the total negative weight Ptn_FEC.
Nel caso in cui la somma del peso totale positivo Ptp_FECe del peso totale negativo Ptn_FECnon superi la soglia decisionale d-FSC (uscita NO del blocco 1506), si procede direttamente ad effettuare le operazioni del blocco 1511, cioà ̈ ad aggiornare la cella corrispondente all’elemento X4in modo tale per cui il campo di peso lecito 306 ed il campo di peso illecito 307 siano posti pari, rispettivamente, al peso totale positivo Ptp_FECed al peso totale negativo Ptn_FEC. If the sum of the total positive weight Ptp_FEC and the total negative weight Ptn_FEC does not exceed the d-FSC decision threshold (NO output of block 1506), one proceeds directly to carry out the operations of block 1511, i.e. to update the cell corresponding to the € ™ element X4 in such a way that the legal weight field 306 and the illegal weight field 307 are set equal, respectively, to the total positive weight Ptp_FEC and to the total negative weight Ptn_FEC.
Si noti che anche nel caso delle strutture dati FSC, FDC e FEC, come già nel caso delle strutture dati ASM_OK e ASM_KO, le operazioni di ricerca di elementi nelle summenzionate strutture dati (blocchi 1303, 1403, 1503) ed i conseguenti accessi a celle occupate, implicano la cancellazione (si vedano i blocchi 406 e 407) delle celle non vuote e con marche temporali Tclpiù vecchie, rispetto all’istante temporale Tmdel metadato il cui elemento si ricerca, di un tempo maggiore o uguale al tempo di persistenza Tp. In questo modo, si evita il riempimento delle strutture dati FSC, FDC e FEC, e la conseguente impossibilità di gestire voci acquisite successivamente al riempimento. Inoltre, l’impiego del tempo di persistenza Tpconsente, una volta inserito un elemento in una cella, di specificare una finestra di durata temporale pari al tempo di persistenza Tp, al cui interno sono rilevate eventuali anomalie relative a tale elemento. Note that even in the case of the FSC, FDC and FEC data structures, as already in the case of the ASM_OK and ASM_KO data structures, the search operations for elements in the aforementioned data structures (blocks 1303, 1403, 1503) and the consequent access to cells occupied, imply the cancellation (see blocks 406 and 407) of non-empty cells with older timestamps Tcl, with respect to the time instant Tm of the metadata whose element is being searched for, of a time greater than or equal to the persistence time Tp . In this way, the filling of the FSC, FDC and FEC data structures is avoided, and the consequent inability to manage items acquired after filling. Furthermore, the use of the persistence time Tpc allows, once an element has been inserted in a cell, to specify a time duration window equal to the persistence time Tp, within which any anomalies relating to this element are detected.
Dal momento che anche le operazioni di cui ai blocchi 1304, 1309, 1311, 1404, 1409, 1411, 1504, 1509 e 1511 prevedono intrinsecamente operazioni di ricerca, quindi operazioni già svolte nei blocchi 1303, 1403 e 1503 (calcolo delle funzioni di hash, calcolo delle permutazioni Pi, determinazione degli indici di colonna Cie delle impronte Fi, ricerca iterativa di una cella occupata, successiva verifica della marca temporale Tcle confronto con l’impronta Fclivi contenuta), per evitare la duplicazione di operazioni à ̈ possibile implementare meccanismi di memorizzazione degli indici di colonna Cie delle impronte Fideterminati durante le operazioni dei blocchi 1303, 1403 e 1503. Ad esempio, nel caso in cui una ricerca di uno dei blocchi 1303, 1403 o 1503 trovi una cella corrispondente, à ̈ possibile memorizzare il corrispondente indice di colonna Cie la rispettiva impronta Fi, oltre che la tabella in cui la cella si trova, per poter rendere immediatamente disponibili queste informazioni ai blocchi successivi. Ad esempio, nel caso della ricerca di cui al blocco 1303, tali informazioni possono essere fornite ai blocchi 1304, 1309, 1311, in modo da poter procedere direttamente ad inserire (1304), aggiornare (1311) o cancellare (1309) l’elemento considerato. Considerazioni analoghe valgono per le ricerche effettuate nei blocchi 1403 e 1503, ed i successivi blocchi 1404, 1409, 1411 e 1504, 1509, 1511. Since the operations referred to in blocks 1304, 1309, 1311, 1404, 1409, 1411, 1504, 1509 and 1511 intrinsically involve search operations, therefore operations already carried out in blocks 1303, 1403 and 1503 (calculation of the hash functions , calculation of the permutations Pi, determination of the column indices Cie of the footprints Fi, iterative search of an occupied cell, subsequent verification of the time stamp Tcle comparison with the contained Fclivi footprint), to avoid the duplication of operations it is possible to implement mechanisms for storing the Cie column indices of the Fidetermined footprints during the operations of blocks 1303, 1403 and 1503. For example, in the event that a search for one of the blocks 1303, 1403 or 1503 finds a corresponding cell, it is possible to store the corresponding column index Cie the respective imprint Fi, as well as the table in which the cell is located, in order to make this information immediately available to the following blocks. For example, in the case of the search referred to in block 1303, such information can be provided to blocks 1304, 1309, 1311, so that it is possible to proceed directly to insert (1304), update (1311) or delete (1309) the element considered. Similar considerations apply to the searches carried out in blocks 1403 and 1503, and the subsequent blocks 1404, 1409, 1411 and 1504, 1509, 1511.
Si noti altresì che le operazioni di cui ai blocchi 804-806 possono essere eseguite in serie, oppure in parallelo. Sono inoltre possibili forme di realizzazione meno performanti, ma più agili computazionalmente, in cui si effettuano le operazioni solamente di uno o due blocchi scelti tra i blocchi 804-806. It should also be noted that the operations referred to in blocks 804-806 can be performed in series or in parallel. Less performing, but more computationally agile, embodiments are also possible, in which the operations of only one or two blocks selected from the blocks 804-806 are carried out.
Operativamente, le strutture dati FSC, FDC e FEC sono indicizzate utilizzando, rispettivamente, il primo indirizzo di rete, il secondo indirizzo di rete e l’ID evento. Pertanto, i metadati (radice) vengono aggregati all’interno delle summenzionate strutture dati sulla base, rispettivamente, del primo indirizzo di rete, del secondo indirizzo di rete e dell’ID evento, a differenza di quanto avviene nel caso delle strutture dati ASM_OK e ASM_KO, in cui i metadati sono aggregati in funzione della terna comprendente il primo indirizzo di rete, il secondo indirizzo di rete e l’ID evento. Operationally, the FSC, FDC and FEC data structures are indexed using, respectively, the first network address, the second network address and the event ID. Therefore, the metadata (root) are aggregated within the aforementioned data structures on the basis, respectively, of the first network address, the second network address and the event ID, unlike what happens in the case of data structures ASM_OK and ASM_KO, in which the metadata are aggregated according to the triad including the first network address, the second network address and the event ID.
In altre parole, e con riferimento a titolo esemplificativo alla struttura dati FSC, di ciascun metadato ciò che rileva (a parte i campi di liceità e di peso) à ̈ il campo di primo indirizzo 902. In pratica, l’evento cui il metadato si riferisce, la cui liceità ed il cui peso sono specificati rispettivamente nel campo di liceità 904 e di peso 906, à ̈ considerato come un’azione eseguita dal dispositivo di rete il cui indirizzo à ̈ contenuto nel campo di primo indirizzo 902, indipendentemente dal tipo di azione, cioà ̈ dall’ID evento, e dalla presenza di un eventuale ulteriore dispositivo di rete coinvolto nell’azione, cioà ̈ senza considerare il campo di secondo indirizzo 903. Pertanto, le informazioni associate a metadati differenti, ma provvisti di un medesimo campo di primo indirizzo 902, dunque originanti un medesimo elemento X2, sono aggregate in un’unica cella della struttura dati FSC. Ne consegue che l’eventuale segnalazione di un’anomalia (blocco 1308) indica che il dispositivo di rete specificato dall’elemento X2ha eseguito, in un intervallo temporale al più pari al tempo di persistenza Tp, un certo numero di azioni illecite, su un totale di azioni eseguite da tale dispositivo di rete, come stabilito dalla soglia FSC e dalla soglia decisionale d-FSC. Ad esempio, il dispositivo di rete specificato dall’elemento X2può aver attaccato un certo dispositivo destinazione con azioni risultanti in differenti ID eventi, oppure può aver attaccato più dispositivi destinazione, tutti con azioni risultanti in un medesimo ID evento, oppure ancora può aver attaccato più dispositivi destinazione, ciascuno con una rispettiva azione, gli ID eventi di tali rispettive azioni essendo differenti. Sempre a titolo esemplificativo, qualora si scelgano criteri di determinazione degli ID eventi tali per cui ciascun ID evento à ̈ formato dalla concatenazione del protocollo e della porta impiegati dalla corrispondente azione, si può assumere che gli attacchi sopra descritti si riferiscano rispettivamente ai casi in cui il dispositivo di rete specificato dall’elemento X2ha attaccato un certo dispositivo destinazione con combinazioni protocollo-porta differenti, oppure ha attaccato più dispositivi destinazione, tutti con una medesima combinazione protocollo-porta, oppure ciascuno con una rispettiva coppia protocollo-porta. In other words, and with reference by way of example to the FSC data structure, of each metadata what is relevant (apart from the lawfulness and weight fields) is the first address field 902. In practice, the event to which the metadata refers, whose lawfulness and weight of which are specified respectively in the lawfulness field 904 and weight 906, is considered as an action performed by the network device whose address is contained in the first address field 902, regardless of the type of action, ie the event ID, and the presence of any further network device involved in the action, ie without considering the second address field 903. Therefore, the information associated with different metadata, but provided with the same first address field 902, therefore originating from the same element X2, they are aggregated in a single cell of the FSC data structure. It follows that the eventual signaling of an anomaly (block 1308) indicates that the network device specified by the element X2 has performed, in a time interval at most equal to the persistence time Tp, a certain number of illegal actions , out of a total of actions performed by this network device, as established by the FSC threshold and the d-FSC decision threshold. For example, the network device specified by the X2 element may have attacked a certain target device with actions resulting in different event IDs, or it may have attacked multiple target devices, all with actions resulting in the same event ID, or it may have attacked multiple target devices, each with a respective action, the event IDs of those respective actions being different. Again by way of example, if criteria for determining event IDs are chosen such that each event ID is formed by the concatenation of the protocol and port used by the corresponding action, it can be assumed that the attacks described above refer respectively to cases in which the network device specified by the X2 element has attacked a certain target device with different protocol-port combinations, or has attacked multiple target devices, all with the same protocol-port combination, or each with a respective protocol-port pair.
Analoghe considerazioni valgono per le strutture dati FDC e FEC, e rispettivamente al secondo indirizzo di rete e all’ID evento. Similar considerations apply to the FDC and FEC data structures, and to the second network address and the event ID, respectively.
Pertanto, relativamente alla struttura dati FDC, un’eventuale segnalazione di un’anomalia (blocco 1408) indica che il dispositivo di rete specificato dall’elemento X3, e dunque dal secondo indirizzo di rete, à ̈ rimasto coinvolto, in un intervallo temporale al più pari al tempo di persistenza Tp, in un certo numero di azioni illecite, su un totale di azioni in cui à ̈ stato coinvolto tale dispositivo di rete, come stabilito dalla soglia FDC e dalla soglia decisionale d-FDC. Ad esempio, il dispositivo di rete specificato dall’elemento X3può essere stato attaccato da un singolo dispositivo sorgente con una pluralità di azioni risultanti in ID eventi differenti, oppure può essere stato attaccato da una pluralità di dispositivi sorgente con azioni risultanti in un medesimo ID evento, oppure ancora può essere stato attaccato da una pluralità di dispositivi sorgente con una corrispondente pluralità di azioni, ciascuna azione risultando in un rispettivo ID evento. Therefore, with regard to the FDC data structure, an eventual signaling of an anomaly (block 1408) indicates that the network device specified by the element X3, and therefore by the second network address, has been involved in a time interval at most equal to the persistence time Tp, in a certain number of illegal actions, out of a total of actions in which this network device was involved, as established by the FDC threshold and the d-FDC decision threshold. For example, the network device specified by the X3 element may have been attacked by a single source device with a plurality of actions resulting in different event IDs, or it may have been attacked by a plurality of source devices with actions resulting in the same ID event, or it may have been attacked by a plurality of source devices with a corresponding plurality of actions, each action resulting in a respective event ID.
Similmente, relativamente alla struttura dati FEC, un’eventuale segnalazione di un’anomalia (blocco 1508) indica che l’evento specificato dall’elemento X4, e dunque dall’ID evento, si à ̈ ripetuto in modo illecito un certo numero di volte all’interno di un intervallo temporale al più pari al tempo di persistenza Tp, su un totale di volte in cui tale evento si à ̈ verificato, come stabilito dalla soglia FEC e dalla soglia decisionale d-FEC. Ad esempio, assumendo a titolo esemplificativo un evento riguardante l’instaurazione di una connessione su una porta, dunque assumendo criteri di determinazione degli ID eventi tali per cui ciascun ID evento à ̈ formato dalla porta contenuta nel campo di azione 104 della voce, tale evento può essere stato causato dalla connessione di una pluralità di dispositivi sorgente su tale porta di un singolo dispositivo di rete destinazione, oppure può essere stato causato dalla connessione di un singolo dispositivo sorgente con una pluralità di dispositivi destinazione, sempre su tale porta; ancora, l’evento può esser stato causato dalla connessione di una pluralità di dispositivi sorgente verso una corrispondente pluralità di dispositivi di rete destinazione, sempre su tale porta. Similarly, with regard to the FEC data structure, a possible report of an anomaly (block 1508) indicates that the event specified by the X4 element, and therefore by the event ID, has been repeated illegally a certain number of times within a time interval at most equal to the persistence time Tp, out of a total of times this event has occurred, as established by the FEC threshold and the d-FEC decision threshold. For example, assuming by way of example an event concerning the establishment of a connection on a port, therefore assuming criteria for determining the event IDs such that each event ID is formed by the port contained in the action field 104 of the item, such event may have been caused by the connection of a plurality of source devices on that port of a single target network device, or it may have been caused by the connection of a single source device with a plurality of target devices, always on that port; again, the event may have been caused by the connection of a plurality of source devices to a corresponding plurality of destination network devices, always on this port.
Si noti inoltre come, considerando segnalazioni di anomalie determinate sulla base del contenuto delle strutture dati FSC, FDC e FEC, sia possibile identificare rapporti tra differenti segnalazioni di anomalia, e desumere ulteriori informazioni circa la presenza ed il tipo di possibili attacchi. Ad esempio, un’ipotetica situazione in cui un dispositivo sorgente tenti ripetutamente di instaurare illecitamente connessioni con un dispositivo destinazione, su differenti porte del dispositivo destinazione, conduce a due distinte segnalazioni di anomalia, rispettivamente basate sulla struttura dati FSC e sulla struttura dati FDC. Le due segnalazioni consentono di identificare, indipendentemente, il dispositivo sorgente ed il dispositivo destinazione. Tuttavia, assumendo che per entrambe le strutture dati FSC e FDC sia stato impostato un medesimo tempo di persistenza Tp, che le soglie FSC e FDC siano uguali, come pure le soglie decisionali d-FSC e d-FDC, esaminando gli intervalli temporali di rilevamento delle due segnalazioni à ̈ possibile stabilire una correlazione tra le due anomalie, fornendo maggiori informazioni ad un ipotetico utente incaricato di monitorare la rete. It should also be noted that, considering reports of anomalies determined on the basis of the content of the FSC, FDC and FEC data structures, it is possible to identify relationships between different reports of anomalies, and to obtain further information about the presence and type of possible attacks. For example, a hypothetical situation in which a source device repeatedly tries to illicitly establish connections with a target device, on different ports of the target device, leads to two distinct anomaly reports, respectively based on the FSC data structure and the FDC data structure. . The two signals allow to identify, independently, the source device and the destination device. However, assuming that the same persistence time Tp has been set for both the FSC and FDC data structures, that the FSC and FDC thresholds are the same, as well as the decision thresholds d-FSC and d-FDC, by examining the detection time intervals of the two reports it is possible to establish a correlation between the two anomalies, providing more information to a hypothetical user in charge of monitoring the network.
In base a quanto descritto, consegue che il presente metodo consente di rilevare e, quindi, di segnalare anomalie, cioà ̈ violazioni di regole da considerarsi gravi ai fini della sicurezza. In particolare, il presente metodo consente di identificare dispositivi sorgente, dispositivi destinazione ed eventi che violano ripetutamente regole, in modo da consentire la predisposizione di interventi di correzione. Allo stesso tempo, il presente metodo fornisce l’intervallo temporale di rilevazione di ciascuna anomalia, cioà ̈ l’intervallo di tempo in cui le violazioni sono avvenute. On the basis of what has been described, it follows that this method makes it possible to detect and, therefore, to report anomalies, ie violations of rules to be considered serious for safety purposes. In particular, this method makes it possible to identify source devices, target devices and events that repeatedly violate rules, so as to allow the preparation of corrective actions. At the same time, this method provides the time interval for detecting each anomaly, that is, the time interval in which the violations occurred.
Si noti altresì che, mantenendo all’interno delle celle delle strutture dati FSC, FDC e FEC informazioni relative ad azioni lecite, rispettivamente svolte da dispositivi sorgente, dirette verso dispositivi destinazione, oppure relative ad eventi, consente di mettere in rapporto azioni lecite ed illecite. Più in particolare, mettendo in relazione il numero di azioni lecite con il numero di azioni illecite, si dispone di un criterio per segnalare anomalie più sofisticato rispetto al mero computo delle azioni illecite. It should also be noted that, by keeping inside the cells of the FSC, FDC and FEC data structures information relating to lawful actions, respectively carried out by source devices, directed towards target devices, or relating to events, it allows to link lawful actions and illegal. More specifically, by relating the number of lawful actions to the number of illegal actions, a more sophisticated criterion for reporting anomalies is available than the mere calculation of illegal actions.
Per quanto concerne il discernere tra metadati duplicati e non, esso consente di evitare che un semplice malfunzionamento, il quale dà tipicamente luogo ad una pluralità di azioni aventi una medesima terna formata dal primo e dal secondo indirizzo, e dall’ID evento, possa generare una segnalazione di anomalia. In ogni caso, il meccanismo a soglia implementato mediante l’uso del peso totale Pt2, e l’impiego della soglia PMKO, consente di segnalare comunque un’anomalia nel caso in cui le azioni generate da questo presunto malfunzionamento siano illecite, ripetute in un intervallo di tempo pari al tempo di persistenza Tp, e con pesi tali per cui il peso totale Pt2supera la soglia PMOK. In questo caso, l’anomalia riguarda dunque un singolo evento, fra un singolo dispositivo sorgente ed un singolo dispositivo di rete destinazione. As regards the discernment between duplicate and non-duplicated metadata, it allows to avoid that a simple malfunction, which typically gives rise to a plurality of actions having the same triad formed by the first and second address, and by the event ID, from generate an anomaly report. In any case, the threshold mechanism implemented through the use of the total weight Pt2, and the use of the PMKO threshold, makes it possible to report an anomaly in the event that the actions generated by this alleged malfunction are illegal, repeated in a time interval equal to the persistence time Tp, and with weights such that the total weight Pt2 exceeds the PMOK threshold. In this case, the anomaly therefore concerns a single event, between a single source device and a single destination network device.
Operativamente, il presente metodo può essere adattato alle esigenze della rete in cui si applica. Ad esempio, à ̈ possibile dimensionare, in modo statico o dinamico, le strutture dati ASM_OK, ASM_KO, FSC, FDC e FEC, ed in particolare il numero di tabelle D, il numero di colonne W ed il numero di righe H di ciascuna di tali strutture dati, in funzione del numero di voci, e quindi di metadati, per unità di tempo che si prevede di dover gestire. Operationally, this method can be adapted to the needs of the network in which it is applied. For example, it is possible to statically or dynamically dimension the data structures ASM_OK, ASM_KO, FSC, FDC and FEC, and in particular the number of tables D, the number of columns W and the number of rows H of each these data structures, as a function of the number of entries, and therefore of metadata, per unit of time that is expected to be managed.
Similmente, à ̈ possibile impostare le soglie FSC, FDC e FEC e le soglie decisionali d-FSC, d-FDC e d-FEC, come pure i criteri con cui assegnare i pesi degli eventi, in funzione della sensibilità che si vuole avere sugli eventi stessi. Analogamente, à ̈ possibile impostare (in modo statico o dinamico) le soglie PMOK e PMKO, come pure scegliere il tempo di persistenza Tp, in funzione della sensibilità desiderata nei confronti delle singole azioni, cioà ̈ dei singoli metadati. Inoltre, à ̈ possibile adottare tempi di persistenza Tpdifferenti per le differenti strutture dati (ASM_OK, ASM_KO, FSC,FDC e FEC). Similarly, it is possible to set the thresholds FSC, FDC and FEC and the decisional thresholds d-FSC, d-FDC and d-FEC, as well as the criteria with which to assign the weights of the events, according to the sensitivity that you want to have on the events themselves. Similarly, it is possible to set (statically or dynamically) the PMOK and PMKO thresholds, as well as to choose the persistence time Tp, according to the desired sensitivity towards the single actions, that is, of the single metadata. Furthermore, it is possible to adopt different persistence times Tp for the different data structures (ASM_OK, ASM_KO, FSC, FDC and FEC).
Il presente metodo può essere vantaggiosamente implementato in un dispositivo elettronico collegato con altri dispositivi di protezione, in modo tale da poter ricevere log dai dispositivi di protezione, le modalità e le tempistiche con cui il dispositivo elettronico acquisisce i log dai dispositivi di protezione essendo in prima approssimazione irrilevanti. Ad esempio, il dispositivo elettronico può instaurare periodicamente connessioni con i dispositivi di protezione, al fine di recuperare i log; alternativamente, e sempre a titolo esemplificativo, ciascun dispositivo di protezione può, non appena termina la scrittura di un proprio log, inviare il log stesso al dispositivo elettronico. Al fine di ottimizzare le prestazioni del metodo, à ̈ preferibile che i dispositivi di protezione abbiano basi tempi in prima approssimazione sincronizzate, in modo da evitare la generazione di eccezioni. This method can be advantageously implemented in an electronic device connected to other protection devices, in such a way as to be able to receive logs from the protection devices, the methods and times with which the electronic device acquires the logs from the protection devices being in first position. irrelevant approximation. For example, the electronic device can periodically establish connections with the protection devices, in order to retrieve the logs; alternatively, and again by way of example, each protection device can, as soon as the writing of its own log ends, send the log itself to the electronic device. In order to optimize the performance of the method, it is preferable that the protection devices have synchronized time bases in first approximation, in order to avoid the generation of exceptions.
Il presente metodo può essere altresì implementato all’interno di un dispositivo di protezione, elaborando direttamente sui log creati dal dispositivo di protezione stesso. In questo caso, la base tempi à ̈ una sola, per cui non à ̈ possibile che si generino eccezioni. This method can also be implemented inside a protection device, processing directly on the logs created by the protection device itself. In this case, the time base is only one, so it is not possible for exceptions to be generated.
Risulta infine evidente che a quanto qui descritto ed illustrato possono essere apportate modifiche e varianti, senza uscire dall’ambito della presente invenzione. Finally, it is evident that modifications and variations can be made to what is described and illustrated herein, without departing from the scope of the present invention.
A titolo esemplificativo, e relativamente alla generazione dei metadati 802, il contenuto dei campi di primo e di secondo indirizzo 902, 903 può essere differente da quanto descritto. Inoltre, nel caso in cui la voce non contenga di per sé alcun campo di indirizzo 102, come ad esempio nel caso di alcuni antivirus del tipo configurati per operare in un calcolatore non necessariamente connesso in rete, qualora sia comunque possibile determinare l’indirizzo di rete di tale calcolatore, à ̈ possibile inserire nel primo e/o nel secondo campo di indirizzo 902, 903 tale indirizzo di rete. Similmente, qualora la voce non contenga il campo di risultato 103, ad esempio perché il dispositivo di protezione che l’ha generata non classifica le azioni rilevate, il campo di liceità 904 può essere impostato in modo arbitrario, inserendo un’indicazione di liceità o illiceità . By way of example, and with regard to the generation of the metadata 802, the content of the first and second address fields 902, 903 may be different from what is described. Furthermore, in the event that the entry does not contain any address field 102 per se, as for example in the case of some antivirus of the type configured to operate on a computer not necessarily connected to the network, if it is still possible to determine the network address of this computer, it is possible to insert this network address in the first and / or second address field 902, 903. Similarly, if the item does not contain the result field 103, for example because the protection device that generated it does not classify the detected actions, the lawfulness field 904 can be set arbitrarily, by inserting an indication of lawfulness or illegality.
Per quanto concerne, invece, le tabelle delle strutture dati, fatto salvo che il numero ncdi bit degli indici di colonna Cideve essere sufficiente ad indicizzare tutte le colonne delle tabelle, il numero nkdi bit della chiave Xkeypuò essere scelto in modo da ottimizzare l’occupazione di memoria ed il numero di collisioni da gestire. As regards, instead, the tables of the data structures, except that the number of bits of the column indexes C must be sufficient to index all the columns of the tables, the number of bits of the Xkey key can be chosen in order to optimize the memory occupation and the number of collisions to manage.
Analogamente, invece di calcolare, per ciascun elemento, una funzione di hash e poi calcolare tante permutazioni quante sono le tabelle della struttura dati in cui si vuole, ad esempio, ricercare l’elemento, à ̈ possibile calcolare tante differenti funzioni di hash quante sono le tabelle. Ancora, in luogo delle funzioni di hash, à ̈ possibile impiegare altri tipi di funzioni, funzionalmente analoghe alle funzioni di hash. Similarly, instead of calculating, for each element, a hash function and then calculating as many permutations as there are tables of the data structure in which, for example, one wants to search for the element, it is possible to calculate as many different hash functions as are the tables. Again, in place of hash functions, it is possible to employ other types of functions, functionally analogous to hash functions.
Circa le strutture dati, in luogo delle strutture dati ASM_OK e ASM_KO, Ã ̈ possibile usare una sola struttura dati, le cui celle hanno un campo dati formato da un campo di peso lecito e da un campo di peso illecito, similmente a quanto succede nel caso delle strutture dati FSC, FDC e FEC. In tal caso, Ã ̈ comunque possibile implementare controlli analoghi a quelli ottenuti mediante le operazioni di cui ai blocchi 1002, 1010, 1011, 1012, 1013, 1014 e 1015. Regarding the data structures, instead of the ASM_OK and ASM_KO data structures, it is possible to use a single data structure, whose cells have a data field formed by a legal weight field and an illegal weight field, similar to what happens in case of the FSC, FDC and FEC data structures. In this case, it is however possible to implement controls similar to those obtained through the operations referred to in blocks 1002, 1010, 1011, 1012, 1013, 1014 and 1015.
Inoltre, sono possibili forme di realizzazione in cui la cancellazione di una cella comporta che, qualora siano presenti celle non vuote appartenenti alla medesima colonna 204 della cella cancellata, e con indice di riga h superiore all’indice di riga h della cella cancellata, il contenuto (impronta, marca temporale e dati) di ciascuna di tali celle non vuote venga copiato nella rispettiva cella sottostante, in modo che le colonne 204 delle tabelle 201 non presentino celle vuote sovrastate da celle occupate. Furthermore, embodiments are possible in which the deletion of a cell implies that, if there are non-empty cells belonging to the same column 204 of the deleted cell, and with row index h higher than the row index h of the deleted cell, the content (imprint, time stamp and data) of each of these non-empty cells is copied into the respective cell below, so that the columns 204 of the tables 201 do not have empty cells overlaid by occupied cells.
Ancora a proposito delle strutture dati, à ̈ possibile prevedere operazioni aggiuntive nel caso in cui si voglia inserire un elemento in presenza di una struttura dati piena. Ad esempio, à ̈ possibile prevedere la sovrascrittura della cella avente marca temporale Tclpiù vecchia. Inoltre, la gestione del campo di marca temporale delle celle può essere differente; ad esempio, ogni qual volta si aggiorna una cella, à ̈ possibile aggiornare la marca temporale. Still on the subject of data structures, it is possible to foresee additional operations in case you want to insert an element in the presence of a full data structure. For example, it is possible to foresee the overwriting of the cell with the oldest Tcl timestamp. Furthermore, the management of the time stamp field of the cells can be different; for example, whenever a cell is updated, the timestamp can be updated.
Ancora, nei blocchi 1307 e 1310 à ̈ possibile usare due soglie differenti, in luogo della soglia FSC. Analoghe considerazioni valgono nei casi dei blocchi 1407 e 1410, e 1507 e 1510. E’ inoltre possibile impiegare tempi di persistenza Tpdifferenti per le strutture FSC, FDC e FEC. Again, in blocks 1307 and 1310 it is possible to use two different thresholds, instead of the FSC threshold. Similar considerations are valid in the cases of blocks 1407 and 1410, and 1507 and 1510. It is also possible to use different persistence times Tp for the FSC, FDC and FEC structures.
Infine, à ̈ possibile non distinguere (blocco 803) tra metadati radice e duplicati, bensì aggiornare in ogni caso le strutture dati FSC, FDC e FEC. Così facendo, si genera una maggiore quantità di segnalazioni di anomalia, ma si ottiene una maggiore sensibilità rispetto alle singole azioni illecite. Finally, it is possible not to distinguish (block 803) between root and duplicate metadata, but to update the FSC, FDC and FEC data structures in any case. By doing so, a greater quantity of anomaly reports is generated, but a greater sensitivity is obtained with respect to individual illegal actions.
RIVENDICAZIONI
1. Metodo di rilevazione di anomalie in una rete di comunicazione comprendente almeno un dispositivo di protezione configurato per rilevare azioni svolte all’interno di detta rete e generare corrispondenti voci, detto metodo comprendendo le fasi di: 1. Method for detecting anomalies in a communication network comprising at least one protection device configured to detect actions carried out within said network and generate corresponding items, said method comprising the steps of:
- acquisire (801) dette voci ed implementare almeno una struttura dati (200), detta almeno una struttura dati comprendendo una pluralità di celle (202); - acquiring (801) said items and implementing at least one data structure (200), said at least one data structure comprising a plurality of cells (202);
- per ciascuna voce, generare (802) un corrispondente metadato, detto corrispondente metadato comprendendo una prima pluralità di campi (901-906); e - for each item, generating (802) a corresponding metadata, said corresponding metadata comprising a first plurality of fields (901-906); And
- aggiornare (804,805,806) detta almeno una struttura dati sulla base di metadati di aggiornamento tra i corrispondenti metadati generati, detta fase di aggiornare comprendendo la fase di selezionare (404,408) celle di detta almeno una struttura dati sulla base di almeno un campo di aggiornamento di detti metadati di aggiornamento, detto campo di aggiornamento appartenendo a detta prima pluralità di campi; - updating (804,805,806) said at least one data structure on the basis of update metadata among the corresponding generated metadata, said updating phase comprising the phase of selecting (404,408) cells of said at least one data structure on the basis of at least one update field of said update metadata, said update field belonging to said first plurality of fields;
ed in cui dette celle (202) di detta almeno una struttura dati (200) comprendono ciascuna una seconda pluralità di campi (301-307), detta seconda pluralità di campi comprendendo un campo di impronta (301) configurato per contenere un’impronta (Fcl), e formano un numero di tabelle (201), ciascuna tabella essendo formata da una pluralità di righe (203) ed una pluralità di colonne (204), ed in cui detta fase di selezionare (404,408) celle di detta almeno una struttura dati sulla base di almeno un campo di aggiornamento di detti metadati di aggiornamento comprende, per ciascuno di detti metadati di aggiornamento, le fasi di: and in which said cells (202) of said at least one data structure (200) each comprise a second plurality of fields (301-307), said second plurality of fields comprising a fingerprint field (301) configured to contain a fingerprint (Fcl), and form a number of tables (201), each table being formed by a plurality of rows (203) and a plurality of columns (204), and in which said step of selecting (404,408) cells of said at least one data structure on the basis of at least one update field of said update metadata includes, for each of said update metadata, the steps of:
- generare (401-403) in funzione di detto almeno un campo di aggiornamento un numero di indici (Ci) ed un numero di impronte (Fi) pari a detto numero di tabelle; - generating (401-403) as a function of said at least one update field a number of indices (Ci) and a number of footprints (Fi) equal to said number of tables;
- associare ciascun indice e ciascuna impronta ad una rispettiva tabella di detto numero di tabelle; - associating each index and each imprint to a respective table of said number of tables;
- ricercare (404, 408) una cella corrispondente, detta cella corrispondente appartenendo ad una specifica colonna di una specifica tabella di detto numero di tabelle, detta specifica colonna essendo indicata dall’indice associato a detta specifica tabella, il campo di impronta di detta cella corrispondente contenendo l’impronta associata a detta specifica tabella. - search (404, 408) for a corresponding cell, said corresponding cell belonging to a specific column of a specific table of said number of tables, said specific column being indicated by the index associated with said specific table, the imprint field of said corresponding cell containing the footprint associated with said specific table.
2. Metodo di rilevazione di anomalie secondo la rivendicazione 1, in cui detta fase di generare (401-403) in funzione di detto almeno un campo di aggiornamento (902,903,905) un numero di indici (Ci) ed un numero di impronte (Fi) comprende la fase di calcolare (401) una funzione di hash avente come argomento detto almeno un campo di aggiornamento, e fornente una chiave. 2. Anomaly detection method according to claim 1, wherein said step of generating (401-403) as a function of said at least one update field (902,903,905) a number of indices (Ci) and a number of impressions (Fi) comprises the step of calculating (401) a hash function having as argument called at least one update field, and providing a key.
3. Metodo di rilevazione di anomalie secondo la rivendicazione 2, comprendente inoltre la fase di calcolare (402) un numero di permutazioni di detta chiave pari a detto numero di tabelle (201), e la fase di determinare sulla base di ciascuna di dette permutazioni un rispettivo indice e una rispettiva impronta. 3. Anomaly detection method according to claim 2, further comprising the step of calculating (402) a number of permutations of said key equal to said number of tables (201), and the step of determining on the basis of each of said permutations a respective index and a respective footprint.
4. Metodo di rilevazione di anomalie secondo una rivendicazione qualsiasi da 1 a 3, in cui detta prima pluralità di campi (901-906) comprende un campo di istante temporale (901) configurato per contenere un istante temporale (Tm), ed in cui detta seconda pluralità di campi (301-307) comprende inoltre un campo di marca temporale (302) configurato per contenere una marca temporale (Tcl), detta fase di aggiornare detta almeno una struttura dati comprendendo inoltre la fase di cancellare celle obsolete tra dette celle di detta almeno una struttura dati, in funzione di marche temporali contenute in dette celle obsolete e di istanti temporali contenuti in detti metadati di aggiornamento. An anomaly detection method according to any claim from 1 to 3, wherein said first plurality of fields (901-906) comprises a time instant field (901) configured to contain a time instant (Tm), and in which said second plurality of fields (301-307) further comprises a time stamp field (302) configured to contain a time stamp (Tcl), said step of updating said at least one data structure further comprising the step of erasing obsolete cells between said cells of said at least one data structure, as a function of time stamps contained in said obsolete cells and of time instants contained in said update metadata.
5. Metodo di rilevazione di anomalie secondo la rivendicazione 4, in cui detta prima pluralità di campi (901-906) comprende inoltre un campo di primo indirizzo (902), un campo di secondo indirizzo (903) ed un campo di evento (905); ed in cui detta fase di generare (802) per ciascuna voce un corrispondente metadato comprende la fase di determinare in funzione di detta voce un primo indirizzo di rete, un secondo indirizzo di rete ed un identificativo di evento, e la fase di inserire detto primo indirizzo di rete, detto secondo indirizzo di rete e detto identificativo di evento rispettivamente in detto campo di primo indirizzo, in detto campo di secondo indirizzo e in detto campo di evento di detto corrispondente metadato. An anomaly detection method according to claim 4, wherein said first plurality of fields (901-906) further comprises a first address field (902), a second address field (903) and an event field (905 ); and in which said step of generating (802) for each item a corresponding metadata comprises the step of determining according to said item a first network address, a second network address and an event identifier, and the step of entering said first network address, said second network address and said event identifier respectively in said first address field, in said second address field and in said event field of said corresponding metadata.
6. Metodo di rilevazione di anomalie secondo la rivendicazione 5, in cui detto almeno un campo di aggiornamento comprende uno o più campi scelti tra: detto campo di primo indirizzo (902), detto campo di secondo indirizzo (903) e detto campo di evento (905). 6. An anomaly detection method according to claim 5, wherein said at least one update field comprises one or more fields selected from: said first address field (902), said second address field (903) and said event field (905).
7. Metodo di rilevazione di anomalie secondo la rivendicazione 6, in cui detta prima pluralità di campi comprende inoltre un campo di liceità (904) ed un campo di peso (906); e in cui detta fase di generare (802) per ciascuna voce un corrispondente metadato comprende inoltre la fase di determinare in funzione di detta voce un peso e, alternativamente, un’indicazione di liceità o un’indicazione di illiceità , e la fase di inserire detto peso in detto campo di peso di detto corrispondente metadato, e alternativamente l’indicazione di liceità o l’indicazione di illiceità in detto campo di liceità di detto corrispondente metadato. An anomaly detection method according to claim 6, wherein said first plurality of fields further comprises a lawfulness field (904) and a weight field (906); and in which said step of generating (802) for each item a corresponding metadata further comprises the step of determining, as a function of said item, a weight and, alternatively, an indication of lawfulness or an indication of illegality, and the step to insert said weight in said weight field of said corresponding metadata, and alternatively the indication of lawfulness or the indication of illegality in said field of lawfulness of said corresponding metadata.
8. Metodo di rilevazione di anomalie secondo la rivendicazione 7, comprendente inoltre la fase di determinare se ciascuno di detti corrispondenti metadati generati à ̈, alternativamente, di tipo duplicato o radice, un generico metadato di tipo duplicato avendo il campo di primo indirizzo (902), il campo di secondo indirizzo (903), il campo di evento (905) ed il campo di liceità (904) uguali, rispettivamente, al campo di primo indirizzo, al campo di secondo indirizzo, al campo di evento e al campo di liceità di un rispettivo metadato di tipo radice, detto rispettivo metadato di tipo radice essendo stato generato precedentemente al generico metadato di tipo duplicato, l’istante temporale (Tm) del generico metadato di tipo duplicato essendo compreso tra l’istante temporale del rispettivo metadato di tipo radice e un limite di persistenza pari alla somma di detto istante temporale di detto rispettivo metadato di tipo radice e un primo tempo di persistenza; e in cui detti metadati di aggiornamento sono costituiti da metadati di tipo radice. 8. Anomaly detection method according to claim 7, further comprising the step of determining whether each of said corresponding generated metadata is, alternatively, of the duplicate or root type, a generic duplicate type metadata having the first address field (902 ), the second address field (903), the event field (905) and the lawfulness field (904) equal, respectively, to the first address field, the second address field, the event field and the lawfulness of a respective root type metadata, said root type metadata having been generated previously to the generic duplicate type metadata, the time instant (Tm) of the generic duplicate type metadata being between the time instant of the respective root type metadata and a persistence limit equal to the sum of said time instant of said respective root type metadata and a first persistence time; and wherein said update metadata is made up of root type metadata.
9. Metodo di rilevazione di anomalie secondo la rivendicazione 7 o 8, in cui detta fase di implementare almeno una struttura dati (200) comprende implementare una prima (FSC), una seconda (FDC) ed una terza (FEC) struttura dati, dette prima, seconda e terza struttura dati essendo formate, rispettivamente, da un primo numero di tabelle di sorgente, da un secondo numero di tabelle di destinazione e da un terzo numero di tabelle di evento, ciascuna tabella di sorgente comprendendo una pluralità di celle di sorgente, ciascuna tabella di destinazione comprendendo una pluralità di celle di destinazione, e ciascuna tabella di evento comprendendo una pluralità di celle di evento, ciascuna cella di dette di celle di sorgente, di dette celle di destinazione e di dette celle di evento comprendendo un campo di peso lecito (306) ed un campo di peso illecito (307). An anomaly detection method according to claim 7 or 8, wherein said step of implementing at least one data structure (200) comprises implementing a first (FSC), a second (FDC) and a third (FEC) data structure, called first, second and third data structures being formed, respectively, by a first number of source tables, by a second number of destination tables and by a third number of event tables, each source table comprising a plurality of source cells , each destination table comprising a plurality of destination cells, and each event table comprising a plurality of event cells, each cell of said source cells, said destination cells and said event cells comprising a field of lawful weight (306) and an illegal weight field (307).
10. Metodo di rilevazione di anomalie secondo la rivendicazione 9, in cui detta fase di selezionare celle di detta almeno una struttura dati sulla base di almeno un campo di aggiornamento di detti metadati di aggiornamento comprende le fasi di selezionare prime celle di sorgente di detta prima struttura dati sulla base del campo di primo indirizzo (902) di detti metadati di aggiornamento, selezionare prime celle di destinazione di detta seconda struttura dati sulla base del campo di secondo indirizzo (903) di detti metadati di aggiornamento, e selezionare prime celle di evento di detta terza struttura dati sulla base di detto campo di evento (905) di detti metadati di aggiornamento. An anomaly detection method according to claim 9, wherein said step of selecting cells of said at least one data structure on the basis of at least one update field of said update metadata comprises the steps of selecting first source cells of said first data structure on the basis of the first address field (902) of said update metadata, select first destination cells of said second data structure on the basis of the second address field (903) of said update metadata, and select first event cells of said third data structure on the basis of said event field (905) of said update metadata.
11. Metodo di rilevazione di anomalie secondo la rivendicazione 10, in cui detta fase di selezionare prime celle di sorgente sulla base del campo di primo indirizzo di detti metadati di aggiornamento comprende, per ciascuno di detti metadati di aggiornamento: An anomaly detection method according to claim 10, wherein said step of selecting first source cells on the basis of the first address field of said update metadata comprises, for each of said update metadata:
- generare in funzione di detto campo di primo indirizzo (902) un numero di indici di sorgente (Ci) ed un numero di impronte di sorgente (Fi) pari a detto primo numero di tabelle di sorgente; - generating in function of said first address field (902) a number of source indices (Ci) and a number of source fingerprints (Fi) equal to said first number of source tables;
- associare ciascun indice di sorgente e ciascuna impronta di sorgente a una rispettiva tabella di sorgente; - associating each source index and each source fingerprint to a respective source table;
- ricercare (1303) una corrispondente cella di sorgente (“corresponding source cell†), detta corrispondente cella di sorgente appartenendo a una colonna di una specifica tabella di sorgente, detta colonna essendo indicata dall’indice di sorgente associato a detta specifica tabella di sorgente, il campo di impronta (301) di detta corrispondente cella di sorgente contenendo l’impronta di sorgente associata a detta specifica tabella di sorgente. - search (1303) a corresponding source cell (â € œcorresponding source cellâ €), said corresponding source cell belonging to a column of a specific source table, said column being indicated by the source index associated with said specific table source, the fingerprint field (301) of said corresponding source cell containing the source fingerprint associated with said specific source table.
12. Metodo di rilevazione di anomalie secondo la rivendicazione 11, in cui detta fase di aggiornare detta almeno una struttura dati comprende, per ciascun metadato di aggiornamento: An anomaly detection method according to claim 11, wherein said step of updating said at least one data structure comprises, for each update metadata:
- nel caso in cui detta fase di ricercare (1303) una corrispondente cella di sorgente non produca risultati: individuare una prima cella di inserimento (“first insertion cell†) appartenente a una colonna di sorgente (“source column†) di una certa tabella di sorgente (“specific source table†) di detta prima struttura dati, detta colonna di sorgente essendo indicata dall’indice di sorgente associato a detta certa tabella di sorgente; inserire l’istante temporale (Tm) del metadato di aggiornamento in detto campo di marca temporale (302) di detta prima cella di inserimento; inserire l’impronta di sorgente associata a detta certa tabella di sorgente nel campo di impronta di detta prima cella di inserimento; ed inoltre, in caso di metadato di aggiornamento con campo di liceità (904) contenente l’indicazione di liceità , inserire (1304) nel campo di peso lecito di detta prima cella di inserimento il peso di detto metadato di aggiornamento, viceversa inserire il peso di detto metadato di aggiornamento nel campo di peso illecito di detta prima cella di inserimento; - in the event that said step of searching (1303) a corresponding source cell does not produce results: identify a first insertion cell (â € œfirst insertion cellâ €) belonging to a source column (â € œsource columnâ €) of a certain source table (â € œspecific source tableâ €) of said first data structure, said source column being indicated by the source index associated with said certain source table; inserting the time instant (Tm) of the update metadata in said timestamp field (302) of said first insertion cell; inserting the source footprint associated with said certain source table in the footprint field of said first input cell; and furthermore, in the case of an update metadata with a lawfulness field (904) containing the indication of lawfulness, enter (1304) in the lawful weight field of said first entry cell the weight of said update metadata, vice versa enter the weight of said update metadata in the illegal weight field of said first input cell;
- nel caso in cui detta fase di ricercare una corrispondente cella di sorgente individui detta corrispondente cella di sorgente, calcolare (1305) un primo peso totale positivo (Ptp_FSC) ed un primo peso totale negativo (Ptn_FSC), detto primo peso totale positivo essendo funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di liceità , della somma del peso del metadato di aggiornamento con il peso contenuto nel campo di peso lecito di detta corrispondente cella di sorgente, e funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di illiceità , del peso contenuto nel campo di peso lecito di detta corrispondente cella di sorgente; detto primo peso totale negativo essendo funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di illiceità , della somma del peso del metadato di aggiornamento con il peso contenuto nel campo di peso illecito di detta corrispondente cella di sorgente, e funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di liceità , del peso contenuto nel campo di peso illecito di detta corrispondente cella di sorgente. - if said step of searching for a corresponding source cell identifies said corresponding source cell, calculate (1305) a first positive total weight (Ptp_FSC) and a first negative total weight (Ptn_FSC), said first positive total weight being a function , in the case of an update metadata with a field of lawfulness containing the indication of lawfulness, of the sum of the weight of the update metadata with the weight contained in the lawful weight field of said corresponding source cell, and function, in the case of metadata update with lawfulness field containing the indication of illegality, of the weight contained in the lawful weight field of said corresponding source cell; said first negative total weight being a function, in the case of an update metadata with a field of lawfulness containing the indication of illegality, of the sum of the weight of the update metadata with the weight contained in the field of illegal weight of said corresponding source cell, and function, in the case of an update metadata with a field of lawfulness containing the indication of lawfulness, of the weight contained in the field of illegal weight of said corresponding source cell.
13. Metodo di rilevazione di anomalie secondo la rivendicazione 12, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato di aggiornamento: An anomaly detection method according to claim 12, wherein said step of updating (804,805,806) said at least one data structure (200) comprises, for each updating metadata:
- nel caso in cui detta fase di ricercare (1303) una corrispondente cella di sorgente individui detta corrispondente cella di sorgente, verificare (1306) se una prima somma di detto primo peso totale positivo (Ptp_FSC) e detto primo peso totale negativo (Ptn_FSC) supera una prima soglia (SOGLIA d-FSC); - if said step of searching (1303) for a corresponding source cell identifies said corresponding source cell, check (1306) whether a first sum of said first positive total weight (Ptp_FSC) and said first negative total weight (Ptn_FSC) exceeds a first threshold (d-FSC THRESHOLD);
- nel caso in cui detta prima somma sia inferiore a detta prima soglia, aggiornare (1311) detta corrispondente cella di sorgente, inserendo detto primo peso totale positivo e detto primo peso totale negativo rispettivamente nel campo di peso lecito (306) e nel campo di peso illecito (307) di detta corrispondente cella di sorgente. - in the event that said first sum is lower than said first threshold, update (1311) said corresponding source cell, by inserting said first positive total weight and said first negative total weight respectively in the lawful weight field (306) and in the field of illegal weight (307) of said corresponding source cell.
14. Metodo di rilevazione di anomalie secondo la rivendicazione 13, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato di aggiornamento: Anomaly detection method according to claim 13, wherein said step of updating (804,805,806) said at least one data structure (200) comprises, for each updating metadata:
- nel caso in cui detta prima somma sia superiore a detta prima soglia (SOGLIA d-FSC), verificare (1307) se un primo rapporto tra detto primo peso totale negativo (Ptn_FSC) e detta prima somma supera una seconda soglia (SOGLIA FSC); - if said first sum is higher than said first threshold (d-FSC THRESHOLD), check (1307) if a first ratio between said first negative total weight (Ptn_FSC) and said first sum exceeds a second threshold (FSC THRESHOLD) ;
- nel caso in cui detto primo rapporto superi detta seconda soglia, generare (1308) una segnalazione di anomalia. - in the event that said first ratio exceeds said second threshold, generate (1308) an anomaly signal.
15. Metodo di rilevazione di anomalie secondo la rivendicazione 14, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato di aggiornamento: Anomaly detection method according to claim 14, wherein said step of updating (804,805,806) said at least one data structure (200) comprises, for each updating metadata:
- nel caso in cui detto primo rapporto non superi detta seconda soglia (SOGLIA FSC), verificare (1310, 1410) se un secondo rapporto tra detto primo peso totale positivo (Ptp_FSC) e detta prima somma supera una terza soglia; - if said first ratio does not exceed said second threshold (FSC THRESHOLD), checking (1310, 1410) if a second ratio between said first positive total weight (Ptp_FSC) and said first sum exceeds a third threshold;
- nel caso in cui detto secondo rapporto superi detta terza soglia, cancellare (1311) detta corrispondente cella di sorgente. - in the event that said second ratio exceeds said third threshold, cancel (1311) said corresponding source cell.
16. Metodo di rilevazione di anomalie secondo la rivendicazione 15, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato di aggiornamento: Anomaly detection method according to claim 15, wherein said update step (804,805,806) said at least one data structure (200) comprises, for each update metadata:
- nel caso in cui detto primo rapporto sia inferiore a detta seconda soglia, e detto secondo rapporto sia inferiore a detta terza soglia, aggiornare (1311) detta corrispondente cella di sorgente, inserendo detto primo peso totale positivo (Ptp_FSC) e detto primo peso totale negativo (Ptn_FSC) rispettivamente in detto campo di peso lecito (306) e in detto campo di peso illecito (307) di detta corrispondente cella di sorgente. - in the event that said first ratio is lower than said second threshold, and said second ratio is lower than said third threshold, update (1311) said corresponding source cell, inserting said first positive total weight (Ptp_FSC) and said first total weight negative (Ptn_FSC) respectively in said lawful weight range (306) and in said illegal weight range (307) of said corresponding source cell.
17. Metodo di rilevazione di anomalie secondo una rivendicazione qualsiasi da 10 a 16, in cui detta fase di selezionare prime celle di destinazione sulla base del campo di secondo indirizzo comprende, per ciascuno di detti metadati di aggiornamento: An anomaly detection method according to any claim from 10 to 16, wherein said step of selecting first destination cells on the basis of the second address field comprises, for each of said update metadata:
- generare un funzione di detto campo di secondo indirizzo (903) un numero di indici di destinazione ed un numero di impronte di destinazione pari a detto secondo numero di tabelle di destinazione; - generating a function of said second address field (903) a number of destination indexes and a number of destination fingerprints equal to said second number of destination tables;
- associare ciascun indice di destinazione e ciascuna impronta di destinazione a una rispettiva tabella di destinazione; - associate each target index and each target footprint to a respective target table;
- ricercare (1403) una corrispondente cella di destinazione, detta corrispondente cella di destinazione appartenendo a una colonna di una specifica tabella di destinazione, detta colonna essendo indicata dall’indice di destinazione associato a detta specifica tabella di destinazione, il campo di impronta di detta corrispondente cella di destinazione contenendo l’impronta di destinazione associata a detta specifica tabella di destinazione. - search (1403) for a corresponding destination cell, said corresponding destination cell belonging to a column of a specific destination table, said column being indicated by the destination index associated with said specific destination table, the imprint field of said corresponding destination cell containing the destination footprint associated with said specific destination table.
18. Metodo di rilevazione di anomalie secondo la rivendicazione 17, in cui detta fase di aggiornare detta almeno una struttura dati comprende, per ciascun metadato di aggiornamento: 18. An anomaly detection method according to claim 17, wherein said step of updating said at least one data structure comprises, for each update metadata:
- nel caso in cui detta fase di ricercare (1403) una corrispondente cella di destinazione non produca risultati: individuare una seconda cella di inserimento appartenente a una colonna di destinazione di una certa tabella di destinazione di detta seconda struttura dati, detta colonna di destinazione essendo indicata dall’indice di destinazione associato a detta certa tabella di destinazione; inserire l’istante temporale di detto metadato di aggiornamento in detto campo di marca temporale (302) di detta seconda cella di inserimento; inserire l’impronta di destinazione associata a detta certa tabella di destinazione nel campo di impronta di detta seconda cella di inserimento; ed inoltre, in caso di metadato di aggiornamento con campo di liceità (904) contenente l’indicazione di liceità , inserire (1404) nel campo di peso lecito di detta seconda cella di inserimento il peso di detto metadato di aggiornamento, viceversa inserire il peso di detto metadato di aggiornamento nel campo di peso illecito di detta seconda cella di inserimento; - in the event that said step of searching (1403) a corresponding destination cell does not produce results: identifying a second insertion cell belonging to a destination column of a certain destination table of said second data structure, said destination column being indicated by the destination index associated with said certain destination table; inserting the time instant of said update metadata in said time stamp field (302) of said second insertion cell; inserting the target footprint associated with said certain target table in the footprint field of said second entry cell; and furthermore, in the case of an update metadata with a lawfulness field (904) containing the indication of lawfulness, enter (1404) in the lawful weight field of said second entry cell the weight of said update metadata, vice versa enter the weight of said update metadata in the illegal weight field of said second input cell;
- nel caso in cui detta fase di ricercare una corrispondente cella di destinazione individui detta corrispondente cella di destinazione, calcolare (1405) un secondo peso totale positivo (Ptp_FDC) ed un secondo peso totale negativo (Ptn_FDC), detto secondo peso totale positivo essendo funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di liceità , della somma del peso del metadato di aggiornamento con il peso contenuto nel campo di peso lecito di detta corrispondente cella di destinazione, e funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di illiceità , del peso contenuto nel campo di peso lecito di detta corrispondente cella di destinazione; detto secondo peso totale negativo essendo funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di illiceità , della somma del peso del metadato di aggiornamento con il peso contenuto nel campo di peso illecito di detta corrispondente cella di destinazione, e funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di liceità , del peso contenuto nel campo di peso illecito di detta corrispondente cella di destinazione. - if said step of searching for a corresponding destination cell identifies said corresponding destination cell, calculate (1405) a second positive total weight (Ptp_FDC) and a second negative total weight (Ptn_FDC), said second positive total weight being a function , in the case of an update metadata with a field of lawfulness containing the indication of lawfulness, the sum of the weight of the update metadata with the weight contained in the lawful weight field of said corresponding destination cell, and function, in the case of metadata update with lawfulness field containing the indication of illegality, of the weight contained in the lawful weight field of said corresponding destination cell; said second negative total weight being a function, in the case of an update metadata with a field of lawfulness containing the indication of illegality, of the sum of the weight of the update metadata with the weight contained in the illegal weight field of said corresponding destination cell, and function, in the case of an update metadata with a field of lawfulness containing the indication of lawfulness, of the weight contained in the field of illegal weight of said corresponding destination cell.
19. Metodo di rilevazione di anomalie secondo la rivendicazione 18, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato di aggiornamento: An anomaly detection method according to claim 18, wherein said step of updating (804,805,806) said at least one data structure (200) comprises, for each updating metadata:
- nel caso in cui detta fase di ricercare (1403) una corrispondente cella di destinazione individui detta corrispondente cella di destinazione, verificare (1406) se una seconda somma di detto secondo peso totale positivo (Ptp_FDC) e detto secondo peso totale negativo (Ptn_FDC) supera una quarta soglia (SOGLIA d-FDC); - if said step of searching (1403) for a corresponding destination cell identifies said corresponding destination cell, check (1406) whether a second sum of said second positive total weight (Ptp_FDC) and said second negative total weight (Ptn_FDC) exceeds a fourth threshold (THRESHOLD d-FDC);
- nel caso in cui detta seconda somma sia inferiore a detta quarta soglia, aggiornare (1411) detta corrispondente cella di destinazione, inserendo detto secondo peso totale positivo e detto secondo peso totale negativo rispettivamente nel campo di peso lecito (306) e nel campo di peso illecito (307) di detta corrispondente cella di destinazione. - in the event that said second sum is lower than said fourth threshold, update (1411) said corresponding destination cell, by inserting said second positive total weight and said second negative total weight respectively in the lawful weight field (306) and in the field of illicit weight (307) of said corresponding destination cell.
20. Metodo di rilevazione di anomalie secondo la rivendicazione 19, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato di aggiornamento: An anomaly detection method according to claim 19, wherein said step of updating (804,805,806) said at least one data structure (200) comprises, for each updating metadata:
- nel caso in cui detta seconda somma sia superiore a detta quarta soglia (SOGLIA d-FDC), verificare (1407) se un terzo rapporto tra detto secondo peso totale negativo (Ptn_FDC) e detta seconda somma supera una quinta soglia (SOGLIA FDC); - in the event that said second sum is higher than said fourth threshold (THRESHOLD d-FDC), check (1407) if a third ratio between said second negative total weight (Ptn_FDC) and said second sum exceeds a fifth threshold (THRESHOLD FDC) ;
- nel caso in cui detto terzo rapporto superi detta quinta soglia, generare (1408) una segnalazione di anomalia. - in the event that said third ratio exceeds said fifth threshold, generate (1408) an anomaly signal.
21. Metodo di rilevazione di anomalie secondo la rivendicazione 20, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato di aggiornamento: An anomaly detection method according to claim 20, wherein said step of updating (804,805,806) said at least one data structure (200) comprises, for each updating metadata:
- nel caso in cui detto terzo rapporto non superi detta quinta soglia (SOGLIA FDC), verificare (1410) se un quarto rapporto tra detto secondo peso totale positivo (Ptp_FDC) e detta seconda somma supera una sesta soglia; - if said third ratio does not exceed said fifth threshold (THRESHOLD FDC), check (1410) whether a fourth ratio between said second positive total weight (Ptp_FDC) and said second sum exceeds a sixth threshold;
- nel caso in cui detto quarto rapporto superi detta sesta soglia, cancellare (1411) detta corrispondente cella di destinazione. - if said fourth ratio exceeds said sixth threshold, cancel (1411) said corresponding destination cell.
22. Metodo di rilevazione di anomalie secondo la rivendicazione 21, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato di aggiornamento: An anomaly detection method according to claim 21, wherein said step of updating (804,805,806) said at least one data structure (200) comprises, for each updating metadata:
- nel caso in cui detto terzo rapporto sia inferiore a detta quinta soglia, e detto quarto rapporto sia inferiore a detta sesta soglia, aggiornare (1411) detta corrispondente cella di destinazione, inserendo detto secondo peso totale positivo (Ptp_FDC) e detto secondo peso totale negativo (Ptn_FDC) rispettivamente in detto campo di peso lecito (306) e in detto campo di peso illecito (307) di detta corrispondente cella di destinazione. - in the event that said third ratio is lower than said fifth threshold, and said fourth ratio is lower than said sixth threshold, update (1411) said corresponding destination cell, inserting said second positive total weight (Ptp_FDC) and said second total weight negative (Ptn_FDC) respectively in said lawful weight range (306) and in said illegal weight range (307) of said corresponding destination cell.
23. Metodo di rilevazione di anomalie secondo una rivendicazione qualsiasi da 10 a 22, in cui detta fase di selezionare prime celle di evento sulla base del campo di evento (905) comprende, per ciascuno di detti metadati di aggiornamento: An anomaly detection method according to any claim from 10 to 22, wherein said step of selecting first event cells on the basis of the event field (905) comprises, for each of said update metadata:
- generare un funzione di detto campo di evento un numero di indici di evento ed un numero di impronte di evento pari a detto terzo numero di tabelle di evento; generating a function of said event field, a number of event indices and a number of event marks equal to said third number of event tables;
- associare ciascun indice di evento e ciascuna impronta di evento a una rispettiva tabella di evento; - associate each event index and each event footprint to a respective event table;
- ricercare (1503) una corrispondente cella di evento, detta corrispondente cella di evento appartenendo a una colonna di una specifica tabella di evento, detta colonna essendo indicata dall’indice di evento associato a detta specifica tabella di evento, il campo di impronta di detta corrispondente cella di evento contenendo l’impronta di evento associata a detta specifica tabella di evento. - search (1503) for a corresponding event cell, said corresponding event cell belonging to a column of a specific event table, said column being indicated by the event index associated with said specific event table, the imprint field of said corresponding event cell containing the event imprint associated with said specific event table.
24. Metodo di rilevazione di anomalie secondo la rivendicazione 23, in cui detta fase di aggiornare detta almeno una struttura dati comprende, per ciascun metadato di aggiornamento: 24. Anomaly detection method according to claim 23, wherein said step of updating said at least one data structure comprises, for each update metadata:
- nel caso in cui detta fase di ricercare (1503) una corrispondente cella di evento non produca risultati: individuare una terza cella di inserimento appartenente a una colonna di evento di una certa tabella di evento di detta terza struttura dati, detta colonna di evento essendo indicata dall’indice di evento associato a detta certa tabella di evento; inserire l’istante temporale di detto metadato di aggiornamento in detto campo di marca temporale (302) di detta terza cella di inserimento; inserire l’impronta di evento associata a detta certa tabella di evento nel campo di impronta di detta terza cella di inserimento; ed inoltre, in caso di metadato di aggiornamento con campo di liceità (904) contenente l’indicazione di liceità , inserire (1504) nel campo di peso lecito di detta terza cella di inserimento il peso di detto metadato di aggiornamento, viceversa inserire il peso di detto metadato di aggiornamento nel campo di peso illecito di detta terza cella di inserimento; - in the event that said step of searching (1503) for a corresponding event cell does not produce results: identifying a third input cell belonging to an event column of a certain event table of said third data structure, said event column being indicated by the event index associated with said certain event table; inserting the time instant of said update metadata in said timestamp field (302) of said third insertion cell; inserting the event footprint associated with said certain event table in the footprint field of said third entry cell; and furthermore, in the case of an update metadata with a lawfulness field (904) containing the indication of lawfulness, enter (1504) in the lawful weight field of said third entry cell the weight of said update metadata, vice versa enter the weight of said update metadata in the illegal weight field of said third input cell;
- nel caso in cui detta fase di ricercare una corrispondente cella di evento individui detta corrispondente cella di evento, calcolare (1505) un terzo peso totale positivo (Ptp_FEC) ed un terzo peso totale negativo (Ptn_FEC), detto terzo peso totale positivo essendo funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di liceità , della somma del peso del metadato di aggiornamento con il peso contenuto nel campo di peso lecito di detta corrispondente cella di evento, e funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di illiceità , del peso contenuto nel campo di peso lecito di detta corrispondente cella di evento; detto terzo peso totale negativo essendo funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di illiceità , della somma del peso del metadato di aggiornamento con il peso contenuto nel campo di peso illecito di detta corrispondente cella di evento, e funzione, in caso di metadato di aggiornamento con campo di liceità contenente l’indicazione di liceità , del peso contenuto nel campo di peso illecito di detta corrispondente cella di evento. - if said step of searching for a corresponding event cell identifies said corresponding event cell, calculate (1505) a third positive total weight (Ptp_FEC) and a third negative total weight (Ptn_FEC), said third positive total weight being a function , in the case of update metadata with lawfulness field containing the indication of lawfulness, of the sum of the weight of the update metadata with the weight contained in the lawful weight field of said corresponding event cell, and function, in case of metadata update with lawfulness field containing the indication of illegality, of the weight contained in the lawful weight field of said corresponding event cell; said third negative total weight being a function, in the case of an update metadata with a field of lawfulness containing the indication of illegality, of the sum of the weight of the update metadata with the weight contained in the illegal weight field of said corresponding event cell, and function, in case of update metadata with lawfulness field containing the indication of lawfulness, of the weight contained in the illegal weight field of said corresponding event cell.
25. Metodo di rilevazione di anomalie secondo la rivendicazione 24, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato di aggiornamento: An anomaly detection method according to claim 24, wherein said step of updating (804,805,806) said at least one data structure (200) comprises, for each updating metadata:
- nel caso in cui detta fase di ricercare (1503) una corrispondente cella di evento individui detta corrispondente cella di evento, verificare (1506) se una terza somma di detto terzo peso totale positivo (Ptp_FEC) e detto terzo peso totale negativo (Ptn_FEC) supera una settima soglia (SOGLIA d-FEC); - if said step of searching (1503) for a corresponding event cell identifies said corresponding event cell, check (1506) whether a third sum of said third positive total weight (Ptp_FEC) and said third negative total weight (Ptn_FEC) exceeds a seventh threshold (d-FEC THRESHOLD);
- nel caso in cui detta terza somma sia inferiore a detta settima soglia, aggiornare (1511) detta corrispondente cella di evento, inserendo detto terzo peso totale positivo e detto terzo peso totale negativo rispettivamente nel campo di peso lecito (306) e nel campo di peso illecito (307) di detta corrispondente cella di evento. - in the event that said third sum is lower than said seventh threshold, update (1511) said corresponding event cell, by inserting said third positive total weight and said third negative total weight respectively in the lawful weight field (306) and in the field of illicit weight (307) of said corresponding event cell.
26. Metodo di rilevazione di anomalie secondo la rivendicazione 25, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato non duplicato: An anomaly detection method according to claim 25, wherein said step of updating (804,805,806) said at least one data structure (200) comprises, for each non-duplicated metadata:
- nel caso in cui detta terza somma sia superiore a detta settima soglia (SOGLIA d-FEC), verificare (1507) se un quinto rapporto tra detto terzo peso totale negativo (Ptn_FEC) e detta terza somma supera una ottava soglia (SOGLIA FEC); - in the event that said third sum is higher than said seventh threshold (THRESHOLD d-FEC), check (1507) if a fifth ratio between said third negative total weight (Ptn_FEC) and said third sum exceeds an eighth threshold (FEC THRESHOLD) ;
- nel caso in cui detto quinto rapporto superi detta ottava soglia, generare (1508) una segnalazione di anomalia. - in the event that said fifth ratio exceeds said eighth threshold, generate (1508) an anomaly signal.
27. Metodo di rilevazione di anomalie secondo la rivendicazione 26, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato di aggiornamento: Anomaly detection method according to claim 26, wherein said step of updating (804,805,806) said at least one data structure (200) comprises, for each updating metadata:
- nel caso in cui detto quinto rapporto non superi detta ottava soglia (SOGLIA FEC), verificare (1510) se un sesto rapporto tra detto terzo peso totale positivo (Ptp_FEC) e detta terza somma supera una nona soglia; - if said fifth ratio does not exceed said eighth threshold (FEC THRESHOLD), check (1510) whether a sixth ratio between said third positive total weight (Ptp_FEC) and said third sum exceeds a ninth threshold;
- nel caso in cui detto sesto rapporto superi detta nona soglia, cancellare (1511) detta corrispondente cella di evento. - in the event that said sixth ratio exceeds said ninth threshold, cancel (1511) said corresponding event cell.
28. Metodo di rilevazione di anomalie secondo la rivendicazione 27, in cui detta fase di aggiornare (804,805,806) detta almeno una struttura dati (200) comprende, per ciascun metadato non duplicato: An anomaly detection method according to claim 27, wherein said step of updating (804,805,806) said at least one data structure (200) comprises, for each non-duplicated metadata:
- nel caso in cui detto quinto rapporto sia inferiore a detta ottava soglia, e detto sesto rapporto sia inferiore a detta nona soglia, aggiornare (1511) detta corrispondente cella di evento, inserendo detto terzo peso totale positivo (Ptp_FEC) e detto terzo peso totale negativo (Ptn_FEC) rispettivamente in detto campo di peso lecito (306) e in detto campo di peso illecito (307) di detta corrispondente cella di evento. - in the event that said fifth ratio is lower than said eighth threshold, and said sixth ratio is lower than said ninth threshold, update (1511) said corresponding event cell, inserting said third positive total weight (Ptp_FEC) and said third total weight negative (Ptn_FEC) respectively in said lawful weight range (306) and in said illegal weight range (307) of said corresponding event cell.
29. Metodo di rilevazione di anomalie secondo una rivendicazione qualsiasi da 9 a 28, in cui detta fase di cancellare celle obsolete di detta almeno una struttura dati comprende la fase di cancellare celle obsolete tra dette celle di sorgente, celle di destinazione e celle di evento, dette celle obsolete avendo marca temporale (Tcl) più vecchia, rispetto all’istante temporale di un metadato di aggiornamento considerato, di un tempo almeno pari ad un secondo tempo di persistenza (Tp). 29. Anomaly detection method according to any claim from 9 to 28, wherein said step of erasing obsolete cells of said at least one data structure comprises the step of erasing obsolete cells between said source cells, destination cells and event cells , said obsolete cells having a time stamp (Tcl) older than the time instant of a considered update metadata, by a time at least equal to a second persistence time (Tp).
30. Metodo di rilevazione di anomalie secondo una rivendicazione qualsiasi da 8 a 29, comprendente inoltre la fase di generare (1015) una segnalazione di anomalia preliminare nel caso in cui si acquisiscano, in un predeterminato intervallo di tempo, voci tali per cui i corrispondenti metadati sono di tipo duplicato rispetto a un medesimo rispettivo metadato di tipo radice, hanno campi di liceità (904) contenenti l’indicazione di illiceità , e hanno pesi la cui somma supera una soglia preliminare. 30. Anomaly detection method according to any claim from 8 to 29, further comprising the step of generating (1015) a preliminary anomaly signal in the event that entries are acquired in a predetermined time interval such that the corresponding metadata are of the duplicate type with respect to the same respective root type metadata, have lawfulness fields (904) containing the indication of illegality, and have weights whose sum exceeds a preliminary threshold.
31. Dispositivo di protezione configurato per collegarsi ad un rete di comunicazione ed implementare il metodo di rilevazione di anomalie secondo una qualsiasi delle rivendicazioni da 1 a 30. 31. Protection device configured to connect to a communication network and implement the anomaly detection method according to any one of claims 1 to 30.
32. Prodotto software caricabile in una memoria di un dispositivo di rete e configurato per implementare, quando eseguito, il metodo di rilevazione di anomalie secondo una qualsiasi delle rivendicazioni da 1 a 30. 32. Software product loadable into a memory of a network device and configured to implement, when executed, the anomaly detection method according to any one of claims 1 to 30.
TITOLO: METODO DI RILEVAZIONE DI ANOMALIE IN UNA RETE DI COMUNICAZIONE E DISPOSITIVO DI RETE CHE IMPLEMENTA TALE METODO TITLE: METHOD FOR DETECTION OF ANOMALIES IN A COMMUNICATION NETWORK AND NETWORK DEVICE IMPLEMENTING THIS METHOD
RIASSUNTO SUMMARY
Viene descritto un metodo di rilevazione di anomalie in una rete di comunicazione al cui interno à ̈ presente almeno un dispositivo di protezione, il quale rileva azioni svolte all’interno della rete e genera corrispondenti voci. Il metodo prevede le fasi di acquisire (801) le voci ed implementare almeno una struttura dati (200) formata da una pluralità di celle (202). Inoltre, il metodo prevede le fasi di generare, per ciascuna voce, un corrispondente metadato, formato da una prima pluralità di campi (901-906); e aggiornare (804,805,806) la almeno una struttura dati sulla base di metadati di aggiornamento tra i corrispondenti metadati generati. La fase di aggiornare include selezionare (404,408) celle della almeno una struttura dati sulla base di almeno un campo di aggiornamento dei metadati di aggiornamento. A method for detecting anomalies in a communication network is described, inside which there is at least one protection device, which detects actions carried out within the network and generates corresponding entries. The method provides for the steps of acquiring (801) the items and implementing at least one data structure (200) formed by a plurality of cells (202). Furthermore, the method provides for the steps of generating, for each item, a corresponding metadata, formed by a first plurality of fields (901-906); and updating (804,805,806) the at least one data structure on the basis of update metadata among the corresponding generated metadata. The update step includes selecting (404,408) cells of the at least one data structure based on at least one update metadata update field.
Claims (33)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ITTO2009A000365A IT1396756B1 (en) | 2009-05-06 | 2009-05-06 | METHOD OF DETECTION OF ANOMALIES IN A COMMUNICATION NETWORK AND NETWORK DEVICE THAT IMPLEMENTS THIS METHOD |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| ITTO2009A000365A IT1396756B1 (en) | 2009-05-06 | 2009-05-06 | METHOD OF DETECTION OF ANOMALIES IN A COMMUNICATION NETWORK AND NETWORK DEVICE THAT IMPLEMENTS THIS METHOD |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| ITTO20090365A1 true ITTO20090365A1 (en) | 2010-11-07 |
| IT1396756B1 IT1396756B1 (en) | 2012-12-14 |
Family
ID=42077355
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| ITTO2009A000365A IT1396756B1 (en) | 2009-05-06 | 2009-05-06 | METHOD OF DETECTION OF ANOMALIES IN A COMMUNICATION NETWORK AND NETWORK DEVICE THAT IMPLEMENTS THIS METHOD |
Country Status (1)
| Country | Link |
|---|---|
| IT (1) | IT1396756B1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002027443A2 (en) * | 2000-09-25 | 2002-04-04 | Itt Manufacturing Enterprises, Inc. | Global computer network intrusion detection system |
| US20060173992A1 (en) * | 2002-11-04 | 2006-08-03 | Daniel Weber | Event detection/anomaly correlation heuristics |
| US20080148398A1 (en) * | 2006-10-31 | 2008-06-19 | Derek John Mezack | System and Method for Definition and Automated Analysis of Computer Security Threat Models |
-
2009
- 2009-05-06 IT ITTO2009A000365A patent/IT1396756B1/en active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2002027443A2 (en) * | 2000-09-25 | 2002-04-04 | Itt Manufacturing Enterprises, Inc. | Global computer network intrusion detection system |
| US20060173992A1 (en) * | 2002-11-04 | 2006-08-03 | Daniel Weber | Event detection/anomaly correlation heuristics |
| US20080148398A1 (en) * | 2006-10-31 | 2008-06-19 | Derek John Mezack | System and Method for Definition and Automated Analysis of Computer Security Threat Models |
Also Published As
| Publication number | Publication date |
|---|---|
| IT1396756B1 (en) | 2012-12-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US7409716B2 (en) | System for intrusion detection | |
| CN107666490B (en) | A suspicious domain name detection method and device | |
| EP3905622A1 (en) | Botnet detection method and system, and storage medium | |
| KR101391781B1 (en) | Apparatus and Method for Detecting HTTP Botnet based on the Density of Web Transaction | |
| US7234166B2 (en) | Event sequence detection | |
| JP7135980B2 (en) | REGISTRATION SYSTEM, REGISTRATION METHOD AND REGISTRATION PROGRAM | |
| US20090094699A1 (en) | Apparatus and method of detecting network attack situation | |
| EP2284752B1 (en) | Intrusion detection systems and methods | |
| CN101577721A (en) | Method for splitting Broome filter by indexes and inserting, deleting and inquiring methods thereof | |
| CN109347807B (en) | Trust-based differential intrusion prevention method | |
| US20180020014A1 (en) | Malicious communication pattern extraction device, malicious communication pattern extraction system, malicious communication pattern extraction method, and malicious communication pattern extraction program | |
| CN116915515B (en) | Access security control method and system for industrial control network | |
| WO2022042194A1 (en) | Block detection method and apparatus for login device, server, and storage medium | |
| WO2015114804A1 (en) | Unauthorized-access detection method and detection system | |
| CN120546916A (en) | Network threat detection method and system | |
| TWI677209B (en) | Domain name filtering method | |
| KR101308085B1 (en) | Intrusion prevention system using correlation attack pattern and method thereof | |
| CN106576072B (en) | Information processing unit and information processing method | |
| CN112287252B (en) | Method, device, equipment and storage medium for detecting website domain name hijacking | |
| ITTO20090365A1 (en) | METHOD OF DETECTION OF ANOMALIES IN A COMMUNICATION NETWORK AND NETWORK DEVICE THAT IMPLEMENTS THIS METHOD | |
| CN120658507A (en) | Security isolation switching method and system for network data abnormality | |
| US7602789B2 (en) | Low overhead method to detect new connection rate for network traffic | |
| CN117395070B (en) | A method for detecting abnormal traffic based on traffic characteristics | |
| KR101472523B1 (en) | Security device controlling unidentified traffic and operating method thereof | |
| KR101518852B1 (en) | Security system including ips device and ids device and operating method thereof |