Week 10 - STRIDE: Elevation of Privilege


Elevation of Privilege, in a nutshell, is the act of gaining access to information, data, or code that otherwise not allowed under the current user’s privilege.  Every user account has a set of access right assigned to fit the account holder’s function.  Traditionally, user privileges are divided into groups like administrative, operation, and view only.  Each user is assigned to one or more groups and has the privileges assigned to the groups.  In a more sophisticated system, users in the same groups can have different access rights.  There are two types of privilege elevations, vertical privilege elevation, and horizontal privilege elevation.  




Vertical privilege elevation is when a user gains the privileges of another user whose access right is higher than himself or herself.  An example of this is the sudo command in Debian Linux systems.  Normal user can perform superuser operation when added to the sudo list.  In older Windows system, the authentication and authorization mechanism use the secured ID (SID) to identify the privileges of the user.  When logging in with a SID of a higher privileged account, the user can do any operation allowed for that SID.  Other ways of increasing access level are exploiting vulnerabilities in a system.   Below shows a few more scenarios that allow a hacker to use vertical elevation of privileges:


  • Developers unintentionally lowered the permission of the files that are only available for superuser during development.  After login, the attacker can read, write, or execute the files.
  • An IT staff added guest access to the system without setting proper access permission.  The attacker can use this weakness to gain access to the administrative panel and reconfigure the system.
  • Remote hacker uses SQL injection to retrieve the user table and get hold of the administrative account.
  • A vulnerability in the older version of the Microsoft SMB protocol allows an attacker to capture account information without logging into the system.  After decrypting the information, the attacker gets the account credentials.

Horizontal privilege elevation is when a user assumes the access rights of another user who is in the same group or groups.  Some people refer to this as impersonation.  However, it is not entirely true.  As I mentioned above, some complex systems allow customization of user privileges.  In such systems, users in the same groups may have a different type of access.  For example, John and Tom are both developers.  John is in embedded development, and Tom is in the application group.  John may have some special permission granted for him to fulfill his daily tasks while Tom does not.  If there is a weakness in the system that let the attacker obtain John’s privileges from Tom’s account, he can use the horizontal privileged elevation.

This blog reaches the last mnemonic of the STRIDE threat modeling.  I hope the information in the blogs helps us in the near future. If you have any comment or suggestion to make the blogs better, please feel free to drop me a few lines.

Comments

Popular posts from this blog

Week 4 - STRIDE: Spoofing

Week 12 - The Final Words

Week 7 - STRIDE: Repudiation