Patent Description:
Generally, a hypertext transfer protocol (HTTP) tunneling is defined as a technique which allows various network restrictions to be bypassed (e.g. a firewall or a secure web gateway) in order to connect to a blocked destination or communicate by use of an otherwise prohibited or an unsupported protocol (e.g. a secure shell (SSH) protocol or a file transfer protocol (FTP)). The HTTP tunneling is typically used in restricted networks, for example an enterprise network. The reason therebehind is that a HTTP traffic is generally allowed in the restricted networks and a HTTP tunnel can potentially mix up with HTTP traffic. In this way, a HTTP tunnel can potentially be used to evade network policies and controls. In a typical data communication network, a tunnel communicating over an encapsulation protocol is used to implement a payload protocol. However, in the case of HTTP tunneling, a HTTP protocol is used as the encapsulation protocol which disguises the communication of the payload protocol as the HTTP traffic. The various examples of the payload protocol are HTTP protocol (when an external destination host is not directly accessible by an internal host), file transfer protocol (FTP), secure shell (SSH) protocol (when these protocols are prohibited), and so forth. Typically, in order to create a HTTP tunnel in an enterprise network, an internal host uses an HTTP tunnel client (software) to connect to an HTTP tunnel server (software) which is running on an allowed or reachable external destination host. An external server terminates the HTTP tunnel and relays the communication which is established over the payload protocol between the internal host and an otherwise not reachable final destination host. The data traffic between the internal host (or the HTTP tunnel client) and the external server uses the HTTP protocol.

Generally, various mutually different types of HTTP tunneling tools are available for download online and these are easily deployable. However, there are some legitimate uses of HTTP tunnels, for example, a few antivirus products use HTTP tunnels to upload suspicious files to a cloud network, a few remote desktop products use HTTP tunnels in a case when other ports are blocked and the like. The HTTP tunnels are natively supported in the HTTP protocol by use of a conventional CONNECT HTTP method. Frequently, the HTTP tunnels are used to perform malicious activity because they can disguise a given communication and bypass various restriction rules. An illegitimate use of HTTP tunnels includes command-and-control communication or data exfiltration.

Currently, certain approaches have been proposed for countering HTTP tunnels in a typical data communication network; example of such approaches include a conventional mitigation approach and a conventional detection approach. The conventional mitigation approach is based on software installation restrictions and monitoring or simple heuristics. The conventional detection approach based on signatures has a limitation of being easy to evade. This limitation is partially alleviated by use of another conventional detection approach based on machine learning which uses one or more data packets' features. The conventional detection approach based on machine learning uses statistical features of the one or more data packets such as mean and variance of the one or more data packets, the one or more data packets' length, interarrival times of the one or more data packets, etc. Therefore, in the conventional detection approach based on machine learning which uses the one or more data packets' features, there is a requirement to collect all the data packets. In other words, there is a requirement to inspect full network traffic which is also known as a deep packet inspection (DPI) technique. The deep packet inspection (DPI) technique is privacy-intrusive and incurs high computational costs. The reason is that in large enterprise networks or corporate networks, HTTP traffic is highly voluminous, wherein the collection and inspection of each data packet for detection of HTTP tunnels incurs high computational costs and demanding hardware requirements and hence, not preferred. Thus, there exists a technical problem of an inefficient detection of HTTP tunnels in typical contemporary data communication network, wherein the technical problem manifests itself as high computational costs and demanding hardware requirements.

Chinese patent application <CIT> is further background art.

Therefore, in light of the foregoing discussion, there exists a need to overcome the aforementioned drawbacks associated with the conventional detection approaches used for detecting the HTTP tunnels present in the typical data communication network.

The disclosure seeks to provide a detection method for efficiently detecting one or more HTTP tunnels present in a data communication network with improved detection accuracy and less computational cost. The present disclosure seeks to provide a solution to the existing problem of an inefficient detection of the HTTP tunnels present in a typical data communication network, wherein the problem manifests in high computational costs and demanding hardware requirements. An aim of the present disclosure is to provide a solution that overcomes at least partially the problems encountered in prior art, and to provide a detection method for efficiently detecting one or more HTTP tunnels present in a data communication network with improved detection accuracy and less computational cost.

The object of the disclosure is achieved by the solutions provided in the enclosed independent claims. Advantageous implementations of the disclosure are further defined in the dependent claims.

In one aspect, the disclosure provides a method for detecting one or more HTTP tunnels present in a data communication network. The method includes: (a) using a collecting device arrangement to gather data from data flows occurring between network devices coupled to the data communication network; (b) processing the gathered data to generate a plurality of parameter fields that are representative of characteristics of the data flows; (c) processing a subset of the parameter fields and their associated one or more parameters according to one or more pre-defined rules; and (d) applying the processed subset of parameters to an artificial intelligence engine to identify whether or not at least a portion of the gathered data corresponding to one or more types of HTTP tunnels being present in the data communication network.

The method of the disclosure provides an efficient detection of the one or more HTTP tunnels present in the data communication network with improved detection accuracy and less computational cost. The use of pre-defined rules in order to process the parameters fields and their associated parameters in combination with the artificial intelligence engine enables to detect hidden data representatives of the one or more HTTP tunnels. Additionally, the disclosed method does not require the entire network traffic to be analyzed in order to detect the HTTP tunnels which is in contrast to a conventional deep packet inspection (DPI) technique.

Therefore, the volume of data collected by the collecting device arrangement is less which incurs less computational complexity and less demanding hardware requirements.

In an implementation form, the one or more pre-defined rules are implemented using at least one of: one or more formulae, one or more algorithmic steps.

The use of one or more formulae or algorithmic steps provides an efficient computation in comparison to identifying correlations which are computationally more complex and demanding on computing effort.

In a further implementation form, the method includes in (b) (i.e. in operation of the processing of the gathered data) using an Internet Protocol Flow Information Export (IPFIX) protocol algorithm to generate the parameters.

It is advantageous to derive the parameters by use of IPFIX protocol because IPFIX protocol is a readily available off-the-shelf software tool that provides aggregated parameters of HTTP activity. The use of IPFIX enables the disclosed method to be readily implementable for commercial use.

In a further implementation form, the method includes in (a) (i.e. in operation of using the collecting device arrangement to gather data) using the collecting device arrangement to gather data from at least one of: routers, switches, mirrored ports (SPANs) and test access point (TAP) devices.

It is advantageous to use routers, switches, mirrored ports (SPANs) or test access point (TAP) devices as the collecting device in order to gather data because these devices provide pertinent representations of HTTP data traffic.

In a further implementation form, the method includes in (c) (i.e. in the operation of processing the subset of the parameter fields), processing one or more parameters that are representative of a degree of inactivity present in a given communication between a source and a destination.

The degree of inactivity is a very telling parameter for detecting HTTP tunnels.

In a further implementation form, the degree of inactivity is derived from a sum of time durations between consecutive IPFIX data flows of the given communication, in relation to a total duration of the given communication.

The degree of inactivity computed in such a way provides a pertinent detection of HTTP tunnels.

In a further implementation form, the method includes in (c) (i.e. in the operation of processing the subset of the parameter fields) processing, in the subset of parameters, one or more parameters that are representative of occurrences of HTTP requests with specific HTTP methods between a given source and a given destination within the data communication network, normalized to a total count of HTTP requests occurring within the data communication network.

The frequency of HTTP requests is a potential indicative of HTTP tunnels.

In a further implementation form, the method includes categorizing the HTTP methods of the HTTP requests into following categories: GET, POST and "OTHER".

