Apparently, the recent CitiGroup breach was due to an insufficient authorization error. Can you explain a bit about how this error works and how to prevent it?
The recent CitiGroup breach was due to insufficient authorization within one of the company's Web applications, and is a common Web security error. However, it can be difficult to identify with automated tools. “Failure to Restrict URL Access” is one of the OWASP Top 10 Web Application Security Risks, and prevention of such attacks is mandated by PCI compliance. The exploit works because the Web application doesn’t check to see if a direct Web request is authorized to access certain data for authenticated users. Basically, the Web application assumes that, if a user is authenticated, the user is authorized to access the webpage and data. Thus, the attacker can manipulate the URL used in the Web application by changing the account number encoded in the URL. In the case of the CitiGroup breach, when the attacker changed the account number, he or she was able to access the data.
Methods to prevent Web application authorization attacks can be broken down into at least two different types: Web application changes and system-level changes. System-level changes could include adding limits to the number of requests a client system can make of a Web app in a short period of time, which could slow the attack and give an organization more time to detect it. Web application changes could be more complicated, since it may not be possible to be automate them. Preventing this specific type of attack requires following the OWASP recommendations and checking authorizations for all page accesses, both of which are possible, but are easier said than done.
This was first published in October 2011