Patent Description:
Many security-critical web applications use objects that are stored in a cache after loading by a web browser to increase efficiency. If the same web browser later opens a page from the same domain, a saved object is generally not reloaded from the web server, but the saved object is used.

A new class of attacks, named parasite attacks, exploit this property by storing a manipulated, malicious object of the same name in the web browser cache for the domain to be attacked. When the web browser opens the domain to be attacked, the malicious object is loaded and executed. This allows sensitive data to be tapped or manipulated by the attacker.

In principle, web servers are able to indicate that caching is not desired, but web browsers do not have to consider this signal. There is currently no reliable protection against these attacks.

Document <CIT> relates to a Server-client System. A Server provides a Web Site a function to record access logs using Web beacon technology, and a Client terminal communicating with the Server includes a browser to execute JavaScript by dynamically embedding a <NUM>-pixel Image that is dynamically added with a random parameter to a Source of a <img> tag element in a <div> tag element.

Hence, there is a need for a method to prevent storing of malicious objects in a cache.

This demand is addressed by the subject-matter of the independent claims. Further useful embodiments are addressed by the dependent claims.

An example relates to a web server circuit for preventing parasite attacks being configured to transmit an object to the client upon request of a service from a client. The object is identified by a first name. The web server circuit is further configured to transmit the object to the client upon a further request of the service from the client, where the object is identified by a second name.

By use of a second name for the same object to be transmitted from the web server circuit to the client, it may be impossible for an attacker to store a malicious object in a cache of the client having the same second name. In this way, the parasite attacks may be avoided.

In another example, the second name is generated by the web server circuit.

An automatically generated second name for the object by the web server circuit provides a name being unpredictable for the attacker.

In a further example, generating the second name is performed by use of an algorithm for random names.

An algorithm for generating randomly chosen names raises the difficulty for the attacker to find out the name.

In an optional example, the generated second name has a pre-defined minimum number of digits.

The more digits of the second name of the object are randomly generated by the web server circuit, the more effort needs to be spend by the attacker to find out the name, which leads to an even higher security for the client.

In another example, the object being transmitted to the client is temporarily saved in a cache of the client.

The object is saved in the cache as long as it is needed for a corresponding application or program. Once the object might not be needed any more for the client, said object may be deleted from the cache.

In a further example, the objects are data being processed by a CPU of the client.

The CPU of the client may directly process the transmitted data in order to execute a program, where said data are needed.

In an example, the object comprises a code to be executed by the client.

The CPU of the client may also generate or execute an algorithm which may be needed for a certain application or program.

Another example relates to a method for preventing parasite attacks, comprising transmitting an object to the client, wherein the object is identified by a first name. The method further comprises transmitting the object to the client, wherein the object is identified by a second name.

In another example, the method for preventing parasite attacks further comprises generating the second name.

An automatically generated second name for the object by the web server circuit may provide a name being unpredictable for the attacker.

A further example relates to a computer program for having a program code for, when executed by a programmable processor, performing the method for preventing parasite attacks.

Accordingly, while further examples are capable of various modifications and alternative forms, some particular examples thereof are shown in the figures and will subsequently be described in detail. However, this detailed description does not limit further examples to the particular forms described. Further examples may cover all modifications, equivalents, and alternatives falling within the scope of the disclosure. Same or like numbers refer to like or similar elements throughout the description of the figures, which may be implemented identically or in modified form when compared to one another while providing for the same or a similar functionality.

It will be understood that when an element is referred to as being "connected" or "coupled" to another element, the elements may be directly connected or coupled or via one or more intervening elements. If two elements A and B are combined using an "or", this is to be understood to disclose all possible combinations, i.e. only A, only B as well as A and B, if not explicitly or implicitly defined otherwise. An alternative wording for the same combinations is "at least one of A and B" or "A and/or B". The same applies, mutatis mutandis, for combinations of more than two Elements.