The use of HTTP methods of HTTP requests such as GET, POST and "OTHER" provide a pertinent detection of HTTP tunnels.

In a further implementation form, the "OTHER" HTTP methods include: HEAD, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH.

Different HTTP methods such as, HEAD, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH are used to detect upload and download HTTP traffic within the data communication network.

In a further implementation form, the method includes in (c) (i.e. in the operation of processing the subset of the parameter fields) computing, in the subset of parameters, one or more parameters that are representative of a spread of starting times of requests from a given source to a given destination within the data communication network.

The spread of starting times of requests from the given source to the given destination within the data communication network is highly informative of a potential occurrence of the HTTP tunnels.

In a further implementation form, the method includes detecting an HTTP tunnel by detecting multiple start requests that occur substantially simultaneously.

The detection of multiple start requests that occur substantially simultaneously provides a more precise detection of the HTTP tunnel.

In a further implementation form, the method includes computing a standard deviation of, or a statistical value of, timestamps of IPFIX data flows, normalized to a total length of an associated communication.

The computation of the standard deviation or the statistical value of timestamps of IPFIX data flows enables a more precise detection of the HTTP tunnels.

In a further implementation form, the timestamps of IPFIX data flows include start timestamps of IPFIX data flows.

The start timestamps of IPFIX data flows provides a more precise detection of the HTTP tunnels.

In a further implementation form, the method includes in (c) (i.e. in the operation of processing the subset of the parameter fields) processing, in the subset of parameters, one or more parameters that are representative of bidirectional communications of HTTP tunnels, by detecting superposition of data flows occurring within the data communication network between a given source and a given destination.

The detection of bidirectional data flows is useful for detecting hostile HTTP tunnels which are used to steal data from a given user.

In a further implementation form, the method includes processing one or more parameters based on computing a duration of communications having N data flows active within a given duration of time, normalized to a total duration of the communications, wherein N is an integer.

The detection of time durations of bi-directional data flows provides an especially effective way to detect hostile HTTP tunnels.

In a further implementation form, the method includes in (c) (i.e. in the operation of processing the subset of the parameter fields) processing, in the subset of parameters, one or more parameters that are representative of upload and download channels being used for a given communication, to determine whether the channels correspond predominantly to an upload data flow or a download data flow.

The determination of the upload and download channels enables a pertinent detection of hostile HTTP tunnels activity.

In a further implementation form, the method includes detecting an HTTP tunnel by comparing the number of distinct ports that are opened for a given HTTP communication with at least one detection threshold number, where an HTTP tunnel is detected when the number of distinct ports exceeds the at least one detection threshold number.

Hostile HTTP tunnels potentially seek to hide their presence when the number of distinct ports that are opened for the given HTTP communication is large. Such an evasive activity (i.e. hostile HTTP tunnels) can be detected when the number of distinct ports that are opened exceeds the at least one detection threshold number.

In a further implementation form, the method includes in (c) (i.e. in the operation of processing the subset of the parameter fields) processing, in the subset of parameters, one or more parameters that are representative of a temporal overlap between upload and download channels present within the data communication network as a function of elapsed time, wherein the channels are deemed to be overlapping if their data flows are mutually simultaneously active.

The detection of the temporal overlap between upload and download channels present within the data communication network is an effective way to detect hostile HTTP tunnels activity. It will be appreciated that normal HTTP communications seldomly overlap in upload and download, because a normal HTTP communication transfers either a request or a response at any given time. An exception might be bidirectional streaming, for example an audio or video call over HTTP, but that is already a kind of payload protocol (i.e. tunnel) that is just potentially used for benign purposes. In contradistinction, an example hostile tunnel potentially uses payload protocols which require simultaneous upload and download, in a manner akin to when data is transferred bidirectionally over SSH or RDP. Thus, a detection of overlap can be used to used to identify potentially hostile HTTP tunnels.

In a further implementation form, the method includes detecting an HTTP tunnel when the temporal overlap when normalized over a duration of a communication or temporal window size in which data flows are sampled exceeds at least one detection threshold.

The normalized temporal overlap enables a more precise detection of hostile HTTP tunnels.

In a further implementation form, the method includes in (c) (i.e. in the operation of processing the subset of the parameter fields) processing, in the subset of parameters, one or more parameters that are representative of a measure of sparsity of HTTP activity in a given period in which HTTP flows are active, normalized to a total HTTP activity during the given period.

The measure of sparsity enables a more precise detection of hostile HTTP tunnels.

In a further implementation form, the method includes in (c) (i.e. in the operation of processing the subset of the parameter fields) processing, in the subset of parameters, one or more parameters that are representative of groupings of HTTP communications between a plurality of hosts by considering n-tuples comprising a source address, a destination address, a source port and a destination port, and a protocol wherein "n" is an integer.

The groupings of HTTP communications reduces the memory consumption and improves overall speed.

In a further implementation form, the method includes using the artificial intelligence engine to identify from the one or more selected parameters an occurrence of at least one of: (a) a streaming tunnel, wherein a content of a payload protocol is streamed in real-time using a request/response body; and (b) a discrete tunnel, wherein a content of a payload protocol is delivered in discrete data chunks in a non-streamed manner.

The identification of the streaming tunnel and the discrete tunnel enables a more precise analysis of the HTTP traffic.

In another aspect, the disclosure provides an apparatus that is configured to detect one or more HTTP tunnels present in a data communication network. The apparatus includes: (a) a collecting device arrangement that is configured to gather data from data flows occurring between network devices coupled to the data communication network; (b) a data processing arrangement that is configured to process the gathered data to generate a plurality of parameter fields that are representative of characteristics of the data flows; (c) the data processing arrangement that is further configured to process a subset of the parameter fields and their associated one or more parameters according to one or more pre-defined rules; and (d) an artificial intelligence engine that is configured to process the subset of parameters to identify whether or not at least a portion of the gathered data corresponding to one or more types of HTTP tunnels being present in the data communication network.

The apparatus of the disclosure achieves all the advantages and effects of the disclosed method of the disclosure.

In a yet another aspect, the disclosure provides a computer program product comprising a non-transitory computer-readable storage medium having computer-readable instructions stored thereon, the computer-readable instructions being executable by a computerized device comprising processing hardware to execute the method.

The computer program product achieves all the advantages and effects of the method of the disclosure.

It has to be noted that all devices, elements, circuitry, units and means described in the disclosure could be implemented in the software or hardware elements or any kind of combination thereof. All steps which are performed by the various entities described in the disclosure as well as the functionalities described to be performed by the various entities are intended to mean that the respective entity is adapted to or configured to perform the respective steps and functionalities. Even if, in the following description of specific implementations, a specific functionality or step to be performed by external entities is not reflected in the description of a specific detailed element of that entity which performs that specific step or functionality, it should be clear for a skilled person that these methods and functionalities can be implemented in respective software or hardware elements, or any kind of combination thereof. It will be appreciated that features of the disclosure are susceptible to being combined in various combinations without departing from the scope of the disclosure as defined by the appended claims.

Additional aspects, advantages, features and objects of the disclosure would be made apparent from the drawings and the detailed description of the illustrative implementations construed in conjunction with the appended claims that follow.

The summary above, as well as the following detailed description of illustrative implementations, is better understood when read in conjunction with the appended drawings. For the purpose of illustrating implementations the disclosure, exemplary constructions of the disclosure are shown in the drawings.

Implementations of the present disclosure will now be described, by way of example only, with reference to the following diagrams wherein:.

The following detailed description illustrates embodiments of the disclosure and ways in which they can be implemented. Although some modes of carrying out the disclosure have been disclosed, those skilled in the art would recognize that other embodiments for carrying out or practicing the disclosure are also possible.

<FIG> is a flowchart of a method for (namely, a method of) detecting one or more HTTP tunnels present in a data communication network, in accordance with an embodiment of the disclosure. With reference to <FIG>, there is shown a method <NUM> for detecting one or more HTTP tunnels present in a data communication network. The method <NUM> includes steps <NUM>, <NUM>, <NUM>, and <NUM>. In an implementation, the method <NUM> is executed in an apparatus described in details, for example, in <FIG>.

At the step <NUM>, the method <NUM> includes using a collecting device arrangement to gather data from data flows occurring between network devices coupled to the data communication network. The collecting device arrangement is used to gather data for a purpose of monitoring any suspicious activity, for example, hostile HTTP tunnels, present in the data communication network. The gathered data include the information which is not limited to, source and destination IP addresses, source and destination transport ports, flow start time and end time, incoming and outgoing data bytes, used network protocol (e.g. IP protocol), destination uniform resource location (URL) for HTTP flows, etc..

At the step <NUM>, the method <NUM> further includes processing the gathered data to generate a plurality of parameter fields that are representative of characteristics of the data flows. The gathered data is further analysed to design a data extraction pipeline and conversation features which allows to detect different types of HTTP tunnels present in the data communication network with a relatively low false detection rate.

At the step <NUM>, the method <NUM> further includes processing a subset of the parameter fields and their associated one or more parameters according to one or more pre-defined rules. The subset of parameter fields are processed by use of the one or more pre-defined rules. The processed subset of parameters provide a fine-grained classification of HTTP tunnel traffic into various categories such as data exfiltration or remote code execution. The processed subset of parameters also provides a probability for each potentially overlapping type of attack.

At the step <NUM>, the method <NUM> further includes applying the processed subset of parameters to an artificial intelligence engine to identify whether or not at least a portion of the gathered data correspond to one or more types of HTTP tunnels being present in the data communication network. The processed subset of parameters is applied to the artificial intelligence engine which is trained on a large data set to identify whether or not a certain portion of the gathered data corresponds to the one or more HTTP tunnels present in the data communication network. An example of how to obtain a trained artificial intelligence engine is described in detail, for example, in <FIG>.

In accordance with an embodiment, the one or more pre-defined rules are implemented using at least one of: one or more formulae, one or more algorithmic steps. In an example, the one or more pre-defined rules used for processing the subset of parameter fields belong to one or more mathematical formulae. In another example, the one or more pre-defined rules used for processing the subset of parameter fields belong to one or more steps of an algorithm or multiple algorithms.

In accordance with an embodiment, the method <NUM> further includes at the step <NUM>, using an Internet Protocol Flow Information Export (IPFIX) protocol algorithm to generate the parameters. The IPFIX protocol is used to generate the parameters from the gathered data which allows to detect mutually different types of HTTP tunnels present in the data communication network. An entity extracting information from the network traffic is referred to as "exporter" in IPFIX architecture; it will be appreciated that the exporter processes full network traffic (namely, every packet) in order to generate flow records.

The conventional deep packet inspection (DPI) technique incurs a high computational cost due to a need to have access to each data packet in order to detect HTTP tunnels. However, the IPFIX protocol uses an aggregate information derived from the gathered datavia the exporter; IPFIX therefore provides aggregated information that allows detection of the HTTP tunnels pursuant to embodiments of the disclosure. Therefore, the IPFIX protocol is computationally efficient and cost effective, and simultaneously provides a sufficient information to detect HTTP tunnels with significant detection accuracy in contrast to a conventional NetFlow protocol which lacks the sufficient information for HTTP tunnels detection. Moreover, the IPFIX protocol is widely deployed in large enterprise networks and corporate networks. The IPFIX protocol is an extension of the conventional Netflow protocol with some additional information such as the HTTP request method (e.g. IPFIX information element <NUM>: httpRequestMethod) and the HTTP request host (e.g. IPFIX information element <NUM>: httpRequestHost) for HTTP tunnels detection.

In accordance with an embodiment, the method <NUM> further includes at the step <NUM>, using the collecting device arrangement to gather data from at least one of: routers, switches, mirrored ports (SPANs) and test access point (TAP) devices. The data is gathered by use of network devices which are coupled to the data communication network such as routers, switches, mirrored ports (e.g. switch port analyzers (SPANs)), test access point (TAP) devices, or probe devices. Generally, the mirrored ports are designated ports on the network devices such as, the switches or routers which are programmed to send a copy of one or more network packets from one port to another port where the one or more network packets are further analyzed. Similarly, the test access point (TAP) devices are defined as a hardware device which allows to access and monitor the network traffic.

In accordance with an embodiment, the method <NUM> further includes at the step <NUM>, processing one or more parameters that are representative of a degree of inactivity present in a given communication between a source and a destination. The degree of inactivity describes how much inactivity is present in the given communication between the source and the destination. In other words, the degree of inactivity describes for how much time duration there is no network traffic in the given communication between the source and the destination.

In accordance with an embodiment, the degree of inactivity is derived from a sum of time durations between consecutive IPFIX data flows of the given communication, in relation to a total duration of the given communication. For example, if the given communication lasts for <NUM> seconds which includes <NUM> distinct IPFIX data flows and each IPFIX data flow lasts for <NUM> seconds with a <NUM> second pause in between the two IPFIX data flows. In such a case, the degree of inactivity is equal to <NUM>% (= <NUM>/<NUM> ×<NUM>). The degree of inactivity is also referred as an inactivity percentage.

In accordance with an embodiment, the method <NUM> further includes in the step <NUM> processing, in the subset of parameters, one or more parameters that are representative of occurrences of HTTP requests with specific HTTP methods between a given source and a given destination within the data communication network, normalized to a total count of HTTP requests occurring within the data communication network. The normalized number of HTTP requests represents the relevant number of HTTP requests occurring within the data communication network. The normalized number of HTTP requests deal with specific HTTP methods between the given source and the given destination. The less relevant HTTP requests are aggregated together as one category.

In accordance with an embodiment, the method <NUM> further includes categorizing the HTTP methods of the HTTP requests into following categories: GET, POST and "OTHER". For example, the output is a set of M numbers where M is the number of HTTP methods considered. Nowadays, there are different types of the HTTP tunnel softwares present online, however, various experiments conducted so far show that, only <NUM> HTTP methods are enough, being it GET, POST and "OTHER".

In accordance with an embodiment, the "OTHER" HTTP methods include: HEAD, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH. Different HTTP methods are used for upload and download HTTP traffic within the data communication network. For example, DELETE, PATCH and PUT are used as upload HTTP methods, whereas, DELETE, CONNECT, OPTIONS, PATCH are used as download HTTP methods.

In accordance with an embodiment, the method <NUM> further includes in the step <NUM> computing, in the subset of parameters, one or more parameters that are representative of a spread of starting times of requests from a given source to a given destination within the data communication network. The measurement of the spread of starting times of requests from the given source to the given destination is a potential indicative of occurrence of the HTTP tunnels.

In accordance with an embodiment, the method <NUM> further includes detecting an HTTP tunnel by detecting whether or not multiple request starts have occurred. Through the HTTP tunnel, multiple start requests are made during a given communication in order to maintain connectivity of the HTTP tunnel. For example, a web page loading usually involves multiple requests at substantially the same time which may refer either to a same or different destinations. Therefore, the detection of multiple start requests provides a pertinent detection of whether or not a HTTP tunnel is present.

