Although most companies have some level of IT security in place, it is all too frequently the case that they are failing to address one of the fastest growing areas of vulnerability: security of their websites, Web applications and Web services. As companies become increasingly dependent on these, they are exposing themselves to higher levels of risk than they probably realise. And this is a very real problem: in its day-to-day role of helping companies deal with Internet security, IDsec has seen many examples of where companies have left themselves wide open to malicious attack. However, there is much that companies can do to be better protected, not least of which is implementing a range of procedures for identifying and testing Web security risks.
One of the problems is that many companies underestimate potential threats. They may feel that they are sufficiently protected, because they already have in place a combination of the following: anti-virus and content filtering tools, e-mail filters to reduce spam, information security procedures, disaster recovery plans, firewalls and possibly even intrusion detection systems that monitor access to and from internal and external networks. But while all these all play an extremely important role, they are not sufficient.
As the mischievous and malicious members of the Internet community discover more of the old doors are closing, they are turning to those that remain open, particularly Web-based applications and services. Thanks to the general sloppiness of Web application implementation and maintenance, they are discovering it quite rewarding. Amongst other things they are finding opportunities to:
* Trick the Web application user session management into allowing the attacker to operate as another user.
* Submit 'unexpected' input, the effect of which can range from crashing the Web application, through to taking control of the Web server.
* Deface the website.
* Inject database commands to reveal information held in back-end databases.
* Fool the Web application transaction or business logic into performing an undesirable and/or unauthorised action.
These are some of the risks enterprises run when, often under business pressure, they rush the introduction of new and enhanced web applications and services. This is why it is essential to spend more time and effort in ensuring that web applications are robustly engineered and implemented properly. In an ideal world, Web application security needs to be addressed at all stages of the software lifecycle. For example, when defining the requirements of the Web service or application, security needs should be identified and specified. At the very least, a basic risk assessment needs to be performed to identify potential security risks.
At the design stage, companies must specify what security mechanisms and measures are to be deployed and where. During implementation, it is essential that the developers are aware of the variety of vulnerabilities in Web-based applications and how to code to counter them. It is particularly important not to make the assumption that there is always a benign user on the other end who will send back what they expect. The testing stage must encompass security, not only of the specified security relevant functionality, but also uses the expertise of those who can to play the role of the hacker. Presenting the unexpected and thinking outside the box is essential. Finally, over the lifetime of the Web application, all significant changes to the Web application must be reviewed and tested from a security perspective.
However, in IDsec's experience, Web application security is usually an afterthought and, if it is addressed at all, it is only as last minute testing, which at least identifies any major security weaknesses before it is too late. Assuming that this will be the starting point for many companies, let us briefly examine what this should involve.
The security testing should cover all the well-known areas of Web application vulnerabilities, as well as the application logic, for actions that might trigger non-designed behaviour. Where appropriate, the security testing should integrate with system functional testing, but extended to include tests for misuse and abuse, as well as examining and testing how the Web application handles the commonly exploited areas of vulnerabilities. This testing should be performed in the following four stages: setup and scoping, discovery, testing, clarification and report generation. All these stages contain multiple steps, so the amount of work involved in carrying out Web application security procedures can be significant. This is why many organisations choose to supplement their in-house resources with those of external security consultants, such as IDsec, which uses a variety of automatic tools, but most importantly, its expertise. However, it should be stressed that it is the combined skill and experience of the designers, developers and maintainers, as well as testers, who between them can guarantee that Web applications and services are adequately robust.
For more information contact IDsec, 0944 20 8861 2001, or visit www.idsec.co.uk
© Technews Publishing (Pty) Ltd. | All Rights Reserved.