<FIG> describes a web server circuit <NUM> and a client <NUM>. The web server circuit which may prevent parasite attacks may be configured to transmit an object to the client upon request <NUM> of a service from a client <NUM>. The object may be identified by a first name. The web server circuit <NUM> may further be configured to transmit the object to the client <NUM> upon a further request <NUM> of the service from the client <NUM>. The object may be identified by a second name.

The client <NUM> may be a computer which may include a central processing unit (CPU) <NUM>, random access memory (RAM) <NUM> and a cache <NUM>. An object may be received by the client <NUM> from the web server circuit <NUM> and temporarily saved in the cache <NUM>.

Such a client <NUM> may, for example, request a service from the web server circuit <NUM>. Said service may be opening a web site including images, videos, GIFs, browser games or any other kind of content which may be saved in a cache <NUM> of, for example, a web browser. In all of the examples, objects may be transmitted in order to save them temporarily in the cache <NUM> in order to open them again after restarting or reloading a web site in a much faster way.

In case the client <NUM> may request the same service a second time, the web server circuit <NUM> may generate a new name for the same object to be transmitted to the client <NUM>. This may happen by use of an algorithm for generating random names which may be unpredictable for a potential attacker who wants store malicious objects in the clients' <NUM> cache. Renaming the object may prevent such parasite attacks efficiently.

Especially in case of a website, a web browser may save objects in the cache while opening a web site for the very first time. After closing the web site or after closing the web browser, the objects may remain in the cache <NUM> for a certain time. In case the same web site might be opened again some time later, the web site may be loaded or opened in a much faster time than opening or loading it for the first time, due to the fact that the most important objects may be directly loaded from the cache <NUM>.

This principle is not limited to web sites and web browsers. It may also be used in different clients like game clients providing a gaming platform, video on demand clients, music streaming clients or navigation systems. These examples are not limited to computer use only; they may also be used with smart phones, TV's, tablets, smart watches, gaming consoles and electrical household appliances or cars including a computer system connected to the internet.

<FIG> describes a method for preventing parasite attacks. The method may include transmitting an object to the client. The object may be identified by a first name. The method may further comprise transmitting the object to the client <NUM>, wherein the object may be identified by a second name.

Functions of various elements shown in the figures, including any functional blocks labeled as "means", "means for providing a signal", "means for generating a signal. ", etc., may be implemented in the form of dedicated hardware, such as "a signal provider", "a signal processing unit", "a processor", "a controller", etc. as well as hardware capable of executing software in association with appropriate software. When provided by a processor, the functions may be provided by a single dedicated processor, by a single shared processor, or by a plurality of individual processors, some of which or all of which may be shared. However, the term "processor" or "controller" is by far not limited to hardware exclusively capable of executing software, but may include digital signal processor (DSP) hardware, network processor, application specific integrated circuit (ASIC), field programmable gate array (FPGA), read only memory (ROM) for storing software, random access memory (RAM), and non-volatile storage.

It is to be understood that the disclosure of multiple acts, processes, operations, steps or functions disclosed in the specification or claims may not be construed as to be within the specific order, unless explicitly or implicitly stated otherwise, for instance for technical reasons. Therefore, the disclosure of multiple acts or functions will not limit these to a particular order unless such acts or functions are not interchangeable for technical reasons. Furthermore, in some examples a single act, function, process, operation or step may include or may be broken into multiple sub-acts, -functions, -processes, -operations or -steps, respectively. Such sub acts may be included and part of the disclosure of this single act unless explicitly excluded.

Claim 1:
A web server circuit (<NUM>) for preventing parasite attacks configured to:
upon a request (<NUM>) of a service from a client (<NUM>), transmit an object to the client (<NUM>), the object being identified by a first name; and
upon a further request (<NUM>) of the service from the client (<NUM>), generate a second name and transmit the object to the client (<NUM>), the object being identified by the second name.