Top 10 2014-I7 Insecure Mobile Interface

Back To The Internet of Things Top 10

Consider anyone who has access to the internet or has compromised a device locally.

Attacker uses multiple vectors such as insufficient authentication, lack of transport encryption and account enumeration to access data or controls via the cloud website. Attack will most likely come from the internet, however attack could come from a locally compromised device attacking the cloud service it is connecting to.

An insecure cloud interface is present when easy to guess credentials are used or account enumeration is possible. Insecure cloud interfaces are easy to discover by simply reviewing the connection to the cloud interface and identifying if SSL is in use or by attempting to login with random credentials and identifying what errors are returned. Automated tools can also look for issues such as lack of transport encryption and account enumeration.

An insecure cloud interface could lead to compromise of user data and control over the device.

Consider the business impact of an insecure cloud interface. Data could be stolen or modified and devices taken control of. Could your users be harmed? Could your brand be harmed?

The simplest way to find out if you have insufficient authorization/authentication is to review the password policy for the various interfaces and to review whether the interfaces allow for separation of roles. For example, all features will be accessible to administrators, but users will have a more limited set of features available.

Attempting to set usernames to simple passwords such as "1234" is a fast and easy way to determine if authentication/authorization is sufficient. Manual testing can help a security analyst find instances where weak passwords are allowed, access control is not limited by roles or credentials are poorly protected. Penetration testers can validate these issues by conducting brute-force attacks against usernames, reviewing access controls and testing for privilege escalation.

Automated dynamic scanning which exercises the application will provide insight into whether these issues exist as well.

Ensuring sufficient authentication/authorization requires:
 * 1) Ensuring password recovery mechanisms are robust.
 * 2) Ensuring complex password construction.
 * 3) Ensuring role/discretionary based access control is in place where necessary.
 * 4) Ensuring credentials are properly protected.

Scenario #1: The interface only requires simple passwords.

Example

Scenario #2: Username and password are poorly protected when transmitted over the network. Example

In the cases above, the attacker is able to either easily guess the password or is able to capture the credentials as they cross the network and decode it since the credentials are only protected using Base64 Encoding.