Top 10 2014-I1 Insecure Web Interface

Back To The Internet of Things Top 10

Consider anyone who has access to the web interface including external users, internal users, and administrators.

Attacker uses weak default credentials, captures plain-text credentials or enumerates accounts to access the web interface. Depending on setup, attack could come from external or internal users.

An insecure web interface is present when easy to guess or well known default credentials are used. Insecure web interfaces are prevalent as manufacturers strive to make interfaces easier for users to use and assume these interfaces will not be exposed to external users. They are often found in devices which have features that can only be accessed via the web interface. Issues with the web interface are easy to discover when examining the interface manually and frequently easy to discover via automated testing.

Insecure web interfaces can result in data loss or corruption, lack of accountability, or denial of access and can lead to complete device takeover.

Consider the business impact of compromised devices and in turn compromised customers. All data could be stolen, modified, or deleted. Could your users be harmed?

The best way to find out if you have an Insecure Web Interface is to verify that default credentials must be changed,etc. For administrative credentials, this means forcing a password change on initial use, etc.

Simply trying simple passwords is a fast and accurate way to see if the web interface is secure. Manual testing can help a security analyst find instances where weak passwords are used, etc. Penetration testers can validate these issues by running brute-force attacks against no administrative user accounts,etc.

Automated dynamic scanning which exercises the application may provide insight into whether some exploitable injection flaws exist. Scanners cannot always reach interpreters and have difficulty detecting whether an attack was successful. Poor error handling makes injection flaws easier to discover

Ensuring a secure web interface requires:
 * 1) Default passwords and possibly usernames to be changed during initial setup.
 * 2) Ensuring complex password construction.
 * 3) Ensuring web interface is not susceptible to XSS, SQLi or CSRF.
 * 4) Ensuring credentials are not exposed in internal or external network traffic.

Scenario #1: The web interface uses easily guessable default usernames and passwords.

Username = Admin; Password = password

Scenario #2: Username and password in the clear over the network. POST /login.htm HTTP/1.1 ... userid=admin&pass=pass

In the cases above, the attacker is able to either easily guess the username and password or is able to capture the username and password as it crosses the network.