|
链接请见:
http://www.logigear.com/newslett ... _testing_part-1.asp
A Primer in Software Security Testing (Part 1)
Hung Nguyen, CEO, President and Founder, LogiGear Corporation
In the past few years, software security and software security testing have become some of the hottest topics in software development. Large companies including Microsoft and government institutions have invested huge sums of time and money to improve the security of their software, with mixed results.
Software security is a responsibility that crosses department lines. At a minimum, your development, testing, and IT staff should all be considering security as they build, test, and deploy applications for your company. This article, the first in a series, will introduce the key concepts of software security, and then highlight some important considerations when it comes to software security testing.
What is Computer Security?
Computer security is a combination of many protective measures taken to ensure the safety of the data and resources of both the owners and the users of the computer systems. It involves both keeping private information safe and preventing loss of resources
When it comes to computer security risks, we tend to think of rogue hackers operating independently and breaking into corporate networks to steal data. While computer security is concerned with these 'active' attacks from external sources, it also must address internal abuse and inadvertent loss of information.
While the threat of an attack from a hacker who is looking to steal data or wreak havoc is very real, it's equally real that company is likely to face the risks due to a failure to enforce restrictions on access to the data based on the authorization level of the user. For example, not all internal employees need access to the same data. Providing complete access to all employees' health information to everyone in the Human Resources department is a security risk. In this case the application must provide varying access to the data, based on the privileges (security authorization) of the user. The system must also authenticate the user to verify their identity within the computer system. Therefore, in testing for software security, you should look into other dimensions such as design, policy, configuration, error detection and handling, and so on.
How is Security Testing Different from Other Types of Software Testing?
As opposed to more conventional testing methods such as functional testing, the objective of software security testing is to expose the system's security defense failures by seeking out and showing its vulnerabilities, rather than to prove that a feature or a defensive mechanism works correctly.
Security testing requires:
1、Software testing knowledge
2、Platform knowledge
3、Application domain knowledge
4、Computer security knowledge
5、Programming skills
Security testing is focused on attack-based testing and exploratory testing, rather than the more traditional focus on functionality and requirements-based testing. Security testing is focused on active, negative tests, rather than passive, positive tests. It means that you are focusing on exploiting vulnerabilities of a system, getting around the normal thinking of a designer so that you will be able to get the software to do what it was not designed to do.
From the perspective of a tester, security testing can be one of the most fun and rewarding parts of the job. You no longer have to justify to others that the success of your work is measured by how effective you are in breaking things. You get a free license to do so!
The second part of this article will appear next month, and will highlight what aspects of your software and computer network must be tested for security purposes |
|