According to the recent independent analysis by Acutenix, an industry leader in web application security, 75% of all cyber-attacks are done at web application level. Also, the firm has shown that at least 70% of websites are at immediate risk of being hacked! As more ‘n’ more critical and sensitive data is stored in the web applications and the number of transactions increases, precise security testing of web applications has become crucial.
Security testing is to be carried out in order to ensure that whether a web app is capable enough to prevent the unauthorized users to access the resource and data. In web applications and other client server applications, security testing plays a vital role as it helps you identify the vulnerabilities or weakness of the website or web app on the go.
However, before you get into web app security testing, it is important that you make yourself aware about certain terms used in security testing. Here’re a few common terms that you will be frequently going to use in web application testing for security:
“Vulnerability” – It is nothing but some kind of weakness within the web application. The main reason behind such weakness could be bugs within the application.
“URL manipulation” – Many web applications interact or share some additional information between the client and the server within the URL. Modifying some information within the URL may lead to uncertain behavior by the server.
“SQL injection” – It is nothing but a process of inserting SQL statements through the web application UI into some query that has been executed by the server.
“XSS (Cross Site Scripting)” – Whenever a user inserts HTML or any other client side script within the user interface of a web application and when it is visible to others, it is called cross site scripting!
“Spoofing” – The terms means creation of hoax look-alike websites or emails.
Once you’re familiar with all the term, the next step is to start understand the different attributes of security testing. While performing security testing for a website or web app, there are seven basic attributes it should cover including Authentication, Authorization, Confidentiality, Availability, Integrity, Non-repudiation and Resilience. Let’s have a closer look at each of them:
Authentication: It is nothing but a process of identifying the person before accessing the system. It allows users to access the website or web application only if they successfully crack the authentication process.
Authorization: Once the authentication is passed by the users, authorization comes into the picture in order to restrict users to access certain features based on their role.
Confidentiality: It is basically used to verify if any unauthorized user and less privileged users are not able to access the information. It helps in protecting information and resources from the users other than the authorized and unauthorized.
Availability: It will check whether the system is available for the authorized users whenever they wish to use expect for maintenance and upgrade for security patches. Moreover, the downtime of the system should be as low as possible for more availability of the system.
Integrity: It ensures that the information received is not modified during the transit and verify if the correct information is presented to the user from different group.
Non-repudiation: It tracks who is accessing the system and which of the requests were rejected along with the additional details like the timestamp, IP address and so on.
Resilience: It will check whether the system is capable enough to bear the attacks. This can be implemented using encryption.
These are the major attributes of the security testing for web apps. However, this list is not exhaustive. Okay, but what kind of testing we can perform while security testing? Here’re the major types of security testing:
Security Auditing: It basically includes direct inspection of the application developed. It also involves code walk-through.
Security Scanning: It involves scanning and verification of the web application or system. During this kind of testing, auditors basically inspect and find out the weaknesses within an application.
Vulnerability Scanning: It will test the application for all the possible vulnerabilities. Most of the time it is carried out using vulnerability scanning software or application.
Risk Assessment: It is a method that involves analyzing and deciding the risk based on the type of los and the possibility of loss occurrence.
Posture Assessment & Security Testing: It is a combination of security testing, risk assessment and ethical hacking to reach a point where organizations conclude in context with security.
Penetration Testing: In this method, the tester forcefully access and enter the application under test. The tester will try to get access into a website or system using some other application or with the help of some combinations of loopholes within an application.
Ethical Hacking: This is all about a forced intrusion of an external element within a website or web application that is under security testing. It involves a series of penetration tests. Ensure that you understand and keep in mind all the aspects discussed here to make your web application security testing successful and effective. Hope this information would help you perform security testing successfully.
Prashant Chambakara is a Test Automation Specialist. He is currently working with TestingWhiz, an automated testing tool for web applications. Prashant loves to participate and contribute to the testing communities through blogs, articles, and conference speaking engagements. Connect with him on Twitter @prashant_geek.