In accordance with an embodiment, the method <NUM> further includes computing a standard deviation of, or a statistical value of, timestamps of IPFIX data flows, normalized to a total length of an associated communication. The spread of starting times of requests from the given source to the given destination is computed as the normalized standard deviation of, or the normalized statistical value of, timestamps of IPFIX data flows which provides a more precise detection of the HTTP tunnels.

In accordance with an embodiment, the timestamps of IPFIX data flows include start timestamps of IPFIX data flows. The timestamps of IPFIX data flows are considered as the start timestamps of IPFIX data flows over a specific time window.

In accordance with an embodiment, the method <NUM> further includes in the step <NUM> processing, in the subset of parameters, one or more parameters that are representative of bidirectional communications of HTTP tunnels, by detecting superposition of data flows occurring within the data communication network between a given source and a given destination. The detection of bidirectional data flows is useful for detecting hostile HTTP tunnels which are used to steal data from a given user.

In accordance with an embodiment, the method <NUM> further includes processing one or more parameters based on computing a duration of communications having N data flows active within a given duration of time, normalized to a total duration of the communications, wherein N is an integer. For example, a data flow is active at a time instance X, and its start time is before or equal to the instance X and end time is after the instance X. The sum of the time instances of superpositions of data flows is normalized over the total duration of the communications. In a case, if time resolution of IPFIX data flows is of a coarse nature which is taken into account by considering a margin M for the end time. For example, a data flow is active if its end time is equal to the instance X in IPFIX with a resolution of <NUM> second. The coarsity of time resolution of IPFIX data flows is also considered by changing the value of time window (also represented by N) which have starting and ending times within a time span of a subsecond means that start time is equal to end time. In another case, the normalization takes into account the maximum value of the time window (i.e. N) used for the communication windowing, on an "as needed" basis.

In accordance with an embodiment, the method <NUM> further includes in the step <NUM>, processing, in the subset of parameters, one or more parameters that are representative of upload and download channels being used for a given communication, to determine whether the channels correspond predominantly to an upload data flow or a download data flow. For example, if received bytes are higher in number than or equal to transmitted bytes in number, then it is considered as the download data flow or otherwise it is the upload data flow. However, a margin can be added to fine tune the separation of the upload data flow and the download data flow. The activity of communication is computed as a product of an activity of upload and an activity of download. The communication activity is computed as complement to <NUM> of the inactivity percentage (which is calculated at the step <NUM>) equal to <NUM> - inactivity percentage. The activity percentage can be simplified as <NUM>-(absolute inactivity).

In accordance with an embodiment, the method <NUM> further includes detecting an HTTP tunnel by comparing the number of distinct ports that are opened for a given HTTP communication with at least one detection threshold number, where an HTTP tunnel is detected when the number of distinct ports exceeds the at least one detection threshold number. The number of distinct (or transport) ports those are opened for the HTTP communication are considered here. The HTTP tunnel potentially, but not always, opens up a large number of transport ports to establish multiple communication channels due to its tunnel behaviour; the method <NUM> employs artificial intelligence (AI) tools that identify which case pertains, given the combination of the other features as well. This has particularly more significance in a case of data exfiltration, where, the large number of transport ports are required to transmit larger amount of data. However, when the number of opened distinct (or transport) ports exceeds the at least one detection threshold number, the HTTP tunnel is detected.

In accordance with an embodiment, the method <NUM> further includes in the step <NUM>, processing, in the subset of parameters, one or more parameters that are representative of a temporal overlap between upload and download channels present within the data communication network as a function of elapsed time, wherein the channels are deemed to be overlapping if their data flows are mutually simultaneously active. The upload and download channels are considered as overlapping channels in time if any two of their data flows are active at the same time. The temporal overlap corresponds to an overlap in time.

In accordance with an embodiment, the method <NUM> further includes detecting an HTTP tunnel when the temporal overlap when normalized over a duration of a communication or temporal window size in which data flows are sampled exceeds at least one detection threshold. The HTTP tunnel is detected when either the normalized temporal overlap or the temporal window size in which the sampled data flows exceeds the at least one detection threshold. The HTTP tunnels are expected to have a high temporal overlap due to the nature of the bidirectional communication required for a tunnel client to communicate with a tunnel server; it will be appreciated payload protocols being used may require bidirectional communications.

In accordance with an embodiment, the method <NUM> further includes in the step <NUM>, processing, in the subset of parameters, one or more parameters that are representative of a measure of sparsity of HTTP activity in a given period in which HTTP flows are active, normalized to a total HTTP activity during the given period. The measure of sparsity of HTTP activity is computed as a standard deviation of time duration (in seconds) in which data flows are active. At first, an empty list of values is created. Thereafter, each second (of time) between the starting and end of the communication is added to the created list if there is at least one data flow active in that second. There can be pauses in the communication, therefore, not each second is added to the created list. Then, the standard deviation is computed over these values which is further normalized by the total HTTP activity during the given period. The given period is computed as the maximum end time minus the minimum start time.

In accordance with an embodiment, the method <NUM> further includes in the step <NUM>, processing, in the subset of parameters, one or more parameters that are representative of groupings of HTTP communications between a plurality of hosts by considering n-tuples comprising a source address, a destination address, a source port and a destination port, and a protocol wherein "n" is an integer. The HTTP communications are logically grouped between the plurality of hosts by considering the n-tuples such as the source address, the destination address, the source port, the destination port and the used network protocol (e.g. IP protocol). The purpose is to reconstruct the whole HTTP communication. The destination address in the aggregation can be of different nature and its function is only to allow a meaningful aggregation of data flows in a logical way that groups together the data flows those related to the same communication. The destination domain gives more insight about the location of the HTTP tunnel tool hosting.

In accordance with an embodiment, the method <NUM> further includes using the artificial intelligence engine (for example, implemented using a recurrent neural network (for example, a recursive neural network)) to identify from the one or more selected parameters an occurrence of at least one of: a streaming tunnel, wherein a content of a payload protocol is streamed in real-time using a request/response body; and a discrete tunnel, wherein a content of a payload protocol is delivered in discrete data chunks in a non-streamed manner. Based on the analysis of the HTTP traffic by use of publicly available HTTP tunnel tools, the HTTP tunnels are categorized in two methodologies such as the HTTP streaming (or continuous) tunnel and the HTTP discrete tunnel. The HTTP streaming (or continuous) tunnel uses at least two HTTP methods, one for upload HTTP traffic and one for download HTTP traffic. The two HTTP methods belong to the groups:.

Alternatively, the HTTP streaming (or continuous) tunnel uses only one method if the method allows to have simultaneous upload and download, for example,
BIDIRECTIONAL_HTTP_METHODS = {"DELETE", "PATCH", "POST"}.

The HTTP discrete tunnels present a sufficient number of requests (e.g. number of requests ><NUM>) and have a sufficient velocity (e.g. number of requests over time ><NUM>% on average). These values are tuned depending on the required metrics (e.g. balance between precision and recall).

