S 4.396 Protection against unauthorised automated use of web applications

Initiation responsibility: Head of IT, IT Security Officer

Implementation responsibility: Developer, Administrator

A web application is usually used by humans and does not require any automated use (e.g. by scripts). On the contrary, brute-force attacks (e.g. guessing access data) and enumeration attacks (e.g. automated determination of valid login names) are based on the automated control of a web application (automation). Within the framework of these attacks, the collection of confidential data is mostly attempted by repeating, slightly varying queries (e.g. changed user names).

In order to prevent automation and to see off concomitant attacks, the web application must be able to differentiate between automated and manual accesses. Automated accesses are characterised by a large number of access attempts within a short period significantly exceeding the usual amount.

Therefore, a tolerance threshold for repeatedly queried resources may make such attacks more difficult (tarpit). If thresholds against automated queries are specified, it must be observed that the limitation of functionality and operation of the web application for legitimate users is as low as possible. If thresholds for essential functions of the web application are too narrow, attackers may misuse this for denial-of-service attacks at a web application level. For example, if user accounts are blocked for a certain period after a defined number of unsuccessful login attempts, deliberately made erroneous input may cause many user accounts to be blocked for longer periods. Accordingly, legitimate users can no longer log in to the web application during this period.

Furthermore, the efficiency of automated attacks normally strongly depends on the level of detail of the information in the replies of the web application (see S 4.400 Restrictive disclosure of security-related information in web applications).

The following examples indicate possible protection mechanisms:

Review questions: