Posted by Sachin Srivastava.
Posted by Sachin Srivastava.
Lesson 101 : Introduction to Security Testing

In broad perspective, security testing can be divided into six basic concepts: Here is a brief introduction of them but I would suggest exploring more onto each of them individually.
- Availability: Assuring that for any information system which is there to serve its purpose, should be available when needed and these information & communications services are available and maintained for authorized persons when needed.
- Authentication: Assuring the transaction or communication is happening between two or more authentic parties. Assuring the validity of any type of originator, transmission or message. This also gives confidence that information is received by a known and validated source.
- Authorization: Assuring that an intended individual can allow/deny access to a system/service/operation (e.g. Access control).
- Confidentiality: Ensuring authorized person or parties only have access to the information and prevent information disclosure to any party other than the intended recipients. Often ensured by encoding information using algorithms (cryptography is one of the common example of that).
- Integrity: Ensuring received information is preserved successfully with no alteration.
- Non-repudiation: Ensuring communication or action cannot later be denied
Security Testing Methods:
Basically there are three types of testing methods which involve various sets of attacks:
1) Information/system gathering,
2) Logical attack
3) Injection attacks.
Each are used for specific testing results, however various attacks share the same security concepts, and are therefore quite similar to one another.
Information gathering (i.e. system-related) attacks
- Client-side source code analysis
- Application reconnaissance
- Error messages analysis
- Directory traversal
These methods include various types of information gathering from a web application/server by means of source code and error message analysis, exposure of directory structure or other attacks which results in information exposure. Here they are in no particular order:
Logical Attacks
- Cookie poisoning
- Parameter tampering
- Flow bypassing
- Direct access of components files
- Session hijacking
- Penetration testing
- Buffer overflow
These methods may be executed both manually and via specific tools/scripts and are mainly related to various logical attacks. Logical attacks are more sophisticated, and thus, more interesting & challenging to the tester, who needs to have a good understanding of information technology and specific knowledge of cookies, POST/GET requests & parameters like that, etc.
Injection Attacks
- SQL injection
- Cross Site Scripting (XSS)
- Scripts injection
These methods relate to various scripts & SQL commands injections into web application forms. These are the most common attacks, yet they are both serious and dangerous. Detecting such vulnerabilities in the early stages of development can prevent unnecessary flaws.
More on this will come in my next post.
Thanks,
Sachin Srivastava.
Quality Analyst
Dec 17, 2009 Copyright Notice
This document may be copied in it entirety, or extracts made, if the source is acknowledged.To download a copy of this document, please click here
The Open Web Application Security Project (OWASP) all the basic information about security threats & respective testing solutions. A must read!!!
http://www.owasp.org
Thanks for sharing the link to us Nalin! Welcome to our site and hope to hear more from you !
Hi there,
Interesting, I`ll quote it on my site later.
First of all. Thanks very much for your useful post.
I just came across your blog and wanted to drop you a note telling you how impressed I was with the information you have posted here.
Please let me introduce you some info related to this post and I hope that it is useful for software testing community.
There is a good Software Testing resource site, Have alook
simi
« Lesson 100: Software Testing Terms and Definitions Next Post
Intangible Benefits of Automation »
Security testing is growing field of QA. In this age when security threats is spreading faster than we can fix them there is a need for ’security driven development’. Thanks Sachin for sharing this initial post that will serve as a springboard for future articles on this topic.