<FIG> is a network environment diagram that depicts an exemplary detection of one or more HTTP tunnels present in a data communication network, in accordance with an embodiment of the present disclosure. <FIG> is described in conjunction with elements from <FIG>. With reference to <FIG>, there is shown a data communication system 200A that includes an internal host <NUM> (i.e. a network device) on an enterprise network <NUM>, a secure web gateway <NUM>, an internet protocol flow information export (IPFIX) apparatus (hereinafter, simply referred to as an apparatus <NUM>), a HTTP tunnel server <NUM>, and a final destination host <NUM>. ; the apparatus <NUM> is coupled to a detector (not shown) for implementing embodiments of the present disclosure. There is further shown a first HTTP tunnel <NUM>, a communication path <NUM> and a dotted line <NUM> which represents that there is no direct communication between the internal host <NUM> and the final destination host <NUM>. It will be appreciated that the encapsulation protocol (HTTP) is terminated at the HTTP tunnel server <NUM> and only the payload protocol proceeds to the destination host <NUM>.

The enterprise network <NUM> is a network of one or more network devices. Examples of the enterprise network <NUM> include, but are not limited to, a computer network in a computer cluster, a Local Area Network (LAN), a Wireless Local Area Network (WLAN), a Wide Area Network (WAN), or a Metropolitan Area Network (MAN) that are secured by an enterprise-wide firewall. Moreover, the enterprise network <NUM> is described herein with IP communications protocols, HTTP protocol, file transfer protocol (FTP), secure shell (SSH) protocol and the like protocols. In this embodiment, the enterprise network <NUM> depicts only one network device, such as the internal host <NUM>. However, it is to be understood that in practice, many network devices (hundreds or thousands of network devices) will be connected to each other via the enterprise network <NUM> (e.g. in a LAN), which is omitted here for the sake of brevity.

The secure web gateway <NUM> is used to monitor and prevent any malicious data from entering and leaving an organization's network such as the enterprise network <NUM>. The secure web gateway <NUM> is implemented to provide the security against any threat which is originating from the Internet or any web service. The secure web gateway <NUM> is implemented either through a hardware or a software which is installed at outer boundaries (e.g. a router) of the organization's network, such as the enterprise network <NUM>. The secure web gateway <NUM> applies uniform resource locator (URL) filtering, data leakage prevention, malware detection and the like. The secure web gateway <NUM> corresponds to a firewall.

The apparatus <NUM> is configured to detect one or more HTTP tunnels present in a data communication network (e.g. the enterprise network <NUM>). The apparatus <NUM> is configured to gather data from data flows occurring between network devices (e.g. the internal host <NUM> or routers, switches or probe devices when the internal host <NUM> is connected to such devices) coupled to the data communication network. The apparatus <NUM> is further configured to process the gathered data to generate a plurality of parameter fields that are representative of characteristics of the data flows. The apparatus <NUM> is further configured to processes a subset of the parameter fields and their associated one or more parameters according to one or more pre-defined rules, where the subset of parameters is processed to identify whether or not at least a portion of the gathered data corresponding to one or more types of HTTP tunnels is present in the data communication network. For example, the apparatus <NUM> gathers the data exchanged between the internal host <NUM> (i.e. the tunnel client) and the HTTP tunnel server <NUM>. The apparatus <NUM> analyzes the gathered data, checks the data traffic between the internal host <NUM> (i.e. the tunnel client) and the HTTP tunnel server <NUM>, and applies a series of filters, rules and machine learning in order to detect the first HTTP tunnel <NUM> and the communication path <NUM>.

In an example, the apparatus <NUM> may be implemented as a separate device (e.g. a collector device) that is communicatively coupled to a gateway device, such as a main router, which acts as an interface or a secured gateway between the Internet and the enterprise network <NUM> that is protected by firewall (i.e. the secure web gateway <NUM>). In another example, the functionalities of the apparatus <NUM> may be implemented in the gateway device (e.g. a main router) that have access to bi-directional data traffic, i.e. data traffic to- and from- an organization's network (e.g. the enterprise network <NUM>) and the Internet. The apparatus <NUM> analyses the IPFIX data gathered from network devices (such as routers, switches or probe devices), checks the activity of hosts (e.g. the internal host <NUM>) and through a series of filters, rules, and machine learning detects HTTP tunnels.

Typically, the internal host <NUM> cannot directly communicate with the final destination host <NUM> which is represented by the dotted line <NUM> with a cross at its end. This is because of the presence of the secure web gateway <NUM> on the enterprise network <NUM> between the internal host <NUM> and the final destination host <NUM>. Therefore, the internal host <NUM> communicates with the final destination host <NUM> through the HTTP tunnel server <NUM>. The internal host <NUM> uses a HTTP tunnel client (e.g. a software) to connect to the HTTP tunnel server <NUM> (e.g. a software), for example, via the Internet, which allows a further connection to the final destination host <NUM>. In this way, there exists the first HTTP tunnel <NUM> between the internal host <NUM> (i.e. tunnel client) and the HTTP tunnel server <NUM> and the communication path <NUM> between the HTTP tunnel server <NUM> and the final destination host <NUM>.

The data communication system 200A deals with the detection of the first HTTP tunnel <NUM> and the commucation path <NUM> by inspecting the communication between the internal host <NUM> (i.e. tunnel client) and the HTTP tunnel server <NUM>. The first HTTP tunnel <NUM> and the communication path <NUM> are detected by use of an aggregate information about the network communications between the internal host <NUM> (i.e. tunnel client), the HTTP tunnel server <NUM> and the final destination host <NUM>. The aggregate information is obtained via an internet protocol flow information export (IPFIX) protocol. The IPFIX protocol is an internet engineering task force (IETF) standard which is documented in RFC <NUM> through RFC <NUM> and RFC <NUM>. The IPFIX protocol is based on a notion of a flow of data packets which are exchanged between two endpoints and identified by a quintuple comprising source IP address (e.g. the IP address of the internal host <NUM> in this case) and destination IP address (e.g. the IP address of the final destination host <NUM>), source and destination ports and a network protocol (e.g. internet protocol (IP)). From each flow of the data packets, mutually different aggregate information is computed such as, number of incoming or outgoing data packets or data bytes within a specified time window. The different aggregate information is further analyzed in order to detect the first HTTP tunnel <NUM> and the communiation path <NUM>. The IPFIX protocol is implemented by use of the apparatus <NUM> (i.e. an IPFIX-enabled apparatus) in the data communication system 200A. The apparatus <NUM> gathers the data exchanged between the internal host <NUM> (also referred to as the tunnel client) and the HTTP tunnel server <NUM>. The apparatus <NUM> analyzes the traffic data (i.e. the gathered data), checks the activity of the internal host <NUM> (i.e. the tunnel client) that accesses the Internet and connects to the HTTP tunnel server <NUM>, and applies a series of filters, rules and machine learning in order to detect the first HTTP tunnel <NUM> and the communication path <NUM>. The apparatus <NUM> is described in detail, for example, in <FIG>.

Thus, the data communication system 200A does not inspect full network traffic in contrast to a conventional deep packet inspection (DPI) technique. The conventional deep packet inspection (DPI) technique incurs a high computational cost due to the access to each data packet in order to detect HTTP tunnels. However, the data communication system 200A uses an aggregate information derived from the gathered data by use of the apparatus <NUM> in order to detect the first HTTP tunnel <NUM> and the communication path <NUM>; it will be appreciated that the apparatus <NUM> includes a separate IPFIX exporter and a detector that are two mutually distinction functions, wherein the exporter does inspect full network traffic, so that the detector does not have to inspect the full network traffic.

Therefore, the data communication system 200A is computationally efficient and cost effective, and simultaneously provides a sufficient information to detect the first HTTP tunnel <NUM> and the communication path <NUM> with a significant detection accuracy.

<FIG> is a network environment diagram that depicts an exemplary detection of one or more HTTP tunnels present in a data communication network, in accordance with another embodiment of the present disclosure. <FIG> is described in conjunction with elements from <FIG> and <FIG>. With reference to <FIG>, there is shown a data communication system 200B that includes a network device <NUM>, the apparatus <NUM>, a first data communication network <NUM> (e.g. a LAN), a second data communication network <NUM> (e.g. a WAN), and a third data communication network <NUM> (i.e. the Internet). There is further shown a plurality of computing devices 228A, 228B,. ,228N (i.e. end-user devices) that are communicatively coupled to the first data communication network <NUM> (i.e. the LAN). The apparatus <NUM> may be communicatively coupled to one or more network devices, such as the network device <NUM>.

In this example, the network device <NUM> acts as an interface between an enterprise network (e.g. in this case the enterprise network includes the first data communication network <NUM>, such as LAN, and the second data communication network <NUM>, such as WAN or WLAN) and the third data communication network <NUM> (e.g. the Internet). The first data communication network <NUM> (i.e. the LAN) and the second data communication network <NUM> (i.e. the WAN) are protected from a malicious attack by the secure web gateway <NUM> (e.g. a firewall application). The network device <NUM> may have access to bi-directional data traffic, i.e. data traffic to- and fro-from the plurality of computing devices 228A, 228B,. , 228N (which are connected to the network device <NUM> via the first data communication network <NUM> (i.e. the LAN)). In an implementation, the network device <NUM> corresponds to a main router. Other examples of the network device <NUM> include, but is not limited to a router, a switch, a probe device, or a device with mirrored ports of router. Each of the plurality of computing devices 228A, 228B,. , 228N corresponds to the internal host <NUM> (of <FIG>).

The apparatus <NUM> is configured to detect one or more HTTP tunnels present in a data communication network (e.g. the first data communication network <NUM> and/or the second data communication network <NUM>). The apparatus <NUM> gathers data from data flows occurring between network devices (e.g. the network device <NUM>) coupled to the data communication network (e.g. data communication network <NUM> or <NUM>). The apparatus <NUM> analyzes the gathered data, and applies a series of filters, rules and machine learning in order to detect the HTTP tunnels, and output the detected HTTP tunnels to a defined device, such as an analyst device for correction action and avoiding any malicious activity.

<FIG> is a block diagram that illustrates various exemplary components of the apparatus of <FIG>, in accordance with an embodiment of the present disclosure. <FIG> is described in conjunction with elements from <FIG>, <FIG>, and <FIG>. With reference to <FIG>, there is shown the apparatus <NUM> (of <FIG>) that includes a collecting device arrangement <NUM>, a data processing arrangement <NUM>, a memory <NUM>, and an artificial intelligence engine 234A.

The apparatus <NUM> filters out non-HTTP and non- transmission control protocol (TCP) data from an input data. The apparatus <NUM> groups TCP-based HTTP data by use of logical descriptors which uniquely represent the HTTP communication (e.g. source and destination addresses, transport ports, etc.) within one time window. Thereafter, the apparatus <NUM> applies multiple rule-based filters to remove benign HTTP communications (e.g. too short communications) and computes a plurality of meaningful features which describe the communication behaviour. In a certain case, the apparatus <NUM> potentially uses a signature based approach in order to detect simplest HTTP communication. In another case, where signatures do not match, the apparatus <NUM> communicates the computed plurality of meaningful features to a plurality of pre-trained supervised machine learning (ML) classifiers in order to score each HTTP communication and hence, refines the detection of multiple HTTP communications. If any of the score of the HTTP communication exceeds a certain threshold value then an alarm is raised which indicates the HTTP tunnel.

The collecting device arrangement <NUM> is configured to gather data from data flows occurring between network devices coupled to a data communication network. In an implementation, the collecting device arrangement <NUM> is implemented as a network interface card (NIC). The collecting device arrangement <NUM> may support communication protocols for one or more of peer-to-peer network, a hybrid peer-to-peer network, local area networks (LANs), radio access networks (RANs), metropolitan area networks (MANs), wide area networks (WANs), all or a portion of a public network such as the global computer network known as the Internet, a private network and any other communication system or systems at one or more locations. Additionally, the collecting device arrangement <NUM> supports wired or wireless communication that can be carried out via any number of known protocols, including, but not limited to, Internet Protocol (IP), HTTP protocols, HTTPS, file transfer protocol (FTP), secure shell (SSH) protocol.

The data processing arrangement <NUM> is configured to process the gathered data to generate a plurality of parameter fields that are representative of characteristics of the data flows. The data processing arrangement <NUM> is a computational element that is configured to processes instructions that drive the apparatus <NUM>. The data processing arrangement <NUM> is further configured to process a subset of the parameter fields and their associated one or more parameters according to one or more pre-defined rules. Additionally, the data processing arrangement <NUM> include one or more data processing facilities for storing, processing and/or share data and/or set of instructions. Furthermore, the data processing arrangement <NUM> includes hardware, software, firmware or a combination of these, suitable for temporally storing and processing various information and services accessed by the one or more users using the one or more user equipments. Examples of the data processing arrangement <NUM> includes, but are not limited to, a processor, a network interface controller, a microprocessor, a microcontroller, ASIC, a complex instruction set computing (CISC) microprocessor, a reduced instruction set (RISC) microprocessor or a very long instruction word (VLIW) microprocessor.

The memory <NUM> includes suitable logic, circuitry, and/or interfaces that is configured to store instructions (e.g. machine code) executable by the data processing arrangement <NUM>. Examples of implementation of the memory <NUM> include, but are not limited to, hardware storage, such as Hard Disk Drive (HDD), Flash memory, Solid-State Drive (SSD), cloud-based storage, or Electrically Erasable Programmable Read-Only Memory (EEPROM), Random Access Memory (RAM), or Read Only Memory (ROM). The memory <NUM> may be used to store data generated and/or required by the artificial intelligence engine 234A.

The artificial intelligence engine 234A is configured to process the subset of parameters to identify whether or not at least a portion of the gathered data corresponding to one or more types of HTTP tunnels being present in the data communication network. In an implementation, the artificial intelligence engine 234A operates on supervised machine learning technique; for example, the artificial intelligence engine 234A utilizes recurrent ("recursive") neural networks. In another implementation, alternatively, the artificial intelligence engine 234A operates on semi-supervised machine learning techniques. In an implementation, the artificial intelligence engine 234A uses random forest (RF) algorithm as a machine learning algorithm. The random forest (RF) algorithm is based on decision trees and possesses an advantage of being relatively fast with low memory requirement and easily expandable towards adding more trees. The random forest (RF) algorithm possesses another advantage of having a possibility of explaining an importance of each variable used.

The artificial intelligence engine 234A uses two models (e.g. a model <NUM> and a model <NUM>) which are trained for a refined detection of two common use cases. The model <NUM> is focussed on detecting HTTP tunnels which are used for data exfiltration purposes (e.g. sending files across a HTTP tunnel). The model <NUM> is focussed on detecting HTTP tunnels which are used for remote command execution (e.g. sending commands to an open command prompt or similar listening on other end of a HTTP tunnel). The model <NUM> and model <NUM> learn how to make detections based on a given set of examples (or training set). In this embodiment, the model <NUM> and model <NUM> are trained for the plurality of meaningful features. In an implementation, the plurality of meaningful features includes an inactivity percentage, a normalized number of HTTP requests, a spread of starting times of requests from a given source to a given destination, superposition of HTTP requests, upload and download channels, number of open ports, number of HTTP requests, a temporal overlap between the upload and the download channel, and a sparsity of HTTP requests. A way of computing the plurality of meaningful features has been described in detail, for example, in <FIG>. Such plurality of the meaningful features are computed on a large number of benign HTTP communications and in-lab simulated HTTP tunnel communications, which then becomes the training set (i.e. the starting material) to train the model <NUM> and model <NUM>. The model <NUM> and the model <NUM> differ from each other in a way that which HTTP samples are given to each model, for example, exfiltration samples are used for the exfiltration model that is the model <NUM>. The model <NUM> and the model <NUM> have an advantage that if the plurality of meaningful features are well engineered then, these models can be retrained according to new benign HTTP samples features and these models learn automatically new behaviors and improve the detection accuracy (also known as low false alarms). An output of each model is a probability with a score from <NUM> to <NUM>, and <NUM> is a maximum value. Therefore, a threshold value is specified in order to raise a HTTP tunnel detection which indicates that a given HTTP sample is a HTTP tunnel. There are different ways to decide the threshold value. In this embodiment, a technique known as cross-validation is used to decide the threshold value and tested on a real environment. Although, each model may have a different threshold value. If the score of one of the model <NUM> and the model <NUM> is above the threshold value, an alarm is raised for a corresponding HTTP communication. The model <NUM> and the model <NUM> are pretrained before deployment with real HTTP tunnel samples and benign HTTP communications. In order to improve the detection rate, the model <NUM> and the model <NUM> can be retrained with customer data (i.e. on-the-fly during deployment) which is obtained either by on-site shipping multiple features of the positive samples or collecting benign traffic on-site and thereafter sending the collected benign traffic to a remote server (e.g. a lab) for analysis purpose. After the AI engine 234A is trained, the AI engine 234A is deployed in the apparatus <NUM>.

In operation, the apparatus <NUM> is configured to detect one or more HTTP tunnels present in a data communication network (e.g. the enterprise network <NUM>). The collecting device arrangement <NUM> is configured to gather data from data flows occurring between network devices (such as routers, switches or probe devices to which the internal host <NUM> is also connected) coupled to the data communication network. The data processing arrangement <NUM> is configured to process the gathered data to generate a plurality of parameter fields that are representative of characteristics of the data flows. The data processing arrangement <NUM> is further configured to process a subset of the parameter fields and their associated one or more parameters according to one or more pre-defined rules. The artificial intelligence engine 234A is configured to process the subset of parameters to identify whether or not at least a portion of the gathered data corresponding to one or more types of HTTP tunnels being present in the data communication network.

In accordance with an embodiment, the collecting device arrangement <NUM> is configured to gather data from at least one of: routers, switches, mirrored ports (SPANs) and test access point (TAP) devices. In order to process the gathered data for generating a plurality of parameter fields, the data processing arrangement <NUM> is further configured to use an Internet Protocol Flow Information Export (IPFIX) protocol algorithm to generate the parameters. The one or more pre-defined rules are implemented by the data processing arrangement <NUM> using at least one of: one or more formulae, one or more algorithmic steps. The data processing arrangement <NUM> is further configured to process one or more parameters that are representative of a degree of inactivity present in a given communication between a source (e.g. the internal host <NUM>) and a destination (e.g. the final destination host <NUM>). The degree of inactivity is derived from a sum of time durations between consecutive IPFIX data flows of the given communication, in relation to a total duration of the given communication. The data processing arrangement <NUM> is further configured to process in the subset of parameters, one or more parameters that are representative of occurrences of HTTP requests with specific HTTP methods between the given source (e.g. the internal host <NUM>) and the given destination (e.g. the final destination host <NUM>) within the data communication network, normalized to a total count of HTTP requests occurring within the data communication network. The HTTP methods of the HTTP requests are categorized into following categories: GET, POST and "OTHER". The "OTHER" HTTP methods include: HEAD, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH. The data processing arrangement <NUM> is further configured to process in the subset of parameters, one or more parameters that are representative of a spread of starting times of requests from the given source to the given destination within the data communication network. The apparatus <NUM> detects a HTTP tunnel by detecting multiple start requests that occur substantially simultaneously by computing a standard deviation of, or a statistical value of, timestamps of IPFIX data flows, normalized to a total length of an associated communication. The timestamps of IPFIX data flows include start timestamps of IPFIX data flows. The data processing arrangement <NUM> is further configured to process in the subset of parameters, one or more parameters that are representative of bidirectional communications of HTTP tunnels, by detecting superposition of data flows occurring within the data communication network between the given source and the given destination. The data processing arrangement <NUM> detects the superposition of data flows by computing a duration of communications having N data flows active within a given duration of time, normalized to a total duration of the communications, wherein N is an integer. The data processing arrangement <NUM> is further configured to process in the subset of parameters, one or more parameters that are representative of upload and download channels being used for a given communication, to determine whether the channels correspond predominantly to an upload data flow or a download data flow. The apparatus <NUM> detects a HTTP tunnel by comparing the number of distinct ports that are opened for a given HTTP communication with at least one detection threshold number, where an HTTP tunnel is detected when the number of distinct ports exceeds the at least one detection threshold number. The data processing arrangement <NUM> is further configured to process in the subset of parameters, one or more parameters that are representative of a temporal overlap between upload and download channels present within the data communication network as a function of elapsed time, wherein the channels are deemed to be overlapping if their data flows are mutually simultaneously active. The apparatus <NUM> detects a HTTP tunnel when the temporal overlap when normalized over a duration of a communication or temporal window size in which data flows are sampled exceeds at least one detection threshold. The data processing arrangement <NUM> is further configured to process in the subset of parameters, one or more parameters that are representative of a measure of sparsity of HTTP activity in a given period in which HTTP flows are active, normalized to a total HTTP activity during the given period. The data processing arrangement <NUM> is further configured to process in the subset of parameters, one or more parameters that are representative of groupings of HTTP communications between a plurality of hosts by considering n-tuples comprising a source address, a destination address, a source port and a destination port, and a protocol wherein "n" is an integer. The artificial intelligence (AI) engine 234A is further configured to identify from the one or more selected parameters an occurrence of at least one of: a streaming tunnel, wherein a content of a payload protocol is streamed in real-time using a request/response body and a discrete tunnel, wherein a content of a payload protocol is delivered in discrete data chunks in a non-streamed manner. The various embodiments, operations, and variants disclosed in the method <NUM> of <FIG> apply mutatis mutandis to the apparatus <NUM> and the data processing arrangement <NUM>.

<FIG> is a flowchart that depicts exemplary operations for detecting one or more HTTP tunnels present in a data communication network, in accordance with another embodiment of the present disclosure. <FIG> is described in conjunction with elements from <FIG>, <FIG>, <FIG>, and <FIG>. With reference to <FIG>, there is shown a flowchart <NUM> for detecting one or more HTTP tunnels present in a data communication network (e.g. the enterprise network <NUM>). The flowchart <NUM> includes operations from <NUM> to <NUM>.

At the operation <NUM>, from an input data, non-HTTP and non-TCP data is filtered out. The reason is that HTTP tunnels use HTTP data to perform the communication. Therefore, the data flows which carry HTTP information and also TCP information are retained at the operation <NUM>. There are different possibilities to filter out HTTP data such as the use of internet protocol (IP) protocol field and HTTP request field. The IP protocol must be equal to <NUM> (transmission control protocol (TCP)). The HTTP data are within this traffic and can be extracted by considering the HTTP-related fields from IPFIX. These fields must not be null. In an example case, if the input data is HTTP data then in such a case, the input data is communicated for an operation <NUM> for further processing. In another example case, if the input data is not HTTP data then in such a case, the input data is not communicated via the HTTP tunnel.

At the operation <NUM>, the HTTP data is logically grouped between the plurality of hosts by considering the n-tuples such as a source address, a destination address, a source port, a destination port and a used network protocol (e.g. IP protocol). The purpose is to reconstruct the whole HTTP communication. The destination address in the aggregation can be of different nature and its function is only to allow a meaningful aggregation of data flows in a logical way that groups together the data flows that are related to the same communication. The IPFIX field request host specifies the host as a domain, if a uniform resource identifier (URI) is present, an equally valid descriptor (e.g. pre-processed to clean the URI, mitigate text extraction issues and errors and finally extracting the domain) can be obtained. The destination domain gives more insight about the location of the HTTP tunnel tool hosting. The input data to the operation <NUM> is only HTTP data, therefore, some information can be thrown away (e.g. the IP protocol field, multi-flush due to timeout and caching mechanisms in the probes) for reducing the memory consumption of the apparatus <NUM> and improving the overall network speed of the data communication system 200A.

At the operation <NUM>, any known allowed or whitelisted application is discarded. The information related to the allowed application is obtained by use of different approaches such as URL signature based approach. The operation <NUM> is optional for a data communication system such as the data communication system 200A to work; however, this operation <NUM> improves the detection capabilities by reducing a false positive rate. In an example case, if there is a known allowed or a whitelisted application then in such a case, the communication is not carried out through the HTTP tunnel. In another example case, if there is an unknown application then in such a case, the HTTP tunnel is used.

At the operation <NUM>, known HTTP tunnels signatures are checked. Some tunnel tools (e.g. Badda, GNU httptunnel and reGeorg) have relatively clear and simple communication structure and method patterns that can be detected via regular expressions and rule based approaches, both per flow and/or per group of flows. These are reported directly at prediction time. In an example case, if the HTTP tunnel signatures match then in such a case, the communication is carried out directly through a HTTP tunnel which is present at the operation <NUM>. In another example case, if the HTTP tunnel signatures do not match then in such a case, the HTTP data is communicated further for processing at the operation <NUM>.

At the operation <NUM>, a time windowing of metadata is performed. The time windowing splits each group of HTTP data in time windows with a length of N minutes. In this embodiment, time window (N) = <NUM> minutes is used. This means all IPFIX records (or HTTP data) between an internal host (e.g. the internal host <NUM>) and a remote domain (e.g. the final destination host <NUM>) within the time window (N) of <NUM> minutes belong to a same group and the group represents an individual sample which is processed at further operations.

At the operation <NUM>, a first filtering rule is applied on the cleaned, aggregated and windowed data. The first filtering rule removes the communications which are out of the scope of the disclosure. The first filtering rule considers two threshold conditions, these are data transfer size and duration of a HTTP activity which must be within a specified limit such as a minimum of 5kB of data is exchanged within <NUM> minutes and there should be at least <NUM> seconds of HTTP activity. In a case where the threshold conditions of the data transfer size and duration of the HTTP activity meet, then in such a case, further processing is carried out at the operation <NUM>. In another case, where the threshold conditions of the data transfer size and duration of the HTTP activity do not meet, then in such a case, the communication is not performed through the HTTP tunnel.

At the operation <NUM>, a second filtering rule is applied based on a behaviour that a HTTP communication must have to perform the tunnel communication. The tunnel communication is performed by use of <NUM> HTTP methods such as a streaming tunnel and a discrete tunnel. In the streaming (or continuous) tunnel, a content of a payload protocol is streamed in real-time using a request or a response body. In the discrete tunnel, the content of the payload protocol is delivered in discrete data chunks in a non-streamed manner. The streaming tunnel and the discrete tunnel have been described in detail, for example, in <FIG>. In an example case, where the HTTP communication satisfies aforesaid HTTP methods rule, then in such a case, further processing is carried out at the operation <NUM>. In another example case, where the HTTP communication does not satisfy aforesaid HTTP methods rule, then in such a case, the communication is not performed through the HTTP tunnel.

At the operation <NUM>, various features are computed on the HTTP communications and a binary label for each HTTP tunnel candidate is produced. The various features include inactivity percentage, normalized number of HTTP requests, a spread of starting times of requests from a given source to a given destination, superposition of HTTP requests, upload and download channels, number of open ports, number of HTTP requests, temporal overlap between the upload and the download channel, and sparsity of HTTP requests.

At the operation <NUM>, after computing the various features, the HTTP communication is applied to an artificial intelligence engine such as the artificial intelligence engine 234A where classifiers based on supervised machine learning are used. The supervised machine learning (ML) classifiers correspond to model <NUM>, model <NUM> and up to model n. After applying these classifiers, the HTTP communication which is computed with a score greater than a threshold score is communicated through the HTTP tunnel in the operation <NUM>. In another example case, the HTTP communication which is computed with a score lesser than the threshold score is not communicated through the HTTP tunnel.

The system, method, computer program product, and communicated data described in this disclosure may, of course, be embodied in hardware; e.g., within or coupled to a Central Processing Unit ("CPU"), microprocessor, microcontroller, System on Chip ("SOC"), or any other programmable device. Additionally, the system, method, computer program product, and communicated data may be embodied in software (e.g., computer readable code, program code, instructions and/or data disposed in any form, such as source, object or machine language) disposed, for example, in a computer usable (e.g., readable) medium configured to store the software. Such software enables the function, fabrication, modeling, simulation, description and/or testing of the apparatus and processes described herein.

Such software can be disposed in any known computer usable medium including semiconductor, magnetic disk, optical disc (e.g., CD-ROM, DVD-ROM, and the like) and as a computer data signal embodied in a computer usable (e.g., readable) transmission medium (e.g., carrier wave or any other medium including digital, optical, or analog-based medium). As such, the software can be transmitted over communication networks including the Internet and intranets. A system, method, computer program product, and communicated data embodied in software may be included in a semiconductor intellectual property core (e.g., embodied in HDL) and transformed to hardware in the production of integrated circuits. Additionally, a system, method, computer program product, and communicated data as described herein may be embodied as a combination of hardware and software.

A "computer-readable medium" for purposes of embodiments of the disclosure may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, system or device. The computer readable medium can be, by way of example only but not by limitation, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, system, device, propagation medium, or computer memory.

A "processor" or "process" includes any human, hardware and/or software system, mechanism or component that processes data, or other information. A processor can include a system with a general-purpose central processing unit, multiple processing units, dedicated circuitry for achieving functionality, or other systems. Processing need not be limited to a geographic location, or have temporal limitations. For example, a processor can perform its functions in "real time," "offline," in a "batch mode," etc. Portions of processing can be performed at different times and at different locations, by different (or the same) processing systems.

Claim 1:
A method (<NUM>) for detecting one or more HTTP tunnels present in a data communication network (<NUM>, <NUM>, <NUM>), wherein the method (<NUM>) includes:
(a) using a collecting device arrangement (<NUM>) to gather data from data flows occurring between network devices (<NUM>) coupled to the data communication network (<NUM>, <NUM>, <NUM>);
(b) processing the gathered data to generate a plurality of parameter fields that are representative of characteristics of the data flows;
(c) processing a subset of the parameter fields and their associated one or more parameters according to one or more pre-defined rules; and
(d) applying the processed subset of parameters to an artificial intelligence engine (234A) to identify whether or not at least a portion of the gathered data corresponding to one or more types of HTTP tunnels being present in the data communication network (<NUM>, <NUM>, <NUM>).